Comments
Description
Transcript
書ページの作成 (1)
テクてく Lotus 技術者夜会 ハンズオン・セッション: Mobile Controls を用いたモバイルアプリケーション開発 2012/03/16 Yamato Software Development Lab Lotus Technology Development Lotus BP Technical Enablement Team 特記事項 本資料の記載内容は、できる限り正確を期すよう努めてはおりますが、 いかなる明⽰または暗黙の保証も責任も負いかねます。 本資料の情報は、使⽤先の責任において使⽤されるべきものである ことを、あらかじめご了承ください。 掲載情報は不定期に変更されることもあります。他のメディア等に 無断で転載する事はご遠慮ください。 当資料をコピー等で複製することは、執筆者の承諾なしではできません。 また、当資料に記載された製品名または会社名はそれぞれの各社の 商標または登録商標です。 IBM、IBMロゴ、DB2、Lotus、Lotus Notes、Lotus Domino、Quickr、Sametime、Workplace、WebSphereは、International Business Machines Corporationの⽶国およびその他の国における商標。 JavaおよびすべてのJava関連の商標およびロゴは Sun Microsystems, Inc.の⽶国およびその他の国における商標。 Microsoft, Windowsは Microsoft Corporationの⽶国およびその他の国における商標。 Linuxは、Linus Torvaldsの⽶国およびその他の国における商標。 他の会社名、製品名およびサービス名等は、それぞれ各社の商標。 この資料について Lotus Notes/Domino Upgrade Pack 1 に含まれる Mobile Controls を ⽤いて、既存の Lotus Notes アプリケーションに、スマートフォン⽤の XPages アプリケーションを作る⼿順について説明しています。 ベースとなる Lotus Notes アプリケーションは、社員の情報を保持し参 照する機能を提供するプロフィールアプリケーションです。 今⽇の実習環境 Notes/Domino – Lotus Domino Designer 8.5.3 – Lotus Notes/Domino Upgrade Pack 1 Web ブラウザ – – – – Internet Explorer FireFox Safari (iPhone のエミュレータとして使⽤) Mobilizer Safari ブラウザを iPhone エミュレータとして使うための設定 以下の⼿順で Safari ブラウザの発⾏するユーザーエージェントを変える ことで、Mobile Controls の iPhone の画⾯をテストすることができる。 ⼿順 – Safari ブラウザを起動し、メニュー から「編集」→「設定」 を選択。 – 「設定」 ダイアログボックスで、 「メニューバーに“開発”メニューを 表⽰」 を選択して閉じる。 – メニューから 「開発」→「ユーザー エージェント」→「Safari iOS 4.3.3 - iPhone」 を選択。 ※ ユーザーエージェントの変更前に XPages を開くと、最初のユーザーエー ジェントがセッションに記録される。そ のときは Safari ブラウザを再起動する。 ※ Safari ブラウザを再起動するとユーザー エージェントがリセットされるので注意。 使⽤する Lotus Notes アプリケーション Lotus Domino アプリケーション – – – – Title: Profiles File name: profiles.nsf 社員情報を保持するシンプルな Lotus Notes アプリケーション。 このアプリケーションのビューと⽂書を、モバイル端末に表⽰する。 Lotus Notes アプリケーションを開く⼿順 – Domino Designer クライアント上でメニューより 「フィル」→「アプリケー ション」→ 「開く」 を選択し、「アプリケーションを開く」ダイアログボッ クスを開く。 – サーバーに「ローカル」を 選択し、Profiles を選択して 開く。 このステップはハンズオン環境で すでに完了しています。 Mobile Controls を使⽤するための事前準備 (1) 1. アプリケーションビューで 「アプリケーションプロパティ」 をクリック して開く。「詳細」タブの 「XPages ライブラリ」 セクションの com.ibm.xsp.extli.library をチェックして保存する。 このステップはハンズオン環境で すでに完了しています。 Mobile Controls を使⽤するための事前準備 (2) 1. メニューから 「ウィンドウ」→「Eclipse ビューの 表⽰」→「パッケージ・エクスプローラー」を選択 してパッケージ・エクスプローラーを開く。 2. パッケージエクスプローラーで profiles.nsf プロ ジェクトの WebContent/WEB-INF フォルダにあ る xsp.properties を開く。 このステップはハンズオン環境で すでに完了しています。 Mobile Controls を使⽤するための事前準備 (3) 1. xsp.properties の 「Source」タブを選択して、以下の⾏を追加する。 xsp.theme.mobile.pagePrefix=m_ 参考: Mobile XPage name prefix http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Mobile_XPage_name_prefix_ddxl853 ※ パッケージ・エクスプローラーはこれ以降は使わないので、閉じてしまって構わない。 モバイルアプリケーション⽤の XPage の作成 1. 左側のアプリケーションナビ・ゲーターで 「XPage」 を選択し、 中央のメイン・エディターの 「新規 XPage」 ボタンで、 新規 XPage を作成する。 – XPage の名前は 「m_profiles」 とする。 ※ 先の xsp.properties の設定にあわせて、 m_ ではじまる名前をつけることに注意。 トップページの作成 (1) 1. コントロールパネルの 「Mobile」 カテゴリから Single Page Application コントロールをドラッグ&ドロップして XPage 内に 配置する。 トップページの作成 (2) 1. コントロールパネルの 「Mobile」 カテゴリから Mobile Page コント ロールを、作成した「Single Page Application 」 の中にドラッグ&ド ロップして配置する(編集可能領域を⽰す緑⾊の丸に落とす)。 ※ 作成した Mobile Page コントロールの名前 は 「appPage1」のまま変更しない。 トップページの作成 (3) 1. 作成した 「appPage1」 Mobile Page コントロールを選択し、プロパ ティビューの 「すべてのプロパティ」 で以下の設定をする。 – – 「基本」→「pageName」 に 「topPage」とタイプする。 「基本」→ 「resetContent」 で 「false」 を選択する。 ※ このページには固定的な内容を表⽰するので resetContent プロパティを false に している。 トップページに表⽰するヘッダーの作成 (1) 1. 作成した 「appPage1」 Mobile Page コントロールの中に Page Heading と Static Line Item コントロールを同じレベルで配置する。 ※ 作成した Page Heading と Static Line Page コント ロールの名前はそれぞれ 「djxmHeading1」と 「djxmLitenItem1」のまま変更しない。 トップページに表⽰するヘッダーの作成 (2) 1. 作成した Page Heading コントロールを選択し、プロパティビューの 「すべてのプロパティ」 の 「基本」→「label」 で 「値の計算」 を 選択して以下のスクリプトを記述する。 return "モバイルプロフィール"; トップページに表⽰するヘッダーの作成 (3) 1. 作成した Static Line Item コントロールを選択し、プロパティビューの 「すべてのプロパティ」 の 「基本」→「label」 で 「値の計算」 を選択 して以下のスクリプトを記述する。 return "すべてのプロフィール"; 最初にトップページを表⽰するよう設定する 1. .表⽰するページができたので、最初に作成した Single Page Application コントロールを選択し、プロパティビューの 「すべての プロパティ」 タブで 「基本」→「selectedPageName」 に 「topPage」 とタイプする。 作成したトップページを確認する (1) 1. メニューより 「ファイル」→「保存」 を選択して 「m_profiles」 XPage を保存し、 「設計」→「Web ブラウザでプレビュー」→ 「Firefox」を選択して、表⽰される内容を確認する。 ※ Firefox からプレビューすると Android ⽤の画⾯が表⽰される。 作成したトップページを確認する (2) 1. Safari ブラウザを起動し、メニュー から「開発」→「ユーザーエージェ ント」→「Safari iOS 4.3.3 iPhone」 を選択する。 2. 以下のアドレスを指定して開き、 iPhone ⽤の画⾯が表⽰されることを 確認する。 http://localhost/profiles.nsf/m_profiles.xsp ※ Mobile Controls を使⽤して作成した XPage では、 ブラウザのユーザーエージェントを⾒て⾃動的に iPhone ⽤と Android ⽤の画⾯を切り替えている。 ビューページの作成 (1) 1. 最初に作成した Single Page Application コントロールの中に、 もうひとつ Mobile Page コントロールを配置する。 ※ 作成した Mobile Page コントロールの名前 は 「appPage2」のまま変更しない。 ビューページの作成 (2) 1. 作成した Mobile Page コントロールを選択し、プロパティビューの 「すべてのプロパティ」 で以下の設定をする。 – – 「基本」→「pageName」 に 「 viewPage 」とタイプする。 「基本」→ 「preLoad」 で true を選択する。 ビューページのヘッダーの作成 (1) 1. 「appPage2」 コントロールの中に Page Heading コントロールを 配置する。 ※ 作成した Page Heading コントロールの名前は 「djxmHeading2」のまま変更しない。 ビューページのヘッダーの作成 (2) 1. 作成した Page Heading コントロールを選択し、プロパティビューの 「すべてのプロパティ」 で以下の設定をする。 – 「基本」→「label」 で 「値の計算」 を選択して以下のスクリプトを記述す る。 return "すべてのプロフィール"; ビューページのヘッダーの作成 (3) 1. 作成した Page Heading コントロールを選択し、プロパティビューの 「すべてのプロパティ」 で以下の設定をする。 – 「基本」→「back」 で 「値の計算」 を選択して以下のスクリプトを 記述する。 return "戻る"; – 「基本」→「moveTo」 で 「topPage」 とタイプする。 トップページからビューページへの遷移をさせる (1) 1. 1番⽬のページである「appPage1」コントロールの中に作成した 「djxmLineItem1」 を選択し、「プロパティビューの「すべての プロパティ」 で以下の設定をする。 – 「基本」→「moveTo」 に 「viewPage」 とタイプする。 – 「基本」→ 「transition」 で 「flip」 を選択する。 トップページからビューページへの遷移をさせる (2) 1. 「m_profiles」 XPage を保存し、 ブラウザからプレビューして 以下を確認する。 トップページの「すべてのプロフィール」をクリックして ビューページへ遷移する。 – ビューページでヘッダーの「戻る」ボタンを押して、 トップページへ遷移する。 – トップページ ビューページ ビューページでのビューデータの表⽰ (1) 1. コントロールパネルの 「Extension Library」 セクションから Data View コントロールをドラッグ&ドロップし、「appPage2」コントロー ル の中の 「djxmHeading2」コントロール の直後に、同じレベルで 配置する。 ビューページでのビューデータの表⽰ (2) 1. 「データソースの選択ダイアログ」ボックスが表⽰されるので、 以下のように設定して「OK」ボタンをクリックする。 – Show data from: – アプリケーション: – ビュー: – データソース名: 「Domino ビュー」を選択 「現在」を選択 「profiles」 を選択 「profilesView」 とタイプ ビューページでのビューデータの表⽰ (3) 1. 作成した Data View コントロール を選択する。 「すべてのプロパティ」で 「形式」→「summaryColumn」 を選択して [+] をクリックする。 2. 「summaryColumn」プロパティの ⼦要素ができるので、それを展開し て「columnName」に 「FullName」 とタイプする。 ビューデータが表⽰されることを確認 1. 「m_profiles」 XPage を保存し、 ブラウザからプレビューして 以下を確認する。 – トップページからビューページに遷移して、登録されている⼈の⼀覧が 表⽰される。 ※ 確認するときにページをリロードして 内容を更新する。 ページの遷移だけでは、XPage のリ ロードは⾏われない。 ⽂書ページの作成 (1) 1. 最初に作成した Single Page Application コントロールの中に、もうひと つ Mobile Page コントロールを配置する。 ※ 作成した Mobile Page コントロールの 名前は 「appPage3」のまま変更しない。 ⽂書ページの作成 (2) 1. プロパティビューの 「すべてのプロパティ」 で以下の設定を⾏う。 – 「基本」→「pageName」 に 「documentPage」とタイプする – 「基本」→ 「preLoad」 で 「true」 を選択する。 – 「基本」→ 「resetContent」 で 「true」 を選択する。 ⽂書ページのヘッダーの作成 (1) 1. 「appPage3」 コントロールの中に Page Heading コントロールを 配置する。 ※ 作成した Page Heading コントロールの 名前は 「djxmHeading3」のまま変更し ない。 ⽂書ページのヘッダーの作成 (2) 1. 作成した Page Heading コントロールを選択し、プロパティビューの 「すべてのプロパティ」 で以下の設定をする。 – 「基本」→「label」 で 「値の計算」 を選択して以下のスクリプトを 記述する。 return "プロフィール"; ⽂書ページのヘッダーの作成 (3) 1. 作成した Page Heading コントロールを選択し、プロパティビューの 「すべてのプロパティ」 で以下の設定をする。 – 「基本」→「back」 で 「値の計算」 を選択して以下のスクリプトを 記述する。 return "戻る"; – 「基本」→「moveTo」 で 「viewPage」 とタイプする。 トップページからビューページへの遷移をさせる (1) 1. 2番⽬ページである「appPage2」コントロールの中に作成した Data View コントロールを選択し、「すべてのプロパティ」で 「基本」→「pageName」 に 「documentPage」 とタイプする。 トップページからビューページへの遷移をさせる (2) 1. 「m_profiles」 XPage を保存し、 ブラウザからプレビューして以 下を確認する。 – 「topPage」、「viewPage」、 「documentPage」のそれぞれ のページの間で画⾯遷移できる ことを確認する。 – ビューページに表⽰される⼈の 名前をクリックして⽂書ページ へ遷移する。 – ⽂書ページでヘッダーの「戻 る」ボタンを押して、ビュー ページへ遷移する。 ⽂書ページでプロフィールデータの表⽰ (1) 1. 「appPage3」コントロールの中の 「djxmHeading3」 の直後に、パネ ルコントロールを同じレベルで配置する。 ⽂書ページでプロフィールデータの表⽰ (2) 1. 作成したパネルを選択したまま、プロパティビューの「データ」タブで 「追加」→「Domino ⽂書」を選択してデータソースを定義する。 データソースの定義は以下のようにする。 – アプリケーション: – フォーム: – データソース名: 「現在」を選択 「profile」 を選択 「profilesDoc」 とタイプ ⽂書ページでプロフィールデータの表⽰ (3) 1. 作成したパネルの中に Mobile コントロールから Rounded List コント ロールを配置する。 ⽂書ページでプロフィールデータの表⽰ (4) 1. 配置した Rounded List コントロールの中に Mobile コントロールから Static Line Item コントロールを配置する。 ⽂書ページでプロフィールデータの表⽰ (5) 1. Static Line Item コントロールを選択し、プロパティビューの 「すべてのプロパティ」 で以下の設定をする。 – 「基本」→「label」 で 「値の計算」 を選択して以下のスクリプトを 記述する。 return "姓:"; ⽂書ページでプロフィールデータの表⽰ (6) 1. Static Line Item コントロールを選択し、プロパティビューの 「すべてのプロパティ」 で以下の設定をする。 – 「基本」→「rightText」 で 「値の計算」 を選択して以下の スクリプトを記述する。 return profilesDoc.getItemValueString("LastName"); ⽂書ページでプロフィールデータの表⽰ (7) 1. 同じく Rounded List の中に、さらに Static Line Item を3つ同じ レベルで配置し、同じように label プロパティと rightText プロパ ティを以下のように設定する。 「label」 プロパティの計算式 「rightText」 プロパティの計算式 1 return "姓:"; return profilesDoc.getItemValueString("LastName"); 2 return "名:"; return profilesDoc.getItemValueString("FirstName"); 3 return "メール:"; return profilesDoc.getItemValueString("Email"); 4 return "⽣年⽉⽇:"; return profilesDoc.getItemValueDateTime("DOB"); ※ 「⽣年⽉⽇」のデータ取得に getItemValueDateTime() を使⽤していることに注意! ⽂書ページでプロフィールデータの表⽰ (8) 1. パネルの中に、先ほど配置した Rounded List と同じレベルでもうひとつ Rounded List コントロールを配置する。 ⽂書ページでプロフィールデータの表⽰ (9) 1. 作成した Rounded List コントロールの編集可能領域に計算結果 フィールドを配置する。 ⽂書ページでプロフィールデータの表⽰ (10) 1. 作成した計算結果フィールドを選択し、「値」タブで以下のように 設定する。 – 使⽤するデータバインディング: – データソース: – バインド先: ※ 配置したコント ロールの位置 関係も確認する。 「単純データバインディング」を選択 「profilesDoc」を選択 「AboutMe」 を選択 ⽂書ページでプロフィールデータの表⽰ (11) 1. 計算結果フィールドを選択し、プロパティビューの「すべてのプロパ ティ」 の 「基本」→「escape」で「false」を選択する。 作成した⽂書ページを確認する 1. 「m_profiles」 XPage を保存し、ブラウザからプレビューして、⽂書 ページでプロフィールの詳細情報が表⽰されることを確認する。 iPhone ⽤の画⾯ Android ⽤の画⾯ 参考⽂献 Lotus Notes and Domino 8.5.3 & Upgrade Pack 1 – http://www.ibm.com/software/lotus/notesanddomino/nd85UpgradePack853-1.html Domino Designer XPages Extension Library – http://www.lotus.com/ldd/ddwiki.nsf/xpViewCategories.xsp?lookupNa me=Domino%20Designer%20XPages%20Extension%20Library XPages Mobile Controls Tutorial – http://www.lotus.com/ldd/ddwiki.nsf/dx/XPages_Mobile_Controls_Tuto rial_