当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2011年11月17日木曜日

おじさんSEが学ぶXPages(7)

もう11月も半ばです・・・
この連載(Xpages)を始めてから、なぜか月日が経つのが早く感じてしまいます。なぜでしょう???

それはそうなんですね。
この連載、9月に始めてるんですね、もう3ヶ月ですよ、3ヶ月。いい加減、終わらせないと・・・

しかし、慌てずに、まずはこちらをクリック!
にほんブログ村 IT技術ブログへ


始める前に、一言。
みなさんもご存じの通り、Lotus Notes/Domino 8.5.3がリリースされました。
と言う事で、筆者の環境も8.5.3に格上げしました。
今回の記事からは、8.5.3がベースになります。
8.5.2と違う点が分かったら、その場でコメントを入れるようにしますので、ご了承ください。


それでは・・・前回までについては、過去の記事を参照してください。
今回からはようやく、フォームをXPages化していきます。

と言っても、基本的な事は変わりません。
まずは、フォームの核となる部分を作成するので、「BookResource」という名前でカスタムコントロールを作成します。
ここで気をつける必要があるのは、カスタムコントロールの名前とXPageの名前は同じにしてはいけないという事です。
ですので、XPageに使った「BookResources」ではなく、「BookResource」とします(最後の"s"をなくします)。
重複した名前をつけるとエラーになる

この作成したコントロールに、フォームの情報を埋め込みます。

ビュー情報を埋め込む場合は、コントロールビューから、「ビュー」をドラッグ&ドロップしました。
フォームの場合はどうでしょう?

フォームというコントロールは見あたりませんね。
はい。ありません。
次の手順で操作します。

1.[ウィンドウ][Eclipseビューの表示][データ]メニューから「データ」ビューを開きます。
2.データソースの横にあるボックスをクリックして、「データソースの定義」を選択します。

3. 「データソースの定義」ダイアログボックスが表示されるので、「データソース」から「Domino文書」を選択して[OK]をクリックします。
データソースの選択

4.データソースの詳細を定義する画面に移行するので、必要な情報を入力して、[OK]をクリックします。
アプリケーションは自分自身がデフォルトで設定されているので、ここでは、フォーム名に「蔵書 - BookResources」 を選択します。
データリソース名は、デフォルトの「document1」のままで構いません。
データソースの詳細定義

5.「データ」ビューにフォームのフィールド情報が追加されました。
ただし、このままでは使えないので、左上にあるアイコンをクリックして、「×」マークを外してください。

Domino文書のデータソース

6.表示されている4つのフィールドを選択します(Ctrlキーを押しながら、クリックすると複数選択できます)。

7.選択したら、「BookResource」カスタムコントロール上にドラッグ&ドロップします。
フィールド情報をドラッグ&ドロップ

8.「データバインドコントロールの選択」ダイアログが表示されるので、ラベルを次のように変更します。
Published by:  → 出版社:
Writer:      → 著者名:
Book name:   → 蔵書名:
Purchase time: → 購入日:
変更が出来たら、[OK]をクリックします。
データバインドコントロールの選択

9.カスタムコントロール上にフォーム情報が追加されたのを確認できたら、その表をマウスで右クリックします。
カスタムコントロール上に追加されたフォーム情報
10.コンテキストメニューが表示されるので、「行の追加」を選択します。
コンテキストメニュー

11.「行の追加」ダイアログが表示されるので、「2」と入力して[OK]をクリックします。
行の追加ダイアログ

12.表に行が追加されるので、ボタンを3つ追加します。
ボタンは、「コントロール」ビューの「コアコントロール」からドラッグ&ドロップします。
ボタンのラベルは、それぞれ「保存」「編集」「キャンセル」とします。
ボタンのラベルを変更

13.各ボタンのイベントを設定します。
まずは、「保存」ボタンを選択した状態で、「イベント」ビューを開きます。

[アクションの追加...]ボタンをクリックします。
保存ボタンのイベント


14.「シンプルアクションの追加」ダイアログが表示されるので、アクションで「文書の保存」を選択して、[OK]をクリックします。
シンプルアクションの追加

15.再度、[アクションの追加...]ボタンをクリックして、今度は「ページを開く」アクションを選択して、[OK]をクリックします。
シンプルアクションの追加(ページを開く)

16.次に、「編集」ボタンをクリックして、アクションを追加します。
アクションは「文書モードの変更」、文書モードは「編集モード」にします。
シンプルアクションの追加(文書モードの変更)

17.今度は、「キャンセル」ボタンをクリックして、アクションを追加します。
キャンセルなので、「home」ページに戻るようにします。
アクションは、「ページを開く」で、開くページの名前を「home」にします。


このままでも良いのですが、これではボタンが常に表示されたままになってしまいます。
表示/非表示の設定を行いましょう。
「保存」ボタンは、編集モードの時だけ表示します。
「編集」ボタンは、読み込みモードの時だけ表示します。
「キャンセル」ボタンは、常に表示します。

18.「保存」ボタンを選択して、「プロパティ」ビューを開きます。
「可視」という項目(バージョンによっては、「表示」になっていることもあります)があるので、右にある◇をクリックすると、選択肢が表示されるので「値の計算...」を選択します。
可視の編集
19.スクリプトエディタが起動するので、表示条件を記述します。
文書が編集モードの時だけ表示したいので、
document1クラスのisEditable()を選択して、ダブルクリックします。
※この際、左側のペインは「参照」タブをクリックしておきます。
※document1は、4.でデータソースを定義した際の名前です。
スクリプトエディタ

右側のペインに、「document1.isEditable()」と表示されたら、[OK]をクリックします。
すると、「可視」のボタンの右側に「{計算済み}」と表示されるようになります。


20.同じく、「編集」ボタンを選択して、「可視」の右の◇をクリックして、「値の計算...」を選択します。
 スクリプトエディタで、「! document1.isEditable()」と記述します。
「!」は否定を表しますので、編集でない時(つまりは読み込みモード時)に表示されます。
記述できたら[OK]をクリックします。


ここまで出来たら、「BookResource」カスタムコントロールを保存します。


と、今回はここまでにしましょう。
次回は、作成したカスタムコントロールをXPageに埋め込んで利用できるようにします。


果たして、年内にXPagesアプリケーションはできあがるのでしょうか・・・
かなり不安ではありますが、頑張りますので応援をお願いします。



Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: