...

XPages Extensibility API 日本アイ・ビー・エム株式会社 ソフトウェア事業 Lotus事業部 © 2006 IBM Corporation

by user

on
Category: Documents
9

views

Report

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
Fly UP