XPages Extensibility API 日本アイ・ビー・エム株式会社 ソフトウェア事業 Lotus事業部 © 2006 IBM Corporation
by user
Comments
Transcript
XPages Extensibility API 日本アイ・ビー・エム株式会社 ソフトウェア事業 Lotus事業部 © 2006 IBM Corporation
® XPages Extensibility API 基礎 日本アイ・ビー・エム株式会社 ソフトウェア事業 Lotus事業部 © 2006 IBM Corporation IBM Software Group | Lotus software 特記事項 本資料の記載内容は、できる限り正確を期すよう努めてはおり ますが、いかなる明示または暗黙の保証も責任も負いかねます。 本資料の情報は、使用先の責任において使用されるべきもので あることを、あらかじめご了承ください。 掲載情報は不定期に変更されることもあります。他のメディア 等に無断で転載する事はご遠慮ください。 当資料をコピー等で複製することは、執筆者の承諾なしではで きません。 また、当資料に記載された製品名または会社名はそれぞれの各 社の商標または登録商標です。 IBM、IBMロゴ、Lotus、Lotus Notes、Lotus Domino、WebSphereは、International Business Machines Corporationの米国およびその他の国における商標。 JavaおよびすべてのJava関連の商標およびロゴは Sun Microsystems, Inc.の米国およびその他の国における商標。 他の会社名、製品名およびサービス名等は、それぞれ各社の商標。 2 IBM Software Group | Lotus software 本資料の内容 XPages Extensibility API とは XPages Extension Library の利用 XPages Extension Library 部品例 独自コントロールの作成方法 まとめ 参考情報 3 IBM Software Group | Lotus software 本資料の内容 XPages Extensibility API とは XPages Extension Library の利用 XPages Extension Library 部品例 独自コントロールの作成方法 まとめ 参考情報 4 IBM Software Group | Lotus software XPagesのメリット WYSIWYGの開発で、最小限のコーディングでWeb2.0アプリを実現します。 コーディングレスで、AJAX、Dynamic HTMLなどの最新技術を利用できます。 ① ① UIの部品をドラッグ&ドロップで UIの部品をドラッグ&ドロップで 配置していきます。 配置していきます。 ② ② 配置したUI部品のプロパティを 配置したUI部品のプロパティを ダイアログ形式で設定します。 ダイアログ形式で設定します。 5 IBM Software Group | Lotus software XPagesへの不満 要求レベルが上がると、より多くのコントロール(UI部品)が求められます。 現状で提供されるコントロールの種類は、決して十分ではありません。 8.5.2で提供されるコントロールの全て コアコントロール コンテナコントロール 8.5∼8.5.2のリリース間隔 8.5.0 2009年1月 10ヶ月 8.5.1 2009年11月 9ヶ月 8.5.2 2010年8月 ?ヶ月 8.5.3 2011年?月 6 IBM Software Group | Lotus software リッチなコントロールを使用する現在の方法の問題 現在でも、Dojoが提供する多くのコントロールを利用できます。 しかし、利用には、Dojoの知識・スキルが必要です。 Dojoが提供するコントロールの例 DojoをXPagesで利用する方法 http://www.ibm.com/developerworks/jp/lotus/ldd_tech/2010jun25_dojo.html 7 IBM Software Group | Lotus software XPages Extensibility API がUI部品問題を解決 XPages Extensibilty API により、より多くのコントロール(UI部品)を Lotus Domino Designer に追加し、簡単に利用できるようになります。 XPages Extensibility API とは、Lotus Domino Designer上で利用で きるコントロールを独自に作成する仕組みです。 XPages Extensibility API は、8.5.2から提供されます。 OSGi Framework 上に実装されています。 – コントロールは、Javaで作成します。 – JSFの知識が必要です。 世の中の開発者が作成したコントロールは、OpenNTFに登録されるこ とを想定しており、ライセンスの範囲で自由に利用可能です。 – OpenNTF(http://openntf.org)とは、Lotus Notes/Dominoのオープン ソースプロジェクトを運営・公開しているサイトです。 8 IBM Software Group | Lotus software 本資料の内容 XPages Extensibility API とは XPages Extension Library の利用 XPages Extension Library 部品例 独自コントロールの作成方法 まとめ 参考情報 9 IBM Software Group | Lotus software XPages Extention Library のUI部品を利用する OpenNTF の プロジェクト Pages Extention Library では、XPages Extensibility APIで作成したUI部品の配布が始まっています。 http://extlib.openntf.org / http://extlib.openntf.org/ IBMの開発者が作成。 – コントリビューター(コード作成 者)として参加可能。 既に沢山の部品が提供済み。 将来の製品に同梱される予定。 サンプルDBあり。 10 IBM Software Group | Lotus software XPages Extention Library提供部品 Dojo Form Dojo Grid iNotes Dojo Layout Mobile Apps Extension Library 11 IBM Software Group | Lotus software XPages Extension Library を導入したLotus Domino Designer Lotus Domino Designer 標準部分 XPages Extension Library 導入後追加 12 IBM Software Group | Lotus software XPages Extension Library の導入 Lotus Domino Designer への導入 – Lotus Domino Designer 8.5.2以上が必要。 – プラグインとして導入。 – 導入するとコントロールビューに現れて利用可能になる。(前項参照) – 別途、ローカルでの設計プレビュー用にモジュールをコピーする必要あり。 Lotus Domino Server への導入 – Lotus Domino Server 8.5.2以上が必要。 – モジュールをコピーするだけ。 – XPages Extension Library 利用アプリが稼働するサーバー上に必要。 Lotus Notes Client への導入 – Lotus Notes Client Standard 8.5.2以上が必要。 – モジュールをコピーするだけ。 – XPages を Lotus Notes Client 上で稼働させる場合に必要。 13 IBM Software Group | Lotus software Lotus Domino Designer への導入(1/7) XPages Extension Library のダウンロード このファイルをダウンロードして 解凍しておく。 XPagesExtensionLibrary.zip この中の updateSite.zip を導 入時に指定する。 14 IBM Software Group | Lotus software Lotus Domino Designer への導入(2/7) XPages Extension Library は、Eclipseのプラグインとして提供さ れているので、以下のプロパティ画面中のチェックボックスを入れ て、インストールができるように準備する。 15 IBM Software Group | Lotus software Lotus Domino Designer への導入(3/7) プラグインのインストールを開始する。 16 IBM Software Group | Lotus software Lotus Domino Designer への導入(4/7) ダウンロードしたupdateSite.zipを選択して、必要なプラグインを 選択する。 17 IBM Software Group | Lotus software Lotus Domino Designer への導入(5/7) 画面に従ってインストールを進める。 この後、Designerクライア ントの再起動が必要です。 18 IBM Software Group | Lotus software Lotus Domino Designer への導入(6/7) ヘルプ → IBM Lotus Domino Designerについて → プラグイ ンの詳細 を選択し、以下の画面から正常にプラグインが導入されて いることを確認。 19 IBM Software Group | Lotus software Lotus Domino Designer への導入(7/7) 設計のプレビューを行う場合は、updateSite.zipを解凍し、 featuresフォルダ、pluginsフォルダの中身を以下にコピーする。 – <データディレクトリ>¥domino¥workspace¥applications¥eclipse¥features – <データディレクトリ>¥domino¥workspace¥applications¥eclipse¥plugins Designerクライアントの再起動が必要。 20 IBM Software Group | Lotus software Lotus Domino Server への導入 updateSite.zipを解凍し、featuresフォルダ、pluginsフォルダの中 身を以下にコピーする。 – <データディレクトリ>¥domino¥workspace¥applications¥eclipse¥features – <データディレクトリ>¥domino¥workspace¥applications¥eclipse¥plugins サーバー再起動が必要。 21 IBM Software Group | Lotus software Lotus Notesクライアントへの導入 updateSite.zipを解凍し、featuresフォルダ、pluginsフォルダの中 身を以下にコピーする。 – <データディレクトリ>¥domino¥workspace¥applications¥eclipse¥features – <データディレクトリ>¥domino¥workspace¥applications¥eclipse¥plugins Lotus Notesクライアント再起動が必要。 22 IBM Software Group | Lotus software サンプルの実行 XPages Extension Library にはサンプルデータベースが付属しています。 サンプルDBの動き、コードを見ることで、各コントロールの使用方法を学べます。 XPagesExt.nsf をDominoサー バーのデータディレクトリ下に コピー。 設計の署名を実行。 以下の Administration action からデモデータを生成可能。 23 IBM Software Group | Lotus software 本資料の内容 XPages Extensibility API とは XPages Extension Library の利用 XPages Extension Library 部品例 独自コントロールの作成方法 まとめ 参考情報 24 IBM Software Group | Lotus software ツールチップ ToolTipをドラッグ& ToolTipをドラッグ& ドロップで配置 ドロップで配置 ToolTipのプロパティで動作を指定。 ToolTipのプロパティで動作を指定。 -- for :: Tooltipを適用する対象 for Tooltipを適用する対象 -- label : label : Tooltipの文字 Tooltipの文字 -- position position :: Tooltipの表示位置 Tooltipの表示位置 25 IBM Software Group | Lotus software タグクラウド プロパティで動作を指定。 プロパティで動作を指定。 -- viewName viewName :: カテゴリを1つだけ持つビュー名を指定。 カテゴリを1つだけ持つビュー名を指定。 -- rendererType rendererType:: 固定。 固定。 -- sliderVisible sliderVisible :: スライダーの表示有無を指定。 スライダーの表示有無を指定。 このタグクラウドコントロールは、 このタグクラウドコントロールは、 oneuiv2系の oneuiv2系の テーマが持つCSSを前提としているため、以下のパ テーマが持つCSSを前提としているため、以下のパ ラメータを指定する。 ラメータを指定する。 26 IBM Software Group | Lotus software フェードイン・アウト Extension Extension Libraryを導入することにより、シンプルアク Libraryを導入することにより、シンプルアク ションの拡張として、 ションの拡張として、 Dojo Dojo Effects Effects が選択可能となって が選択可能となって いる。 いる。 Dojo Dojo fade fade out out effect effect 、 、 Dojo Dojo fade fade in in effect effect を選択し、 を選択し、 フェードイン・アウトの効果を指定できる。 フェードイン・アウトの効果を指定できる。 Dojoのエフェクトの対象ノード Dojoのエフェクトの対象ノード を指定する。PanelやDivタグな を指定する。PanelやDivタグな どで予めノードを定義しておく。 どで予めノードを定義しておく。 27 IBM Software Group | Lotus software グリッド表示(1/2) 以下のコントロールを組み合わせて実現 以下のコントロールを組み合わせて実現 ・Data ・DataGrid Grid ・Dtata ・Dtata Grid Grid Column Column ・Rest Services ・Rest Services :表全体を定義 :表全体を定義 :列 :列 シームレスにスクロール シームレスにスクロール 28 IBM Software Group | Lotus software グリッド表示(2/2) REST REST Service Service コントロール コントロール Data Data Gridコントロール Gridコントロール Dominoのビューを読む Dominoのビューを読む タイプのサービスである タイプのサービスである ことを指定。 ことを指定。 データを受け取る データを受け取る REST REST Service名を指定 Service名を指定 ビュー名を指定 ビュー名を指定 ビューの列名を指定。 ビューの列名を指定。 Data Data Grid Grid Columnコントロール Columnコントロール 29 IBM Software Group | Lotus software 本資料の内容 XPages Extensibility API とは XPages Extension Library の利用 XPages Extension Library 部品例 独自コントロールの作成方法 まとめ 参考情報 30 IBM Software Group | Lotus software 独自コントロールの作成概要 XPages Extensibility API を使った独自部品の開発は、Java/JSFで開発。 開発環境は、Eclipseである Lotus Domino Designer 8.5.2 以上が使用可能。 以下の作成ガイドがWebで公開済み。 「XPages Extensibility API Developers Guide」 http://www.lotus.com/ldd/ddwiki.nsf/dx/Master_Table_of_Contents_for_XPages_Extensibility_APIs_Developer_Guide 独自コントロールの作成ステップ コントロールの作成 – – – – UIコンポーネントクラスの作成 .xsp-configファイルの作成 レンダラークラスの作成 faces-config.xmlファイル作成 コントロールのパッケージ化 – – – – プラグインの作成 ライブラリクラスの作成 フィーチャーの作成 更新サイトの作成 コントロール自体の作成 コントロールをプラグインとして 配布可能にする作業 31 IBM Software Group | Lotus software UIコンポーネントクラスの作成 コントロールは、Java Server Faces の規則に従って作成。 NSFの中にJavaソースコードを記述可能。 UIComponentクラスを継承してメインのクラスを作成。 コントロールの作成 UIコンポーネントクラスの作成 .xsp-configファイルの作成 レンダラークラスの作成 faces-config.xmlファイル作成 コントロールのパッケージ化 プラグインの作成 ライブラリクラスの作成 フィーチャーの作成 更新サイトの作成 Eclipseのパースペクティブを切り Eclipseのパースペクティブを切り 替えることで、Javaに最適なイン 替えることで、Javaに最適なイン ターフェースにすることが可能。 ターフェースにすることが可能。 NSFが仮想ファイ NSFが仮想ファイ ルシステムのよう ルシステムのよう に取り扱われ、こ に取り扱われ、こ の中に、ソース の中に、ソース コードや各種定義 コードや各種定義 ファイルが管理さ ファイルが管理さ れる。 れる。 32 IBM Software Group | Lotus software .xsp-configファイルの作成 .xsp-configファイルで、UIコンポーネントクラスをカスタムコン トロールとして定義する。 定義後は、Desingerからコントロールとして選択可能になる。 WebContent/WEB-INFの直下に、 WebContent/WEB-INFの直下に、 クラス クラス 名.xsp-config 名.xsp-config という名前で作成する。 という名前で作成する。 コントロールの作成 UIコンポーネントクラスの作成 .xsp-configファイルの作成 レンダラークラスの作成 faces-config.xmlファイル作成 コントロールのパッケージ化 プラグインの作成 ライブラリクラスの作成 フィーチャーの作成 更新サイトの作成 UIComponentクラスから作成したクラ UIComponentクラスから作成したクラ ス名を指定。 ス名を指定。 33 IBM Software Group | Lotus software レンダラークラスの作成 レンダラークラスで、ブラウザーとのインターフェース部分の ロジックを作成する ・ブラウザーから送られてきたパラメータを分析する。 ・画面(html)を作ってブラウザーに送信する。 コントロールの作成 UIコンポーネントクラスの作成 .xsp-configファイルの作成 レンダラークラスの作成 faces-config.xmlファイル作成 コントロールのパッケージ化 プラグインの作成 ライブラリクラスの作成 フィーチャーの作成 更新サイトの作成 34 IBM Software Group | Lotus software faces-config.xmlファイルの作成 faces-config.xmlで、UIコンポーネントクラスとレンダラーク ラスをマッピングさせる。 WebContent/WEB-INFの直下に、 WebContent/WEB-INFの直下に、 facesfacesconfig.xml config.xml という名前で作成する。 という名前で作成する。 コントロールの作成 UIコンポーネントクラスの作成 .xsp-configファイルの作成 レンダラークラスの作成 faces-config.xmlファイル作成 コントロールのパッケージ化 プラグインの作成 ライブラリクラスの作成 フィーチャーの作成 更新サイトの作成 以下を定義する。 以下を定義する。 -- レンダラークラス名 レンダラークラス名 -- レンダラータイプ レンダラータイプ -- コンポーネントファミリー コンポーネントファミリー 35 IBM Software Group | Lotus software プラグインの作成 コントロールの作成で作った4つのファイル(UIコンポーネントク ラス、レンダラークラス、.xsp-configファイル、facesconfig.xml)をまとめて、プラグインとして定義。 Eclipseのプラグインプロジェクトが雛形を提供し、作成を支援。 コントロールの作成 UIコンポーネントクラスの作成 .xsp-configファイルの作成 レンダラークラスの作成 faces-config.xmlファイル作成 コントロールのパッケージ化 プラグインの作成 ライブラリクラスの作成 フィーチャーの作成 更新サイトの作成 36 IBM Software Group | Lotus software ライブラリクラスの作成 DominoやDesignerがプラグインの情報を取得するのにコールする ライブラリクラスを作成する。 plugin.xmlに、ライブラリクラスが定義される。 コントロールの作成 UIコンポーネントクラスの作成 .xsp-configファイルの作成 レンダラークラスの作成 faces-config.xmlファイル作成 コントロールのパッケージ化 プラグインの作成 ライブラリクラスの作成 フィーチャーの作成 更新サイトの作成 以下のgetterメソッドを定義する。 以下のgetterメソッドを定義する。 -- getLibraryId() getLibraryId() -- getFacesConfigFiles() getFacesConfigFiles() -- getPluginId() getPluginId() -- getXspConfigFiles() getXspConfigFiles() 37 IBM Software Group | Lotus software フィーチャーの作成 複数のプラグインを取りまとめるフィーチャーを作成する。 Eclipseのフィーチャープロジェクトが雛形を提供し、作成を支援。 コントロールの作成 UIコンポーネントクラスの作成 .xsp-configファイルの作成 レンダラークラスの作成 faces-config.xmlファイル作成 コントロールのパッケージ化 プラグインの作成 ライブラリクラスの作成 フィーチャーの作成 更新サイトの作成 プラグインを指定する。 プラグインを指定する。 38 IBM Software Group | Lotus software 更新サイトの作成 Designerがプラグインをインストールできるように更新サイトに 必要な、site.xml、フィーチャーのjar、プラグインのjar を作成す る。 Eclipseの更新サイトプロジェクトが雛形を提供し、作成を支援。 コントロールの作成 UIコンポーネントクラスの作成 .xsp-configファイルの作成 レンダラークラスの作成 faces-config.xmlファイル作成 コントロールのパッケージ化 プラグインの作成 ライブラリクラスの作成 フィーチャーの作成 更新サイトの作成 フィーチャーを指定する。 フィーチャーを指定する。 すべてをビルドします すべてをビルドします をクリックすると、 をクリックすると、 site.xml、フィーチャーのjar、プラグインの site.xml、フィーチャーのjar、プラグインの jar jar が自動作成される。 が自動作成される。 39 IBM Software Group | Lotus software 本資料の内容 XPages Extensibility API とは XPages Extension Library の利用 XPages Extension Library 部品例 独自コントロールの作成方法 まとめ 参考情報 40 IBM Software Group | Lotus software XPages Extensibility API まとめ XPages Extensibility APIは、XPagesの独自コントロー ルを作成する仕組み。 独自コントロール作成には、Java/JSFのスキルが必須。 OpenNTF上のXPages Extension Libraryプロジェクト で、すぐに使える多くのコントロールが提供されている。 41 IBM Software Group | Lotus software 参考情報 XPages Extension Library – XPages Extension Libraryのダウンロード先。 – http://extlib.openntf.org/ XPages Extensibility API Developers Guide – 独自コントロールの作成方法ガイド。チュートリアル付き。 – http://www.lotus.com/ldd/ddwiki.nsf/dx/Master_Table_of_Contents_for_XPages_Extensibility_APIs_Developer_Guide XPages Extensibility API Wiki – XPages Extensibility関連の情報リンク集。一部、日本語コンテンツあり。 – http://www.lotus.com/ldd/ddwiki.nsf/xpViewCategories.xsp?lookupName=APIs%3A%20XPages%20Extensibility&Session ID=CPQXZUSHPL The XPages Blog – IBM社員開発者を含むXPages のキーマンによるブログ。 – http://xpagesblog.com/ notes/domino liaison – チームスタジオ 加藤満氏によるブログ。XPages関連の日本語コンテンツ満載。 – http://notesdominoliaison.blogspot.com/ 42 IBM Software Group | Lotus software 43