IBM Domino Designer ユーザーガイド

第 1 版

2013 年 12 月発行

本書について

IBM のアクセシビリティへの取り組みの一環として、 この版の製品資料はアクセシビリティにも配慮しています。

印刷

本書を印刷するときには、一部のスタイル要素が削除され、 読みやすく印刷されます。印刷についてのヒントをいくつか示します。
  • 文書の長さが、ブラウザの印刷能力を超えている場合があります。Microsoft Internet Explorer では、大規模なファイルを正常に印刷できることが確認されています。
  • 本書は長い文書です。印刷プリビューを使用して、印刷されるページの長さを調べてください。
  • 本書のセクションを強調表示して、選択した内容のみを印刷することができます。

オフライン作業

本書のローカルコピーをブラウザから保存できます。ブラウザによってメニューやメニューオプションは異なります。本書をローカル環境に保存する場合の詳細については、ブラウザのヘルプを参照してください。

フィードバックの送信

本書についてのフィードバックをお送りくださる場合は、Lotus® Documentation Feedback の Web サイトをご覧ください。

IBM Domino Designer 9.0 Social Edition の新機能

IBM Domino® Designer の新機能と改良点についての情報

Domino Designer

このトピックでは、IBM Domino Designer 9.0 Social Edition の新機能と変更点について説明します。

IBM Domino Designer のヘルプは、Web 上で定期的に更新されています。 Designer の最新のヘルプファイルをダウンロードするには、developerWorks® の Documentation Library セクション (http://www.lotus.com/ldd/doc) に移動します。 [Technical Library][by product]、[IBM Domino Designer] の順にクリックし、ダウンロードするリリースをクリックします。

IBM Domino Designer 全般にわたって、以下に示す機能の追加や変更が行われました。

JAR 設計要素 -- このリリースでは、新しい JAR 設計要素が導入されました。この JAR 設計要素により、アプリケーションの NSF に含まれるパッケージ化された Java™ コード/ライブラリを操作できるようになります。この設計要素は、XPage アプリケーションでのみ使用可能です。この場合、JAR は XPages ランタイムによって自動的にロードされます。この機能を使用すれば、JAR をサーバーにデプロイしたり、ソースファイルを一意的にアプリケーションデータベースに組み込んだりする必要がなくなります。仮想システムを介して JAR ファイルを NSF に追加できますが、JAR 設計要素は自動的にクラスパスを管理し、JAR ファイルを web-inf/lib (J2EE アプリケーションで使用する JAR ファイルの推奨ロケーション) に格納します。JAR 設計要素は、アプリケーションナビゲータ内では [コード] 要素に続いて表示されます。

JAR 要素を作成するには、イメージリソースの作成手順と同様の手順を実行します。つまり、JAR は新規作成されるのではなく、アプリケーションにインポートされます。設計要素リストパネルには、[JAR のインポート] ボタンがあります。このボタンを使用することで、必要な JAR ファイルを選択してインポートできます。

JARS に別名を設定する必要はなく、また別名はサポートされていません。JAR の設計リストは非常にシンプルで、[別名] 列が削除されている点を除けば、ファイルの設計リストと同じです。JAR のサイズ情報が必要な場合は、[バイト] 列でサイズを確認できます。最後に、すべての [新規] メニューで、設計要素のリストにもこの新しい要素のエントリが加わりました。

JAR の作成方法は各種ありますが、どの方法でも、ファイルを選択するための以下の標準 Eclipse ダイアログと、JAR を含めるようにフィルタリングされたリストが表示されます。必要な JAR (複数可) を選択して [保存] を押すと、その JAR がアプリケーションにインポートされます。

Designer の設計リストパネルまたはアプリケーションナビゲータで JAR 要素を選択すると、プロパティパネルの標準セットが表示されますが、さらに [基本] パネルも含まれます。このパネルでは、コメントの追加、JAR の名前変更、[置換] フラグの管理を行うことができます (この機能が提供される理由は、JAR がインポート要素であり、文書 ID の保守が必要になる場合があるためです)。

その他のファイル設計要素と同様に、[エクスポート] 機能も使用でき、[署名] アクションで JAR に署名を付けることもできます。

クラスパスは NSF 内の JAR ごとに調整されるため、設計時のコンパイルによって、JAR への参照を解決することができます。旧バージョンの Designer が誤動作を起こさないように、.classpath に対する変更はディスクに保持されません。

実行時には、JAR 文書が XPage ランタイムファイルシステムの web-inf/lib 内に展開され、XPage 上のサーバー JS と、当該環境で参照されるすべての Java クラスがこの JAR 文書を使用することができます。

パレット状態保存機能 -- このリリースでは、XPages エディタのパレットの状態が XPage 間で引き継がれるようになりました。また、IBM Domino Designer のセッション間でも状態が引き継がれます。

イメージリソース用の PNG ファイルのサポート -- このリリースでは、PNG ファイルを Designer にイメージリソースとしてインポートできるようになりました。このファイルタイプは、[イメージの種類] コンボボックスの選択項目になっています。これにより、イメージリソースが使用される場所 (XPage、フォーム、ビュー、アウトラインなど) で PNG ファイルを使用することができます。.

XPages ソースエディタのハイパーリンクナビゲーション機能 -- このリリースの IBM Domino Designer では、XPages ソースエディタがハイパーリンクナビゲーションをサポートしています。ハイパーリンクナビゲーションは、エディタ内のテキストをハイパーリンクにすることができる汎用 Eclipse 機能を記述したものです。

CTRL キーを押しながら、Eclipse で任意のエディタ内のテキストにカーソルを置くと、ユーザーがハイパーリンクナビゲーションを実行しようとしていることを Eclipse がエディタにフィードバックします。各エディタは、カーソルが指している領域に対するハイパーリンクオブジェクトを提供することで、ハイパーリンクナビゲーションにオプトインする場合があります。このリリースでは、XPages ソースエディタでこの機能を使用できるようになりました。

この機能は常時オンになっており、無効化するオプションやプリファレンスは現在のところありません。ハイパーリンクナビゲーションのサポートは、コントロール単位でも提供されます。ハイパーリンクナビゲーションは特定のコントロールにのみ適用され、ほとんどの場合は特定のコントロールの特定の属性にのみ適用されます。カスタムコントロールの編集中にこの機能を使用することを検討してください。ソースエディタで CTRL キーを押しながらカスタムコントロールにカーソルを置くと、ハイパーリンクナビゲーションによって、そのカスタムコントロールに直接ナビゲートすることができます。

例えば、string.properties 上にカーソルを置き、その結果表示されるコード内のハイパーリンクをクリックすると、選択した設計要素が開きます。

XPages ソースエディタ用の吹き出しヘルプ機能 – Eclipse には現在、エディタ内にカーソルが置かれたときにその場所に基づいてエディタが吹き出しヘルプを提供するためのシンプルなフレームワークがあります。Eclipse Java エディタの吹き出しヘルプがその一例です。エディタでの作業中に特定の Java 構成体にカーソルが置かれると、エディタがその構成体に関する追加情報を表示できるようになります。IBM Domino Designer の LotusScript® エディタでは現在のところ、LS エディタ内の項目に対する吹き出しヘルプをサポートしています。

このリリースでは、XPages ソースエディタでもヘルプを表示できます。 この機能を使用すると、現在カーソルが置かれている「ノード」に関する情報を得ることができます。ハイパーリンクナビゲーション (前述を参照) と同様に、Eclipse エディタフレームワークは位置情報を吹き出しヘルプレイヤーに提供し、それが解釈および解決されて、XPage 内の DOM ノードに返されます。DOM ノードが解決されると、エディタは現在のタグ (および属性) に関する説明を提供します。xsp-config によって自身の説明を示すタグと属性はすべて、XPages ソースエディタ内の吹き出しヘルプ機能でその情報を表示させることができます。

この機能の制御には、IBM Domino Designer の [プリファレンス] タブで指定されるプリファレンスが使用されます。この機能はデフォルトでオンになっており、500 ミリ秒のタイムアウトがプリファレンスに関連付けられています。つまり、カーソルが置かれている時間が 500 ms (ミリ秒) を超えると、Eclipse エディタフレームワークが XPages ソースエディタの吹き出しヘルプを呼び出します。この時点で、XPages の吹き出しヘルプは、カーソルが置かれているノードを計算します。この機能はノード情報に基づいて、XPages レジストリと照合してノードを解決し、そのノードの説明を取得します。また、この機能は「this.attribute」表記 (XPages で幅広く使用される表記) を扱えるように設計されています。(属性ではなく) タグ上にカーソルが置かれている場合、ヘルプウィンドウ内の吹き出しヘルプ情報の形式は以下のようになります。

タグ表示名 (tagName)

説明:

タグの属性上にカーソルが置かれている場合、ヘルプウィンドウ内のヘルプの形式は以下のようになります。

タグ表示名 (tagName)

説明:

属性表示名 (attributeName)

属性の説明:

前述のとおり、この情報は XPages レジストリから取得されるため、この機能は XPages のコアコントロールだけでなく、すべてのタグを扱うことができます。最後に、吹き出しヘルプの表示中に F2 キーを押すと、吹き出しヘルプウィンドウがフォーカスされ、ウィンドウのサイズを変更できるようになります。

メモリ管理の改善 – このリリースでは、IBM Domino Designer の、特に XPages エディタの領域で、メモリ管理の改善が行われています。以前に確認されたいくつかのメモリリークが調査され、修正されました。以前は、多数のコントロール表示設定を持つ、複雑で大きな XPage (つまり、複雑な設計要素がいくつも含まれた XPage) を編集していると、このようなリークが発生することがありました。 さらに、このようなリークが Java のメモリ不足例外を引き起こし、IBM Domino Designer が異常終了することがありました。

コンテンツアシストヘルプ – このリリースでは、XPages ソースエディタにコンテンツアシスト機能が導入されました。この機能を使用すると、XPage において「ソースモード」で作業を行っているときにコンテンツアシストを利用できます。 他の Eclipse エディタと同様に、CTRL + SPACE キーを押すと、コンテンツアシスト機能がアクティブになります。

Eclipse の XML エディタ (および XPages ソースエディタ) 内のコンテンツアシストは、スキーマを使用することで駆動されます。IBM Domino Designer は、現在の IBM Notes® アプリケーションに基づいてスキーマを動的に構築します。このスキーマには、XPages ランタイム内の各タグの各属性に関するヘルプ情報が含まれています。XPages エディタ内でコンテンツアシストを有効にするには、使用しているスキーマのロケーションを XPages ソースエディタに通知するように、XSP マークアップを変更する必要があります。IBM Domino Designer 内で新規作成された各 XPage の「ビュー」コントロールには、以下のメタデータが含まれるようになりました。

xsi:schemaLocation="http://www.ibm.com/xsp/core xsdxp://localhost/xsp~core.xsd

XPage に追加される名前空間ごとに、同様のロケーション定義が追加されます。パレットから XPage にコントロールをドロップすると、IBM Domino Designer によって、そのコントロールの名前空間 URI にスキーマのロケーションが関連付けられているかどうかが検査されます。関連付けられていない場合は、ロケーションが生成され、XSP マークアップに追加されます。その後、IBM Domino Designer は FacesRegistry (XPages のすべてのコントロールの定義が含まれているレジストリ) の内容に基づいて、所定の名前空間のスキーマを動的に生成します。これにより、IBM Domino Designer が必要なマークアップを XPage に追加できるようになります。

既存の XPage がある場合は、新しいコンテンツアシスト機能を有効にするために、(コントロールパレットからドラッグアンドドロップ操作で) XPage に新しいコントロールを追加する必要があります。

コンテンツタイプと編集可能コンテンツタイプフィールドの検出 – 提供されたすべてのコンテンツタイプが、IBM Domino Designer によって検出されるようになりました。

編集可能コンテンツタイプフィールド – 計算結果フィールドやビュー列のコンテンツタイプフィールドも編集可能になりました。Social Enabler 用のコントロールを開発する際、計算結果フィールドコントロールやビュー列のコンテンツタイプフィールドは、以前は読み取り専用でした。これは、独自のコンテンツタイプを提供したいお客様には不評でした。 Social Enabler の場合、使用可能なコンテンツタイプはいくつかあります。

これらはいずれも、計算結果フィールドやビュー列にオプションとして表示されませんでした。このため、これらの値を入力するには、[すべてのプロパティ] ビューに移動する必要がありました。 そのようにしても、正式なパネルでは、テキスト値が別の値に設定されていても古いテキスト値が引き続き表示されていました。

今回の変更により、この問題が修正されました。[表示] パネルのビュー列と [基本] パネルの計算結果フィールドでは、登録済みのコンテンツタイプがすべてサポートされるようになりました。これらのフィールドは編集可能であり、必要に応じて独自のコンテンツタイプ名を入力することができます。

XPages チェックボックスコントロールに追加されたコンバータのサポート – このリリースでは、チェックボックスコントロールがコンバータを受け入れるようになりました。

コンバータを受け入れるコントロールに追加されたブール値コンバータ – このリリースでは、コンバータを受け入れるコントロールがブール値コンバータを受け入れるようになりました。ブール値コンバータを使用すると、XPage を通じて保存された値を、ストリングではなくブール値オブジェクトとしてデータソース内に格納することができます。IBM Domino Designer では、コンバータをサポートするすべての XPage コントロール上に、ブール値コンバータをコンバータとして追加できるようになりました。

IBM Domino Designer のプリファレンスの変更 – IBM Domino Designer のプリファレンスに、以下の変更が加えられました。
  • XPages は独自のプリファレンスカテゴリになりました。
  • XPages カテゴリに、拡張ライブラリとパレットのプリファレンスが追加されました。
  • XPages のプリファレンスパネルのグループボックス名が、XPages エディタに変更されました。
  • ソースエディタを参照するため、[エディタで改行を表示] プリファレンスが [設計エディタで改行を表示 (Show line breaks in design editor)] になりました。
  • バブルヘルプのプリファレンスと吹き出しヘルプのプリファレンスが IBM Domino Designer のプリファレンスパネルから XPages パネル/XPages エディタグループに移動されました。
  • 吹き出しヘルプとコンテンツアシスト用に、新しいチェックボックスとそれに関連するタイマが、XPages パネル/XPages エディタグループに追加されました。チェックボックスにチェックマークが付いていない場合は、タイマコントロールがグレー表示されます。

[アプリケーションを閉じる] 機能 – このリリースでは、IBM Domino Designer のアプリケーションナビゲータで開いているアプリケーションを手動で閉じられるようになりました。この機能にアクセスするために、新しいメニュー項目がアプリケーションナビゲータに追加されました。これにより、アプリケーションナビゲーターでこれまで開いていたアプリケーションを手動で閉じることができます。

この新しいメニュー項目が有効になるのは、アプリケーションが選択済みで、同じアプリケーションが既に開いている場合のみです。設計要素ツリー内のノードが選択されている場合は、このメニュー項目は無効になります。

選択変更なしでアプリケーションが開いている場合は、その旨がこのメニュー項目に通知されます。 例えば、アプリケーション A が閉じているときにこのメニューを選択しようとしても、[アプリケーションを閉じる] メニュー項目は無効になります。 一方、ナビゲータ内で選択を変更せずにアプリケーション A を開き、再びこのメニューを選択しようとした場合には、[アプリケーションを閉じる] メニュー項目は有効になります。

[アプリケーションを閉じる] メニュー項目を選択すると、現在選択されているアプリケーションが閉じられるとともに、現在開いているそのアプリケーションのすべての設計要素も閉じられます。

データソースの構成パネル -- 拡張ライブラリ内のデータビューコントロールと動的ビューコントロール用に、[データソースの選択] パネルが用意されています (このトピック内の対応するセクションを参照してください)。 このパネルは、これらのコントロールのいずれかを XPage にドロップした直後に表示されます。このパネルでは、以下の情報を選択または指定できます。
  • データの表示元となるソース (Domino ビュー)
  • データソースを提供するアプリケーション
  • データを表示する特定のビュー
  • データソース名
Designer の使いやすさの向上 -- [すべてのプロパティ] パネルでの作業時にプロパティ値を割り当てやすいように、新しい特殊ピッカーが追加されました。拡張ライブラリのコントロールの使いやすさを向上させるため、以下の特定のプロパティエディタが追加されました (このトピック内の対応するセクションを参照してください)。
  • ビットフラグピッカー
  • 通貨ピッカー
  • フォームピッカー
  • 正規表現ピッカー
  • 変数名ピッカー
  • ビュー/フォルダピッカー
  • ビューピッカー
  • XPage コントロール ID ピッカー
必要に応じて、これらのエディタをカスタムコントロールのプロパティ定義内で再利用することができます。
アプリケーションナビゲータの変更点と追加点 -- アプリケーションナビゲータに新しい項目が追加されました。以前の [アプリケーションプロパティ] セクションは、[アプリケーション構成] セクションに名前変更されました。このセクションは、以下のアプリケーション要素グループに対する編集アクセスを提供するようになりました。
  • アプリケーションプロパティ - この要素は、従来のアプリケーションレベルのプロパティに対する編集アクセスを提供します。
  • Xsp プロパティ - このファイル (xsp.properties) には、XPages フレームワークパラメータのコレクションが含まれています。これは、アプリケーション XPages における XPages 設定の指定と制御をアプリケーションレベルまたはサーバーレベルで行うために使用します。すべての XPages NSF アプリケーションには、xsp.properties ファイルが含まれています。
  • Faces-config - faces-config.xml ファイルは、JSF アプリケーションのメイン構成ファイルです。一般的に、このファイルには Bean リソースとページナビゲーションルールがリストされます。このファイルは、アプリケーションの WEB-INF フォルダに配置されます。
    注: Faces-config は、XPages パースペクティブ以外のすべてのパースペクティブで非表示になっています。
これらのすべての項目について、その表示/非表示をナビゲータのプリファレンスで切り替えることができます。

[作業セット内にないアプリケーション] 機能 -- IBM Domino Designer のユーザーは、作業セットを使用して [アプリケーションナビゲータ] ビューの内容をフィルタに掛けます。作業セットにより、アプリケーションをカテゴリ別にグループ化できるため、特定の作業セットのアプリケーションのみを表示したり、一度に複数の作業セットのアプリケーションを表示したりすることができます。これにより、アプリケーションナビゲータを整理したりクリーンアップしたりできるため、アプリケーションナビゲータに表示されるアプリケーションのサブセットを対象としてフォーカスや表示を行えます。しかし、以前からのこの領域の問題として、どの作業セットにも含まれていないアプリケーションを判別することが困難でした。

新しい機能が追加され、作業セットに格納されていない IBM Domino Designer のすべてのアプリケーションを表示できるようになりました。この機能は、[Java パッケージ・エクスプローラー] ビューで使用できる [その他のプロジェクト] 作業セットと似ています。この機能は、Designer インターフェースのうちの 2 箇所 (IBM Domino Designer ホームページとアプリケーションナビゲータの作業セットツールバーのドロップダウンメニュー) で使用できます。
  • IBM Domino Designer ホームページ
  • ナビゲータの作業セットツールバーのドロップダウンメニュー

ホームページでは、 アプリケーションナビゲータ内に含まれるすべてのアプリケーションが作業セット内に含まれているかどうかが IBM Domino Designer によって検査されます。1 つ以上のアプリケーションが 1 つ以上の作業セット内に含まれていないと判別された場合は、Designer によってホームページが再ロードされます。その処理中に、新しい [作業セット内にないアプリケーション] リスト項目がホームページに追加されます。

アプリケーションナビゲータでメニューボタンをクリックすると、IBM Domino Designer によって、作業セット内にないアプリケーションがあるかどうかが判別されます。存在しないものが 1 つ以上あると判別された場合は、 新規に追加された [作業セット内にないアプリケーション] メニュー項目が使用可能になります。逆に、すべてのアプリケーションが作業セットに編成されている場合、または作業セットが存在しない (いずれのアプリケーションも作業セット内にない) 場合は、このメニュー項目が使用不可になります。

[作業セット内にないアプリケーション] 機能が有効な場合、アプリケーションナビゲータには、現在作業セット内にないアプリケーションのみが表示されます。アプリケーションナビゲータのタイトルバーが変化して [その他] と表示され、ツールチップに [作業セット内にないアプリケーション] と表示されます。

現在作業セット内に含まれていないアプリケーションを作業セットに追加することができます。それにより、[作業セット内にないアプリケーション] が有効なときに作業セットに含まれていなかったアプリケーションがすべて作業セットに追加された場合は、アプリケーションナビゲータの表示が空になり、ホームページが再ロードされます。しかし、このときは、[作業セット内にないアプリケーション] 項目が非表示になり、アプリケーションナビゲータメニューの [作業セット内にないアプリケーション] メニュー項目にはチェックマークが付きますが、使用不可になります。

XPages

XPages に関して、以下に示す機能の追加や変更が行われました。

XPages 拡張ライブラリ -- XPages 拡張ライブラリには、すぐに使用できる追加コントロールが用意されています。これらのコントロールには、新しいコンテナコントロール (アプリケーションレイアウト、データビューなど)、改善されたダイアログ、ピッカー、インプレースフォーム、Dojo コンポーネント、動的コンテンツなどがあります。また、これらのコントロールは、IBM Domino® テンプレートに対する機能拡張もサポートしています。

新しい拡張ライブラリで提供されるコントロールは、以下の機能領域を扱います。
  • データアクセス - データアクセスサービスを公開します。
  • Dojo フォーム - Dojo ツールキットのコンポーネントに似ています。
  • Dojo レイアウト - Dojo ツールキットのコンポーネントに似ています。
  • 拡張ライブラリ - Designer のコアコントロールの機能を拡張します。
  • IBM iNotes® - いくつかのビュー、リスト、ストアをサポートします。モバイル - モバイルアプリケーションをサポートします。
XPages 拡張ライブラリの主な機能には、以下のものがあります。
  • モバイルコントロール - この新しいコントロールセットは、以下の主な機能を含む、モバイルデバイス用アプリケーション構築のためのサポートを提供します。
    • すぐに使用可能な iPhone 用スタイルと Android 用スタイル
    • ユーザー定義のスタイルの作成機能
    • IBM Domino ビューを表示するためのビューコントロール
    • フォームコントロールを使用して文書を容易にレンダリングし、それをデスクトップアプリケーションと同様に操作できる
    • ヘッダーコントロール、アウトラインコントロール、タブバーコントロール
    • アプリケーション全体を再ロードせずにモバイルページを変更するための単一ページアプリケーションコントロール
    これらのコントロールはライブラリコントロールとして実装されているため、設計要素をコピーして貼り付けなくても、カスタムアプリケーションで使用することができます。
  • ライブラリコントロール用の新しいツール - 新しいプラグインには、拡張ライブラリのすべてのコントロールに対する新しい IBM Domino Designer 基本表示設定と、より複雑なコントロール (アプリケーションレイアウトコントロールなど) に対する拡張表示設定が用意されています。その他の機能拡張としては、[すべてのプロパティ] パネルでの作業時にプロパティ値をより簡単に割り当てられる新しい特殊エディタや、データビューコントロールと動的コンテンツコントロールに役立つ新しい設計パネルなどがあります。
  • 拡張アクセシビリティとローカライズのサポート - 以前のバージョンでは、XPages 拡張ライブラリ内の一部のコントロールと複合タイプが、アクセシビリティ標準とローカライズ標準に完全には準拠していませんでした。例えば、「title」属性は、支援機能 (画面リーダーなど) のための記述タグではなく、コントロールラベルとして使用されていました。このリリースでは、このような問題に対処しています。
  • 追加のマイナー修正と機能拡張 - 追加のマイナー修正がランタイムに適用されています。コントロールプロパティの説明とツールチップの多くが更新されました。

この機能について詳しくは、このユーザーガイドに記載された「XPages Extension Library からのコントロールの追加」セクションを参照してください。拡張ライブラリコントロールの使用に関する追加の情報とリファレンス資料については、IBM Notes と IBM Domino アプリケーション開発 Wiki (http://www-10.lotus.com/ldd/ddwiki.nsf) の「Product Documentation」セクションに記載された IBM Domino Designer XPages 拡張ライブラリの資料も参照してください。

更新されたアプリケーションテンプレート -- このリリースには、IBM Notes/Domino のディスカッションテンプレートとチームルームテンプレートの更新バージョンが用意されています。これらのテンプレートは、最新リリースの新機能 (discussion8xl.ntf と teamrm8xl.ntf) を使用するように拡張されています。これらのテンプレートを使用すると、Web、IBM Notes クライアント、モバイルデバイス上で動作する XPages アプリケーションを作成できます。特に、モバイルアプリケーションの実装を試みることをお勧めします。これらのテンプレートは、XPages のモバイル開発を始める際のサンプルリファレンスとして適しています。このリリースのディスカッションテンプレートとチームルームテンプレートは英語のみです。

アプリケーションレイアウトコントロール -- 拡張ライブラリの主な機能の 1 つとして、アプリケーションレイアウトコントロール (applicationLayout/com.ibm.xsp.extlib.component.layout.UIApplicationLayout) があります。 このコントロールは、メインアプリケーションフレームと、XPages アプリケーションのレイアウトをレンダリングするためのオブジェクトです。

このコントロールは、カスタムコントロールで使用すると最も効果的です。こうすると、レイアウトを一度構成するだけで、その後は複数の XPage でカスタムコントロールを再利用できるようになります。レイアウトの設定では、タイトルとナビゲーションリンク用の領域を最大 3 つ、3 列構成のコンテンツ領域を 1 つ、フッター領域を最大 2 つ使用できます。

コントロールを XPage にドラッグして、初期設定を完了したら、コントロールのプロパティパネルを使用して、アプリケーションレイアウトコントロールプロパティの追加オプションをさらに設定することができます。これらのコンポーネントは次のとおりです。
  • [基本] プロパティパネル - コントロールの [名前]、[構成]、(計算結果値の) [表示] を設定できます。コントロールがカスタムコントロール内にある場合は、このパネルで、3 つの任意のメイン列にファセットを追加することもできます。これにより、そのカスタムコントロールの使用時に、これらのファセットにコントロールをドロップできるようになります。
  • [バナー] プロパティパネル - バナー領域に関するすべてのバナーレイアウトのオプションと設定を指定できます。例えば、ロゴ (イメージピッカー付きのテキストフィールド) やグローバルリンクなどを指定できます。.
  • [バナー - アプリケーションリンク] プロパティパネル - [バナー] プロパティパネルの一部として表示されます。このパネルでは、アプリケーションリンクを追加し、リンクプロパティを設定することができます。
  • [バナー - ユーティリティリンク] プロパティパネル - [バナー] プロパティパネルの一部として表示されます。このパネルでは、ヘルプやログインなどのユーティリティ用のバナーにリンクを追加し、それらの関連プロパティを設定することができます。
  • [タイトルバー] プロパティパネル - タイトルバー、タイトルテキスト、タイトルオプションを設定し、(カスタム順序で) リンクを追加し、(子タブを使用して) アプリケーションレイアウトにタブを追加することができます。
  • [タイトルバー - 検索] プロパティパネル - タイトルバーに検索コントロールを追加し、関連する検索 URL とプロパティをすべて設定することができます。検索 UI を指定する別の方法として、編集可能領域 (ファセット) も用意されています。ファセットを使用した場合は、このパネルで指定したコントロールが上書きされます。
  • [プレースバー] プロパティパネル - 第 2 タイトル用のプレースバー領域を表示するためのオプションを設定できます。また、リンクをボタンやドロップダウン付きボタンとしてスタイル設定することもできます。これらのボタンには、必要に応じてイメージやラベルを付けることができます。
  • [フッター] プロパティパネル - アプリケーションコンテンツ領域の下にフッターを表示し、それをリンクまたはテキストとして使用するためのオプションを提供します。フッターにテキストのみを表示する場合は、プロパティとしてラベルテキストのみを指定し、HREF (リンク) は指定しないでください。
  • [リーガル] プロパティパネル - リーガルテキストを表示する領域をアプリケーション内に指定し、(必要に応じて計算結果値を使用して) すべてのロゴプロパティとテキストプロパティを設定するためのオプションを提供します。

このコントロールの使用方法の詳細については、このガイドに記載された「コントロールの参照」セクションを参照してください。

動的コンテンツコントロール -- 拡張ライブラリのもう 1 つの主な機能として、動的コンテンツコントロール (dynamicContent / com.ibm.xsp.extlib.component.dynamiccontent.UIDynamicContent) があります。 このコントロールを使用すると、XPage アプリケーションに動的なページまたはページパーツを組み込むことができます。このコントロールでは、子コントロールを条件付きで作成およびレンダリングして、ページパーツの表示/非表示を切り替えることができます。このコントロールには、完全なツールと表示設定が備わっています。動的コンテンツコントロール用のツールは、1 つの [動的コンテンツ] プロパティパネルで構成されます。このパネルから設定できるプロパティには、以下のものがあります。
  • コントロール名
  • コントロールを可視にするオプション ([表示] チェックボックス)
  • デフォルトのファセットを選択するためのドロップダウンリスト。デフォルトのファセットで定義されたコンテンツは、他の条件がいずれも満たされない場合にレンダリングされます。
  • URL ハッシュを使用するためのオプション (チェックボックス)

XPages プロパティエディタ -- XPages プロパティエディタユーザーインターフェースが追加され、Eclipse ナビゲータビューでの作業時に XPages プロパティを容易に編集できるようになりました。

Eclipse ナビゲータビューを表示するには、[ウィンドウ] - [Eclipse ビューの表示] - [ナビゲータ] を選択します。

XPages プロパティエディタを起動するには、以下のようにします。
  • Eclipse ナビゲータビューで、XPages プロパティファイル xsp.properties を見つけます。このパスは以下のようになります。Application-name.nsf/WebContent/WEB-INF/xsp.properties
  • xsp.properties を右クリックし、[アプリケーションから開く] - [XPages プロパティエディタ] を選択します。[XPages プロパティエディタ (XPages Properties Editor)] パネルが開きます。このパネルにある 4 つのタブを使用して、XPages のプロパティを設定できます。これらのプロパティタブは、[一般]、[永続性]、[ページの生成]、[ソース] です。
[XPages のプロパティ一般] タブでは、以下の一般的な領域についてプロパティを設定できます。
  • テーマのデフォルト - アプリケーションテーマのプロパティを設定できます。また、アプリケーションが IBM Notes クライアントに表示されるか Web 上に表示されるかに応じて、テーマ選択の上書き設定を行うこともできます。
  • ナビゲーションとリンクのウィンドウ動作 - アプリケーション内でのウィンドウ動作とリンク動作、およびリンク自体で動作が指定されていない場合のリンク動作を指定できます。
  • エラー処理 - エラー処理 (エラーページ) のオプションを指定できます。XPage の実行時エラーページを表示するように選択した場合は、XSP レイヤーでデフォルトのエラーページを表示させることができます。これは、追加のエラー情報を提供する場合に便利です。
  • サポート対象の最小リリース - コンパイル済みアプリケーションが動作できる、サポート対象の IBM Notes/Domino の最小リリースを指定できます。また、スタイルのサポート要件も設定できます。
  • タイムアウト - アプリケーション、セッション、部分更新のタイムアウト間隔を指定できます。アプリケーションまたはセッションの場合は、非アクティブ状態になった後、メモリから削除されるまでの時間間隔 (分単位) を設定できます。特に指定がない場合、デフォルトの間隔は 30 分になります。部分更新の場合は、秒単位でタイムアウト間隔を設定できます。デフォルト値は 20 秒です。また、追加の更新オプションと永続化オプションも設定できます。
  • Dojo - アプリケーションで使用する Dojo バージョンと、Dojo の djConfig 属性に対するパラメータを指定できます。例えば、isDebug=true を指定すると、必要に応じてデバッグモードに切り替えることができます。
  • タイムゾーン - タイムゾーン情報を指定できます。これを使用しない場合は、サーバーのタイムゾーンが使用されます。
  • ファイルのアップロードオプション - アプリケーションファイルのアップロードサイズとロケーションを指定できます。これには、アプリケーションにアップロードされるファイルの最大サイズや、アップロードされる添付ファイルを一時的に格納するディレクトリのロケーションが含まれます。
[パフォーマンスプロパティ (永続性)] タブでは、アプリケーションのパフォーマンスに関する以下の領域についてプロパティを設定できます。
  • 永続性オプション - サーバー (JSF) ページの永続性モードと永続性オプションや、永続性ページのカウント設定を指定して、アプリケーションのパフォーマンスと使用可能メモリの間のバランスを調整することができます。
  • 一時ロケーション - 添付ファイル、アップロードされるファイル、JSF ページのための一時的な永続性ストレージのロケーションを指定できます。
  • オプション - ページの更新、キャッシュサイズ、リソースの有効期限、JavaScript や CSS のリソースオプションなどに関する追加のパフォーマンス設定を指定できます。
[ページ生成プロパティ (ページ生成)] タブでは、アプリケーションページの生成に関する以下の領域についてプロパティを設定できます。
  • HTML の生成 - HTML の生成に関する設定 (クライアントサイドの HTML 検証、圧縮設定、エンコード (文字セット)、HTML 文書タイプなど) と、その他のオプションを指定できます。
  • リッチテキストオプション - IBM Domino 文書内のリンクの保存方法 (IBM Notes 形式か Web 形式か) を指定できます。
  • アクティブコンテンツフィルタリング - アクティブコンテンツフィルタ (表示と保存のフィルタリングタイプを含む) と、使用する ACF CONFIG ファイルを指定できます。
  • アクティブコンテンツフィルタリング (ACF) は、ブラウザに表示されるアプリケーションコンテンツから、悪意がある可能性があるアクティブコンテンツを削除するために使用します。

最後に、[ソース] タブでは、XPages プロパティエディタユーザーインターフェースの支援を受けることなく、実際の XPages プロパティソースファイルをテキストエディタに表示して、編集することができます。

これらのタブで設定できる各種オプションやプロパティに関する追加の支援を提供するために、吹き出し/マウスオーバーヘルプが用意されています。

カレンダーとスケジューリング (C&S) のバックエンド Java クラス – IBM Domino のカレンダー機能とスケジューリング機能を公開する Java API 用のフレームワークと一連のメソッドを使用できます。これにより、標準化された iCalendar (RFC 5545) データ形式を使用して、個人メールファイルのカレンダーデータを作成、読み取り、更新、削除できます。また、カレンダーエントリや通知に対する明示的なカレンダーアクション (了承、辞退、キャンセルなど) を実行することもできます。詳しくは、このトピックの次のセクションを参照してください。

ランタイム言語のサポート -- このリリースの XPages ランタイムは、言語グループ 1、2、3 をサポートしています。 ディスカッションテンプレートとチームルームテンプレートは英語のみです。

テンプレート言語のサポート -- ディスカッションテンプレートとチームルームテンプレートは英語のみです。

サーバーベースの XPages アプリケーションを直接 IBM Domino サーバーで実行するための起動オプション – XPages Notes アプリケーションはローカルの Notes XPD Web コンテナで実行されるため、XPages のすべての Java クラス (XPages とカスタムコントロール) を、リモートサーバーから実行する IBM Notes クライアントにネットワーク経由でコピーする必要があります。同様に、すべてのページリソース (CSS、JavaScript、GIF など) を、実際のデータ文書とともにリモートサーバーから取得する必要があります。さらに、XPages アプリケーションが他の IBM Notes 設計成果物を (computeWithForm 機能などを使用して) 利用する場合は、 フォーム、サブフォーム、共有フィールドなどの大規模な設計要素もリモート側で取り出す必要があります。特に、アプリケーションが主に Web を対象として設計されており、IBM Notes クライアント用に最適化されていないと、待ち時間が長いネットワークの場合にパフォーマンスに大きな影響が及ぶ可能性があります。

IBM Domino Designer の起動オプションにより、この状況を回避できるようになっています。IBM Notes クライアントの起動オプションの名称は [サーバーベースの XPage アプリケーションを Domino サーバー上で直接実行する] です。 このオプションにチェックマークを付けてあるときに IBM Notes ユーザーがアプリケーションを起動すると、HTTP 経由で IBM Domino サーバーでアプリケーションを実行するように XPages ランタイムに要求が出されます。このオプションにより、リモートアプリケーションを (Web ユーザーの場合と同じように) IBM Domino HTTP サーバーで実行し、IBM Notes XPages コンテナに表示するように要求できます。この方法の利点は、多くのネットワークトランザクションが排除され、パフォーマンスが向上することです。

この要求が受け入れられるようにするには、 多くの条件が満たされている必要があります。まず、IBM Notes の HTTP アカウントを設定する必要があります。これらのアカウントは直接 IBM Notes クライアントで設定するか、IBM Domino サーバーでリモート側から設定して IBM Notes クライアントにプロビジョンすることができます。IBM Notes アカウントを作成または表示するには、IBM Notes で [ファイル] > [プリファレンス] > [アカウント] を選択します。IBM Domino の XPages アプリケーションに対する要求を受け入れるにあたって、 アプリケーションが存在するサーバーの名前に一致する HTTP アカウントが見つかるまで、IBM Notes クライアントのインストール環境で定義されているすべての IBM Notes アカウントが XPages によってスキャンされます。これらの条件が満たされると、IBM Domino XPages の URL が構築され、要求が IBM Domino サーバーに送信されて、アプリケーションが IBM Notes クライアントにロードされます。一致するアカウントが見つからない場合、 またはサーバーへの要求に対してサービスを提供できない場合 (アカウントの詳細情報が誤っている場合など) は、 アプリケーションのウィンドウを閉じるか、ローカルの Notes Web コンテナを使用したアプリケーションの実行に戻るように促すメッセージがユーザーに出されます。

IBM Notes アカウントのフレームワークと下位の XULRunner ブラウザにより、 自動認証のためにユーザー資格情報が Web サーバーに渡されます。そのため、認証のための資格情報を入力するようにユーザーに要求が出されることはありません。ユーザー名とパスワードを要求するプロンプトが出された場合は、ランタイムの IBM Notes/Domino 設定が誤っています (例えば、IBM Domino の SSO の設定が誤っているなど)。ただし、IBM Notes ツールバーにある IBM Notes ブラウザのアドレスウィジェットにアプリケーションの URL を入力するだけで、この検査を XPages と無関係に実行することができます。

IBM Domino サーバーのアプリケーションを IBM Notes クライアント内で実行するときには、IBM Notes のすべてのカスタム機能が、 ネイティブの XPages モードで実行するときと同じように機能します。例えば、コンテキストメニュー、文書のダーティー保存、 クライアントサイド JavaScript 関数などが同じように機能します。例外が 1 つあり、複合アプリケーションは、 サーバーで実行するときのクライアントのプロパティブローカー機能を使用できません。

IBM Domino Designer でこのオプションの設定をバイパスするには、NOTES.INI の機能 XPagesRunRemoteAppsOnServer=1 を設定します。この設定は、個別のアプリケーションにではなく、すべての XPages アプリケーションに適用されます。

CKEditor へのスペルチェッカーの追加 – XPages の CKEditor にスペルチェッカーが追加されました。サーバーとクライアントの両方で使用可能です。

プログラム可能な事項と言語

プログラム可能な事項と言語に関しては、以下の追加や変更が行われました。

Domino データサービス -- IBM Domino® データサービスは、Domino サーバー上のデータベースにアクセスする REST API です。 これは、IBM Domino アクセスサービスの一部です。IBM Domino データサービスは、JSON 形式の本文コンテンツを用いた HTTP プロトコルおよび HTTPS プロトコルを使用して、要求の受信と応答の送信を行います。IBM Domino データサービスを使用すると、データベース、ビュー、フォルダ、文書に関する情報を取得できます。文書の更新、追加、削除を実行できます。

データサービスの使用に関する詳細情報とリファレンス資料については、IBM Notes および Domino アプリケーション開発 Wiki (http://www-10.lotus.com/ldd/ddwiki.nsf) の「Product Documentation」セクションに記載された情報を参照してください。

カレンダーとスケジューリング (C&S) のバックエンド Java クラス – IBM Domino のカレンダー機能とスケジューリング機能を公開する Java API 用のフレームワークと一連のメソッドを使用できます。これにより、標準化された iCalendar (RFC 5545) データ形式を使用して、個人メールファイルのカレンダーデータを作成、読み取り、更新、削除できます。また、カレンダーエントリや通知に対する明示的なカレンダーアクション (了承、辞退、キャンセルなど) を実行することもできます。

注: iCalendar では、カレンダーとスケジューリングアプリケーション (個人情報マネージャー (PIM) やグループスケジューリングアプリケーション製品など) に一般的に格納されている情報を取得したり、交換したりすることができます。iCalendar 形式は、アプリケーション間やシステム間の交換形式として適しています。この形式は、MIME コンテンツタイプとして定義されています。これにより、交換されるオブジェクトで各種のトランスポート (SMTP、HTTP、ファイルシステム、メモリベースのクリップボードやドラッグ/ドロップインタラクションなどのデスクトップインタラクティブプロトコル、Point-to-Point 非同期通信、有線ネットワークトランスポート、赤外線などの何らかの形式の無線トランスポートなど) を使用できるようになります。

これらの初期クラスや初期メソッドの目的は、IBM Notes のカレンダーとスケジューリング機能の詳細に精通していなくても、開発の可能性を探って、カレンダーとスケジューリングのための小型でシンプルなプロトタイプアプリケーションを構築できるようにするための基盤を提供することです。

新たに追加されたクラスとメソッドの一部を以下に示します。

Session.getCalendar

Database オブジェクトから NotesCalendar オブジェクトを作成します。このデータベースは、実際にアクセスされるまで、有効な C&S データベースかどうかの検証は行われません。

lotus.domino.NotesCalendar getCalendar(lotus.domino.Database db)throws NotesException

NotesCalendar - メソッドは以下のとおりです。
  • NotesCalendar.getEntry
  • NotesCalendar.createEntry
  • NotesCalendar.readRange

以下に、これらのメソッドの使用について、さらに詳しく説明します。

NotesCalendar.getEntry

指定された uid (iCal ID) に関連付けられた NotesCalendarEntry オブジェクトを返します。エントリが実在することを確認する検証は行われません。

NotesCalendarEntry getEntry(String uid) throws NotesException

NotesCalendar.createEntry

iCalendar ストリング (iCal) が RFC 5545 に従って正しくフォーマットされている場合に、指定された iCal から NotesCalendarEntry を返します。

NotesCalendarEntry createEntry(String iCal) throws NotesException

NotesCalendar.readRange

IBM Notes カレンダーに表示され、指定した開始時刻から終了時刻までの間に開始されるすべてのカレンダーエントリを表す iCalendar ストリングを返します。繰り返し発生するエントリの場合は、この範囲内の各インスタンスが個別に出力されます。これは各エントリの要約データのみを表しますが、各エントリに含まれる UID を使用して getEntry メソッドを実行することで、NotesCalendarEntry オブジェクトを取得できます。出力の構文解析は呼び出し元が行います。

String readRange(DateTime start, DateTime end) throws NotesException

NotesCalendarEntry
  • NotesCalendarEntry.read
  • NotesCalendarEntry.update
  • NotesCalendarEntry.remove

以下に、これらのメソッドの使用について、さらに詳しく説明します。

NotesCalendarEntry.read

このカレンダーエントリを表す iCalendar ストリングを返します。繰り返し発生するエントリに recurID が指定されている場合は、そのオカレンスのみを表す iCalendar ストリングを返します。recurID は、特定のインスタンスが元々スケジュールされていた日時を表す、iCalendar RECURRENCE-ID のような形式のストリングであると想定されます。例: 19960120T120000Z. RFC 5545 のセクション 3.8.4.4 を参照してください。

String read() throws NotesException

String read(String recurID) throws NotesException

NotesCalendarEntry.update

iCalendar ストリング (iCal) が RFC 5545 に従って正しくフォーマットされている場合に、iCalendar に渡すことでこのカレンダーエントリを更新します。繰り返し発生する会議の場合、これは現在のところ個々のインスタンスに対してのみサポートされています。また、iCalendar の入力には、RFC 5545 で定義されているとおり、RECURRENCE-ID で適切なインスタンスが指定された VEVENT が 1 つ含まれている必要があります。

コメントが指定されていない場合は、これが会議であっても通知は送信されません。メールファイル所有者が主催者になっている会議の場合は、指定されたコメントを含め、適切な通知が送信されます。現在のところ、指定されたコメントはすべて無視されます。

void update(String iCal) throws NotesException

void update(String iCal, String comments) throws NotesException

NotesCalendarEntry.remove

メールファイルからカレンダーエントリを削除します。recurID が指定されている場合は、そのオカレンスのみが削除されます。このカレンダーエントリがスケジュールされた会議の場合は、そのエントリが正しくキャンセルまたは取り消され、主催者や参加者に適切な通知が送信されます。

void remove() throws NotesException

void remove(recurID) throws NotesException

これらをはじめとするクラスとメソッドについて詳しくは、 「IBM Domino Designer XPages のリファレンス」の IBM Domino に関するセクションを参照してください。

サーバーサイド JavaScript デバッガ – サーバーサイド JavaScript (SSJS) デバッガが使用可能になり、Designer プリビューサーバーまたは IBM Domino サーバーのいずれに対するデバッグも可能になりました。
注: この機能で使用する debugger キーワードに後方互換性はなく、アプリケーションが旧バージョンのサーバーでホストされる場合には機能しません。このキーワードは、 サーバーやアプリケーションをデバッグモードで実行しているときに、サーバーサイド JavaScript コード内の静的ブレークポイントとして機能します。設計時に XPages アプリケーション内でこのキーワードを使用しても問題は発生しませんが、アプリケーションを旧バージョンのサーバーで実行すると、実行時の問題が発生します。

デバッガのユーザーインターフェースも更新され、Eclipse 環境でのデバッグ処理が以前より簡素化されました。新しい [IBM Domino Designer サーバーサイド JavaScript のデバッグ] ツールバーボタンがメインツールバーに追加されました。詳しくは、『IBM Domino Designer ユーザーガイド』の「プログラミング」セクションにある「XPages のスクリプト記述」セクションを参照してください。

デバッグ用に圧縮されていない Dojo リソースを使用するためのプロパティと設定 - xsp.properties ファイルのパブリックプロパティ xsp.client.script.uncompressed を編集して TRUE に設定することで、圧縮されていないリソースで容易にデバッグできます。

アプリケーションの [XPage プロパティエディタ - パフォーマンスプロパティ] タブで [圧縮されていないリソースファイルを使用する (CSS と Dojo)] チェックボックスを選択しても、この機能が有効になります。このチェックボックスを選択すると、xsp.properties ファイルの上記の行が xsp.client.resources.uncompressed=true に編集されます。

このプロパティを true に設定すると、インデント、スペース、変数名、コメントをすべて保持した圧縮しない状態で Dojo リソースを提供させることができるため、アプリケーションを綿密にデバッグできます。実稼働環境ではこのプロパティを false に設定して、アプリケーションのパフォーマンスを最大化してください。

技術的には、非圧縮版のリソースは別のライブラリによって提供されます。2 つのライブラリを登録しておく必要があります (圧縮版として 1.7.2、非圧縮版として 1.7.2-u など)。最後に示したバージョン (1.7.2-u) は、このプロパティが True に設定されている場合にのみ使用されます。このプロパティはデフォルトでは存在せず、このプロパティを False に設定した場合と同等です。

LotusScript エディタでの自動インデントをオフにする設定 - LotusScript エディタでの自動インデントをオンまたはオフにできる設定が用意されています。この設定は、LotusScript エディタの [プリファレンス] タブの [一般] セクションにあります。現在のデフォルト値では、この機能は有効になっていません。

LotusScript エディタでの自動インデントをオフにする設定 - LotusScript エディタでの自動インデントをオンまたはオフにできる設定が用意されています。この設定は、LotusScript エディタの [プリファレンス] タブの [一般] セクションにあります。現在のデフォルト値では、この機能は有効になっていません。

[メールの送信] シンプルアクションの追加[メールの送信] シンプルアクションが XPage に追加され、引数で変更可能な事前プログラム済みのアクティビティを実行できるようになっています。シンプルアクションは、イベントハンドラに適用され、グループ化されます。 このシンプルアクションが追加され、XPages アプリケーションからの E メール送信が容易になりました。また、埋め込み画面 E メールも送信できます。詳しくは製品の資料を参照してください。

製品の概要

IBM Domino Designer は、XPage、フォーム、ビュー、その他の要素 (コントロールなど) を使用した IBM Domino プラットフォーム用のアプリケーション開発をサポートしています。

XPage は、コラボレーション型の Web ベースアプリケーションを短期間で開発するためのテクノロジーです。XPages は、Java Server Faces テクノロジーで構築された一連の豊富なユーザーインターフェースとデータアクセス制御を提供します。XPages は、 既存の IBM Notes と Domino NSF 資産 (文書、ビュー、 エージェント、式、セキュリティなど) の統合を サポートしています。 これらのアプリケーションは、ブラウザと IBM Notes クライアントの両方で、動的 Web 2.0 ページとして レンダリングすることができます。 開発インターフェースには、直感的なドラッグアンドドロップの設計環境のほか、XML ソース環境も用意されています。 プレゼンテーションはカスケーディングスタイルシート (CSS) によって制御され、JavaScript を使用してビジネスロジックを開発することができます。

Domino Designer の資料には、以下のものがあります。

  • Domino Designer User Guide』では、製品の概要、XPages、 サポートされる要素について説明しています。 この情報では、バージョン 8.5 より後に追加された Domino Designer 機能についても説明しています。
  • Domino Designer XPages リファレンス』では、Domino オブジェクトに対する JavaScript インターフェースや シンプルアクションなど、XPages でのプログラミングに関する 事項について説明しています。
  • Domino Designer Basic 版 ユーザーガイドおよびリファレンス』では、Domino Designer のフォームベースの要素 (フォーム、ビュー、式言語、LotusScript など) について説明しています。

この資料は、以下の製品を参照します。 IBM Domino, IBM Domino Designer、IBM Notes、IBM iNotes、 IBM Notes Traveler

XPage の概要

XPages アプリケーションは、Domino サーバーまたは IBM Notes クライアントによって解釈され、Web ブラウザまたは IBM Notes クライアントでレンダリングされる XML です。ページ上のコントロールと対話して、要求をサーバーに送信できます。

例えば、以下の XML コードは、編集ボックスと 2 つのボタンが含まれた XPages アプリケーションを示しています。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="create"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText><xp:br></xp:br>
	<xp:button id="button1" value="Submit"><xp:eventHandler event="onclick" submit="true" 
		refreshMode="complete" immediate="false" save="true"></xp:eventHandler></xp:button>
	<xp:button id="button2" value="Cancel"><xp:eventHandler event="onclick" submit="true" 
		refreshMode="complete" immediate="true" save="false"></xp:eventHandler></xp:button>
	<xp:this.navigationRules>
		<xp:navigationRule outcome="xsp-success" viewId="/main.xsp"></xp:navigationRule>
	</xp:this.navigationRules>
</xp:view>
以下に、このサンプル XML コードの意味を行ごとに説明します。
  • xmlns:xp="http://www.ibm.com/xsp/core"

    Domino は、要素の省略語として xp を使用して、 名前空間 http://www.ibm.com/xsp/core 内で コントロールやその他の成果物を定義します。

  • xp:dominoDocument var="document1" formName="create"

    この XPages アプリケーションは、create という 名前の Domino フォームに 関連付けられています。

  • xp:inputText id="inputText1" value="#{document1.subject

    この入力ボックスは、create フォームの フィールド subject にバインドされています。

  • xp:button id="button1" value="Submit"save="true"xp:navigationRule outcome="xsp-success" viewId="/main.xsp"

    最初のボタンを クリックすると、要求がサーバーに送信されます。サーバーは、create フォームに基づいて 入力ボックスからのデータを新規文書として保存した後、main という 名前の別のページをクライアントに送信します。

  • id="button2" value="Cancel"save="false"

    2 番目のボタンも、 クリックすると要求がサーバーに送信されます。この場合、 サーバーは main ページを 返送します。

Domino Designer が提供するユーザーインターフェース (UI) には、 ナビゲータ、XPage エディタ、[コントロール] パレット、[プロパティ] タブ、[イベント] タブ、 その他の成果物があります。以下の図は、前述の XML コードによって作成されたページが、Domino Designer の設計モードでどのように表示されるかを示しています。
XPages ユーザーインターフェース

エディタでは、ユーザーはメニューを使用するかドラッグアンドドロップを行ってコントロールとテキストを操作できます。ユーザーは各種のタブを使用して、 プロパティとイベントの値を設定することもできます。また、[ソース] タブを使用して、XML を直接編集することもできます。

ユーザーは XPage のプロパティを使用して Domino フォームと Domino ビューをデータソースとして識別し、コントロールのプロパティを使用してコントロールをデータソース上のフィールドにバインドします。

重要: エラーがあると XPage が 機能しなくなってしまうため、XML を直接編集するときには 注意してください。
コアコントロールには、次のものがあります。
  • 入力を取得するためのコントロール - 編集ボックス、リッチテキスト、複数行入力域ボックス、リストボックス、コンボボックス、チェックボックス、ラジオボタン、チェックボックスグループ、ラジオボタングループ、日時ピッカー
  • アクションを実行するためのコントロール - ボタン、ファイルのアップロード、ファイルのダウンロード
  • 表示を行うためのコントロール - リンク、ラベル、計算結果フィールド、イメージ、エラー表示、複数エラー表示、ページャ
  • カスタムコントロール - 編集可能領域
コンテナコントロールに含まれるものは次のとおりです。
  • パネル - 他のコントロールを入れるための 長方形をページに作成します
  • 繰り返し - コントロールを繰り返します。繰り返しの回数は変更できます
  • ページの組み込み - 別の XPage を組み込みます。
  • 表 - 行と列の数が一定の表を作成します
  • ビュー - Domino ビューを組み込みます。
  • データ表 - データコレクションにバインドされた表を作成します。中間の行数は可変です。
  • タブ付きパネル - 重なり合った一連のパネルを作成します。各パネルにアクセスするにはタブをクリックします。
  • セクション - 省略表示可能なパネルを作成します。
プログラミングインターフェースは、サーバーとクライアントの 両方で実行される JavaScript です。
  • クライアント JavaScript は onclickonbluronfocus などの イベントに付加されます。 これらのスクリプトは、 要求をサーバーに送信する前に Web ブラウザまたは IBM Notes クライアントで 実行され、Web Document Object Model (DOM) を使用します。例えば、入力ボックスにコンテンツがあるか検証するスクリプトや、データを削除するサーバー操作を確認するスクリプトなどを作成できます。
  • サーバー JavaScript もイベントに付加されますが、 これは要求がサーバーに渡された後に開始されます。さらに、サーバー JavaScript を 使用すると、コントロールの値、データバインディング、プロパティを 計算できます。 サーバー JavaScript は、IBM Domino オブジェクト用のライブラリなど、 幅広いライブラリのセットにアクセスすることができます。 これらは、LotusScript や Java からも アクセス可能な Domino オブジェクトと 同じです。これらは IBM Domino データストアにアクセスし、IBM Domino 環境を操作します。
コンテキストによっては、 シンプルアクションと式言語 (EL) も使用できます。

グローバルオブジェクトは、コアオブジェクトを対象とした 単純な作成メカニズムを提供します。 例えば、session は 現在のセッションの NotesSession オブジェクトであり、database は 現在のアプリケーションの NotesDatabase オブジェクトであり、context は JavaScript が 実行されているコンテキストの XSPContext オブジェクトです。 スコープ変数は、 複数のコントロール、ページ、セッションの間で値を共有するための 単純なメカニズムを提供します。

フォームとビュー

Domino のフォームでは、ユーザーに対して文書を表示する方法と、フォームのデータ項目を保管する方法を定義します。ビューは、行と列で文書を報告します。

ユーザーが新しい文書を開くと、 その文書を定義するフォームを使用して、クライアント UI でページが レンダリングされます。ユーザーが 新規文書を保存すると、UI のデータを使用して、 フォームのデータ定義に従って文書が作成されます。同様に、 ユーザーが既存の文書を開くと、 フォームのデータ定義に従って、クライアント UI でデータがレンダリングされます。

通常、ビューの各行は 1 つの文書を表します。 しかし、XPage アプリケーションでは複数のビューを容易に結合できるため、それぞれの行は、その行に対応する複数の文書のビューになります。

列には、文書からのデータ値または計算された情報 (文書の最終更新日など) を入れることができます。ビューをソートしたり分類したりして、 文書を見やすく表示することができます。 ビューは、データに対するアクセスメカニズムとして使用できます。例えば、ユーザーがビュー内の行をダブルクリックすることで文書を開けるようにすることができます。

XPage アプリケーションはフォームとビューの両方を使用します。フォームを使用すると、ページ上のコントロールを Domino のデータ定義に接続することができます。最初に、ページをフォームと 関連付けます。 次に、ページ上のデータ入力コントロールを フォーム上のフィールドにバインドします。 IBM Domino ビューは、XPages のビューコントロールに 統合できます。

ページで使用できる Domino 要素には、ほかにも以下のものがあります。
  • JavaScript ライブラリ
  • イメージリソース
  • スタイルシートリソース
  • テーマリソース

Domino Designer のナビゲーション

IBM Domino Designer は、アクセスしやすいビュー、パレット、エディタに編成された Eclipse パースペクティブとしてインストールされます。 メインメニュー、右クリックメニュー、ビュー、パレット、エディタタイトルバーにあるアイコンを使用して、タスクを実行できます。

IBM Domino Designer には、次のパースペクティブがあります。
  • IBM Domino Designer には、アプリケーションナビゲータ内のすべての設計要素が表示されます。これは、デフォルトのパースペクティブです。
  • XPage では、XPage 開発に不要な設計要素は除外されます。
  • Forms/Views では、XPage 開発でのみ必要とされる設計要素は除外されます。

パースペクティブを変更するには、[ウィンドウ] > [パースペクティブを開く] をクリックします。

パースペクティブのコンテンツを調整するには、[ファイル] > [プリファレンス] > [IBM Domino Designer] > [アプリケーションナビゲータ] をクリックします。

IBM Domino Designer のパースペクティブは Eclipse の規則によって定義されるため、ビューを移動したり、サイズ変更したり、閉じたり、開いたりなどの操作を行うことができます。新しい調整内容を、指定の名前を持つ新規パースペクティブとして保存するには、メニューバーで [ウィンドウ] > [パースペクティブの別名保存]を選択します。

また、デフォルトの Eclipse キーボードショートカット Ctrl + F7 を使用するか、Eclipse メインメニューの [ウィンドウ] > [ナビゲーション] をクリックして、ビューの間をナビゲートすることもできます。

非表示のビューを表示するには、メイン Eclipse メニューで [ウィンドウ] > [Eclipse ビューの表示] をクリックして、リストから非表示のビューを選択します。

設計要素とアプリケーションナビゲータ

使用可能な設計要素は、アプリケーションナビゲータによって表示されます。

デフォルトでは、アプリケーションナビゲータはウィンドウ内の左側に表示されます。アプリケーションを作成したり開いたりすると、その要素がアプリケーションナビゲータに表示されます。
  • アプリケーションを作成するには、[ファイル] > [新規] > [アプリケーション] を クリックするか、アプリケーションナビゲータを右クリックして [新規アプリケーション] (Ctrl-N) を 選択します。
  • 既存のアプリケーションを開くには、アプリケーションナビゲータでそのアプリケーションを選択します。 アプリケーションナビゲータに表示されていない場合は、[ファイル] > [アプリケーション] > [開く] を クリックしてアプリケーションを選択します。
  • 使用可能な設計要素タイプと設計要素グループを表示するには、アプリケーションを展開します。グループを展開すると、 グループ内の設計要素のタイプが表示されます。
  • 選択したタイプの設計要素を作成するには、メニューまたは右クリックを使用します。設計要素は、作成されると、該当するタイプの下に表示されます。設計要素のリストをエディタに表示させるには、要素のタイプをダブルクリックします。設計要素を編集用に開くには、 要素をダブルクリックします。

以下の表で、各設計要素について説明し、各要素が一般的に使用されるアプリケーションのタイプを示します。

設計要素 説明
フォーム 文書を作成および表示するための構造を提供します。XPage の場合は、 フォームをデータソースとして使用できます。
ビュー ソートまたは分類された文書のリストです。フォームベースの Designer の場合、 ビューは、データベースに格納されたデータへの入口です。ビューは XPage に統合できます。
フォルダ 関連する文書または文書のグループを保管するために使用されるコンテナです。フォルダには、ビューと同じ設計要素があります。
XPages ユーザーがアプリケーションを使用するときに対話するテキストコントロールとユーザーインターフェース (UI) コントロールを定義します。
カスタムコントロール UI コントロールの集合であり、単一オブジェクトとして保管されます。
フレームセット アプリケーションに構造を追加するためのフレームの集合です。
ページ 情報を表示するデータベース設計要素です。
共有要素 - サブフォーム 単一のオブジェクトとして保存されているフォーム要素の集まりです。
共有要素 - フィールド データを収集します。フィールドは、フォーム、サブフォーム、レイアウト領域上に作成します。XPage の場合は、 コントロールをフィールドにバインドします。
共有要素 - 列 フィールドの値や、文書に関するその他の情報を表示します。 列は、ビューやフォルダに作成します。
共有要素 - アウトライン アプリケーションの編成構造を提供し、ナビゲータペインでの要素の表示方法を制御します。
Shared Elements - ナビゲータ アプリケーションの特定の部分へ移動するための、図形によるロードマップです。
コード - エージェント アプリケーション内の任意の個所でユーザー起動のタスクまたはバックグラウンドタスクを設定します。
コード - 共有アクション フォームまたはビューでユーザー起動タスクを設定します。
コード - スクリプトライブラリ クライアントまたはサーバーのプログラミング要素に組み込むための LotusScript コード、Java コード、JavaScript コードが入っています。JavaScript ライブラリは XPage 用です。
コード - データベーススクリプト アプリケーションレベルのイベント (アプリケーションを開くまたは閉じるなど) に応じてアクティブ化されるプログラミング要素です。
コード - Web サービスプロバイダ 自己完結型で自己記述型のモジュラーアプリケーションです。XML に基づいており、Web に公開したり、Web から呼び出すことができます。Web サービスプロバイダは、Domino サーバーでホストされる Web サービスであるため、 他のコンピュータから呼び出すことができます。
コード - Web サービスコンシューマ 他のコンピュータ上の Web サービスを呼び出します。
コード - Java

NSF プロジェクト (Java パースペクティブの Code/Java の下) が範囲の Java ClassInterfaceEnum 要素を作成します。 Java コードは、XPage のコードから直接呼び出すことが可能です。

コード - JAR

アプリケーションの NSF に含まれるパッケージ化された Java コード/ライブラリを操作できるようになります。JAR をサーバーにデプロイしたり、ソースファイルを一意的にアプリケーションデータベースに組み込んだりする必要がなくなります。この要素は、XPage アプリケーションでのみ使用可能です。この場合、JAR は XPages ランタイムによって自動的にロードされます。

データ - データコネクション IBM Domino アプリケーションと外部データソースの間のデータ交換を確立するリソースです。
データ - DB2® Access ビュー IBM Notes データの DB2 ビューを定義します。
リソース - イメージ XPage、ページ、フォーム、サブフォーム、アクションボタン、アウトラインエントリ上のグラフィックまたはアイコンとして使用します。また、フォーム、文書、ページ、表のセル、アクションボタンの背景イメージとしても使用します。
リソース - ファイル アプリケーション内やすべてのアプリケーション間で非 NSF ファイルを共有できます。
リソース - アプレット IBM Domino アプリケーションで実行できる自己完結型 Java プログラムです。
リソース - スタイルシート 作成することもインポートすることも可能です。XPage と UI コントロールでは、 デフォルトで、IBM Domino で 提供されるデフォルトのカスケーディングスタイルシート (CSS) が使用されます。 デフォルトは、 これらのリソースで上書きできます。
リソース - テーマ HTML の生成をサーバーサイドでカスタマイズするもので、アプリケーションの外観を定義するために使用できます。デフォルトで、XPages とユーザーインターフェースのコントロールではサーバーに定義されているテーマを必ず使用します。 そのグローバルのテーマは、全アプリケーションに対して変更可能であり、アプリケーション固有のテーマによってオーバーライドすることもできます。
リソース - アプリケーションについて アプリケーションの目的について記述します。
リソース - アプリケーションの使い方 ユーザーに手順を示します。
リソース - アイコン ユーザーがブックマークペインのデータベースを素早く識別するのに役立ちます。アイコンエディタからアプリケーションに取り込むことができます。
複合アプリケーション - ワイヤリングプロパティ 複合アプリケーション内の WSDL ファイルにアクセスできます。
複合アプリケーション - アプリケーション 複合アプリケーションの定義を含む必要な XML ファイルにアクセスできます。
複合アプリケーション - コンポーネント XPages ベースの場合は、複合アプリケーションでデプロイされます。
アプリケーション構成 - アプリケーションプロパティ アプリケーション全体のプロパティを設定できます。
アプリケーション構成 - Faces-config webcontent¥web-inf¥faces-config.xml に対する編集アクセスを提供します。これは、XPage 内で 管理 Bean (やカスタムコンバータ/バリデータなど) を構成するための構成ファイルです。
アプリケーション構成 - Xsp プロパティ XPages フレームワークパラメータのコレクションが含まれるファイル (xsp.properties) に対する編集アクセスを提供します。これは、アプリケーション XPages における XPages 設定の指定と制御をアプリケーションレベルまたはサーバーレベルで行うために使用します。すべての XPages NSF アプリケーションには、xsp.properties ファイルが含まれています。

このユーザーガイドは XPage と、XPage を使用する アプリケーションに焦点を当てているため、XPage アプリケーションで使用する 設計要素のサブセットについて詳しく説明します。 フォームベースの設計要素と フォームベースのアプリケーションに関する詳細は、『Domino Designer Basic 版 ユーザーガイドおよびリファレンス』を参照してください。

設計要素タイプの選択とフィルタリング

アプリケーションナビゲータに表示する設計要素タイプを選択およびフィルタリングするには、[プリファレンス] > [IBM Domino Designer] > [アプリケーションナビゲータ] で選択を行います。

作業や表示を行う要素を選択するには、[プリファレンス] パネルで要素を選択します。パネルのリストからパースペクティブを選択すると、3 つのパースペクティブ (IBM Domino Designer、XPages、Forms/Views Domino Designer) のそれぞれで選択オプションとフィルタオプションを個別に設定することもできます。

設計要素のバージョンの比較

設計要素またはリソースの異なるバージョンを比較するには、特定の項目を右クリックし、コンテキストメニューから比較タイプを選択します。比較の実行時には、比較エディタがエディタ領域に表示されます。バージョン間の相違は比較エディタ内で強調表示されます。これにより、比較されたバージョン間で変更をブラウズおよびコピーできます。

以下の比較タイプを実行できます。
  • [比較] > [ローカル・ヒストリー] - 選択した要素またはリソースを、変更の保存時に保守されるローカルヒストリー内の要素またはリソースと比較します。
  • [比較] > [相互] - 選択した 2 つまたは 3 つの要素またはリソースどうしを比較します。

設計エディタ

設計エディタでは、XPage やその他の設計要素の編集と、 設計要素のリストの表示を行います。

[プロパティ] ビューには、 エディタでの現在の選択対象のプロパティが表示されます。 例えば、XPage 内でユーザーインターフェース (UI) コントロールで作業している場合、XPages エディタでその UI コントロールをクリックすると、直ちにその UI コントロールのプロパティが [プロパティ] ビューに表示されます。

エディタ内では以下のタスクを実行できます。

タスク アクション
設計要素またはリストを開く 設計要素またはリストを [アプリケーションナビゲータ] で選択します。 ダブルクリックするか、[ファイル] > [開く] を クリックします。
開いている設計要素とリストを切り替える 表示する設計要素またはリストのタブをクリックします。
設計要素またはリストを閉じる 設計要素またはリストタブの [閉じる] アイコン (X) をクリックするか、 タブを選択して [ファイル] > [閉じる] を クリックします。
現在のものを含めて、すべての設計要素とリストを閉じる [ファイル] > [すべて閉じる] をクリックします。 また、タブを右クリックして、[すべて閉じる] を選択することもできます。
エディタを最大化する [最大化] アイコンをクリックするか、タブをダブルクリックします。
エディタをオリジナルのサイズと場所に復元する [元に戻す] アイコンをクリックするか、タブをダブルクリックします。 この機能はエディタが最大化されている場合にのみ使用可能です。
キーボードの矢印キーを使用してエディタのサイズを変更する タブを右クリックして [サイズ] を選択し、[左][右][上][下] を選択して、エディタの端を強調表示します。 キーボードの適切な矢印を押して、エディタを拡大または縮小します。

ソースエディタ

XPages ソースコードを直接編集するには、ソースエディタを使用します。

XPage を編集するときは、[ソース] タブを使用して、XPages のソースコードを直接編集することができます。 XPages 言語に慣れている場合は、これが非常に便利です。

エディタ内では以下のタスクを実行できます。

タスク アクション
コーディング中にコンテンツアシストを使用する

CTRL + SPACE キーを押すと、コーディング中にコンテンツアシスト機能が呼び出されます。これは、XPage 内に埋め込まれた SSJS (サーバーサイド JavaScript) に対しても機能します。

XPages ソースエディタの機能としてのコンテンツアシストは、スキーマを使用することで駆動されます。IBM Domino Designer は、現在の IBM Notes アプリケーションに基づいてスキーマを動的に構築します。このスキーマには、XPages ランタイムの一部として、各タグの各属性に関するヘルプ情報が含まれています。

コーディング中にハイパーリンクナビゲーションを使用する

ハイパーリンクナビゲーションは、エディタ内のテキストをハイパーリンクにすることができる汎用 Eclipse 機能を記述したものです。 CTRL キーを押しながら、任意のテキストやリンク (カスタムコントロール名を含む) にカーソルを置くと、そのリンクロケーション/設計要素に直接ナビゲートできます。 Eclipse は、ユーザーがハイパーリンクナビゲーションを使用しようとしていることをエディタにフィードバックします。

例えば、カスタムコントロールの編集中にこの機能を使用します。ソースエディタで CTRL キーを押しながらカスタムコントロールにカーソルを置くと、ハイパーリンクナビゲーションによって、そのカスタムコントロールに直接ナビゲートすることができます。

コーディング中に吹き出しヘルプを使用する

この機能を使用するには、特定の「ノード」上にカーソルを置きます。こうすると、そのノードに関する詳細情報が表示されます。ハイパーリンクナビゲーションと同様に (上記を参照)、Eclipse エディタフレームワークから現在のタグ (および属性) に関する説明を提供することができます。

xsp-config によって自身の説明を示すタグと属性はすべて、XPages ソースエディタ内の吹き出しヘルプ機能でその情報を表示させることができます。

この機能の動作は、IBM Domino Designer の [プリファレンス] タブから制御できます。この機能はデフォルトでオンになっており、500 ミリ秒のタイムアウトがプリファレンスに関連付けられています。つまり、カーソルが置かれている時間が 500 ms (ミリ秒) を超えると、Eclipse エディタフレームワークが XPages ソースエディタの吹き出しヘルプ機能を呼び出します。

製品ヘルプシステムを呼び出す F1 キーを押すと、コンテキストヘルプが開きます。
その他の編集タスクを実行する ソースエディタページを右クリックすると、エディタ内で実行できるその他のアクションのメニューが表示されます。
エディタを最大化する [最大化] アイコンをクリックするか、タブをダブルクリックします。
エディタをオリジナルのサイズと場所に復元する [元に戻す] アイコンをクリックするか、タブをダブルクリックします。 この機能はエディタが最大化されている場合にのみ使用可能です。
キーボードの矢印キーを使用してエディタのサイズを変更する タブを右クリックして [サイズ] を選択し、[左][右][上][下] を選択して、エディタの端を強調表示します。 キーボードの適切な矢印を押して、エディタを拡大または縮小します。

パレットとビュー

パレットとビューは、 設計要素を操作するためのツールを提供します。

パレット

パレットでは、コントロールやデータソースに関する作業を行います。次のパレットが使用できます。

[コントロール] パレット
XPage のレイアウトの設計や、データベースへのデータの入力方法と保存方法の決定に使用される UI コントロールとカスタムコントロールが含まれます。コントロールはパレットから XPage にドラッグアンドドロップできます。

このパレットがアクティブになるのは、XPages エディタがアクティブである場合 (例えば、XPage またはカスタムコントロールの編集中) に限られます。 パレットには、[コアコントロール][コンテナコントロール] という UI コントロールの引き出しがあります。 また、現在の IBM Domino Designer アプリケーションにカスタムコントロールを追加した場合は、そのコントロールの引き出しもあります。

引き出しは 組み込みのペインであり、ユーザーはそれぞれの引き出しの先頭にある矢印と末尾にある矢印を使用してオプションをスクロールできます。

パレットとその引き出しでは、以下のことも実行できます。
  • パレットを非表示にするには、パレットを閉じます。
  • パレットのプロパティを変更するには、右クリックして選択します。
  • 引き出しを展開または省略表示するには、引き出しをクリックします。
[データ] パレット
XPages エディタで選択した XPage またはコントロールに関連付けられているデータソースを表示できます。[データ] パレットを表示するには、[ウィンドウ] > [Eclipse ビューの表示] > [データパレット] をクリックします。

[コントロール] パレットや [データ] パレットからドラッグアンドドロップする場合は、 以下の情報、制限、ガイドラインに留意してください。

  • ビューパネルを除き、すべてのコンテナコントロールにコントロールを 追加できます。
  • リンクコントロールを除いて、コアコントロールにコントロールを追加することは できません。リンクコントロールは子を持つことができるため、追加が可能です。 この点では、リンクコントロールはコンテナコントロールのように機能します。コアコントロールにコントロールを追加しようとすると、そのページの既存のコントロールの上に新しいコントロールが 追加されます。
  • [ソース] タブでは、 コントロールをコンテナの開始タグまたは終了タグにドラッグするか、開始タグまたは終了タグにフォーカスを移動して [作成] メニューを使用するかダブルクリックすることで、 コンテナコントロールの最初または最後の子にすることができます。
  • 表では、セルのみにコントロールを追加できます。 行や表コンテナ自体に追加することはできません。
  • データ表の列にコントロールを追加できます。[ソース] タブでコントロールを作成したら、データ表 (またはデータ表の列) のヘッダーまたはフッターとして定義されるコンテナコントロールを追加できます。コントロールを ヘッダーまたはフッターとして定義するには、データ表または 列内の xp:this.facets 要素にコントロールを追加します。
  • タブ付きパネルでは、タブのみにコントロールを追加できます。 パネル自体に追加することはできません。
  • [ソース] タブでタブ付きパネルの終了タグにコントロールをドラッグするか、終了タグをダブルクリックするか、終了タグにフォーカスを移動して [作成] メニューを使用すると、タブ付きパネルの最後のタブにコントロールが追加されます。
  • XPage に追加されているカスタムコントロールにコントロールを追加できるのは、そのカスタムコントロールに編集可能領域が定義されている場合のみです。 編集可能領域にファセット名がある場合、追加できるコントロールは 1 つのみです。 ファセット名を削除すると、複数のコントロールを追加できます。
  • 別のカスタムコントロール内にネストされているカスタムコントロールに、コントロールを追加することはできません。
  • [データ] パレットからページにデータソースをドラッグする際には、データソースがページに挿入される前にデータソースの順序を変更することができます。[データ] パレットの最上部で [コントロールの選択] アイコンをクリックし、[データバインドコントロールの選択] を選択します。矢印キーを使用して、ページにデータソースをドラッグします。

コントロールパレットプロファイルを作成して、コントロールパレットに表示されるコントロールとその順序を選択することができます。さまざまなコントロールパレットレイアウトを設定し、それらのレイアウトを切り替えることができるようにして、複数のパレットプロファイルを作成できます。 パレットプロファイル設定にアクセスするには、[ファイル] - [プリファレンス] - [IBM Domino Designer] - [パレット] に移動します。 以下のリストに、コントロールパレットプロファイルの使用に関する追加情報を示します。

  • デフォルトでは、Profile1 という名前の初期プロファイルが作成されます。 これは、Designer を最初に起動したときのパレットの現在の状態を含んだプロファイルです。 以前の [Designer パレットプリファレンス (Designer Palette Preferences)] ページを使用してパレットを変更した場合、それらの変更は Profile1 に反映されます。 このパレットプロファイルユーザーインターフェース内で Profile1 の名前変更と削除を行うことができます。
  • このユーザーインターフェースには、プロファイルのリスト、およびコントロールの引き出しとその中のコントロールを示したツリーが表示されます。 ツリーは、プロファイルのリストで選択したプロファイルのパレットのレイアウトを示します。 パレットに表示するコントロール/引き出しにはチェックマークを付け、表示しないものについてはチェックマークを外すことができます。 個々のコントロールは親引き出し内で移動することもできますが、引き出しから引き出しにコントロールを移動することはできません。
  • 引き出しを並べ替えることもできます。 ただし、コントロールの引き出しの並べ替えは、このリリースのコントロールパレットではサポートされていません。 カスタムコントロールは、ツリーに表示されることはなく、常にコントロールパレット内に表示されます。
  • [新規作成] をクリックして新規プロファイルを作成する場合、その新規プロファイルパレットレイアウトは、プロファイルのリストで現在選択されているプロファイルに基づいて設定されます。 デフォルトでは、アクティブなプロファイルがプロファイルのリストで選択されます。 プロファイルを切り替えるには、アクティブにするプロファイルを選択して [適用] または [OK] をクリックします。
  • 選択したファイルをデフォルトのプロファイルに戻すには、[デフォルトに戻す] をクリックします。デフォルトのプロファイルに戻しても、作成したプロファイルは削除されません。
  • プロファイルのリストにあるすべてのプロファイルを削除すると、デフォルトレイアウトと一致するパレットレイアウトで Profile1 が再作成されます。

ビュー

ビューは、アプリケーションのさまざまな側面を確認して操作できる Eclipse のパネルです。次のビューが使用できます。

イベントビュー
XPage やコントロールに関するイベントを作成できます。イベントビューを使用して、簡単なアクションやスクリプトをイベントに添付することができます。 簡単にアクセスできるよう、イベントはカテゴリ別に分類されます。

スクリプトを記述するとき、サーバーサイドイベントまたはクライアントサイドイベントを作成できます。 Asynchronous JavaScript and XML (AJAX) テクノロジに基づいて XPage 要素の一部を部分更新するなど、イベント発生後の XPage 更新のオプションを指定できます。

シンプルアクションを記述するとき、引数で変更可能な事前プログラム済みのアクティビティを実行するアクションを記述できます。 シンプルアクションのグループを作成することもできます。

アウトラインビュー
XPage 内の XML ソースコードの階層表現を示します。[アウトライン] ビューの個別ノードをクリックして XPage をナビゲートし、[プロパティ] ビューのプロパティを更新できます。 また要素をドラッグアンドドロップして、セクションを再配置したり、要素の順序を変更できます。
問題ビュー
IBM Domino Designer のリソースに関するエラー、警告、その他の情報を表示します。これらのメッセージは、Eclipse ワークスペースを作成したときに生成されます。 例えば、構文エラーを含む XPage を保存した場合は、[問題] ビューにこれらのエラーが表示されます。
プロパティビュー
XPage とコントロールのプロパティを設定する際に使用します。 プロパティビューは、現在開いているエディターと連携して機能します。 例えば XPage を設計している場合に、XPage 内の特定の UI コントロールにフォーカスを移動させると、その UI コントロールのプロパティが [プロパティ] ビューで使用可能になります。

[プロパティ] ビューは IBM Domino Designer ウィンドウの下部に配置されており、このビューに含まれる個別のタブをクリックすると、オプションのセットを表示できます。各 XPage と UI コントロールには固有のプロパティのセットがあるため、タブとタブ内のオプションは、現在選択されている内容によって変わります。 例えば、XPage のリストを表示している場合、個々の XPage 名をクリックすると、XPage の名前、作成者、作成日などの XPage に関する一般情報が [プロパティ] ビューに表示されます。 XPage の名前をダブルクリックすると、XPage は IBM Domino Designer XPages エディタ内で編集モードで開き、新しいタブのセットが [プロパティ] ビューに表示されます。 これらのタブは、XPage 全体が選択されているか、個々の UI コントロールが選択されているかなど、エディタ内で現在選択されている内容によって変更されます。

[プロパティ] タイトルバーにあるボタンを使用して、ビューを最小化、最大化、復元できます。[プロパティ] タブを右クリックすると、以下の操作を実行できます。
  • ビューを非表示にする
  • ビューを最小化および最大化する
  • ビューを別のウィンドウとして切り離す
  • 最小化または最大化されたビューを復元する

情報の入手

情報入手のための手近な資料は、インストール済みのヘルプシステムです。 また、インフォメーションセンター、IBM Domino Designer の Wiki、各種 Web サイト上の記事などの情報源もあります。

IBM Domino Designer や IBM Notes からヘルプにアクセスするには、[ヘルプ] > [目次] を クリックします。通常は、 検索するのが最も簡単です。ヒントをいくつか示します。
  • 語句全体を入力します。 大文字と小文字は区別されませんが、 語句は全部入力する必要があります。 例えば、createFTIndex メソッドを 検索する場合には createftindex と 入力できますが、createftinde では失敗します。
  • 検索結果には、重複したタイトルや類似したタイトルが 表示されることがあります (特に参照トピックの場合)。 タイトルの上にマウスポインタを移動すると、ポップアップに資料の名前が表示されます。この情報は、状況表示行にも 表示されます。
  • ヘルプの特定の部分を頻繁に参照する場合は、その部分に 検索範囲を設定すると便利です。 参考タスクを参照してください。
[F1] をクリックすると、右のペインに補足的ヘルプシステムが表示されます。一部の資料は 事実上、要約になっています。リンクを使用するか、 ページの下部にある [検索] または [すべてのトピック] を クリックすることで、詳細な資料にナビゲートできます。

製品とともにインストールされるものと同じヘルプを、http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp の Notes Domino インフォメーションセンターでも利用できます。

IBM Domino Designer の Wiki には、記事、フォーラム、追加情報が まとめられています。http://www.lotus.com/ldd/ddwiki.nsf からアクセスしてください。この Wiki には投稿できます。

検索対象をヘルプの外にまで広げるには、Google などの Web プロダクトを 使用してください。 検索照会の前には「domino designer」を 付けてください。 例えば、createFTIndex メソッドについて調べるには、 検索照会として「domino designer createftindex」と 入力します。

実践的な XPages 入門については、このヘルプの チュートリアルをご利用ください。チュートリアルでは、Site finder demo という詳細テンプレートを使用しています。

検索範囲の設定

検索範囲により、検索対象となるヘルプトピックが限定されます。

このタスクについて

デフォルトでは、検索はヘルプ内の すべてのトピックが対象となります。 指定のトピックに限定して検索するための名前付き範囲を作成するには、次の操作を行います。

手順

  1. 検索ウィンドウで、[検索の範囲] をクリックします。
  2. [検索範囲の選択] ダイアログで、[次のトピックだけを検索] を選択して [新規] を クリックします。
  3. [新規検索リスト] ダイアログで、 この検索に付ける名前を入力します。
  4. ヘルプのうち、検索対象とする部分にチェックマークを付けます。 開始レベルと、その 1 つ下のレベルにあるトピックにチェックマークを付けることができます。
  5. [OK] をクリックして 範囲を保存し、[新規検索リスト] ダイアログを 閉じます。

    [次のトピックだけを検索] を選択すると、新しい範囲が 範囲のリストに表示されます。

    さらに別の範囲を作成することができます。

    選択した範囲の編集または削除が可能です。

  6. [OK] をクリックして、[検索範囲の選択] ダイアログを閉じます。
  7. 有効な範囲は、[検索の範囲] の横に 表示されます。 範囲を変更するには、次の操作を行います。
    1. [検索の範囲] を クリックすると、[検索範囲の選択] ダイアログが開きます。
    2. [次のトピックだけを検索] を 選択してから範囲を選択するか、[すべてのトピックを検索] を 選択します。
    3. [OK] をクリックします。

例えば、Domino Designer の トピックのみを対象とする検索範囲を作成するには、[新規検索リスト] ダイアログで 範囲に Designer という名前を付け、IBM Domino Designer で始まる最上位トピックすべてに チェックマークを付けます。

アクセシビリティとキーボードショートカット

IBM Domino Designer は、 障害を持つユーザーも使用できます。身体や視覚に障害を持つ人のための 支援機能として、特別なキーボードショートカットが提供されています。

これらのキーボードショートカットにより、Designer の さまざまなタスク間を移動したり、 タスクを実行したりすることができます。 詳しくは、 製品のヘルプシステムに収録されている『IBM Domino Designer Basic 版 ユーザーガイドおよびリファレンス』の 「アクセシビリティとキーボードショートカット」を 参照してください。ここには、タスク関連のキーボードショートカットについての さまざまなトピックが記載されています。

完全な製品ヘルプの入手可能なエディションは、IBM Notes および Domino インフォメーションセンター (http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp) にあります。

IBM Notes ヘルプの「"アクセシビリティ用の IBM Notes のカスタマイズ"」というトピックに追加情報が記載されています。 このヘルプがインストールされていない場合は、IBM Developer Domain の Documentation Library (http://www.lotus.com/ldd/doc) にアクセスして、『IBM Notes ヘルプ』をダウンロードまたは表示することもできます。

そのほか、IBM Special Needs Web サイト (http://www.ibm.com/able) も 役立ちます。

チュートリアル

このセクションでは、チュートリアルとチュートリアルに関する情報について説明します。

このセクションで現在利用可能なチュートリアルは、XPages Site Finder チュートリアルです。詳しくは、このセクションの他のトピックを参照してください。

XPages Site Finder チュートリアル

このチュートリアルでは、XPage 要素を使用して IBM Domino Designer で Web アプリケーションを簡単に作成できることを示します。このチュートリアルを使用して、3 つの XPages を作成およびプリビューします。 データのアクセスと表示、他のページへのナビゲート、同一ページの更新、他のアクションの実行用のコントロールを XPage に配置します。 JavaScript も使用します。

Domino Designer と従来の設計要素に関する知識は役に立ちますが、必須ではありません。学習の対象外のいくつかの設計要素やグラフィックスは、プリロードされています。 Eclipse での作業に慣れていない場合は、Domino Designer のナビゲーション を参照してください。

Site Finder Demo という名前のデモアプリケーションは、IBM Domino Designer に付属の拡張テンプレートです。 多くの Web サイトで提供されている、近隣の場所を検索するためのツールに似ています。 郵便番号または住所を送信すると、サーバーは一致する場所を返します。 このチュートリアルでは、送信を行うための Web ページと、サイト文書を作成および編集するための他のページを作成します。

例を簡単にするため、アクセスは制限しません。 誰でも文書の作成と編集を行うことができます。 このアクセス設定により、サーバーをセットアップすることなく XPage の機能をプリビューすることができます。 実際のアプリケーションの場合は、アクセスの制限が必要ですが、アクセス制御リスト (ACL) によって簡単に制限できます。 メニューから [ファイル] > [アプリケーション] > [アクセス制御] をクリックします。

デモアプリケーションの検索メカニズムは単純で、完全一致にのみ基づいています。 実際のアプリケーションでは、より高度なメカニズムを使用できます。

この資料は、以下の製品を参照します。 IBM Domino, IBM Domino Designer、IBM Notes、IBM iNotes、 IBM Notes Traveler

学習目標

  • XPage 要素が含まれているアプリケーションのセットアップと表示
  • XPage の作成
  • XPage へのコントロールの追加
  • XPage へのデータのバインド
  • XPage へのナビゲーションの追加
  • カスタムコントロールの作成
  • 拡張バインディングとスクリプトの使用

所要時間

このチュートリアルを完了するには、約 90 分かかります。

サンプルアプリケーションをセットアップする

チュートリアルの過程で、Site、SiteFinder、SiteList という名前の 3 つの XPage を作成します。 サンプルアプリケーションを最初に開くと、似通った名前の既存の XPage が表示されます。 その内の 3 つは最終ソリューションで、SiteFinal、SiteFinderFinal、SiteListFinal という名前です。 2 つは中間ソリューションで、Site1 と SiteList1 という名前です。

IBM Domino Designer を起動して、以下の手順を実行します。
  1. メニューから [ファイル] > [アプリケーション] > [新規] ([Ctrl] + [N]) をクリックします。
  2. [新規アプリケーション] ウィンドウで、以下のステップを実行します。
    1. サーバーの選択を [ローカル] のままにしておきます。
    2. タイトルを入力します (例えば、「サイトファインダーのデモ」)。
    3. ファイル名 (SiteFinderDemo.nsf など) を受け入れるか、変更します。
    4. オプション: [暗号化] をクリックします。 [ローカルのデータベースを暗号化しない] を選択して、[OK] をクリックします。

      この手順により、例えばアプリケーションをメールで送信した場合に、他の Notes ユーザーがアプリケーションにローカルでアクセスできるようになります。一般に、実際のアプリケーションは暗号化して保護する必要があります。 ローカル暗号化を実行しても、サーバーへの複製によるアプリケーションの共有が妨げられることはありません。

    5. [検索用の全文索引を作成] を選択します。 これは、後で必要になります。
    6. テンプレートサーバーの選択を [ローカル] のままにしておきます。
    7. [詳細テンプレートの表示] を選択します。
    8. テンプレートリストで [Site Finder Demo] を選択します。
    9. [テンプレートを引き継いで設計] をクリアします。
    [新規アプリケーション] ウィンドウは、以下のようになります。

    [新規アプリケーション] ウィンドウ

  3. [OK] をクリックします。

    Domino Designer によって新規アプリケーションが作成され、画面の左側の [アプリケーション] の下に要素が表示されます。要素を展開して、このアプリケーションの設計を調べます。

  4. [コード] を展開して、[エージェント] をダブルクリックします。 エージェントのリストで、[サンプルデータの作成] を右クリックして、[実行] を選択します。

    このエージェントは、アプリケーションのテストに使用する複数のサンプルレコードを作成します。 任意のダイアログボックスに応答します。 隅の X をクリックして、エージェントのリストが含まれているペインを閉じます。

  5. [XPage] を展開して、[SiteFinderFinal] ([SiteFinder] の最終ソリューション) をダブルクリックします。
  6. [設計] > [Web ブラウザでのプリビュー] > [デフォルトのシステム Web ブラウザ] をクリックするか、リストされている中から特定のブラウザを選択します。

    コンピュータで実行されているミニ Web サーバーが、ブラウザを開き、XPage 用の HTML を生成し、サーバー名に localhost を使用してページをブラウザに送信します。

    コンピュータが localhost を使用するようにセットアップされていない場合は、プリビュー URL は失敗します。 ブラウザを開いて、127.0.0.1、または URL のコンピュータの実際の IP アドレス (例えば、http://127.0.0.1/SiteFinderDemo.nsf/SiteFinderFinal.xsp) を使用します。

  7. [郵便番号] フィールドに値 (例えば、02108) を指定し、[検索] をクリックします。

    この手順により、ページがサーバーに送信されます。 サーバーはページの情報を処理し、別のページをクライアントに送信します。

  8. 作業が完了したら、ブラウザを閉じます。
  9. Domino Designer で、タブの X をクリックして XPage 要素を閉じます。

    外観はさまざまに異なります。 ペインに複数のタブがある場合、タブに X が表示されます。 ペインのタブが 1 つのみの場合、隅に X があるウィンドウとして表示されます。

名前に [Final] が使用されている XPage をプリビューして、自由にアプリケーションを調べることができます。 これらの XPage は、チュートリアルを進めていく過程で設計するアプリケーションの最終バージョンです。

XPage を作成する

このレッスンでは、基本的な XPage を作成する方法を学習します。

このレッスンでは、1 つのフォームと 1 つのビューを使用しますが、これらを作成する演習は行いません。 Site フォームにはサイト情報と検索条件を格納するフィールドが含まれています。[SiteList] ビューは、サイトと検索結果のリストを表示するために使用します。 これらの概要を理解してください。 フォームと ビューについては、ヘルプの『Domino Designer Basic 版 ユーザーガイドおよびリファレンス』の資料を参照してください。
  • フォームは XPage によって使用され、データの表示方法ではなく、文書に保管するデータを定義します。 この定義は、データの編成と計算を行うための表示フォーム上の隠しフィールドの使い方に似ています。 Site フォームには、文書を作成するためのデータフィールドと説明テキストが含まれています。 これはユーザーに表示されることはないため、レイアウトは重要ではありません。
  • ビューは、文書の集合とその順序を定義するために XPage によって使用されます。 データに索引を付けて、データにプログラマチックにアドレスできるようにするためだけにビューを使用することもできます。[SiteList] ビューは、データ文書の索引としての機能を果たします。 これは、サイト名でソートされているすべての文書の内容をリストします。 ビューは文書を編成するための強力な手段であるため、さまざまなサブセットとソート順序を表示する複数のビューを用意するのが一般的です。

アプリケーションが展開されていることを確認して、以下の手順を実行します。

  1. [XPages] をダブルクリックします。

    このアクションによって、XPage 要素のリストが中央ペインに表示されます。

  2. [新規 XPage] をクリックします。
  3. 新しい XPage に [SiteList] という名前を付けます。 (.xsp 拡張が想定され、自動的に追加されます。)

    名前にスペースを使用することは可能ですが、通常スペースを使用しない方が名前が明確になります。

  4. [OK] をクリックします。 空の XPage 設計要素が中央ペインに作成されます。
  5. 以下のようにして、ページにヘッダーグラフィックスを配置します。
    1. [コアコントロール] から、[イメージ] を選択して XPage にドラッグします。 [イメージの選択] ウィンドウが表示されます。
    2. xpTitlebarLeft_ren.gif を選択します。

      [イメージの選択] ウィンドウは、下の画面キャプチャのようになります。

      [イメージの選択] ウィンドウ

    3. [OK] をクリックします。

    画面キャプチャに表示されるイメージは、プリロードされています。 リストに表示されている各イメージは、現在のデータベースのリソースです。 [追加] ボタンを使用すると、追加のイメージをインポートできます (別の方法でイメージをインポートすることも可能です)。

    [OK] をクリックすると、イメージがヘッダーとして表示されます。

  6. ヘッダーイメージの右横にある空白のスペース内をクリックするか、矢印を押して右方向に移動します。 スペースが表示されていない場合は、必要に応じてその方向にスクロールしてください。 Enter を押して、カーソルを次の行に移動します。
  7. ヘッダーテキストを以下の手順で入力します。
    1. XPage で、ヘッダーの下の空白行をクリックします。
    2. サイトのリスト」と入力して、Enter を押します。
    3. テキストの行を強調表示します。
    4. 下部ペインで、[フォント] をクリックして、必要に応じてフォントを変更します (太字、14、青など)。
    フォーマット設定を制御する別の方法として、後でスタイルシートを追加し、このテキストに適用します。
XPage の設計は、下の画面キャプチャのようになります。

SiteList XPage

経験のある Web 開発者は、文書を構造化する要素 (H1H2 など) を使用したいと考えることでしょう。 設計ユーザーインターフェースはこの構造をサポートしていませんが、ソースユーザーインターフェースを使用すると、必要に応じて XML を入力することができます。 ページを XML として表示および編集するには、[ソース] タブをクリックします。 チュートリアルに戻るには、[設計] タブをクリックします。

ビューコントロールを追加する

XPage ビューコントロールは、定義済みビューの情報を表示するために使用します。 このレッスンで作成するコントロールを使用して、SiteList ビューのデータを表示することができます。

SiteList XPage が中央ペインで開いていることを確認して、以下の手順を実行します。
  1. [コンテナコントロール] から、[ビュー] を選択して XPage にドラッグします。
  2. [ビューのデータソースの選択] ウィンドウで、以下の手順を実行します。
    1. [データの表示元] の設定を [Domino ビュー] のままにしておきます。
    2. [アプリケーション] の設定を [現在の] のままにしておきます。

      任意の Domino アプリケーションを選択できますが、 そのアプリケーションがランタイムサーバーで使用可能にならなければビューコントロールは機能しません。

    3. [ビュー] ドロップダウンリストで、[SiteList] を選択します。
    4. データソース名として [view1] を受け入れます。

      この名前は、サーバーサイド JavaScript コードで使用できます。

    5. 最後にある列のリストで、[サイト名][住所][市区町村][サイトタイプ] のチェックマークが付けられたままにしておきます。

    ウィンドウは、下の画面キャプチャのようになります。

    [ビューのデータソースの選択] ウィンドウ

  3. [OK] をクリックします。

    ビューを表す表が表示されます。 4 つの列はビューの列を表し、2 つの行は列タイトルと列の内容を表しています。 最初の行には、ユーザーがビュー内のデータをナビゲートするためのページャコントロールが含まれます。

  4. ビューコントロールを、以下のように調整します。
    1. 列のサイズを変更するには、最初の行のセルをクリックして [Shift] キーを押しながら 2 番目のセルをクリックすることによって 1 つの列で両方の行を選択してから、いずれかのセルのハンドルをドラッグします。
    2. ヘッダー行の最初のセルをクリックして [Shift] キーを押しながら行内の残りのセルをクリックすることにより、ヘッダー行全体を選択します。 [Ctrl] + [B] を押すか、フォントプロパティを使用して、これらのセルを太字にします。
  5. ビューコントロールの最初の列で文書をクリックすることによりユーザーが文書を開くことができるようにします。
    1. 左下のセル (サイト名) の中をクリックします。
    2. 下部ペインの [プロパティ] タブで [表示] をクリックします。
    3. [列の値をリンクとして表示する] を選択します。

    ページは、下の画面キャプチャのようになります。

    ビューコントロールが表示された SiteList XPage

  6. ビューコントロールを編集ページにリンクします。
    1. ビューコントロールをクリックして、ビュー全体をフォーカスします。
    2. 下部ペインの [プロパティ] タブで [ビュー] をクリックします。
    3. 最後にある [実行時に、選択した文書を次の設定を使用して開く] ドロップダウンリストから [Site1] を選択します。
  7. ページを保存してプリビューします。
    1. 実際の XPage 自体をクリックして、ページ自体をフォーカスします。

      ページをフォーカスするには、サイドペインで [アウトライン] > [ルート文書] > [XPage] をクリックするという方法もあります。 このアクションによって、ページ自体がフォーカスされます。ページで特定の設計要素をフォーカスするには、アウトラインで該当する要素をクリックします。

    2. [Ctrl] + [S] を押して、ページを保存します。
    3. [設計] > [Web ブラウザでのプリビュー] > [デフォルトのシステム Web ブラウザ] または別の任意のブラウザをクリックします。 リストの文書をクリックします。 その文書が [Site] XPage で開きます。 このウィンドウで文書を変更して、[送信] をクリックすると文書を保存できます。 ページを送信しても、自分がページから移動することはないため、引き続き同じ文書を編集して保存することができます。
      変更を保存してブラウザを更新するには、次のようにいくつかの方法があります。
      • このチュートリアルで使用する [送信] タイプのボタンで、データソースを更新してページを更新する。
      • [ボタン] ボタンを使用すると、シンプルアクションまたは JavaScript を onclick イベントに付加することができます。 このイベントを使用して、データソースを更新し、ユーザーを別のページにリダイレクトします。
      • ページイベントで、シンプルアクションまたは JavaScript を postSaveDocument イベントに添付する。 [送信] ボタンをページに配置して、postSaveDocument イベントでユーザーを別のページにリダイレクトできます。

      XPage は SiteList1 のようになります。開いて比較することができます。

  8. ブラウザを閉じます。

編集用の XPage を作成する

フォームを使用して Web ページを設計することもできますが、XPage では、より多くの UI オプションを使用することができ、より少ない労力で、外観をさらに詳細に制御することができます。 データバインディング用にフィールドのリストを提供するためのフォームも用意しておくと便利です。 XPage にコードを用意するのではなく、フォームを使用して、計算結果フィールドをフィールド式によって計算することもできます。

このレッスンでは、ページにテキストを追加する方法、ページにコントロールを追加する方法、スタイルシートでページの外観を調整する方法、ページにデータソースをバインドする方法について学習します。 多くのステップがありますが、一つずつ取り上げます。

以下の手順を実行します。

  1. XPage のリストの先頭で、[新規 XPage] をクリックします。 または、右クリックして [XPage] > [新規 XPage] を選択します。
  2. 新しい XPage に「サイト」という名前を付けて、[OK] をクリックします。 XPage とフォームの名前は同じにする必要はありませんが、同じ名前にしておくとよいでしょう。 これらに同じ名前を付けると、このチュートリアルには含まれていない特定の自動動作が可能になります。
  3. 以下のようにして、スタイルシートをページに追加します。
    1. 最後のペインで [スタイル] をクリックします。
    2. 末尾までスクロールし、[スタイルシートをページに追加する] をクリックします。
    3. [スタイルシートをページに追加する] ボックスで、[styles.css] を選択します。
    4. [OK] をクリックします。
    これらの CSS ファイルは、サンプルアプリケーションに組み込まれているスタイルシート設計要素です。
  4. 以下のように、ページのタイトルを追加して、スタイルを設定します。
    1. XPage で、ページのタイトル (「サイトの説明」など) を入力して、Enter を押します。
    2. テキストを強調表示します。
    3. 最後にあるペインで、[スタイル] をクリックします (まだフォーカスされていない場合)。
    4. [styles.css] の下のリストで、[.title] をクリックします。
    選択したスタイルに合わせてテキストの体裁が変更されます。
  5. 以下のようにして、XPage を Domino バックエンドデータストアに関連付けます (バインドします)。
    1. XPage のテキスト以外の部分をクリックして、ページ自体をフォーカスします。
    2. 下部ペインの [プロパティ] で、[データ] をクリックします。
    3. [追加] をクリックして、[Domino 文書] を選択します。

      document1 という名前のデータソースが表示されます。

    4. ペインの端のほうにある [フォーム] で、ドロップダウンリストから [Site] を選択します。

      これで、XPage が Site フォームのデータ定義に関連付けられます。

  6. 以下のようにして、データパレットをセットアップします。
    1. ペインの最下部にある [データパレット] リンクをクリックします。 [データ] タブがサイドペインに表示されます。[ウィンドウ] > [Eclipse ビューの表示] > [データ] をクリックして、[データ] タブを表示することもできます。
    2. [データ] タブで、[データソース][document1] を選択します。 新規データソースがデータパレットに表示される前に、XPage をフォーカスしておく必要があります。

      フィールド名とデータソースのタイプが、データソースの名前の下に表示されます。

    3. [データ] タブの左上隅で、[コントロールの選択ダイアログボックス] のアイコンをクリックして有効にします。

      [コントロールの選択ダイアログボックス] のアイコンは、以下のとおりです。

  7. データパレットのすべてのフィールドを選択して、XPage のタイトルの下にドラッグします。

    [データバウンドコントロールの選択] ダイアログボックスが開きます。

  8. 以下のようにダイアログボックスに入力します。
    1. すべてのチェックボックスにチェックマークを付けたままにしておき、フィールドを組み込むことを指定します。
    2. ラベルのテキストはすべてそのままにします。
    3. [サイトタイプ]を選択し、ドロップダウンメニューを使用して、そのコントロールタイプを [コンボボックス] に変更します。
    4. [Amenities] のコントロールタイプを [リストボックス] に変更します。
    5. [方向] のコントロールタイプを [複数行入力域ボックス] に変更します
    6. [生成されたコードに送信ボタンを追加する] にチェックマークを付けます。
    7. [生成されたコードにメッセージコントロールを追加する] にチェックマークを付けます。

    ダイアログボックスは、以下のようになります。

    [データバウンドコントロールの選択] ダイアログボックス

  9. [OK] をクリックします。

    これで、最初の列にラベル、2 番目の列にコントロールが表示された 2 列の表が作成されます。 2 番目の列には、検証エラーと [送信] ボタンを表示するための領域もあります。

  10. [サイトタイプ] フィールドにフォーカスを移動して、以下のように調整します。
    1. 最後のペインの [プロパティ] にある [データ] をクリックし、デフォルト値として「オフィス」と入力します。
    2. サイトタイプとして他の選択項目を追加するには、[プロパティ] に続いて [値] をクリックします。 [項目の追加] を 3 回クリックします。 各項目のラベルを選択して、[無題] から [オフィス][小売店][レストラン] に変更します。

      格納された値が表示値と異なっていない限り (ここでは当てはまりません)、[値] に何も入力する必要はありません。

  11. [Amenities] フィールドにフォーカスを移動して、以下のように調整します。
    1. 最後のペインの [プロパティ] にある [リストボックス] をクリックして、[複数選択を許可する] にチェックマークを付けます。
    2. [プロパティ] にある [値] をクリックします。 [項目の追加] を 4 回クリックします。 各項目のラベルを選択して、[無題] [カフェテリア][フィットネスセンター][ビジターセンター][エグゼクティブブリーフィングセンター] に変更します。
    3. 列 1 のセル内部でラベルコントロール ([アメニティ: (Amenities:)]) 以外の場所をクリックします。 [プロパティ] にある [表のセル] をクリックして、[セルの縦位置][上] を選択します。

      これで、ラベルがセルの先頭に位置合わせされます。

    アメニティにチェックボックスを使用する場合は、リストボックスを削除して、[コントロール] パレットからチェックボックスグループをドラッグします。 [プロパティ][データ] をクリックし、[バインド先] ドロップダウンメニューから [Amenities] を選択して、チェックボックスグループをバインドします。前述のステップ 11 のように、[値] タブに値を入力します。

    [City][searchCity] の両方のフィールドが用意されているのは、実際のサイト名とは異なる市区町村を検索できるようにするためです。 例えば、サンプルサイトの 1 つが Brighton (Boston 近郊) にある場合に、検索では Boston を指定します。 ただし、国ついては、実際の国と検索する国は同じであると想定しています。

    XPage は、以下のようになります。

    サイトの説明 XPage

    この時点で、XPage は、Site1 (比較対象として開くことができる) と類似したページになっています。

  12. 表を調整して、ページが編集可能になっていない場合に、[送信] ボタンを含む行が非表示になるようにします。 小規模な JavaScript が必要です。
    1. [送信] ボタンを含む表のセル (ボタンではなくセル) をクリックします。
    2. 下部ペインの [プロパティ] で、[表のセル] をクリックします (まだ選択されていない場合)。
    3. [表示] の横にあるひし形をクリックして、[値の計算] をクリックします。 スクリプトエディタが開きます。
    4. スクリプトエディタで、グローバル変数のリストの [document1] をダブルクリックして、ピリオドを入力します。

      グローバル変数 document1 は、XPage が表示している現在の文書を表す、NotesXspDocument タイプのオブジェクトです。 ピリオドを入力すると、そのオブジェクト用のメソッドのリストが表示されます。

    5. メソッドのリストを末尾までスクロールし、[isEditable()] をダブルクリックします。
      これは、文書が編集可能である場合は true、そうでない場合は false を返します。 式は、以下のようになります。
      document1.isEditable()
    6. [OK] をクリックします。

      スクリプトエディタが閉じ、コードが保存されます。

    このコードは、戻り値が false の場合、ボタンを含むセルを非表示にします。 セルではなくボタンを非表示にすることもできます。
  13. XPage で、コントロール以外の部分をクリックしてページをフォーカスし、[Ctrl] + [S] を押してページを保存します。
  14. [設計] > [Web ブラウザでのプリビュー] > [デフォルトのシステム Web ブラウザ] (または別のブラウザ) をクリックします。 値を入力して [送信] をクリックすることにより、アプリケーションをテストできます。 これで、新規文書がデータベースに入ります。 文書のリストを表示するには、IBM Notes クライアントを使用します。 作業が完了したら、ブラウザを閉じます。

    この時点で、XPage は、SiteFinal (比較対象として開くことができる) に類似したページになっています。

  15. 中央ペインの右上にある X をクリックして、Site XPage を閉じます。

文書を追加および削除するためのコントロールを作成する

SiteList XPage では、アプリケーションの文書を表示および編集することはできますが、文書を作成および削除するためのコントロールを追加する必要があります。

以下の手順を実行します。
  1. SiteList XPage で、最初の列 (ヘッダーではない) をクリックしてフォーカスします。
  2. [プロパティ] で、[表示] をクリックします。
  3. [チェックボックス] にチェックマークを付けます。 各行の先頭にチェックボックスが表示されます。 ユーザーは、ボックスにチェックマークを付けることによって行を選択できます。
  4. XPage で、タイトルの末尾をクリックして Enter を押すことで、タイトルとビューコントロールの間にブランク行を挿入します。
  5. 右ペインにコントロールのリストが表示されていない場合は、[コントロール] タブをクリックするか、[ウィンドウ] > [Eclipse ビューの表示] > [コントロール]をクリックします。
  6. タイトルの下の空白行に [ボタン] コントロールをドラッグして、以下の手順を実行します。
    1. 下部ペインの [プロパティ] で、[ボタン] をクリックします (まだフォーカスされていない場合)。
    2. ラベルを New Site に変更します。
    3. [イベント] タブをクリックします。
    4. onClick イベントが選択されていることを確認します。
    5. [アクションの追加] をクリックします。 [シンプルアクションの追加] ダイアログボックスが開きます。 カテゴリとして [すべて]、アクションとして [ページを開く] が表示されます。 このようになっていない場合は、調整してください。
    6. 開くページの名前として Site を選択します。
    7. ターゲット文書に [新規文書] を選択します。
    ダイアログボックスは、以下のようになります。

    [シンプルアクションの追加] ダイアログボックス

  7. [OK] をクリックします。
  8. 2 番目の [ボタン] コントロールを最初の [ボタン] コントロールの横にドラッグして、以下の手順を実行します。
    1. 下部ペインの [プロパティ] タブをクリックして、[ボタン] をクリックします (まだフォーカスされていない場合)。
    2. ラベルを Delete Selected に変更します。
    3. [イベント] タブをクリックします。
    4. onclick が選択されていることを確認します。
    5. [アクションの追加] をクリックします。
    6. カテゴリに [文書] を選択します。
    7. アクションに [選択文書の削除] を選択します。
    8. ビュー名に [viewPanel1] を選択します。

      ビューコントロールの名前が異なる場合は、自分でつけた名前のビューコントロールを選択します。

    9. 確認テキストとして、「チェックマークを付けたサイトを削除しますか?」と入力します。

    ダイアログボックスは、以下のようになります。

    [シンプルアクションの追加] ダイアログボックス

  9. [OK] をクリックします。
  10. [Ctrl] + [S] を押して、ページを保存します。
  11. 必要に応じてページをプリビューします。
  12. 中央ペインの右上にある X をクリックして、SiteList XPage を閉じます。
この時点で、XPage は SiteListFinal (比較対象として開くことができる) と類似したページになっています。

検索用の XPage を作成する

このページを使用して、検索パラメータを指定し、結果を表示します。 検索パラメータは、市区町村、都道府県、国、郵便番号の値です。 ユーザーは、どのパラメータにも値を入力してボタンをクリックすることができます。 ページが更新され、結果がビューとして表示されます。 ビューの検索プロパティでは、検索パラメータと一致する文書のみが表示されます。

以下の手順を実行します。
  1. XPage のリストの先頭で、[新規 XPage] をクリックします。 または、サイドペインで右クリックして [XPage] > [新規 XPage] を選択します。
  2. 新しい XPage に「サイトファインダー」という名前を付けて、[OK] をクリックします。
  3. 右ペインの [カスタムコントロール] で、[ヘッダー] カスタムコントロールを XPage にドラッグします。

    これは SiteList XPage に配置するのと同じイメージですが、保守しやすくするために、カスタムコントロールに配置されています。 カスタムコントロールは、サブフォームに似ています。

  4. 以下のようにして、スタイルシートをページに追加します。
    1. コントロールではなく実際のページをクリックして、ページをフォーカスします。
    2. 下部ペインの [プロパティ] で、[スタイル] をクリックします。
    3. 末尾までスクロールし、[スタイルシートをページに追加する] をクリックします。
    4. [スタイルシートをページに追加する] ボックスで、[styles.css] を選択します。
    5. [OK] をクリックします。
  5. 以下のようにして、タイトルを追加します。
    1. XPage のヘッダーの後の部分で Enter を押し、ページのタイトル (例えば、「サイトファインダー」) を入力して、もう一度 Enter を押します。
    2. テキストを強調表示します。
    3. 下部ペインで、[スタイル] をクリックします (まだフォーカスされていない場合)。
    4. [styles.css] の下のリストで、[.title] をクリックします。
    選択したスタイルに合わせてテキストの体裁が変更されます。
  6. タイトルテキストの下に、ユーザーへの説明 (例えば、「これらのフィールドのいずれかまたはすべてに入力して [検索] をクリックします」) を入力して、Enter を押します。
  7. 以下のようにして、4 つの行と 2 つの列を持つ表を作成します。
    1. 右ペインの [コンテナコントロール] から、[表] を XPage の説明の下にドラッグします。

      [表の挿入] ダイアログボックスが表示されます。

    2. [表の挿入] ダイアログボックスで、行に 4、列に 2 を指定します。
    3. [OK] をクリックします。
    4. グラブハンドルを使用して、表の幅を調整します。
  8. 列 1 の各セルで、以下の手順を実行します。
    1. 右ペインの [コアコントロール] から、[ラベル] をセルにドラッグします。
    2. 下部ペインで、コントロールのラベルを「市区町村」(行 1)、「都道府県」(行 2)、「国名」(行 3)、「郵便番号」(行 4) に変更します。
  9. 列 2 の各セルで、以下の手順を実行します。
    1. サイドペインの [コアコントロール] から、[編集ボックス] をセルにドラッグします。
    2. 下部ペインの [プロパティ] で、[編集ボックス] をクリックします。
    3. 名前を「市区町村の検索」(行 1)、「都道府県の検索」(行 2)、「国の検索」(行 3)、「郵便番号の検索」(行 4) に変更します。
    4. 下部ペインの [プロパティ] で、[データ] をクリックします。
    5. [次を使用してデータをバインド] で、[詳細情報] をクリックします。
    6. [使用] ドロップダウンメニューから、[スコープ付き変数] を選択します。
    7. [パラメータ] リストボックスから、[セッションスコープ] を選択します。
    8. 末尾までスクロールし、変数名に「市区町村の検索」(行 1)、「都道府県の検索」(行 2)、「国の検索」(行 3)、「郵便番号の検索」(行 4) を入力します。
    これらの編集ボックスをスコープ付き変数にバインドすると、データストアではなく JavaScript コードの値にアクセスできるようになります。 セッション変数は、サーバーでのユーザーセッションの存続期間中に複数のページにわたって値を保持します。
  10. 以下の手順を実行して、ページを送信および更新するためのボタンを作成します。
    1. サイドペインの [コアコントロール] から、[ボタン] を表の下の行にドラッグします。
    2. 下部ペインで、コントロールのラベルを「検索」に変更します。
    3. ボタンの種類のドロップダウンリストから、[送信] を選択します。
    このボタンをクリックすると、ページがサーバーに送信され、ユーザーが入力した値に基づいてページの内容が更新されます。
  11. 以下の手順を実行して、結果を取得するための照会を表示します。
    1. XPage の次の行に「照会ストリング:」とスペースを入力します。
    2. 右側の [コアコントロール] から、[計算結果フィールド] をページにドラッグします。
    3. 下部ペインの [プロパティ] で、[フォント] をクリックします。 色を青に変更します。
    4. 下部ペインの [プロパティ] で、[値] をクリックします。
    5. [次を使用してデータをバインド] で、[詳細情報] をクリックします。
    6. [使用] ドロップダウンメニューから、[スコープ付き変数] を選択します。
    7. [パラメータ] リストボックスから、[セッションスコープ] を選択します。
    8. 末尾までスクロールし、変数名に「ストリングの照会」と入力します。

      変数名は、任意の名前にすることができ、特別な意味はありません。 変数への値の割り当ては、後で行います。

    これで、後で計算した照会を表示できるようになります。 この表示は、実動アプリケーションではおそらく不要ですが、テストを行う場合には便利です。
  12. サイドペインの [コンテナコントロール] から、[ビュー] をページの次の行にドラッグします。
    1. [データの表示元] の設定を [Domino ビュー] のままにしておきます。
    2. [アプリケーション] の設定を [現在の] のままにしておきます。
    3. [ビュー] ドロップダウンリストで、[SiteList] を選択します。
    4. データソース名として [view1] を受け入れます。
    5. 最後にある列のリストで、[サイト名][電話][住所][市区町村][都道府県] 以外のすべてのチェックマークを外します。 これは変更可能で、表示する列を選択できますが、[サイト名] は必ず選択してください。
    6. [OK] をクリックします。
  13. 下部ペインの [プロパティ] で、[ビュー] をクリックします。 [実行時に、選択した文書を次の設定を使用して開く] で、[サイト] を選択します。
  14. 下部ペインの [プロパティ] で、[データ] をクリックします。 ビューが [SiteList] に設定されていることを確認します。
  15. 次に、検索照会を設定して、ユーザーが検索フィールドに入力した内容を満たす文書のみがビューに表示されるようにします。 以下の手順を実行します。
    1. 下部ペインの [プロパティ] で、[すべてのプロパティ] をクリックします。
    2. 末尾までスクロールします。[データ] を展開してから、次に出現する [データ] を展開します。 [検索] プロパティを選択します。

      画面は、以下のようになります。

      [検索] プロパティ

    3. [検索] プロパティの横にあるひし形をクリックして [値の計算] を選択します。

      スクリプトエディタが開きます。

    4. 以下のコードをスクリプトエディタに入力します。 言語がサーバーサイドの JavaScript になっていること、および [動的に計算する] が設定されていることを確認してください。
      var tmpArray = new Array("");
      var cTerms = 0;
      if(sessionScope.searchZip != null & sessionScope.searchZip != "") {
      	tmpArray[cTerms++] = "(FIELD SearchZip = ¥"" + sessionScope.searchZip + "¥")";
      }
      if(sessionScope.searchCity != null & sessionScope.searchCity != "") {
      	tmpArray[cTerms++] = "(FIELD SearchCity = ¥"" + sessionScope.searchCity + "¥")";
      }
      if(sessionScope.searchState != null & sessionScope.searchState != "") {
      	tmpArray[cTerms++] = "(FIELD SearchState = ¥"" + sessionScope.searchState + "¥")";
      }
      if(sessionScope.searchCountry != null & sessionScope.searchCountry != "") {
      	tmpArray[cTerms++] = "(FIELD Country = ¥"" + sessionScope.searchCountry + "¥")";
      }
      qstring = tmpArray.join(" AND ").trim();
      sessionScope.queryString = qstring; // this just displays the query
      return qstring // this is what sets the search property

      ここでは演習を行いませんが、このコードは関数の形式にしてスクリプトライブラリに入れることができます。 その後、スクリプトライブラリをリソースとしてページに追加し、単純参照によって関数にアクセスできるようになります。 これにより、コードを中央で保守しながら、複数の場所で使用できます。

    5. [OK] をクリックします。
    このコードは、これらの編集ボックスにバインドされたセッションスコープ変数を使用して、ユーザーがページに入力する値を取得します。 コードは、[searchZip][searchCity][searchState][国] の各フィールドの文書の値と一致する照会ストリングを作成して返します。

    便宜上、検索する文書で使用されているのと同じフィールド名を使用しますが、任意の名前を使用できます。

  16. 以下の手順を実行して、最初の列を調整し、ユーザーが文書を読み取りモードで開くことができるようにします。
    1. XPage で、ビューの最初の列の内部をクリックします。
    2. 下部ペインの [プロパティ] で、[表示] をクリックします。
    3. [列の値をリンクとして表示する]にチェックマークを付けます。
    4. [文書を開くモード] で、[読み取り専用] をクリックします。

    検索結果を見ている Web ユーザーは、リンク先の文書を編集することはできません。 実際のアプリケーションでは、アクセス制御リストを使用することもできます。

  17. 変更を保存して、新しい検索画面をプリビューします。
  18. 必要に応じてページをプリビューします。 検索を試行します。例えば、郵便番号を 02108 または 33432、市区町村を Boca Raton または Boston、都道府県を MA、国を France と指定します。
  19. 中央ペインの右上にある X をクリックして、SiteFinder XPage を終了します。
この時点で、XPage は、SiteFinderFinal (比較対象として開くことができる) と類似したページになっています。

ここで説明したプロセスは、1 つの方法であり、必ずしも検索機能を編成するための最善の方法ではありません。 [検索] ボタンには、JavaScript コードのデータソースの検索プロパティを割り当てることもできます。 この方法を使用すると、さらに容易に、ページ上で照会情報の複数のソースを用意したり、さまざまな検索のタイプごとに複数の検索ボタンを用意したりすることができます。

他のコントロールを使用して、結果の書式を整えることができます。例えば、[データ表] は、検索結果のレイアウトをより細かく制御することができるため、多くの場合、ビューの代わりに使用されます。ただし、[ビュー] コントロールは、非常にシンプルで使いやすいです。

アプリケーションの管理

IBM Domino Designer には、アプリケーションプロジェクトを開発する機能に加えて、作業と関連ファイルを管理するための機能が用意されています。

現在の中心機能であるソース制御の有効化を使用することにより、NSF ベースの設計要素をソース制御リポジトリに保管し、IBM Domino Designer を使用して一般的なソース制御操作を実行できます。 この機能は、ソース制御によって管理されるオンディスクプロジェクトと IBM Domino Designer が追跡する仮想 NSF ベースプロジェクトの間の関連付けを可能にすることにより実現されます。

この機能が提供されているのは、SVN ソース制御クライアントと IBM Domino Designer を極力シームレスに統合し、IBM Domino Designer が可能な限り「ソース制御システムにとらわれない」状態を保てるようにするためです。

この資料は、以下の製品を参照します。 IBM Domino, IBM Domino Designer、IBM Notes、IBM iNotes、 IBM Notes Traveler

IBM Domino Designer でのソース制御

ソース制御操作は、IBM Domino Designer を使用することによって実行できます。 このセクションには、この機能を使用可能にするソース制御の有効化機能を使用するために必要な情報がすべて記載されています。

ソース制御の有効化

ソース制御の有効化機能は、NSF ベースの設計要素をソース制御リポジトリに保管し、IBM Domino Designer を使用して一般的なソース制御操作を実行できるようにするために導入されました。

SVN や CCRC などの Eclipse ベース (オープンソース) のソース制御クライアントは、物理ファイルに対して動作します。 そのため、それらのクライアントは、NSF ベースの設計要素への仮想ファイルマッピングを含む Designer プロジェクトを直接処理することができません。 処理できるのは、ディスクに保存されたプロジェクトのみです。 したがって、ソース制御操作を実行するには、仮想 NSF プロジェクトをミラーリングするディスク上のプロジェクトに対して作業する必要があります。

これを解決するため、IBM Domino Designer のソース制御の有効化機能が導入されました。この機能により、NSF ベースの設計要素をソース制御リポジトリに保管し、IBM Domino Designer を使用して一般的なソース制御操作を実行することができます。 この機能は、ソース制御によって管理されるオンディスクプロジェクトと Designer が追跡する仮想 NSF ベースプロジェクトの間の関連付けの作成を可能にすることにより実現されます。 実際、このステップは、基本的なソース制御操作を実行する前に完了しておく必要がある前提条件です。

最後に、この機能を使用することにより、SVN ソース制御クライアントと IBM Domino Designer を極力シームレスに統合し、IBM Domino Designer が可能な限り「ソース制御システムにとらわれない」状態を保てるようになります。

前提条件: ソース制御の有効化で使用するバージョンソース制御システムの設定

このトピックでは、ソース制御の有効化機能を使用できるように、まずバージョンソース制御システムを設定する方法について説明します。

このタスクについて

オープンソースのバージョンソース制御システム (Subversion® など) により、プロジェクトの保管先となるリポジトリでそれらのプロジェクトを共有できます。 リポジトリはファイルサーバーに似ていますが、ファイルシステムのコピーを保管するだけでなく、以前の状態と変更履歴を保管するところが異なります。 Subversion® のようなソース制御システムは、ネットワーク接続を使用してリポジトリにアクセスします。 これにより、共有ファイルに対して作業を行い、他の開発者によって加えられる可能性があるすべての変更を監視することができます。

IBM Domino Designer でソース制御の有効化機能を使用できるようにするには、SVN/Clearcase (ソフトウェアのバージョン管理とリビジョン管理システム) のソース制御プラグインをインストールし、Designer で動的にプロビジョニングしておくことが前提です。 ガイドラインとして、ソース制御の有効化機能を使用するには、以下のステップを完了しておく必要があります。

手順

  1. オープンソースのバージョンソース制御システムをインストールして構成する
  2. Subversion サーバーでリポジトリを作成する (Subversion ソフトウェアの資料を参照)
  3. [新規] - [リポジトリの場所 (Repository Location)] - [新規リポジトリパネル (New Repository Panel)] をクリックし、サーバーの URL とユーザーの資格情報を入力してソース制御サーバーに新規リポジトリを登録する。

次のタスク

まだオープンソースのバージョンソース制御システムをインストールしていない場合は、以下のステップに従って Subversion® システムをインストールできます。
注: 注: このバージョンでは、最低でも Eclipse 3.3 を必要とし、前のバージョンの Eclipse IDE はサポートしていません。
  • Eclipze プラグインのインストールを有効にするプリファレンスを選択することにより、[アプリケーション] - [インストール] メニューを有効にします。
  • サイト http://www.eclipse.org/subversive/downloads.php のリストにある SVN Eclipse プラグインの更新をインストールします。 Helios Release を使用してください。 GEF (3.4 以降) は Subversion プラグインの前提条件であるため、前述の GEF プラグインのインストールも求められます。
  • このプラグインをインストールしたら、更新サイト (http://community.polarion.com/projects/subversive/download/eclipse/2.0/helios-site/) から、関連する SVN コネクタをインストールします。 この処理の間に、各コネクタプラグインについてプロンプトが出される場合があります。
  • これら両方の更新サイトが正常にインストールされたことを確認するには、[SVN リポジトリの探索パースペクティブ (SVN Repository Exploring Perspective)] を IBM Domino Designer で開いて、Subversion サーバーに接続できるかどうかを検証します。
注: 前述のインストールシナリオの例は、以下のプラグインバージョンを使用してテストされました。
  • Subversive プラグイン: Subversive-incubation-0.7.9.I20100512-1900.zip
  • Subversive コネクタ: Subversive-connectors-2.2.2.I20100512-1900.zip
最新のバージョンやこれらより新しいバージョンではなく、これらのバージョンを使用することを強くお勧めします。 その他のバージョンを使用する場合は、例にあるバージョンに近いバージョンを使用することをお勧めします。
注: デフォルトでは、Subversive ソース制御プラグイン (さらに場合によっては、その他のソース制御製品プラグイン) によって、最新バージョンの Graphical Editing Framework (GEF) がインストールされます。GEF 3.6.2 より新しいバージョンがインストールされていると、Designer で編集用に XPage を開いたときに、XPage が正しく表示されません。

この問題を解決するには、Subversive プラグイン (か、その他のソース制御製品プラグインのいずれか適切なほう) のインストール時に、バージョン 3.6.2 以前の特定バージョンの Graphical Editing Framework (GEF) をインストールしてください。バージョン 3.6.2 を推奨します。これを行うには、インストール手順中に、[更新サイトごとのフィーチャーの最新バージョンのみを表示する] チェックボックスのチェックマークを外します。 .../gef/updates/releases/ フィーチャーを展開し、[GEF SDK 3.6.2] を選択してください。

ソース制御の有効化機能の設定

以下のトピックでは、日々のソース制御操作の一環として IBM Domino Designer のソース制御の有効化機能を使用するために完了しておく必要がある、初期設定タスクに関する情報を提供します。

  • オンディスクプロジェクトと NSF の間の関連付けの作成
  • NSF と既存のオンディスクプロジェクトの関連付け
  • 初期同期操作の方向の設定
  • NSF と新規オンディスクプロジェクトの関連付け
  • ソース制御の有効化機能のプリファレンスの設定

始めに: オンディスクプロジェクトと NSF の間の関連付けの作成

ソース制御の有効化機能を使用するには、ソース制御によって管理されるオンディスクプロジェクトと Designer で使用する仮想 NSF ベースのプロジェクトの間の関連付けを作成する必要があります。

SVN や CCRC などの Eclipse ベース (オープンソース) のソース制御クライアントは、物理ファイルに対して動作します。 そのため、それらのクライアントは、NSF ベースの設計要素への仮想ファイルマッピングを含む Designer プロジェクトを直接処理することができません。 処理できるのは、ディスクに (オンディスクプロジェクトとして) 保存されたプロジェクトのみです。 したがって、ソース制御操作を実行するには、仮想 NSF プロジェクトをミラーリングするディスク上のプロジェクトを使用する必要があります。

このために、ソース制御の有効化機能を使用するには、ソース制御によって管理されるオンディスクプロジェクトと Designer で使用する仮想 NSF ベースのプロジェクトの間の関連付けを作成する必要があります。 このステップは、基本的なソース制御操作を実行する前に完了しておく必要がある前提条件です。

以下に、この関連付けを作成するために完了する必要がある一般的なステップを示します。

  • Designer で NSF アプリケーションを開いたか、作成したことを確認します。
  • アプリケーションナビゲータで、オンディスクプロジェクトと関連付ける NSF を選択し、右クリックによるコンテキストメニューで、[チーム開発] - [既存のオンディスクプロジェクトに関連付ける] を選択します。 IBM Domino Designer のソース制御の有効化機能は、仮想NSF プロジェクトとオンディスクプロジェクトの間の関連付けまたはマッピングを作成することによって動作します。 このメニュー選択項目を選択すると、この関連付けが完了します。

NSF と既存のオンディスクプロジェクトの関連付け

ソース制御の有効化機能により、ソース制御によって管理される既存のオンディスクプロジェクトと Designer が使用する仮想 NSF ベースのプロジェクトの間の関連付けを作成できます。

このタスクについて

以下のステップに従って、Designer アプリケーション (.NSF) とオンディスクプロジェクト(ODP) の間の関連付けまたはマッピングを作成します。 この作業は、[オンディスクプロジェクトに関連付ける...] パネルで行います。

手順
  1. IBM Domino Designer で NSF アプリケーションを開くか、作成します。
  2. 作成した NSF を選択し、メニューから [チーム開発] - [既存のオンディスクプロジェクトに関連付ける...] を選択します。 これにより、[オンディスクプロジェクトに関連付ける] パネルが開きます。このパネルで、既存のオンディスクプロジェクトを選択すると共に、関連付けが作成された後に実行される初期同期操作の方向を選択します。デフォルト設定は、[オンディスクプロジェクトから nsf_filename へのインポート (Import from on-disk project into nsf_filename)] です。
  3. 同期設定の詳細については、「初期同期操作の方向の設定」のトピックを参照してください。

初期同期操作の方向の設定

このトピックでは、NSF とオンディスクプロジェクトの間の関連付けを作成するときに実行される、初期同期操作に設定可能な方向について説明します。

NSF とオンディスクプロジェクトの間の関連付けを作成するときには、初期同期操作の方向を選択する必要があります。 これは、以下のいずれかになります。

  • nsf ファイル名 から、選択したオンディスクプロジェクトへのエクスポート -- 初期方向をこれに設定すると、初期同期操作により、仮想 NSF プロジェクトからオンディスクプロジェクトにすべてのコンテンツを適切な形式でエクスポートされます。その後コンテンツを、ソース制御リポジトリにコミットできます。
  • 選択したオンディスクプロジェクトから nsf ファイル名 にインポートする -- 初期方向をこれに設定すると、初期同期操作により、ディスクベースプロジェクトからのコンテンツを使用して NSF プロジェクトが更新されます。

NSF と新規オンディスクプロジェクトの関連付け

ソース制御の有効化機能により、新規オンディスクプロジェクトと NSF の間の関連付けを作成できます。

このタスクについて

NSF と新規オンディスクプロジェクトを関連付けるには、メニューから [ファイル] - [チーム開発] - [ソース制御をこのアプリケーション用にセットアップ] を選択します。

IBM Domino Designer の [アプリケーションナビゲータ] でこれを行うには、ソース制御に追加するアプリケーションのアプリケーションヘッダー (アイコン) を右クリックして、[チーム開発] - [ソース制御をこのアプリケーション用にセットアップ] を選択します。 これにより、新規オンディスクプロジェクトが作成され、開いている NSF プロジェクトのすべてのコンテンツがそのプロジェクトにデフォルトでエクスポートされます。

共通のソース制御タスクでソース制御の有効化機能を使用する方法の詳細については、「ソース制御の有効化機能による共通ソース制御タスクの完了」のトピックを参照してください。

ソース制御の有効化機能のプリファレンスの設定

このトピックでは、ソース制御の有効化機能の動作をカスタマイズするために設定可能なプリファレンスについて説明します。

ソース制御の有効化機能の動作をさらにカスタマイズするため、[ファイル] - [プリファレンス] - [Designer] - [ソース制御] をクリックしてプリファレンスを設定できます。 これらのプリファレンスは、この機能を使用するときに適用されます。 次のようなプリファレンスがあります。

  • ソース制御操作にバイナリ DXL を使用 -- ディスク上の設計要素は、表示する設計要素のタイプに応じて、異なる方法で表示されます。詳しくは、「ディスク上の設計要素の表示方法の選択」セクションを参照してください。
  • 変更時の設計要素の自動エクスポート (NSF からディスク) を有効にする -- このプリファレンスにより、ユーザーが NSF 内部で設計要素を変更した後に、それらの設計要素を暗黙的にエクスポートすることができます。 このプリファレンスを選択すると、NSF プロジェクトの編集内容 (例えば、フォームや XPage などの作成/更新/削除) がオンディスクプロジェクトに暗黙的に反映されます。編集内容は、その後ソース制御リポジトリにコミットできます。
  • 変更時の設計要素の自動インポート (ディスクから NSF へ) を有効にする -- このプリファレンスにより、ディスクプロジェクトで設計ファイルに変更が加えられたときに、ディスクから NSF に設計ファイルを暗黙的にインポートする動作を許可できます。 これには、自動ビルドをオンにする必要もあります。 このプリファレンスの設定後、ユーザーがリポジトリからのコンテンツによってディスクプロジェクトを更新すると、変更内容は NSF 内部で自動的にインポートされます。
  • セットアップウィザードでヘルパーパネルを表示 - このプリファレンスを設定すると、[チーム開発] - [ソース制御をこのアプリケーション用にセットアップ] パネルを起動したときに、ソース制御の有効化機能について説明するヘルパーパネルが表示されます。

プリファレンスを選択して (チェックマークを付けて) 有効にするか、選択解除して無効にします。

注: 自動同期プリファレンスは、デフォルトでは有効です。

ディスク上の設計要素の表示方法の選択

このトピックでは、ディスク上の設計要素の表示方法について説明します。

ディスク上の設計要素は、表示される設計要素のタイプに応じて、2 つの異なる方法で表示されます。

  • ディスク上の 2 ファイル (コンテンツとメタデータ) のセットとして -- XPages、カスタムコントロール、スタイルシート、ファイル、テーマ、複合アプリケーション、ワイヤリングプロパティ、 JS/SSJS/LS スクリプトライブラリは、ディスク上の 2 ファイル (コンテンツファイルとメタデータファイル) のセットとして表示されます。 コンテンツファイルには、エディタで表示されるような実際のファイルのコンテンツが含まれ、メタデータファイルには、設計要素の残りの属性を表すコンテンツを差し引いた DXL が含まれています。
  • 設計要素の DXL を含んだファイルとして -- 残りの設計要素 (フォーム、ビュー、ページ、Java スクリプトライブラリ、エージェント、共有アクションなど) は、設計要素の DXL を含むファイルとして表示されます。 エクスポートされたコンテンツの DXL で「バイナリ」形式を使用するように設定するプリファレンスがあります。 詳しくは、「ソース制御の有効化の機能のプリファレンスの設定」のトピックを参照してください。

ソース制御の有効化機能による共通ソース制御タスクの完了

一般的なワークフローの基本ステップを示して、IBM Domino Designer のソース制御の有効化機能による処理について説明します。

この資料では、使用可能な各種ソース制御システムでの基本的なソース制御操作について詳細に説明しません。そのため、ここで一般的なワークフローの基本ステップを示して、IBM Domino Designer のソース制御の有効化機能による処理について説明します。

一般的なプロセスは、おおよそ以下のようになります。

  • 適切なソース制御プラグインを Designer にインストールする。
  • Designer でデータベースを開く。
  • データベース (NSF) とオンディスクプロジェクト (ODP) を関連付け、NSF から ODP にエクスポートする。
  • コミット - Designer ODP からソース制御リポジトリに送信する。
  • チェックアウト - 別のマシンで、ソース制御リポジトリから ODP を取得する。
  • データベース (NSF) と ODP を関連付け、ODP から .NSF にインポートする。
  • .NSF/ODP を変更し、両方を同期する (暗黙的または明示的)。
  • ソース制御リポジトリに対する変更をコミットする。
  • 更新して、ソース制御リポジトリから ODP に変更を取得する。
  • 更新した ODP と .NSF を同期する。

より具体的な例として、共通ツールでは以下の基本手順を使用します。

  • プロジェクトを共有してソース制御に追加する。
  • チェックアウトしてソース制御からローカルオンディスクプロジェクトを作成する。
  • コミットしてローカルの変更をソース制御に送信する。
  • 更新してソースから変更を取得する。
注: 注: ご使用のシステムでの基本操作の処理方法の詳細については、ソース制御ソフトウェアの資料を参照してください。

次のトピックでは、ここで説明した共通ソース制御タスクのいくつかを IBM Domino Designer のソース制御の有効化機能を使用して実行する例を示し、詳しく説明します。

ソース制御への既存の IBM Domino Designer アプリケーションの追加

このトピックでは、既存の IBM Domino Designer アプリケーションをソース制御に追加する方法について説明します。

このタスクについて

ご使用のマシンで、新規アプリケーションを起動し、それを使用してローカルで作業を開始したとします。 作業を進める中で、アプリケーションのいくつかの部分を同僚に委任する必要があることに気付きます。 このため、既存のアプリケーションをソース制御システムにチェックインすることにします。

このタスクは、既存の NSF アプリケーションと新規のオンディスクプロジェクトを関連付けることにより、IBM Domino Designer のソース制御の有効化機能を使用して行います。 このためのステップについては、「NSF と新規オンディスクプロジェクトの関連付け」のトピックを参照してください。

ソース制御からのアプリケーションの取得

このトピックでは、ソース制御からアプリケーションを取得する方法について説明します。

このタスクについて

ビルド中の新規アプリケーションについて同僚を支援する必要があるとします。 そのアプリケーションは、元の開発者によって既にソース制御にチェックインされていますが、あなたはそのアプリケーションに対する作業を開始するためにそのアプリケーションを取得する必要があります。

そのためのステップは、以下が一般的です。
  • Eclipse のナビゲータビューで、ソース制御システムのコマンドを使用してアプリケーションをローカルマシンにコピーします。
  • オンディスクプロジェクトと NSF を関連付けます。

    または

  • オンディスクプロジェクトと既存の NSF を関連付けます。

これらのタスクの実行の詳細については、このセクションの追加トピックを参照してください。

オンディスクプロジェクトと新規 NSF の関連付け

このトピックでは、オンディスクプロジェクトと新規 NSF の関連付け方法について説明します。

このタスクについて

ビルド中の新規アプリケーションについて同僚を支援する必要があるとします。 そのアプリケーションは、元の開発者によって既にソース制御にチェックインされていますが、あなたは自分で作業を開始するためにそのアプリケーションを取得する必要があります。

このための方法の 1 つは、オンディスクプロジェクトと新規 NSF を関連付ける方法です。 これを行うには、以下のステップを実行します。

手順
  1. オンディスクプロジェクトと新規 NSF を関連付けるには、新規作成したオンディスクプロジェクトを右クリックし、[チーム開発] - [新規 NSF に関連付ける...] を選択します。これにより、[新規 NSF に関連付ける...] ダイアログが表示され、アプリケーションの名前と作成する場所の入力を求められます。
  2. 場所がローカルサーバーの場合は、[参照] ボタンを使用してローカルファイルシステムのディレクトリを開きます。
  3. 場所がリモートサーバーの場合は、選択可能なフォルダをリストしたダイアログと一緒に [参照] ボタンが表示されます。
  4. デフォルトでは、NSF とオンプロジェクトの同期が自動的に維持されます。
タスクの結果

オンディスクプロジェクトと既存の NSF の関連付け

このトピックでは、オンディスクプロジェクトと既存の NSF の関連付け方法について説明します。

このタスクについて

ビルド中の新規アプリケーションについて同僚を支援する必要があるとします。 そのアプリケーションは、元の開発者によって既にソース制御にチェックインされていますが、あなたは自分で作業を開始するためにそのアプリケーションを取得する必要があります。

このための方法の 1 つが、オンディスクプロジェクトと既存の NSF を関連付ける方法です。 これを行うには、以下のステップを実行します。

手順
  1. オンディスクプロジェクトと既存の NSF を関連付けるには、新規作成したオンディスクプロジェクトを右クリックし、[チーム開発] - [既存の NSF に関連付ける...] を選択します。これにより、[既存の NSF に関連付ける...] ダイアログが表示されます。
  2. オンディスクプロジェクトと関連付ける既存の NSF、および初期同期操作の方向を選択します。
タスクの結果

既存の NSF とオンディスクプロジェクトの関連付けの例

このトピックでは、既存の NSF とオンディスクプロジェクトの関連付けの例を示します。

同僚がメールで送信してきた、アプリケーションの初期のコピーを見ているとします。 このアプリケーションはこれまでソース制御に投稿されて続けており、現在、あなたはそのアプリケーションに関して支援を求められています。 この場合、「正式な」バージョンを取得して、メールで送信されてきたアプリケーションと置き換える必要があります。

この手順は、アクションの関連付けが NSF から実行され、選択されるのがオンディスクプロジェクト であることを除いて、「オンディスクプロジェクトと既存の NSF の関連付け」のトピックにある手順と同じです。 NSF と関連付けるオンディスクプロジェクトは、ソース制御操作で使用するプロジェクトです。 このためのステップについては、「NSF と既存のオンディスクプロジェクトの関連付け」のトピックを参照してください。

ファイル同期競合の処理

このトピックでは、ソース制御機能でのファイル同期競合の処理方法について説明します。

このタスクについて

ソース制御のファイルの作業中に、ファイル同期競合エラーが発生することがあります。 このエラーが発生すると、[同期の競合] ダイアログメッセージがポップアップ表示され、競合しているファイルを示したリストボックスが表示されます。 ファイルを 1 つ以上選択して、そのファイルのさまざまなバージョンの比較を選択できます。 正しいバージョンがどれかが判別したら、どのバージョンを使用するかを選択できます。

[同期の競合] ダイアログが表示するビューには、ファイル名、最終更新 (NSF) 日、最終更新 (オンディスク) 日の 3 つの列があります。 [比較] ボタンで表示されるダイアログにより、NSF の DXL バージョンと要素のオンディスクバージョンを並べて確認でき、さらに差異がハイライト表示されます。

例えば、2 つのファイルが競合している場合は、以下のステップに従います。 このケースでは、NSF とオンディスクプロジェクトの間で同期競合が発生しており、[同期の競合] パネルに 2 つのファイルがリストされています。

手順
  1. 必要であれば、ファイルを選択して [比較] ボタンをクリックします。 これにより [比較] ダイアログが起動し、差異がハイライトされた各ファイルの内容が表示されます。
  2. どのバージョンのファイルを使用するかを決定し、[NSF バージョンを使用] ボタンまたは [オンディスクプロジェクトバージョンを使用] ボタンのいずれかを押します。 [NSF バージョンを使用] オプションによりオンディスクバージョンが上書きされ、[オンディスクプロジェクトバージョンを使用] オプションにより NSF バージョンが上書きされます。 これらの操作のどちらも独立して実行できます。
  3. ファイルを指定せずに [閉じる] ボタンをクリックした場合、それらのファイルは、次に同期の競合が発生した際に再びリストに表示されます。
タスクの結果

NSF とローカルソース制御プロジェクトの手動同期

このトピックでは、NSF とローカルソース制御プロジェクトを手動で同期する方法について説明します。

このタスクについて

NSF とローカルソース制御オンディスクプロジェクトを手動で同期する場合があります。 例えば、何かの問題があったり、[プリファレンス] パネルで自動同期をオフにしたりした場合です。

これを行うには、コンテキストメニューまたはメインメニューで [チーム開発] - [オンディスクプロジェクトとの同期] を選択します。

ソース制御内の関連付けの削除

このトピックでは、ソース制御内の NSF/プロジェクトの関連付けを削除する方法について説明します。

このタスクについて

NSF とローカルソース制御オンディスクプロジェクトの間で作成した関連付けを削除する必要がある場合があります。

これを行うには、コンテキストメニューまたはメインメニューで [チーム開発] - [ソース制御の関連付けの削除] を選択します。

XPages アプリケーションの設計

IBM Domino Designer は、コントロールなどの成果物を XPage に取り込んだり、XPage を データソースに関連付けたりする手段を提供します。

XPage を作成したり開くなどの 一般的な操作については、Domino Designer のナビゲーション を参照してください。

Designer は、XPages を操作するための以下のオプションを備えています。

  • [設計] タブをクリックして、 ビジュアルモードで作業する。
  • [ソース] タブをクリックして、XML を直接編集する。

この資料は、以下の製品を参照します。 IBM Domino, IBM Domino Designer、IBM Notes、IBM iNotes、 IBM Notes Traveler

XPages のプリビューと実行

XPage は、IBM Domino サーバー環境と IBM Notes クライアント環境で 実行されます。 IBM Domino Designer からは、 両方の環境の XPage をプリビューできます。

Domino サーバー上の アプリケーションに存在する XPage には、以下のようにしてアクセスできます。
  • ブラウザからは、http://server/application.nsf/xpage.xsp という形式の URL を使用します。
  • IBM Notes クライアントからは、notes://server/application.nsf/xpage.xsp という 形式の URL を使用します。

IBM Notes クライアント上の アプリケーションに存在する XPage には、notes:///application.nsf/xpage.xsp?OpenXPage という 形式の URL を使用してそのクライアントからアクセスできます。

そのほか、起動時に XPage を開くように アプリケーションを設定することもできます。

XPage のプリビュー

IBM Domino サーバー環境 または IBM Notes クライアント環境で XPage を プリビューできます。

始める前に

Web プリビューの場合は、アプリケーションに合わせて 最初にアクセス制御リスト (ACL) を調整する 必要があります。 ナビゲータでアプリケーションを 右クリックし、[アプリケーション] > [アクセス制御] を 選択します。 [匿名] の項目を追加し、 適切なアクセスのレベル (文書を作成する権限を付与するには [作成者] 以上) を 設定します。
注: また、Web プリビューを正常に実行するために、IBM Domino サーバーで HTTP タスクが実行されていることも 確認してください。

手順

  1. XPage を右クリックして、[IBM Notes で プリビュー] または [Web ブラウザで プリビュー] を選択します。 代わりに、XPage にフォーカスした状態で メニューの [設計] > [IBM Notes で プリビュー] または [設計] > [Web ブラウザで プリビュー] をクリックすることもできます。

    あるいは、XPage にフォーカスした状態で ツールバーの [IBM Notes でプリビュー] アイコン または [Web ブラウザでプリビュー] アイコンを クリックすることもできます。

  2. [Web ブラウザでプリビュー] の場合は、 ブラウザの種類を選択します。

タスクの結果

IBM Notes プリビューの場合は、 必要に応じて IBM Notes クライアントが開始された後、 クライアントで XPage が開かれます。 クライアントが XPage からの 要求を処理します。

Web プリビューの場合は、IBM Domino ローカルプリビューサーバーが開始された後、 ブラウザで XPage が開かれます。 ローカルのプリビューサーバーが XPage からの 要求を処理します。

Web での XPage のプリビューは、 フルアプリケーションにおける XPage の実行とは異なる 可能性があります。 この結果は、ローカルアプリケーションをプリビューするかリモートアプリケーションをプリビューするかによっても異なる可能性があります。 ローカルアプリケーションを プリビューする場合は、常にアクセス制御に [匿名] が使用されます。 また、ローカルのプリビューサーバーには実動サーバーの拡張機能の 一部がありません。 ただし、スクリプトが実行され、 文書が作成されて、ローカルプリビューの場合は匿名で署名され、 サーバーでのプリビューの場合は現在の ID で署名されるので、 アプリケーションを実物に近い形で見ることができます。

アプリケーション起動時に XPage を開く

アプリケーションの起動時に XPage を開くことができます。

手順

  1. ダブルクリックなどの方法で、 アプリケーションナビゲータから [アプリケーションプロパティ] を開きます。 アプリケーションのプロパティページが開きます。
  2. [開始] タブをクリックします。
  3. IBM Notes クライアントの場合は、[指定された XPage を 開く (Standard 版クライアント)] を選択してから XPage を選択します。
  4. Web ブラウザの場合は、[指定された XPage を開く] を 選択してから XPage を選択します。 IBM Notes の場合と 同じ XPage を開く場合は、代わりに [IBM Notes 起動オプションを 使う] を選択します。
  5. アプリケーションプロパティを保存します。

タスクの結果

ユーザーがアプリケーションを起動すると、 ただちに XPage が開きます。

Web ブラウザのユーザーは、URL (http://server/application.nsf/xpage.xsp など) を 入力することで XPage を立ち上げることができます。

別の XPage を開く

ユーザーは、ナビゲーションルール、 シンプルアクション、XSPContext メソッド、URL を開くことによって、XPage から別の XPage を開くことができます。

ナビゲーションルール

各 XPage には navigationRules プロパティがあります。 このプロパティは navigationRule 要素の配列です。 ナビゲーションルールは、 タイプが Submit または Cancel のボタンによって送信されたページを処理した後、 クライアントに返すページをサーバーに指示します。 button - ボタン を参照してください。 各ナビゲーションルールには、以下の属性があります。
attribute value
outcome xsp-success: 更新が正常に終了した場合
  xsp-failure: 更新に失敗した場合
redirect true は、ページの最後の状態を復元することを示します
  false (デフォルト) は、ページを新規に開くことを示します
viewId <no rule> は、同じページを開くことを示します
  $$PreviousPage は、送信されたページの前の、 最後に開いていたページを開くことを示します
  $$HomePage は、起動ページを開くことを示します
  page.xsp は、指定のページを開くことを示します
以下に例を示します。
<xp:this.navigationRules>
	<xp:navigationRule
		outcome="xsp-success" viewId="$$PreviousPage">
	</xp:navigationRule>
	<xp:navigationRule
		outcome="xsp-failure" viewId="/errpage.xsp">
	</xp:navigationRule>
</xp:this.navigationRules>

設計モードで、どのコントロールでもない領域を クリックしてから [XPage] タブを クリックし、[次のページ] オプションを探します。

シンプルアクション openPage

[ページを 開く] シンプルアクションは、 アクティブにするとただちにページを開きます。 以下に例を示します。
<xp:button value="Open page 2" id="button4">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
		<xp:this.action>
			<xp:openPage name="/xpage2.xsp"></xp:openPage>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>

XSPContext メソッドでのリダイレクト

redirectToPageredirectToPreviousredirectToHome の 各メソッドは、アクティブにするとただちにページを開きます。 以下に例を示します。
<xp:button value="Open page 2" id="button4">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete">
		<xp:this.action>
			<![CDATA[#{javascript:context.redirectToPage("xpage2.xsp")}]]>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>

URL を開く

URL をサーバーに送信することにより、 そのページを開くことができます。 例えば、ブラウザのアドレスウィンドウに 以下のように指定することができます。
http://myserver/foo.nsf/xpage1.xsp

XPage 以外の 設計要素からは、式で @URLOpen を使用できます。 以下の式は フォームアクション用のものであり、IBM Notes クライアントの ローカル環境で XPage を開きます。

@URLOpen("notes:///foo.nsf/xpage1.xsp?OpenXpage")

ビューの代わりに XPage を開く

Web アクセスの場合にのみ、ビューの代わりに XPage を開くことができます。

手順

  1. ダブルクリックなどの方法で、アプリケーションナビゲータからビューを開きます。
  2. ビューのプロパティを開き、[詳細] タブをクリックします。
  3. [Web アクセス] > [代わりに XPage を表示] で、XPage を選択します。
  4. ビューを保存します。

タスクの結果

ユーザーがそのビューを選択すると、XPage が開きます。

XPage に署名する

XPage は、XPage 設計要素の保存時および/またはその実装 (例: .class) ファイルの生成時に、現在の IBM Domino Designer ユーザーの ID を使用して署名されます。

このタスクについて

XPage への署名によって、実行時にロードされるかどうか、その後実行する際にメソッドと操作の制限があるかどうかが決まります。 実行時に制限がある 場合は、ファイルまたはネットワークの入出力などの特定の機能が除外されます。こちらの方が一般的な方法です。 実行時に制限がない 場合は、XPage 実装言語の、サポートされるすべての機能を使用できます ([Domino Designer Basic 版 ユーザーガイドおよびリファレンス] > [Application Design] > [Adding automation to applications] の「Restricted LotusScript and Java agent operations」のトピックを参照してください)。

サーバー文書の [セキュリティ] タブの [可能なプログラムの制限] セクションで、サーバーアクセス権限 として、制限付き/制限なしのメソッドを実行する権限が、特定の署名者またはグループに割り当てられます ([Domino Administrator ヘルプ] > [Security] > [Server access for Notes users, Internet users, and Domino servers] > [Customizing access to a Domino server] の「Controlling agents and XPages that run on a server」のトピックを参照してください)。

XPage が起動されると (エージェントの場合)、IBM Domino は、認証された Web ユーザーのアクセス権限をチェックするだけでなく、サーバー文書を調べて XPage 署名者のサーバーセキュリティ権限を確認します。 XPage のコンポーネント (例: 組み込まれた XPage、カスタムコントロール、JSF 拡張機能、サーバー JavaScript ライブラリ) について、IBM Domino は各コンポーネント署名者のサーバーアクセス権限をチェックし、指示があった場合は、制限付き で実行されるように XPage セッションをダウングレードします (IBM Domino に対して設定された場合、「NoExternalApps」という notes.ini 変数は同じ効果があります)。 実行時に、XPage に署名するサーバー権限をまったく持たない DDE ユーザー用が署名すると、HTTP 403 エラーが生成されてブラウザに返されます。

IBM Notes クライアントでの XPages の使用

XPages アプリケーションを IBM Notes リッチクライアントで実行できます。

IBM Notes クライアントで XPages をサポートする主な利点は、Web 用に開発されたアプリケーションをローカルに複製し、それをクライアント用に開発し直す必要なく IBM Notes クライアントでオフラインで実行できることです。 これにより、XPages アプリケーション開発モデルのすべての利点を IBM Notes クライアントまで広げることができます。 これらのアプリケーションは組み込みブラウザに表示され、ほとんど Web アプリケーションのように表示され、動作しますが、いくつかの点において IBM Notes クライアントでは異なる動作をします。

  • IBM Notes でのアプリケーションのレンダリング方法に影響を及ぼす IBM Notes クライアント固有のロジックを作成することができます。 例えば、ディスカッションアプリケーションの Web レンダリングではページの隅に「ようこそユーザー名」メッセージと、その後に「マイプロフィール」リンクが表示されます。このウェルカムメッセージは、IBM Notes クライアントでは表示されません。ディスカッションアプリケーションのロジックによってこのメッセージが削除されるためです。 アプリケーションの XPages プロパティを変更して、アプリケーションが IBM Notes クライアントで稼働する場合とブラウザで稼働する場合とで別のテーマを使用するよう指定することもできます。
  • IBM Notes クライアントで稼働するアプリケーションのユーザーは、[ファイル] > [保存] を使用して、XPages への変更を保存することができます。 enableModifiedFlag プロパティを使用すると、このメニューオプションを有効にして、XPage が変更されたときに変更内容を保存するようユーザーにプロンプトを出すことができます。
  • ユーザーが IBM Notes クライアントで認証されると、同じ資格情報を使用して任意の XPages アプリケーションまたはコンポーネントにアクセスできます。 したがってユーザーは、組み込みブラウザで稼働する従来の Web アプリケーションで行われるような、Web ログインダイアログでの入力を促されることはありません。
  • XPages 設計要素のコード (アクティブコンテンツ) が、例えばワークステーションファイルの読み書きやシステムプロパティの読み書きなどの、保護された操作を実行するのを防ぐため、XPages では実行制御リスト (ECL) を使用して、保護された操作を実行しようとするコードの署名者に対してユーザーが付与したアクセス権限と機能を管理します。
  • IBM Notes クライアントでは、ページにブックマークを付けることができます。

XPages をスタンドアロンアプリケーションとして作成するだけでなく、複合アプリケーション内で稼働し、イベントの受信/公開モデルとコンポーネントパラメータをサポートすることができる XPage コンポーネントを IBM Domino Designer で作成することもできます。 これにより XPages コンポーネントは、クライアント内のほかのコンポーネント (例えば PIM コンポーネントなど) と対話できるようになります。

また、XPages アプリケーションは IBM Domino サーバー上に存在することができます。 [IBM Notes クライアントで開いたとき] 起動オプションを [指定した XPage を開く (Standard 版クライアント)] に設定した場合は、アプリケーションが IBM Domino サーバー上に存在しても IBM Notes クライアント上にローカルに存在しても、対応する XPage はクライアントでレンダリングされます。クライアントでの XPage の動作は、まったく同じです。

XPages ツールバーの使用

IBM Notes クライアントの XPages アプリケーションには独自のツールバーがあります。 このツールバーは、XPage のフォーカスが組み込みブラウザ内にあるときに常に表示されます。

このタスクについて
ツールバーには、さまざまなグループのボタンが含まれます。
  • ナビゲーションボタンを使用すると、ページ間の移動、現在のアクションの中止、現在のページの更新、元のページに戻ることができます。 更新ボタンには、[個人データのクリア] オプションもあります。 このアクションを実行すると、組み込みブラウザのキャッシュがクリアされます。
  • 印刷ボタンを使用すると、XPages を印刷用にセットアップして印刷することができます。
  • IBM Domino Designer がインストールされている場合は、[ページソースの表示] ボタンをクリックして HTML ソースを表示したり、[ブラウザ設定の表示] ボタンをクリックして組み込みブラウザの設定値を表示したりできます。

XPages セキュリティ

XPages アプリケーションにはセキュリティが用意されています。

IBM Notes クライアントで稼働する XPages アプリケーションには、 例えば、データベースへのアクセスや、組み込みの Java コードを持つ JavaScript へのアクセスなど、ユーザーのワークステーション上で実行できるコード (通常、「アクティブコンテンツ」と呼ばれる) が含まれた設計要素をいくつも組み込むことができます。 アクティブコンテンツが、例えばワークステーションファイルの読み書き、システムプロパティの読み書き、ネットワーク操作などの、保護された操作を実行するのを防ぐため、XPages では実行制御リスト (ECL) を使用して、保護された操作を実行しようとするコードの署名者に対してユーザーが付与したアクセス権限と機能を管理します。

ECL により、コードの署名者が特定のワークステーション上でのコード実行を許可されるかどうかが決定し、コードが各種ワークステーション機能に対して保有するアクセス権限 (例えば、現在のデータベースまたは他のデータベースへのアクセス権限など) が定義されます。 XPages アプリケーション内のアクティブコンテンツの例としては、JavaScript に組み込まれた Java コード (サーバーサイド)、サーバーサイドスクリプトのライブラリ、データベースにインポートされた Java クラスおよび JAR などがあります。

XPages アプリケーションのすべての設計要素には、その作成者の署名があります。 XPages アプリケーションの署名者が複数いる場合は、保護された操作を実行する前に、すべての署名者がユーザーによって信頼されなければなりません。

XPages アプリケーションの ECL セキュリティアクセスオプションは [ユーザーセキュリティ] ダイアログ ([ファイル] > [セキュリティ] > [ユーザーセキュリティ]) の [実行制御] の 下にある [ワークステーション] タブで設定します。

Active Content Filtering によるセキュリティ

Active Content Filtering (ACF) セキュリティ機能も、実行中に悪意のあるコードが XPage 入力コントロールに入力されないよう保護します。

Active Content Filtering は、入出力テキストコントロール内で悪意があると考えられるアクティブコンテンツ (スクリプト、タグ) を削除するために使用されます。 ACF エンジンは、実行時にフィルタリングを実行するためのライブラリとして機能します。 特定の XPage コントロール (編集ボックス、複数行入力域ボックス、リッチテキスト、非表示の入力) にフォーカスを移動すると、basics の下の [すべてのプロパティ] タブに、htmlFilterhtmlFilterIn の 2 つのプロパティが表示されます。

htmlFilter プロパティは、コントロールがクライアントにデータを送信するときに使用する ACF エンジンを定義し、 htmlFilterIn プロパティは、コントロールがクライアントからテキストを受信するときに使用するエンジンを定義します。 テキストフィールドに対して ACF が有効または無効になるようにこれら 2 つのプロパティを変更できます。

XPages では次の 4 つの ACF エンジンを使用できます。
  • acf
  • striptags
  • identity
  • empty

「acf」エンジンは HTML テキストを解析し、構成ファイル (acf-config.xml) に基づいて、危険な構文を除去します。 「striptags」エンジンは、正規表現 'replaceAll("¥¥<.*?>","")' を使用して、すべてのタグを削除します。 "identity" フィルタは、オリジナルのストリングを返します。 「empty」エンジンは、すべてのものを削除して空ストリングを返します。

「acf」エンジンは、構成ファイルを介して構成できます。 クライアントサイドの場合、このファイルの場所は通常は C:¥Program Files¥IBM¥Lotus¥Notes¥Data¥properties です。 例えば、acf-config.xml.sample が このフォルダに入っています。

ACF を構成するには、最初に、同じフォルダ内で xsp.properties ファイルを見つけて、以下の行を追加します。 xsp.htmlfilter.acf.config=acf-config.xml これは、acf-config.xml を使用して「acf」エンジンを構成することを示します (この指定を行わないと、デフォルト規則が使用されます)。 acf-config.xml のファイル内容の例を以下に示します。
<?xml version="1.0"?>
<config>
       <filter-chain>
          <filter name='base' class='com.ibm.trl.acf.impl.html.basefilter.BaseFilter'
                  verbose-output='false' use-annotation='false' />
       </filter-chain>

			<filter-rule id='base'>
           <target scope=''>
             <!-- C14N 規則 -->
             <rule c14n='true' all='true' />

              <!-- 基本規則 -->
             <rule attribute='on' attribute-criterion='starts-with'
                 action='remove-attribute-value' />
             <rule attribute='${' attribute-criterion='starts-with'
                 action='remove-attribute-value' />
             <rule attribute='href' value='javascript:' value-criterion='contains'
                  action='remove-attribute-value' />
             <rule attribute='style' action='remove-attribute-value' />

              <rule tag='script' action='remove-tag' />
              <rule tag='style' action='remove-tag' />
              <rule tag='link' attribute='rel' value='stylesheet'
                   value-criterion='contains' action='remove-tag' />
            </target>
        </filter-rule>
</config>
上記の例について、以下に説明します。
  • <rule attribute='on' attribute-criterion='starts-with' action='remove-attribute-value' /> は、「on」で始まる属性を削除します。
  • <rule attribute='href' value='javascript:' value-criterion='contains' action='remove-attribute-value' /> は、値に 'javascript:' キーワードが含まれるすべての 'href' 属性を削除します。
  • <rule tag='style' action='remove-tag' /> は、すべての「script」タグを削除します。
  • <rule tag='link' attribute='rel' value='stylesheet' value-criterion='contains' action='remove-tag' /> は、「rel」属性の値が「stylesheet」に一致する「link」タグを削除します。

実行制御リストの詳細については、Domino Administrator ヘルプを参照してください。

ユーザーに XPages の変更を保存するようプロンプトを出す

変更されたフィールドが含まれるページを閉じるアクションをユーザーが要求したときに、XPage アプリケーションがユーザーにどのようにプロンプトを出すかを制御できます。

このタスクについて
XPage またはカスタムコントロールに編集可能なコントロールが含まれる場合は、2 つのプロパティを設定することにより、変更されたコントロールについてアプリケーションがユーザーにどのようにプロンプトを出すかを指定できます。 これらのプロパティは 2 つのレベル、つまり XPage またはカスタムコントロールのレベルと、コアコントロールのレベルに存在します。
  • レベル 1: XPage またはカスタムコントロール
    • enableModifiedFlag (ブール値 - 暗黙のデフォルト値は false) – XPage またはカスタムコントロールのコアコントロールの変更を保存するようユーザーにプロンプトを出すかどうか、および IBM Notes クライアントで XPage またはコントロールが変更された場合に IBM Notes クライアントの [ファイル] > [保存] オプションを有効にするかどうかを指定します。 外部ブラウザで稼働するアプリケーションでは、IBM Notes の [ファイル] > [保存] メカニズムを使用できないため、プロンプトダイアログのみがユーザーに表示されます。
    • modifiedMessage (ストリング) – プロンプトダイアログに表示するカスタムメッセージ
  • レベル 2: コアコントロール
    • disableModifiedFlag (ブール値 - 暗黙のデフォルト値は true) – コアコントロールの変更を保存するようユーザーにプロンプトを出すかどうかを指定します。
ある特定の XPage またはカスタムコントロールに関する変更通知を有効または無効にする場合は、enableModifiedFlag プロパティが絶対的に優先されます。 このプロパティ値を true に設定した場合、ユーザーは XPage またはカスタムコントロール内でサポートされるすべてのコアコントロールに対する変更について通知されます。ただし、コアコントロールの disableModifiedFlag プロパティ値を明示的に true に設定した場合は除きます。 XPage またはカスタムコントロールの enableModifiedFlag を設定しないか、この値を明示的に false に設定して、さらに 1 つ以上のコアコントロールの disableModifiedFlag プロパティ値を false に設定した場合、ユーザーには変更が通知されなくなります。これは、enableModifiedFlag プロパティが優先されるためです。
この機能は、次のコアコントロールでサポートされます。
  • 編集ボックス
  • 複数行入力域ボックス
  • リストボックス
  • コンボボックス
  • チェックボックス
  • ラジオボタン
  • ファイルのアップロード
  • 日時ピッカー
  • リッチテキストエディタ

ユーザーが現在のページの変更を保存しないことを選択した場合は、要求されたアクション (ページを閉じる、ページから離れてブラウザ内をナビゲートする、など) を実行できます。 ユーザーが変更を保存することを選択した場合は、ページを保存する前に、関連するフィールドが検証されます。 この検証は、最初にクライアントで実行され、次にサーバーで実行されます。 現在のページのフィールドに関するクライアントサイド検証が成功した場合のみ、サーバーサイド検証を実行できます。 サーバーサイド検証が失敗した場合、ユーザーには、問題のフィールドが含まれる現在のページが示され、フィールド内容を修正する機会が与えられます。 サーバーサイド検証が成功すると、要求されたアクションを実行できます。

Domino HTTP サーバー上の IBM Notes での XPages の実行

パフォーマンスを向上させるために、サーバーベースの XPages アプリケーションを IBM Notes クライアントで実行するのではなく、Domino HTTP サーバーで実行することができます。

IBM Notes クライアントで実行するサーバーベースの XPages アプリケーションは、デフォルトでは、IBM Notes プロトコルを使用してサーバーとクライアントの間で一連のデータ転送を介してクライアントで実行されます。代わりに、そのようなアプリケーションを HTTP プロトコルを使用して IBM Domino サーバーで実行するように指定できます。

IBM Notes の機能は、ネイティブの XPages モードで実行する場合と同様に機能します。例えば、コンテキストメニュー ([ファイル] > [保存][ファイル] > [複製][ファイル] > [開く] など)、文書のダーティー保存、クライアントサイド JavaScript などが同じ動作をします。例外が 1 つあり、複合アプリケーションは、サーバーでの実行時にクライアントのプロパティブローカー機能を使用できません。

Designer の要件
[アプリケーションプロパティ][開始] タブで、[指定された XPage を開く (Standard 版クライアント)] を有効にした状態で、[サーバーベースの XPage アプリケーションを Domino サーバー上で直接実行する] にチェックマークを付け、 アプリケーションを保存します。このプロパティは、アプリケーションのプロパティボックスを使用して IBM Notes でも適用できます。
代わりに、IBM Notes の notes.ini ファイルに以下の行を挿入して IBM Notes を再起動することにより、すべてのアプリケーションに対してサーバーでの実行を有効にすることができます。
XPagesRunRemoteAppsOnServer=1
IBM Notes のランタイム要件
IBM Notes クライアントは、XPages アプリケーションを含むサーバーに対する HTTP アカウントを保有している必要があります。IBM Notes アカウントを作成または表示するには、[ファイル] > [プリファレンス] > [アカウント] をクリックします。詳しくは、IBM Notes ヘルプの「IBM Notes プリファレンスパネルからアカウントの作成と編集を行う」を参照してください。

アカウントは IBM Domino サーバーで設定し、IBM Notes クライアントにプロビジョンできます。

サーバーベースの XPages アプリケーションを IBM Notes クライアントで起動すると、XPages プロセッサが、 アプリケーションを含むサーバーの HTTP アカウントを検索し、アプリケーションをロードします。

IBM Notes アカウントのフレームワークと下位の XULRunner ブラウザにより、 自動的に認証のためのユーザー資格情報が Web サーバーに渡されます。名前とパスワードを要求するプロンプトがユーザーに出された場合は、IBM Notes が正しく設定されていません (SSO が誤っているなど)。この検査を単独で実行するには、IBM Notes ツールバーにある IBM Notes ブラウザのアドレスウィジェットにアプリケーションの URL を入力します。

一致する HTTP アカウントが存在しない場合は、 匿名アクセスが許可されていない限り、ユーザーは資格情報を要求されます。ただし、以下の notes.ini 変数によって HTTP アカウントの存在を必須にすることができます。
XPagesRunOnServerRequireAccount=1
一致するアカウントが必要であるが見つからない場合、またはアカウント情報が無効な場合は、アプリケーションのウィンドウを閉じるか、ローカルの Notes Web コンテナを使用したアプリケーションの実行に戻るように促すメッセージがユーザーに出されます。
以下の notes.ini 変数により、サーバー上の IBM Notes での XPages の実行が無効になります。
XPagesRunOnServerDisable=1
パフォーマンスの背景
IBM Notes クライアントで実行されるがリモートの IBM Domino サーバーに存在する XPages アプリケーションは、パフォーマンス上の課題に直面します。主な理由は、IBM Notes クライアントで XPages アプリケーションを実行するときに多くのネットワークトランザクションが実行されるためです。XPages Notes アプリケーションはローカルの Notes XPD Web コンテナで実行されるため、XPages のすべての Java クラス (XPages とカスタムコントロール) を、ネットワーク経由でリモートサーバーから実行する IBM Notes クライアントにコピーする必要があることに注意してください。同様に、すべてのページリソース (CSS、JavaScript、GIF など) を、実際のデータとともにリモートサーバーから取得する必要があります。さらに、XPages アプリケーションが他の IBM Notes 設計成果物を (computeWithForm 機能などを使用して) 利用する場合は、フォーム、サブフォーム、共有フィールドなどの大規模な設計要素も必要に応じてリモート側で取り出す必要があります。特に、アプリケーションが主に Web を対象として設計されており、IBM Notes クライアント用に最適化されていないと、待ち時間が長いネットワークの場合にパフォーマンスに大きな影響が及ぶ可能性があります。

XPages アプリケーションの翻訳

XPage とカスタムコントロールを翻訳する場合は、言語ごとに新しいコピーを作成しないでください。これは、XPage の翻訳メカニズムが、XPage 以外の IBM Notes 設計要素のメカニズムとは異なるためです。

このタスクについて
XPage 翻訳メカニズムでは、翻訳可能なテキストは自動プロセスによって XPage から別のファイルに抽出されます。 その後、このファイルを別の言語に翻訳します。 XPage は、Web ブラウザまたは Notes クライアントの言語に基づいて、どの翻訳済みファイルを使用するかを決定します。

XPage 翻訳の説明については、Domino Designer wiki の「XPage: ローカライズオプションの使用方法 (XPages: How to use the localization options)」を参照してください。

シングルコピー XPage の設計

XPage 設計要素を 1 つのデータベースに格納しておき、 実行時に他のデータベースをそこにリダイレクトすることができます。

このタスクについて

シングルコピー XPage は、オブジェクトの格納と ブラウザからのアクセスに 1 つのロケーションを使用することで、 パフォーマンスを向上させます。 影響を受ける設計要素は、XPages、カスタムコントロール、JavaScript ライブラリ、スタイルシート、テーマです。 実行時に XPage 要素のリポジトリを使用するようにデータベースに指示するには、次の操作を行います。

手順

  1. 左側のペインで [アプリケーションプロパティ] を選択します。
  2. 上部中央のペインで、[XPages] タブを選択します。
  3. [パフォーマンス] までスクロールダウンします。
  4. [シングルコピー XPage 設計] にチェックマークを付けます。
  5. XPage 設計要素を含む NSF の名前を 指定します。 相対名は、IBM Notes データディレクトリに対する相対位置になります。

タスクの結果

設計要素を含むアプリケーションは NSF ファイルでなければなりません。

すべての XPage 設計要素がリポジトリに入っているか リポジトリ外にあるかのいずれかでなければなりません。 設計要素を個別に 上書きしたり選択したりすることはできません。

シングルコピーの設定を 動的に変更することはできません。

共有要素は、 列挙された XPage 要素のみに限られます。フォームやビューなどは 共有されません。

コントロールの追加

コントロールとは、編集ボックス、ボタン、イメージ、テキストなどの目に見える要素で、ユーザーはこれを使用して XPage 上のデータを操作できます。

コントロールには、コア、コンテナなどのタイプがあります。

タグ名は、XML 内の各コントロールを識別します。 共通名は、ユーザーインターフェースに表示されます。 例えば、編集ボックスのタグ名は inputText で、 共通名は編集ボックスです。 以降の参照トピックでは、 タグ名と共通名でコントロールを識別します。

[コントロール] パレットと [作成] メニューには、デフォルトでほとんどのコアコントロールとコンテナコントロールが一覧表示されます。 すべてのコントロールにアクセスするには、[その他] を 選択します。 [ファイル] > [プリファレンス] > [IBM Domino Designer] > [パレット] でコントロール表示を調整できます。

コントロールとテキストの操作

[設計] または [ソース] エディタを使用して、コントロールとテキストを XPage に追加できます。 [コントロール] パレットは、コントロー ルのソースを提供します。

[コントロール] パレットは、エディタの横のウィンドウに表示されます。そこに表示されていない場合は、[ウィンドウ] > [Eclipse ビューの表示] > [コントロール] をクリックします。

コントロールをパレットからエディタへドラッグすることができます ([設計] エディタと [ソース] エディタの両方)。 または、エディタにカーソルを置いて、パレット上のコントロールを ダブルクリックすることもできます。 また、メニューから [作成] > [コアコントロール] または [作成] > [コンテナコントロール] を使用することもできます。

通常の方法で、コントロールを移動、サイズ変更、切り取り、コピー、貼り付け、 削除することができます。

テキストと改行を XPage に追加できます。

[設計] エディタ内でコントロールにカーソルを置くと、 そのプロパティが表示されます。 すべてのコントロールの外側にカーソルを置くと、 XPage のプロパティが表示されます。

XPage 操作の一部は、[アウトライン] ビューから実行することもできます。

プロパティを設定する

プロパティは XPage とコントロールを定義します。

プロパティは、エディタの下のウィンドウに 表示されます。 表示されるプロパティは、 エディタでフォーカスされているコントロールのものです。 ただし、すべてのコントロールからフォーカスが外れている場合は、XPage の プロパティが表示されます。

コントロールまたは XPage のすべてのプロパティのカテゴリ別リストに アクセスするには、[プロパティ] タブの下にある [すべてのプロパティ] を 選択します。 ここには、プロパティが 階層付きのタグ名で示されます。 設計されたユーザーインターフェースでプロパティのサブセットに アクセスするには、[プロパティ] タブと [イベント] タブの下でその他の選択を行います。そこでは、プロパティに記述名でアクセスします。

プロパティに値を割り当てるには、以下のようにします。
  • 静的な値は、リストから選択するかタイプ入力します。
  • 動的な値は、値を返すスクリプトで指定します。 プロパティの横にあるひし形を選択すると、スクリプトエディタが開きます。
  • イベントは、サーバーサイドスクリプトとクライアントサイドスクリプト、 およびシンプルアクションで指定します。 スクリプトと シンプルアクションは、[イベント] タブで指定するのが 最も適切です。
XML ソースでは、プロパティが、 コントロール要素の属性とコンテンツとして表示されます。 例えば、 ここに示す inputText (編集ボックス) コントロールには、 属性として idvalue というプロパティが 定義されています。
<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText>
ここで、value プロパティは、以下のように コントロール定義のコンテンツとして定義されています。
<xp:inputText id="inputText1">
	<xp:this.value>
		<![CDATA[#{javascript:return document1.getItemValueString("subject")}]]>
	</xp:this.value>
</xp:inputText>
動的プロパティは、以下のように計算されます。 編集ウィンドウのラジオボタンを使用して、いずれかを選択します。
  • [動的に計算する] は、XPage を更新したときに式が常に再計算されます。 これらの式は、例えば #{javascript:var dc = database.getAllDocuments(); "Count = " + dc.getDocumentCount();} のように、シャープ記号が前に付く形式でソースに表示されます。
  • [ページロードで計算する] は、XPage を最初にロードしたときに式を一回計算します。 これらの式は、例えば ${javascript:var dc = database.getAllDocuments(); "Count = " + dc.getDocumentCount();} のように、ドル記号が前に付く形式でソースに表示されます。

イベントの理解

イベントとは、ボタンのクリックや、編集ボックスからのフォーカスの移動など、ユーザーが 実行できるアクションのことです。 イベントハンドラは、ユーザー (設計者) が、イベントに応答して 実行するアクションです。

イベントハンドラは、コントロールまたは XPage の一部です。

イベントハンドラは、スクリプト、シンプルアクション、シンプルアクショングループにすることが可能です。 1 つのイベントについて、ハンドラをクライアント、サーバー、または 両方で実行するよう指定できます。 クライアントハンドラは、false を返すことにより、それ以降のクライアントハンドラの実行を停止し、サーバーハンドラの実行を取り消すことができます。

設計モードで作業している場合、該当するコントロールまたはページを フォーカスし、[イベント] タブをクリックして、希望のイベントを選択します。 その後、イベントハンドラを指定できます。

イベントはプロパティとして扱われ、[プロパティ] の 下の [すべてのプロパティ] に表示されます。 ただし、[すべてのプロパティ] からイベントの作成や変更を行うことはお勧めしません。 [イベント] タブを使用するか、ソース XML を 使用してください。

サーバーイベントハンドラ

サーバーイベントハンドラの一般的な形式は、 ソースモードで以下のようになります。 設計モードで作業している場合は、 [イベント] タブを選択して、次に [サーバー] タブを 選択してください。
<xp:eventHandler event="name" submit="true|false"
	refreshMode="complete|partial|norefresh" refreshId="id"
	immediate="true|false"	execMode="partial|full">
	<xp:this.action>
		<![CDATA[#{javascript:textOfScript}]]> <!-- スクリプト -->
		<xp:actionName arguments</xp:actionName> <!-- またはシンプルアクション -->
		<xp:actionGroup condition="#{javascript:textOfScript}"> <!-- またはシンプルアクショングループ -->
			actions and embedded groups
		</xp:actionGroup>
	</xp:this.action>
	<xp:this.parameters>
		<xp:this.parameter name="name" value"value"</xp:this.parameter> ...
	</xp:this.parameters>
</xp:eventHandler>
それぞれの意味は次のとおりです。
  • event で、イベントの名前を指定します (onblur また は onclick など)。 [イベント] タブで作業している場合は、適切なイベントを選択します。
  • submit="true" を指定すると、ユーザーがそのイベントを有効にしたときに、要求がサーバーに送信されます。 submit にその他の値を指定すると、イベントは無効になります。 [イベント] タブで作業している場合は、No Submission をクリックすると、イベントが削除されます。
  • refreshMode は以下のいずれかです。
    • complete は、サーバーが要求を処理した後に、ページ全体をクライアントに再ロードします。 [イベント] タブで作業している場合は、 [すべて更新] をクリックします。
    • partial は、Asynchronous JavaScript and XML (AJAX) テクノロジを使用して、ページの選択された部分のみを再ロードします。 [イベント] タブで作業している場合は、 [部分更新] をクリックします。
    • norefresh は、ページを再ロードしません。 [イベント] タブで作業している場合は、 [更新なし] をクリックします。
  • refreshId は、refreshMode="partial" の場合にのみ適用され、 更新対象のコントロールを指定します。 [イベント] タブで作業している場合は、 [要素の選択] をクリックします。
  • immediate="true" は、サーバーでのデータ検証を なくします。 データ処理を実行する場合は、この属性を省略するか、true 以外を指定してください。 [イベント] タブで作業している場合は、 [データの検証または更新を行わない] をクリックします。
  • execMode="partial" は、コードフラグメントが実行されるときに部分的な更新を行うことを指定します。 フルリフレッシュの場合は、この属性を省略するか、partial 以外を指定してください。 [イベント] タブで作業している場合は、 [部分実行モードの設定] をクリックします。
  • action は、以下のいずれかを指定します。
    • スクリプト。textOfScript がユーザーのコードです。 [イベント] タブで作業している場合は、 [スクリプトエディタ] をクリックします。 スクリプトウィンドウにスクリプトを入力するか、スクリプトダイアログを開きます。
    • シンプルアクションの名前とその引数。 [イベント] タブで作業している場合は、 [シンプルアクション] をクリックします。 さまざまなボタンとリストを使用して、 シンプルアクションを作成し、編集します。
    • actionGroup。これは、シンプルアクションとその他のアクショングループを含むことができます。 条件はオプションです。 複数のグループを指定できます。
  • parameters は、イベントパラメータの名前と値を指定します。 [イベント] タブで作業している場合は、 [イベントパラメータの編集] をクリックします。

クライアントイベントハンドラ

クライアントスクリプトであるイベントハンドラの一般的な形式は以下のとおりです。 設計モードで作業している場合は、[イベント] タブを選択してから、[クライアント] タブを選択してください。
<xp:eventHandler event="name" submit="false"
	<xp:this.script>
		<![CDATA[[textOfScript]]> <!-- スクリプト -->
		<xp:actionName arguments</xp:actionName> <!-- またはシンプルアクション -->
		<xp:scriptGroup conditionScript="textOfScript"> <!-- またはシンプルアクショングループ -->
			actions and embedded groups
		</xp:scriptGroup>
	</xp:this.script>
</xp:eventHandler>
それぞれの意味は次のとおりです。
  • event で、イベントの名前を指定します (onblur また は onclick など)。 [イベント] タブで作業している場合は、適切なイベントを選択します。
  • submit="false" は、ユーザーがイベントを有効にしたときに、要求がサーバーに送信されないことを意味します。 クライアントスクリプトの場合、 これは必須です。
  • script は、以下のいずれかを指定します。
    • スクリプト。textOfScript がユーザーのコードです。 [イベント] タブで作業している場合は、 [スクリプトエディタ] をクリックします。 スクリプトウィンドウにスクリプトを入力するか、スクリプトダイアログを開きます。
    • シンプルアクションの名前とその引数。 [イベント] タブで作業している場合は、 [シンプルアクション] をクリックします。 さまざまなボタンとリストを使用して、シンプルアクションを作成し、編集します。
    • scriptGroup。これは、シンプルアクションとその他のアクショングループを含むことができます。 条件はオプションです。 複数のグループを指定できます。

イベントハンドラの送信とキャンセル

タイプが Submit のボタンは、 以下の形式のイベントハンドラを生成します。
<xp:eventHandler event="onclick" submit="true"
	refreshMode="complete" immediate="false" save="true">
</xp:eventHandler>
タイプが Cancel のボタンは、 以下の形式のイベントハンドラを生成します。
<xp:eventHandler event="onclick" submit="true"
	refreshMode="complete" immediate="true" save="false">
</xp:eventHandler>
Submit ボタンの場合 save="true" で、 Cancel ボタンの場合 save="false" であることに注意してください。

サーバーとクライアントサイドのイベントハンドラの結合

クライアントサイドの JavaScript コードにより、サーバーサイドのイベントハンドラをトリガーできます。 最初のパラメータは、単なるサーバーサイドイベントハンドラの ID ではなく、そのイベントハンドラへの完全修飾パスにする必要があります。これにより、カスタムコントロールに埋め込まれているイベントハンドラも呼び出すことができるようになります。サーバーサイドイベントハンドラの ID を取得し、他のコントロールの場合と同様にクライアントスクリプトに渡すことができます (例えば、# {id:eventhanderId} または SSJS 関数 getClientId() を使用します)。

イベントハンドラは、指定するコンテキスト内で実行されます。例えば、view:_id1:repeatCtrl:0:_id33:eventhandler1 の ID を使用してイベントハンドラを指定すると、イベントハンドラは、ID が repeatCtrl の xp:repeat 内の最初の項目に対して実行されるのに対し、view:_id1:repeatCtrl:1:_id33:eventhandler1 の ID を使用して指定すると、イベントハンドラは、2 番目の項目に対して実行されます。

クライアントサイドのイベント処理は、ボタンまたは他のユーザーインターフェース要素によってトリガーされ、サーバーサイドのイベント処理によってハンドリングされる情報をサーバーに渡します。 設計モードで作業している場合は、[イベント] タブを選択してから、[クライアント] タブを選択してください。
<button dojoType="dijit.form.Button" type="button"
	onClick="XSP.executeOnServer('# {id:eventhandler1a}', '# {id:panel1}')">
	Click To Trigger Server Event Handler
</button>

<xp:eventHandler event="name" id="eventhandler1a">
	<xp:this.action>
		<xp:saveDocument />
	</xp:this.action>
</xp:eventHandler>
設計モードで作業している場合は、 [イベント] タブを選択して、次に [サーバー] タブを 選択してください。
XSP.executeOnServer = function () {
	// the event handler id to be executed is the first argument, and is required
	if (!arguments[0])
		return false;
	var functionName = arguments[0];

	// OPTIONAL - The Client Side ID that is partially refreshed after executing the event handler
	var refreshId = (arguments[1]) ? arguments[1] : "@none";
	var form = (arguments[1]) ? this.findForm(arguments[1]) : dojo.query('form')[0];
       
	// catch all in case dojo element has moved object outside of form...
	if (!form)
		form = dojo.query('form')[0];

	// OPTIONAL - Options object containing onStart, onComplete and onError functions for the call to the
	// handler and subsequent partial refresh
	var options = (arguments[2]) ? arguments[2] : {};

	// OPTIONAL - Value to submit in $$xspsubmitvalue. can be retrieved using context.getSubmittedValue()
	var submitValue = (arguments[3]) ? arguments[3] : '';

	// Set the ID in $$xspsubmitid of the event handler to execute
	dojo.query('[name="$$xspsubmitid"]')[0].value = functionName;
	dojo.query('[name="$$xspsubmitvalue"]')[0].value = submitValue;
	this._partialRefresh("post", form, refreshId, options);
}	

ファセットの理解

ファセットは、コントロール内に、さらに別のコントロールを配置するためのリージョンを定義します。

コントロールは、コントロールとファセットのコンテンツに応じて、 ファセットをレンダリングする場合もあれば、しない場合もあります。

ファセットの特殊な使用法として、ビューでのページャの配置があります。 ファセットの一般的な使用法としては、 その他のコントロールにおけるパネルの配置があります。 ここでは、ビューのサンプルソースコードを示します。 facets リージョンが、親コントロールの属性として記述されていること、および別のコントロールを含んでいることに注意してください。
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true" layout="Previous Group Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject" id="viewColumnHeader1"></xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

xp:key の指定は、ファセットの成果物であり、別のコントロールのプロパティではありません。 示されている値は、ビューでのページャに対応します。 パネルの場合、eastwestsouthnorthsouthwestsoutheastnorthwestnortheast のいずれか 1 つの値を使用して、親コントロール内での別のコントロールの場所を指定します。

以下のサンプルコードには、2 つのリンク (InboxOutbox) と 1 つのイメージを表示するパネルが含まれています。 最初のリンクは、onclick イベントを提供します。
<xp:viewPanel>
	<xp:this.facets>
		<xp:panel xp:key="west">
			<xp:link text="Inbox" >
				<xp:eventHandler event="onclick" submit="true">
					<xp:this.action>
					</xp:this.action>
				</xp:eventHandler>
			</xp:link>
			<xp:br/>
			<xp:link  text="Outbox" />
			<xp:br/>
			<xp:image id="viewPickerImage"
				value="/images/sampleViewPicker.gif" />
		</xp:panel>
	</xp:this.facets>
<xp:viewPanel>

ファセットは、設計モードでは表示されません。 ファセットを直接作成および変更するには、 ソースモードを使用する必要があります。

Dojo ウィジェットの概要

Dojo ウィジェットには、ブラウザと IBM Notes クライアントの両方のコントロールの外観と使用法を 拡張する JavaScript コード、HTML、CSS 宣言が パッケージされています。

Dojo ウィジェットを使用できるコントロールは、 編集ボックス、リッチテキスト、複数行入力域ボックス、ボタン、チェックボックス、 ラジオボタン、日時ピッカー、スパンコンテンツ、パネル、表、 Div です。

IBM Domino 8.5.3 の Dojo ファイルは、IBM Notes データディレクトリの domino¥js¥dojo-1.5.0¥dijit にあります。 IBM Domino 8.5.2 の場合は、domino¥js¥dojo-1.4.1¥dijit にあります。

アプリケーションは、サポートされるバージョンにマップする /.ibmxspres/dojoroot/ を介して Dojo ファイルを参照します。

Dojo の詳細については、http://api.dojotoolkit.org を参照してください。

XPage での Dojo リソースの有効化

Dojo リソースは、コントロールに適用する前に 使用可能にする必要があります。

このタスクについて
Dojo リソースを XPage で使用可能にするには、次の操作を行います。
手順
  1. XPage 自体にフォーカスを移動します。
  2. [プロパティ] タブで [Dojo] を選択します。
  3. dojoTheme を true に設定します。
  4. [プロパティ] タブで [リソース] を選択します。
  5. 使用可能にするウィジェットごとに、次の操作を行います。
    1. [追加] をクリックして [Dojo モジュール] を選択します。
    2. Dojo モジュール名 (dijit.form.NumberSpinner など) を指定します。
    3. (オプション) 条件 (true または false に評価される スクリプト) を指定します。
    4. [OK] をクリックします。

コントロールへの Dojo ウィジェットの適用

Dojo リソースを XPage で使用可能にした後、 コントロールに適用できます。

このタスクについて
Dojo ウィジェットをコントロール (編集ボックスなど) に適用するには、 次の操作を行います。
手順
  1. コントロールにフォーカスを移動します。
  2. [プロパティ] タブで [Dojo] を選択します。
  3. Dojo のタイプを Dojo モジュールリソースの名前 (dijit.form.NumberSpinner など) に設定します。 [すべてのプロパティ] の下では、これは dojoType です。
  4. 属性値を設定するには、以下のステップを実行します。
    1. [追加] アイコンをクリックします。
    2. 属性の名前を指定します (例: dijit.form.NumberSpinner の場合は valuesmallDelta)。
    3. 属性の値を指定します (例: dijit.form.NumberSpinner の場合は value に 100、smallDelta に 5)。
    [すべてのプロパティ] の下では、これは dojoAttributes です。
タスクの結果
編集ボックスコントロールに適用された dijit.form.NumberSpinner を 保存してプリビューすると、編集ボックスの横に上下の矢印 (スピナー) が 表示されます。編集ボックスの 初期値は value 属性です。上下の矢印をクリックすると、smallDelta 属性の分だけ値が増減します。

コントロールの参照

ここでは XPages コントロールが指定されています。

br - 改行

テキストに改行を挿入します。

カテゴリ
コアコントロール
構文
<xp:br attributes>content</xp:br>
表 1. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ title
basics attrsbindingidloadedrenderedrendererType
dojo dojoAttributesdojoType
styling disableThemestylestyleClassthemeId
使用法

実行時に、改行がページに 表示されます。

通常、このコントロールはプロパティを使用しません。

下の例では、改行によって 2 つのボタンが 分けられています。
<xp:button value="Submit" id="button2">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete"
	immediate="false" save="true"></xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:button value="Cancel" id="button3">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete"
	immediate="true" save="false"></xp:eventHandler>
</xp:button>

button - ボタン

ユーザーがクリックすることによりアクションを実行できるボタンを表示します。

カテゴリ
コアコントロール
構文
<xp:button attributes>content</xp:button>
表 2. 必須プロパティ
プロパティ 説明
id デフォルトは button1button2 などです。
value ボタンのラベルを指定します。
eventHandler ボタンがクリックされたときのアクションを指定します。 「使用法」セクションを参照してください。
使用法
実行時に、ボタンがページに 表示されます。 ユーザーはこのボタンをクリックできます。
ボタンには次の 3 つのタイプがあります。
  • [ボタン] (デフォルト) は、 作成したイベントハンドラに対応します (onclick など)。
  • [送信] で、データが保存され、ページが閉じられます。
  • [キャンセル] で、ページが閉じられます。
ページが閉じられたとき、 次にロードされるページは、UI の [次頁 (完了または取り消し)] になるページの navigationRules プロパティによって決定されます。
UI でのボタンのタイプを設定するには、[プロパティ] の下の [ボタン] をクリックして、[ボタンの種類] から選択します。 生成された eventHandler プロパティには、以下の属性があります。 手動で eventHandler プロパティを構成する場合は、以下の規則に従ってください。
ボタン 送信 キャンセル
event=any event="onclick" event="onclick"
submit=any submit="true" submit="true"
refreshMode=any refreshMode="complete" refreshMode="complete"
immediate=any immediate="false" immediate="true"
save=any save="true" save="false"
action= シンプルアクションまたはイベントハンドラ action=none action=none
下のボタンコントロールのタイプは、[送信] です。
<xp:button id="button1" value="Submit">
	<xp:eventHandler event="onclick"
		submit="true" refreshMode="complete" immediate="false" save="true">
	</xp:eventHandler>
</xp:button>
下のボタンコントロールのタイプは、[キャンセル] です。
<xp:button id="button2" value="Cancel">
	<xp:eventHandler event="onclick"
		submit="true" refreshMode="complete" immediate="true" save="false">
	</xp:eventHandler>
</xp:button>
下のボタンコントロールのタイプは [ボタン] で、クリックされると、データの保存シンプルアクションが実行されます。
<xp:button id="button1" value="Save and Exit">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
		<xp:this.action>
			<xp:save name="/xpage2.xsp"></xp:save>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>

コールバック - 編集可能領域

カスタムコントロールに、XPage への埋め込み時に編集可能な領域を提供します。

カテゴリ
コアコントロール
構文
<xp:callback attributes>content</xp:callback>
表 4. 必須プロパティ
プロパティ 説明
id デフォルトは、callback1callback2 などです。
facetName ファセットリージョンを識別します。
表 5. すべてのプロパティ
カテゴリ プロパティ
basics attrsbindingfacetNameidloadedrenderedrendererType
styling disableThemethemeId
使用法
このコントロールはカスタムコントロールにのみ適用されます。

詳しくは、カスタムコントロールの編集可能領域の定義カスタムコントロールの一般的なプロパティの設定 を参照してください。

checkBox - チェックボックス

選択またはクリアできるボックスを表示します。

カテゴリ
コアコントロール
構文
<xp:checkBox attributes>content</xp:checkBox>
表 6. 必須プロパティ
プロパティ 説明
id デフォルトは checkBox1checkBox2 などです。
text ラベルを示します。
value コントロールをデータ要素またはその他の値にバインドします。
checkedValue ボックスが選択されたときのデータ値を指定します。 デフォルトのストリングは、 true です。
uncheckedValue ボックスがクリアされたときのデータ値を指定します。 デフォルトのストリングは、 false です。
defaultChecked ボックスがデフォルトで選択された状態にする場合は、true を指定します。
使用法
実行時に、チェックボックスがページに 表示されます。 ユーザーは、このチェックボックスを選択、またはクリアできます。 選択されると、ボックス内にチェ ックマークが表示されます。
このチェックボックスコントロールは、ボックスが選択されている (デフォルト) かクリアされているかに基づいてデータ値を割り当てます。
<xp:checkBox id="checkBox2" text="Use user name instead of Anonymous"
	defaultChecked="true" value="#{document1.loginname}" uncheckedValue="Anonymous"
	checkedValue="#{javascript:session.getUserName()}">
</xp:checkBox>
このチェックボックスコントロールは、 phonesame という名前の要求変数にバインドされます。 ボックスが変更されると、 スクリプトが実行されます。 チェックボックスが選択されている場合、スクリプトは phonenight コントロール (編集ボックス) の値を、phoneday コントロールと同じ値に設定します。
<xp:checkBox text="Night phone same as day" id="checkBox1"
	value="#{requestScope.phonesame}">
	<xp:eventHandler event="onchange" submit="true" 	refreshMode="complete">
		<xp:this.action><![CDATA[#{javascript:
			if(requestScope.phonesame == "true") {
				getComponent("phonenight").setValue(
					getComponent("phoneday").getValue());
			}
		}]]></xp:this.action>
	</xp:eventHandler>
</xp:checkBox>

checkBoxGroup - チェックボックスグループ

選択またはクリアできる複数のボックスを表示します。

カテゴリ
コアコントロール
構文
<xp:checkBoxGroup attributes>content</xp:checkBoxGroup>
表 8. 埋め込みコントロール
コントロール 説明
selectItem ユーザー選択用の 1 つの項目を示します。
selectItems ユーザー選択用の 1 つ以上の項目を示します。
表 9. 必須プロパティ
カテゴリ プロパティ
id デフォルトは checkBoxGroup1checkBoxGroup2 などです。
value コントロールをデータ要素またはその他の値にバインドします。
使用法
実行時に、1 つ以上のチェックボッ クスがページに表示されます。 ユーザーは、これらのチェックボックスを選択、またはクリアできます。 選択されると、ボックス内にチェ ックマークが表示されます。

チェックボックスにバインドされたデータ要素は、 複数の値を許容する必要があります。

下のチェックボックスグループコントロールには、 選択用の 2 つの項目があります。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
		<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
		<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
	</xp:checkBoxGroup>
下のチェックボックスグループコントロールには、 式を使用した、選択用の 2 つの項目があります。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
このチェックボックスグループは、ビュー列の値から項目の選択を取得します。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>

comboBox - コンボボックス

複数の項目のリストを表示します。それらの項目からいずれか 1 つを選択できます。

カテゴリ
コアコントロール
構文
<xp:comboBox attributes>content</xp:comboBox>
表 11. 埋め込みコントロール
コントロール 説明
selectItem ユーザー選択用の 1 つの項目を示します。
selectItems ユーザー選択用の 1 つ以上の項目を示します。
表 12. 必須プロパティ
プロパティ 説明
id デフォルトは comboBox1comboBox2 などです。
text ラベルを示します。
value コントロールをデータ要素またはその他の値にバインドします。
使用法
実行時に、ドロップダウンリストがページに 表示されます。 ユーザーは 1 つの項目を選択できます。
下のコンボボックスコントロールには、選択用の 2 つの項目があります。
<xp:comboBox id="comboBox1" value="#{document1.fruit}">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:comboBox>
下のコンボボックスコントロールには、 式を使用した、選択用の 2 つの項目があります。
<xp:comboBox id="comboBox1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:comboBox>
このコンボボックスは、ビュー列の値から項目の選択を取得します。
<xp:comboBox id="comboBox1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:comboBox>

dataTable - データ表

データソースと関連付けられた行や列として編成されたセルが含まれます。 各セルには、他のコントロール (表も含む) とテキストを入れることができます。

カテゴリ
コンテナコントロール
構文
<xp:dataTable attributes>
	<xp:column attributes>content	</xp:column>
	...
</xp:dataTable>
表 14. 必須プロパティ
プロパティ 説明
id (dataTable) デフォルトは dataTable1dataTable2 などです。

(column) デフォルトは column1column2 などです。

value (dataTable) 通常、データバインディングは、 NotesDocumentCollection オブジェクトなど、要素の集まりに対して行われます。
var (dataTable) 通常、この変数はバインドされたデータの集まりの 1 メンバーを参照します (例えば、バインディングが NotesDocumentCollection オブジェクトに対して行われている場合は NotesDocument オブジェクト)。
表 16. すべてのプロパティ (column)
カテゴリ プロパティ
アクセシビリティ role
basics bindingidloadedrenderedrendererType
styling disableThemestylestyleClassthemeId
ページャ
設計仕様により 1 つ以上のページャを含む ファセットリージョンは、表の一部です。 ファセットリージョン内で作業するには、 ソースモードを使用します。

ページャコントロールのサンプルファセットを以下に示します。

<xp:this.facets>
	<xp:pager partialRefresh="true" layout="Previous Group Next"
		xp:key="header" id="pager1">
	</xp:pager>
</xp:this.facets>
[プロパティ] の下の [表示] タブにある以下のボックスは、次のようにファセットコンテンツに影響を与えます。
  • [ヘッダーにページャを表示] (デフォルトではクリアされています) は、 キー headerpager コントロールを生成します。 これがクリアされている場合、ファセットリージョンは生成されません。
  • [フッターにページャを表示] (デフォルトではクリアされています) は、 キー footerpager コントロールを生成します。
使用法
実行時に、データ表がページに 表示されます。 ユーザーは、表の個々のセルにアクセスできます。

データ表の作成後に、行と列の追加と 削除が可能です。

各列の内容は、1 個、2 個、3 個の値からなり、それらの値は、表のヘッダー行、中央行、フッター行を表します。 中央行の数は、データソース内の要素の数によって、レンダリング時に変わります。

カテゴリ、合計、返答文書、ソートなどの IBM Domino ビュー機能の場合は、ビューコントロールを使用してください。 ビューコントロールは、そのソースの IBM Domino ビューの機能を統合します。

ビューコントロールでは実行できない機能が必要な場合は、このコントロールを使用してください。 このコントロールを使用すると、ユーザーは、ビューコントロールを使用した場合には実行できない、列内での編集を行うことができます。 このコントロールを使用すると、選択するその他のコントロール (例えば、イメージ) の埋め込みとバインドを行うことができますが、ビュー コントロールを使用する場合は、ソース IBM Domino ビューの設計による制約を受けます。

下のデータ表は、現在のデータベースにあるすべての文書について、 subjectfruit の項目を表示します。
<xp:dataTable id="dataTable1" rows="30"
	value="#{javascript:return database.getAllDocuments()}" var="rowdoc">
	<xp:column id="column1">
		<xp:this.facets>
			<xp:label value="subject" id="label1" xp:key="header" style="font-weight:bold"></xp:label>
		</xp:this.facets>
		<xp:text escape="true" id="computedField1"><xp:this.value>
			<![CDATA[#{javascript:return rowdoc.getItemValueString("subject")}]]>
		</xp:this.value>	</xp:text>
	</xp:column>
	<xp:column id="column2">
		<xp:this.facets>
			<xp:label value="fruit" id="label2" xp:key="header" style="font-weight:bold"></xp:label>
		</xp:this.facets>
		<xp:text escape="true" id="computedField2"><xp:this.value>
			<![CDATA[#{javascript:return rowdoc.getItemValueString("fruit")}]]>
		</xp:this.value></xp:text>
	</xp:column>
</xp:dataTable>

dateTimeHelper - 日時ピッカー

編集ボックスに日時の値の選択用のピッカーを表示します。

カテゴリ
コアコントロール
構文
<xp:dateTimeHelper attributes>content</xp:dateTimeHelper>
表 17. 必須プロパティ
プロパティ 説明
id デフォルトは dateTimeHelper1dateTimeHelper2 などです。
表 18. すべてのプロパティ
カテゴリ プロパティ
basics bindingidloadedrenderedrendererType
dojo dojoAttributesdojoType
format timeClickableIncrementtimeVisibleIncrementtimeVisibleRange
styling disableThemethemeId
使用法
設計モードでは、Date Time Picker コントロールを作成すると、 Date/Time の表示タイプで、Edit Box コントロールに 自動的に埋め込まれます。 Date Time Picker プロパティにアクセスするには、ソースモードを選択して、 埋め込まれた dateTimeHelper 要素をフォーカスします。

実行時に、ユーザーはそのピッカーをクリックして、編集ボックスに挿入する日時を選択できます。

下の編集ボックスには、日時の値の選択用のピッカーが含まれています。
<xp:inputText id="inputText4" value="#{document1.mydatetime}">
	<xp:dateTimeHelper id="dateTimeHelper1"></xp:dateTimeHelper>
	<xp:this.converter>
		<xp:convertDateTime type="both" dateStyle="short" timeStyle="short"></xp:convertDateTime>
	</xp:this.converter>
</xp:inputText>

div - 区域

HTML 内のコンテンツの区域またはブロックとしての役割を果たします。 他のコントロールとテキストが含まれます。

カテゴリ
コンテナコントロール
構文
<xp:div attributes>content</xp:div>
表 19. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ roletitle
basics attrsbindingdiridlangloadedrenderedrendererType
dojo dojoAttributesdojoType
イベント onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
styling disableThemestylestyleClassthemeId
使用法

実行時に、区域のコンテンツが、プロパティが割り当てられた状態で ページに表示されます。

下の Div コントロールには、異なるスタイルを持つテキストと編集ボックスが含まれています。
<xp:div style="font-weight:bold;padding-bottom:20.0px">
	Day phone =>
	<xp:inputText id="inputText2" value="#{document1.phoneday}"></xp:inputText>
</xp:div>
<xp:div style="font-weight:bold">
	Night phone => 
	<xp:inputText id="inputText3" value="#{document1.phonenight}"></xp:inputText>
</xp:div>

eventHandler - イベントハンドラ (コントロール)

コントロールのクリックなどのユーザーアクションに応答します。

カテゴリ
その他のコントロール
構文
<xp:eventHandler attributes>content</xp:eventHandler>
表 20. 必須プロパティ
プロパティ 説明
save フォーム関連のデータを保存するか保存しないかを指定します。 これは、Cancel のタイプのボタンの場合、false でなければ なりません。
submit サーバーに要求を送信し、サーバーから応答を受信する場合、これは true です。 クライアントハンドラは、false を返すことによって要求の送信をキャンセルできます。
refreshMode ページの更新が完全か部分的か、実行しないかを指 定します。
immediate これは、Cancel のタイプのボタンの場合、true でなければ なりません。
表 21. すべてのプロパティ
カテゴリ プロパティ
basics bindingdisableValidatorseventexecIdexecModehandlersidloadednavigaterefreshIdrefreshModerenderedrendererTypesavesubmitvalue
data parameters
イベント actionactionListeneractionListenersimmediateonCompleteonErroronStartscript
styling disableThemethemeId
使用法
イベントの理解 を参照してください。
下の例は、Submit のタイプのボタンコントロールです。
<xp:button value="submit" id="button1">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete" immediate="false" save="true">
	</xp:eventHandler>
</xp:button>
下の例は、Cancel のタイプのボタンコントロールです。
<xp:button value="cancel" id="button2">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete" immediate="true" save="false">
	</xp:eventHandler>
</xp:button>
下の例は、ユーザーがコーディングした onclick イベントを持つ ボタンコントロールです。
<xp:button value="set username" id="button3">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
		<xp:this.action>
			<![CDATA[#{javascript:getComponent("inputText2").setValue(session.getCommonUserName())}]]>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>

fileDownload - ファイルのダウンロード

ローカルファイルシステムにファイルをダウンロードします。

カテゴリ
コアコントロール
構文
<xp:fileDownload attributes>content</xp:fileDownload>
表 22. 必須プロパティ
プロパティ 説明
id デフォルトは fileDownload1fileDownload2 などです。
value ファイルコントロールをデータ要素またはその他の値 (タイプがリッチテキストでなければなりません) にバインドします。
mimetype ダウンロードの MIME タイプを、ファイルタイプによって決定するのではなく、強制的に指定します。
useUploadName デフォルトでは、オリジナルファイル名が使用されます。
filename オリジナルファイル名を使用しない場合は、添付ファイル名を 指定します。
使用法
実行時に、添付ファイルがあればその情報がページに 表示されます。 情報には、ファイルタイプ、サイズ、名前、更新日、作成日、ユーザーがその添付ファイルを削除できるかどうかが含まれます。 ユーザーは名前をクリックしてファイルブラウザにアクセスし、添付ファイルをダウンロードできます。
以下のファイルのダウンロードコントロールによって、ユーザーは文書 の Body アイテムからファイルをダウンロードできます。
<xp:fileDownload rows="30" id="fileDownload1"
	displayLastModified="false" value="#{document2.body}">
</xp:fileDownload>

fileUpload - ファイルのアップロード

ローカルファイルシステムからファイルをアップロードします。

カテゴリ
コアコントロール
構文
<xp:fileUpload attributes>content</xp:fileUpload>
表 24. 必須プロパティ
プロパティ 説明
id デフォルトは fileUpload1fileUpload2 などです。
value ファイルコントロールをデータ要素またはその他の値 (タイプがリッチテキストでなければなりません) にバインドします。
mimetype ファイルタイプによって決定するのではなく、強制的に MIME タイプの アップロードを行います。
useUploadName デフォルトでは、オリジナルファイル名が使用されます。
filename オリジナルファイル名を使用しない場合は、添付ファイル名を 指定します。
使用法
実行時に、ファイルブラウザがページに 表示されます。 ユーザーは、ローカルファイルシステムからファイルを指定または選択できます。

ページが保存されるときに、ファイルはデータストア内のバインドさ れた項目に添付されます。 この項目は、リッチテキストなど、ファイル添付が可 能なタイプでなければなりません。

以下のファイルのアップロードコントロールは、文書の Body アイテムにファ イルをアップロードします。
<xp:fileUpload id="fileUpload1" value="#{document1.body}"></xp:fileUpload>

image - イメージ (コントロール)

イメージを表示します。

カテゴリ
コアコントロール
構文
<xp:image attributes>content</xp:image>
表 26. 必須プロパティ
プロパティ 説明
id デフォルトは image1image2 などです。
for ターゲットコントロールを識別します。
表 27. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ altroletitle
basics attrsbindingdiridismaplangloadedlongdescrenderedrendererTypeurlusemapvalue
イベント onbluronclickondblclickonfocusonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
format heightwidth
styling disableThemestylestyleClassthemeId
使用法
実行時に、イメージがページに 表示されます。
この例では、 ページにイメージを配置します。
<xp:image url="/sound.gif" id="image1" alt="Sound image"></xp:image>

include - ページの組み込み

参照を他の XPage に挿入します。

カテゴリ
コンテナコントロール
構文
<xp:include attributes>content</xp:include>
表 28. 必須プロパティ
プロパティ 説明
id デフォルトは include1include2 などです。
pageName 組み込むページです。
表 29. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ roletitle
basics attrsbindingcomponentIddiridloadedpageNamerenderedrendererType
data acldatadataContextsreadonly
dojo dojoAttributesdojoType
イベント onClientLoad
styling disableThemeouterStyleClassstylestyleClassthemeId
使用法
実行時に、組み込まれた XPage が表示されます。

設計モードでは、組み込まれたページを表示できますが、変更することはできません。

ページの組み込みコントロールを以下に示します。
<xp:include pageName="/main.xsp" id="include1"></xp:include>

inputHidden - 非表示の入力

データを非表示にしてユーザーから見えないようにします。

カテゴリ
コアコントロール
構文
<xp:inputHidden attributes>content</xp:inputHidden>
表 30. 必須プロパティ
プロパティ 説明
id デフォルトは inputHidden1inputHidden2 などです。
value コントロールをデータ要素またはその他の値にバインドします。
使用法
実行時に、ページには何も表示されません。 コントロールは、プログラムで操作できます。

このコントロールにアクセスするには、[コントロール] パレットの [その他] を開きま す (または、[作成] > [その他] をクリックします)。

この非表示の入力コントロールは、IBM Domino フォーム上のフィールドにバインドされます。
<xp:inputHidden id="inputHidden1" value="#{document1.description}"></xp:inputHidden>

inputRichText - リッチテキスト

リッチテキスト形式のデータを入力するための入力フィールドを表示します。

カテゴリ
コアコントロール
構文
<xp:inputRichText attributes>content</xp:inputRichText>
表 32. 必須プロパティ
プロパティ 説明
id デフォルトは inputRichText1inputRichText2 などです。
value コントロールをデータ要素またはその他の値にバインドします。
使用法
実行時に、ツールバー付きの編集ボックスがページに 表示されます。 ユーザーは、太字体や斜体などの属性を持つテキストを入力できます。 また、表、添付ファイル、埋め込みオブジェクト、 その他の成果物を挿入できます。

CKEditor (http://ckeditor.com) は、XPages のデフォルトのリッチテキストエディタです。 このエディタでは、イメージ、表、リンク、顔文字の埋め込みが可能です。エディタにはスペルチェッカーが含まれます。

レンダリングされたツールバーを調整できます。 リッチテキストコントロールをフォーカスして、 [Dojo] タブをクリックし、litemediumfull の値を持つ toolbarType という名前の属性 (dojoAttributes プロパティ) を追加します。

Dojo リッチテキストエディタに戻すこともできます。 リッチテキストコントロールをフォーカスして、[Dojo] タブをクリックし、 Dojo タイプ (dojoType プロ パティ) を ibm.xsp.widget.layout.RichText と指定します。

下のリッチテキストコントロールは、IBM Domino フォーム上のフィールドにバインドされます。
<xp:inputRichText id="inputRichText1" value="#{document1.body}"></xp:inputRichText>
下のリッチテキストコントロールは、Dojo エディタを使用します。
<xp:inputRichText id="inputRichText1"
	value="#{document1.body}" dojoType="ibm.xsp.widget.layout.RichText">
</xp:inputRichText>
下のリッチテキストコントロールは、全機能を備えたツールバ ーをレンダリングします。
<xp:inputRichText id="inputRichText1" value="#{document1.body}">
	<xp:this.dojoAttributes>
		<xp:dojoAttribute name="toolbarType" value="full"></xp:dojoAttribute>
	</xp:this.dojoAttributes>
</xp:inputRichText>

inputText - 編集ボックス

単一行のデータを入力する入力フィールドを表示します。

カテゴリ
コアコントロール
構文
<xp:inputText attributes>content</xp:inputText>
表 34. 必須プロパティ
プロパティ 説明
id デフォルトは inputText1inputText2 などです。
value 編集ボックスをデータ要素またはその他の値にバインドします。
使用法
実行時に、編集ボックスがページに 表示されます。 ユーザーは 1 行のテキストをボックスに入力できます。
下の編集ボックスコントロールは、IBM Domino フォーム上のフィールドにバインドされます。
<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText>
下の編集ボックスコントロールは、スコープ変数にバイ ンドされます。
<xp:inputText id="inputText2" value="#{requestScope.subject}"></xp:inputText>

inputTextarea - 複数行入力域ボックス

複数行のデータを入力する入力フィールドを表示します。

カテゴリ
コアコントロール
構文
<xp:inputTextarea attributes>content</xp:inputTextarea>
表 36. 必須プロパティ
プロパティ 説明
id デフォルトは inputTextarea1inputTextarea2 などです。
value コントロールをデータ要素またはその他の値にバインドします。
cols stylewidth 属性でオーバーライドされていない場合に、列数を指定します。
rows styleheight 属性でオーバーライドされていない場合に、行数を指定します。
使用法
実行時に、編集ボックスがページに 表示されます。 ユーザーは、複数行のテキストをボックスに入力できます。 ユーザーがボックスのサイズを超えて入力すると、スクロールデバイスが表示されます。
下の複数行編集ボックスコントロールは、IBM Domino フォーム上のフィールドにバインドされます。
<xp:inputTextarea id="inputTextarea1" value="#{document1.description}"
	cols="64" rows="8">
</xp:inputTextarea>

label - ラベル (コントロール)

テキストを表示します。

カテゴリ
コアコントロール
構文
<xp:label attributes>content</xp:label>
表 38. 必須プロパティ
プロパティ 説明
id デフォルトは label1label2 などです。
value ボタンのラベルを指定します。
for ユーザーがこのコントロールをクリックするかその他の方法でフォーカスした ときにフォーカスされるコントロールを指定します。
表 39. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ accesskeyroletitle
basics attrsbindingdirforhtmlFilteridlangloadedrenderedrendererType
data convertervalue
イベント onbluronclickondblclickonfocusonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
styling disableThemestylestyleClassthemeId
使用法

実行時に、ラベルの値がページに 表示されます。 フォーカスは、指定されたとおりにリダイレクトされます。

下のラベルコントロールは、共通のユーザー名を青で 表示します。
<xp:label
	value="#{javascript:session.getCommonUserName()}"
	id="label1" style="color:rgb(0,0,255)" for="inputText1">
</xp:label>

listBox - リストボックス

複数の項目のリストを表示します。それらの項目から 1 つ以上を選択できます。

カテゴリ
コアコントロール
構文
<xp:listBox attributes>content</xp:listBox>
表 42. 埋め込みコントロール
コントロール 説明
selectItem ユーザー選択用の 1 つの項目を示します。
selectItems ユーザー選択用の 1 つ以上の項目を示します。
表 43. 必須プロパティ
プロパティ 説明
id デフォルトは listBox1listBox2 などです。
value コントロールをデータ要素またはその他の値にバインドします。
使用法
実行時に、項目のリスト付きのボックスがページに 表示されます。 ユーザーは 1 つ以上の項目を選択できます。 複数の項目を選択できるようにするには、 multiple が true でな ければなりません。

複数の項目を選択できるようにする場合は、リストボックスにバインドされているデータ要素で複数の値が許容されている必要があります。

下のリストボックスコントロールには、選択用の 2 つの項目があります。
<xp:listBox id="listBox1" value="#{document1.fruit}" multiple="true">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:listBox>
下のリストボックスコントロールでは、 式を使用して、選択用の 2 つの項目が提供されています。
<xp:listBox id="listBox1" value="#{document1.fruit}"
	multiple="true">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:listBox>
このリストボックスは、ビュー列の値から項目の選択を取得します。
<xp:listBox id="listBox1" value="#{document1.fruit}"
	multiple="true">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:listBox>

message - エラー表示

1 つのコントロールに関するエラーメッセージが表示されます。

カテゴリ
コアコントロール
構文
<xp:message attributes>content</xp:message>
表 45. 必須プロパティ
プロパティ 説明
id デフォルトは message1message2 などです。
for ターゲットコントロールを識別します。
表 46. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ roletitle
basics attrsbindingdirforidlangloadedrenderedrendererType
format showDetailshowSummarytooltip
styling disableThemeerrorClasserrorStylefatalClassfatalStyleinfoClassinfoStylestylestyleClassthemeIdwarnClasswarnStyle
すべてのプロパティ
使用法
デフォルトでは、大半の検証チェックは、サーバーに要求を送信する前に、 クライアント側で行われます。 検証が失敗した場合、クライアントはダイ アログにエラーメッセージを表示し、サーバー要求を キャンセルします。

検証チェックをサーバー側で行い、このコントロールにエラーメッセージを表示させたい場合、 ターゲットコントロールについて、disableClientSideValidationtrue に設定する必要があります。

ここでは、入力ボックスは数値データにバインドされており、 クライアントサイドの検証は行われません。 入力ボックスのエラー表示は以下 のとおりです。
<xp:inputText id="inputText3" value="#{document1.number}"
	disableClientSideValidation="true">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:inputText>
<xp:message id="message1" for="inputText3"></xp:message>
ユーザーが数値以外の値を入力ボックスに入力した場合、 以下のメッセージがエラー表示に表示されます。
このフィールドは、有効な数値ではありません

messages - 複数エラー表示

ページ上のすべてのコントロールに関するエラーメッセージが表示されます。

カテゴリ
コアコントロール
構文
<xp:messages attributes>content</xp:messages>
表 47. 必須プロパティ
プロパティ 説明
id デフォルトは message1message2 などです。
layout レイアウトには、リスト (デフォルト) または表を使用できます。
表 48. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ roletitle
basics attrsbindingdirglobalOnlyidlangloadedrenderedrendererType
format layoutshowDetailshowSummarytooltip
styling disableThemeerrorClasserrorStylefatalClassfatalStyleinfoClassinfoStylestylestyleClassthemeIdwarnClasswarnStyle
使用法
デフォルトでは、大半の検証チェックは、サーバーに要求を送信する前に、 クライアント側で行われます。 検証が失敗した場合、クライアントはダイ アログにエラーメッセージを表示し、サーバー要求を キャンセルします。

検証チェックをサーバー側で行い、このコントロールにエラーメッセージを表示させたい場合、 ターゲットコントロールについて、disableClientSideValidationtrue に設定する必要があります。

ここでは、入力ボックスは数値データにバインドされており、 クライアントサイドの検証は行われません。 入力ボックスのエラー表示は以下 のとおりです。
<xp:inputText id="inputText3" value="#{document1.number}"
	disableClientSideValidation="true">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:inputText>
<xp:message id="message1" for="inputText3"></xp:message>
ユーザーが数値以外の値を入力ボックスに入力した場合、 以下のメッセージがエラー表示に表示されます。
このフィールドは、有効な数値ではありません

pager - ページャ

コンテナコントロールのデータが 1 つのウィンドウに表示できない場合に、データを複数のページに分けます。

カテゴリ
コアコントロール
構文
<xp:pager attributes>
	<xp:pagerControl attributes></xp:pagerControl> <!--ページスタイルがカスタムの場合-->
content</xp:pager>
表 49. 必須プロパティ
プロパティ 説明
id (pager) デフォルトは pager1pager2 などです。

(pagerControl) デフォルトは pagerControl1pagerControl2 などです。

layout (pager) コントロールをレイアウトするには、このプロパティを使用するか、pagerControl コントロールを埋め込みます。
for (pager) ページャがターゲットコントロール内にないと きのみ使用します。
type (pagerControl) このタイプは、ページャの[ページャスタイル] に、 [カスタム] を使用した場合に生成されます。
表 50. すべてのプロパティ (pager)
カテゴリ プロパティ
アクセシビリティ roletitle
basics attrsalwaysCalculateLastbindingdirforidlangloadedpageCountpartialExecutepartialRefreshrenderedrendererType
format layoutpanelPosition
styling disableThemeouterStyleClassstylestyleClassthemeId
表 51. すべてのプロパティ (pagerControl)
カテゴリ プロパティ
アクセシビリティ accesskeyaltroletabindextitle
basics bindingdiridlangloadedrenderedrendererTypetypevalue
イベント actionactionListeneractionListenersimmediateonbluronclickondblclickonfocusonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
format image
styling currentStyleClassdisableThemefirstStyleClasslastStyleClassstylestyleClassthemeId
使用法
実行時に、ユーザーはページャをクリックして、コントロール内でデータを繰り返すことができます。これによって、ビューパネルなどのデータ反復が可能になります。

ページャは、データのあるコントロール内のファセットリージョンに置くことができます。 あるいは、ページャを for プロパティによって、データコントロールと関連付けることもできます。

ページャコントロールは、以下の 2 とおりの方法で生成されます。
  • レイアウトプロパティを指定します。 設計モードで、[プロパティ] の下のトップタブをクリックし、 [ページャスタイル] として [サンプル] オプションからいずれか 1 つを選択します。
  • pagerControl コントロールを埋め込みます。 設計モードで、[プロパティ] の下のトップタブをクリックし、 [ページャスタイル] として [カスタム] を選択します。
このビューパネルコントロールには、ページャコントロールが含まれています。
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true"
			layout="Previous Separator Group Separator Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject"
			id="viewColumnHeader1">
		</xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

pagerControl - ページャの子コントロール

共通ページャ内にページャコントロールを指定します。

カテゴリ
コンテナコントロール
使用法
pager を参照してください。

panel - パネル

共通データソースとプロパティを持つ他のコントロールとテキストのコンテナと して機能します。

カテゴリ
コンテナコントロール
構文
<xp:panel attributes>content</xp:panel>
表 52. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ roletitle
basics attrsbindingdiridloadedrenderedrendererTypetagName
data acldatadataContextsreadonly
dojo dojoAttributesdojoType
イベント onClientLoad
styling disableThemeouterStyleClassstylestyleClassthemeId
使用法
実行時に、パネルのコンテンツが、データソースとプロパティが割り当てられた状態でページに表示されます。
下のパネルコントロールは、データソースを定義し、テキストと編 集ボックスを含んでいます。
<xp:panel style="height:60.0px;width:408.0px">
	<xp:this.data>
		<xp:dominoDocument var="document2" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText2" value="#{document2.phoneday}"></xp:inputText>
	day phone	<xp:br></xp:br>
	<xp:inputText id="inputText3" value="#{document2.phonenight}"></xp:inputText>
	night phone
</xp:panel>

paragraph - 段落

段落形式でテキストを結合します。

カテゴリ
その他のコントロール
構文
<xp:paragraph attributes>content</xp:paragraph>
表 53. 必須プロパティ
プロパティ 説明
id デフォルトは paragraph1paragraph2 などです。
表 54. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ roletitle
basics attrsbindingdiridlangloadedrenderedrendererType
dojo dojoAttributesdojoType
イベント onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
styling disableThemestylestyleClassthemeId
使用法

実行時に、段落のコンテンツが、プロパティが割り当てられた状態でページに表示されます。

下の段落コントロールは、太字でテキストの段落を 作成します。
<xp:paragraph id="paragraph1" style="font-weight:bold>今がその時期です。</xp:paragraph>

platformEvent - プラットフォームイベントコントロール

プラットフォームイベントを処理します。

カテゴリ
その他のコントロール
構文
<xp:platformEvent attributes>content</xp:platformEvent>
表 55. 必須プロパティ
プロパティ 説明
id デフォルトは platformEvent1platformEvent2 などです。
表 56. すべてのプロパティ
カテゴリ プロパティ
basics bindingeventNameidlangloadedrenderedrendererType
  onevent
styling disableThemethemeId
使用法

プラットフォームイベントは、 IBM Notes クライアントにおける複合アプリケーションイベントの公開に使用されます。

radio - ラジオボタン

選択またはクリアできるボタンを表示します。 グループ化されている場合、選択できるボタンはグループ内で 1 つ のみです。

カテゴリ
コアコントロール
構文
<xp:radio attributes>content</xp:radio>
表 57. 必須プロパティ
プロパティ 説明
id デフォルトは radio1radio2 などです。
text ラベルを示します。
value コントロールをデータ要素またはその他の値にバインドします。
selectedValue ボタンが選択されたときのデータ値を指定します。
defaultSelected デフォルトでボタンが選択された状態にする場合は、true を指定します。
groupName ラジオボタンをグループに割り当てます。
skipContainers 複数の異なるコンテナ (データ表の列など) のラジオボタンを同じグループに 割り当てます。
使用法
実行時に、ボタンがページに 表示されます。 ユーザーは、このチェックボックスを選択、またはクリアできます。 選択すると、ボタンの中が塗りつぶされます。

ボタンを選択すると、同じグループに割り当てられた他のボタンはすべてクリアされます。

グループへのボタンの割り当ては、 ラジオボタングループコントロールの作成と同様に行います。 個々のボタンをグループに割り当てて使用することで、配置を柔軟に行うことができます。

以下のラジオボタンコントロールは、値 apples または oranges のうち選択された方を、document1.fruit に 割り当てます。 ボタンはお互いに呼応して動作します。 Apples が選択された場合、 oranges はクリアされます。
<xp:radio text="Apples" id="radio1" value="#{document1.fruit}"
	groupName="fruit" selectedValue="apples">
</xp:radio>
<xp:radio text="Oranges" id="radio2" value="#{document1.fruit}"
	groupName="fruit" selectedValue="oranges">
</xp:radio>

radioGroup - ラジオボタングループ

選択またはクリアできる複数のボタンを表示します。 選択できるボタンはグループ内で 1 つのみです。

カテゴリ
コアコントロール
構文
<xp:radioGroup attributes>content</xp:radioGroup>
表 59. 埋め込みコントロール
コントロール 説明
selectItem ユーザー選択用の 1 つの項目を示します。
selectItems ユーザー選択用の 1 つ以上の項目を示します。
表 60. 必須プロパティ
プロパティ 説明
id デフォルトは radioGroup1radioGroup2 などです。
text ラベルを示します。
value コントロールをデータ要素またはその他の値にバインドします。
使用法
実行時に、1 つ以上のラジオボタンが ページに表示されます。 ユーザーは 1 つのボタンを選択できます。 1 つのボタンを選択すると、それまで選択されていた他のボタンはクリアされます。
下のラジオボタングループコントロールには、 選択用の 2 つの項目があります。
<xp:radioGroup id="radioGroup1" value="#{document1.fruit}" layout="pageDirection">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:radioGroup>
下のラジオボタングループコントロールでは、 式を使用して選択用の 2 つの項目が提供されています。
<xp:radioGroup id="radioGroup1" value="#{document1.fruit}"
	layout="pageDirection">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:radioGroup>
このチェックボックスグループは、ビュー列の値から項目の選択を取得します。
<xp:radioGroup id="radioGroup1" value="#{document1.fruit}"
	layout="pageDirection">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:radioGroup>

repeat - 繰り返し

データソースを繰り返すことによって、埋め込みコントロールを繰り返します。

カテゴリ
コンテナコントロール
構文
<xp:repeat attributes>
	contol ...
</xp:repeat>
表 62. 必須プロパティ
プロパティ 説明
id デフォルトは repeat1repeat2 などです。
value 通常、データバインディングは、 NotesDocumentCollection オブジェクトなど、要素の集まりに対して行われます。
var 通常、この変数はバインドされたデータの集まりの中の 1 つのメンバーを参照します (例えば、バインディングが NotesDocumentCollection オブジェクトに対して行われている 場合は NotesDocument オブジェクト)。
表 63. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ role
basics attrsbindingdiridlangloadedremoveRepeatrenderedrendererTyperepeatControlsrowAttrs
data firstindexVarrowsvaluevar
styling disableThemestylestyleClassthemeId
使用法
実行時に、コントロールの繰り返されたコンテンツがページに 表示されます。 繰り返しコントロールのコンテンツ内で var を使用して、データソースの各メンバーごとにそのコンテンツを繰り返します。
下の繰り返しコントロールは、現在のデータベースにあるすべての文書について、 subject 項目を表示します。
<xp:repeat id="repeat1" rows="30"
	value="#{javascript:return database.getAllDocuments()}" var="rowdoc"
	repeatControls="true">
	<xp:text escape="true" id="computedField1">
		<xp:this.value>
			<![CDATA[#{javascript:return rowdoc.getItemValueString("subject") + " "}]]>
		</xp:this.value>
	</xp:text>
</xp:repeat>

scriptBlock - 出力スクリプト

クライアントスクリプトを出力します。

カテゴリ
コアコントロール
構文
<xp:scriptBlock attributes>content</xp:scriptBlock>
表 64. 必須プロパティ
プロパティ 説明
id デフォルトは、scriptBlock1scriptBlock2 などです。
value クライアントスクリプトを指定します。
表 65. すべてのプロパティ
カテゴリ プロパティ
basics attrsbindingcharsetdeferidloadedrenderedrendererTypesrctype
data convertervalue
dojo dojoArgsdojoEvent
styling disableThemethemeId
使用法
このコントロールはカスタムコントロールにのみ適用されます。

実行時に、カスタムコントロールを含む XPage がクライアントにロードされたときにスクリプトが実行されます。

この出力スクリプトコントロールは、カスタムコントロール内にあります。 XPage に埋め込まれるときと、Xpage が開かれるときに、alert ボックスを表示します。
<xp:scriptBlock id="scriptBlock2" type="text/javascript">
	<xp:this.value><![CDATA[alert("hello custom")]]></xp:this.value>
</xp:scriptBlock>

section - セクション

他のコントロールとテキストのための省略表示可能なコンテナと して機能します。

カテゴリ
コンテナコントロール
構文
<xp:section attributes>content</xp:section>
表 66. 必須プロパティ
プロパティ 説明
id デフォルトは section1section2 などです。
header ヘッダーは、セクションの上部に表示され、セクションを省略表示したときに見えるようになります。
type 形式としては以下のタイプがあります。
  • default: 境界線なし
  • wide: 下部にグレーのバーが表示されます
  • box: 四方をすべてグレーのバーで囲みます
  • tab: 矢印と、矢印の下のセクションコンテンツの背景をグレーにします
initClosed デフォルトでは、セクションは初期状態で開かれています。
表 67. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ accesskeyroletabindextitle
basics attrsbindingcollapsedImagedirdisabledexpandedImageheaderidinitClosedlangloadedrenderedrendererType
イベント onbluronclickondblclickonfocusonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
format type
styling disableThemeheaderStylestylestyleClassthemeId
使用法
実行時に、セクションがページに 表示されます。
  • 閉じられたセクションには、ヘッダーのみが表示されます。
  • 開かれたセクションには、ヘッダーとコンテンツが表示されます。
ユーザーは、セクションを開いたり閉じたりすることができます。
下のセクションには、2 つの編集ボックスが含まれています。
<xp:section id="section1" header="Phone numbers" type="tab"
	initClosed="true">
	<xp:inputText id="inputText2" value="#{document1.phoneday}"></xp:inputText>day
	<xp:br></xp:br>
	<xp:inputText id="inputText3" value="#{document1.phonenight}"></xp:inputText>night
</xp:section>

selectItem - 選択項目

ユーザーの選択用の項目を提示します (チェックボックス内など)。

カテゴリ
なし
構文
<xp:selectItem attributes>content</xp:selectItem>
表 68. 必須プロパティ
プロパティ 説明
itemLabel ユーザーに表示するテキストを提供します。 必須。
itemValue ユーザーがこの項目を選択した場合に、親コントロールに値を 提供します。 必須。
表 69. すべてのプロパティ
カテゴリ プロパティ
basics attrsbindingiditemDescriptionitemDisableditemLabelrenderedrendererType
data itemValuevalue
format disableThemethemeId
使用法
このコントロールを他のコントロールに埋め込み、 親コントロールに選択項目を提供します。

設計モードで、項目選択を組み込むコントロールをフォーカスし、 [プロパティ] の下にある [値] タブをクリックします。 [項目の追加][リストのインポート] を使用して、 selectItem コントロールを作成します。

[すべてのプロパティ] の下に項目選択のプロパティを表示するには、ソースモードに切り替えて、(親コントロールではなく) 埋め込まれた selectItem コントロールをフォーカスする必要があります。

このチェックボックスグループコントロールには、選択用の 2 つの項目が含まれています。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:checkBoxGroup>

selectItems - 複数選択項目

ユーザーの選択用の項目を 1 つ以上提示 します (チェックボックス内など)。

カテゴリ
なし
構文
<xp:selectItems attributes>content</xp:selectItems>
表 70. 必須プロパティ
プロパティ 説明
value ラベル、値、説明を提示し、1 つ以上の説明項目についてフラグを無 効にします。 ここでの値は、データバインディングと異なります。
表 71. すべてのプロパティ
カテゴリ プロパティ
basics attrsbindingidloadedrenderedrendererType
data value
format disableThemethemeId
使用法
このコントロールを別のコントロールに埋め込み、 親コントロールに複数選択項目を提供します。

設計モードで、項目選択を組み込むコントロールをフォーカスし、 [プロパティ] の下にある [値] タブをクリックします。 [式項目の追加] を使用して、selectItems コントロールを 作成します。

[すべてのプロパティ] の下に項目選択のプロパティを表示するには、 ソースモードに切り替えて、(親コントロールではなく) 埋め込まれた selectItems コントロールをフォーカスする必要があります。

この値の式は、配列を戻す必要が あります。 配列の各要素は、1 つの選択項目を以下の形式で定義しなければなりません。
label|value|description|disabled
ここでは、 label のみが必須です。 縦線は構文の一部 です。

value が指定されていない場合、デフォルトの label に なります。 選択項目を無効 (グレー表示) にするには、 disabledtrue に指定します。

戻り値については、@DbColumn または @DbLookup の結果を分割する (@Explode) ことができます。

このチェックボックスグループコントロールには、選択用の 2 つの項目が含まれています。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples", "Oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
下のチェックボックスグループコントロールは、ラベルと値 に異なる名前を使用します。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
下のチェックボックスグループコントロールは、最初の選択を 無効にします。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples||true", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
このチェックボックスグループは、ビュー列の値から項目の選択を取得します。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>

span - スパンコンテンツ

テキストを (通常はプロパティの適用のために) 結合します。

カテゴリ
コアコントロール
構文
<xp:span attributes>content</xp:span>
表 72. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ roletitle
basics attrsbindingdiridlangloadedrenderedrendererType
dojo dojoAttributesdojoType
イベント onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
styling disableThemestylestyleClassthemeId
使用法

実行時に、スパンのコンテンツが、プロパティが割り当てられた状態でページに表示されます。

通常、このコントロールは直接 適用しません。 ページのテキストを強調表示し、太字などのプロパティを適用すると、 スパンは自動的に作成されます。

スペースを直接処理するには、ソースモードが 最適です。

ここでは、テキストを太字にするためにスパンコントロールが 使用されています。
<xp:span id="span1" style="font-weight:bold">
	今がその時期です。
</xp:span>

tabbedPanel - タブ付きパネル

他のコントロールとテキストのコンテナの集まりとして機能します。

カテゴリ
コンテナコントロール
構文
<xp:tabbedPanel attributes>
	<xp:tabPanel attributes>content</xp:tabPanel></xp:tabbedPanel>
	...
</xp:tabbedPanel>
表 73. 必須プロパティ
プロパティ 説明
id (tabbedPanel) デフォルトは tabbedPanel1tabbedPanel2 などです。

(tabPanel) デフォルトは tabPanel1tabPanel2 などです。

selectedTab (tabbedPanel) 初期状態でタブ付きパネルをこのタブに 開きます。
text (tabPanel) タブにラベルを指定します。
表 74. すべてのプロパティ (tabbedPanel)
カテゴリ プロパティ
アクセシビリティ roletitle
basics attrsbindingdiridlangloadedrenderedrendererTypeselectedTab
styling containerStyleClassdisableThemeouterStyleClassstylestyleClassthemeId
表 75. すべてのプロパティ (tabPanel)
カテゴリ プロパティ
アクセシビリティ roletitle
basics bindingdirhrefidimagelabellangloadedrenderedrendererType
イベント onClick
styling contentStyleClassdisableThemeendTabStyleClassmiddleTabStyleClassselectedTabStyleClassstartTabStyleClassstylestyleClassthemeIdunselectedTabStyleClass
使用法
実行時に、選択されたタブパネルのコンテンツがページに 表示されます。 その他のタブも表示されますが、コンテンツは表示 されません。 ユーザーは、タブを選択してパネルを切り替えます。
設計モードで、タブ付きパネルをフォーカスすると、 tabbedPanel 要素が選択されます。 tabPanel 要素を扱うには、右クリックするか、メニューを使用して、 以下を行います。
  • [アクティブなタブコンテンツの選択] は、フォーカスされているタブの tabPanel 要素をフォーカスします。
  • [アクティブタブの削除] は、フォーカスされているタブの tabPanel 要素を削除します。
  • [タブを挿入] は、新規の tabPanel 要素を挿入します。
  • [タブの追加] は、新規の tabPanel 要素を追加します。
下のタブ付きパネルコントロールには、2 つのパネルがあります。
<xp:tabbedPanel id="tabbedPanel1" selectedTab="tabPanel1">
	<xp:tabPanel id="tabPanel1" label="Day">
		<xp:inputText id="inputText2"
			value="#{document1.phoneday}">
		</xp:inputText>
	</xp:tabPanel>
	<xp:tabPanel label="Night" id="tabPanel2">
		<xp:inputText id="inputText3"
			value="#{document1.phonenight}">
		</xp:inputText>
	</xp:tabPanel>
</xp:tabbedPanel>

table - 表

行と列に編成されたセルが含まれます。 各セルには、他のコントロール (表も含む) とテキストを入れることができます。

カテゴリ
コンテナコントロール
構文
<xp:table attributes>
	<xp:tr attributes>
			<xp:td attributes>cell content</xp:td>
			...
	</xp:tr>
	...
</xp:table>
表 76. すべてのプロパティ (table)
カテゴリ プロパティ
アクセシビリティ captionrolesummarytitle
basics attrsaccesskeybindingdiridlangloadedrenderedrendererTypetabindex
dojo dojoAttributesdojoType
イベント onbluronclickondblclickonfocusonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
format alignbordercellpaddingcellspacingwidth
styling captionStyleClassdisableThemestylestyleClassthemeId
表 77. すべてのプロパティ (tr)
カテゴリ プロパティ
アクセシビリティ roletitle
basics bindingdiridlangloadedrenderedrendererType
dojo dojoAttributesdojoType
イベント onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
format alignvalign
styling disableThemestylestyleClassthemeId
表 78. すべてのプロパティ (td)
カテゴリ プロパティ
アクセシビリティ roletitle
basics bindingdiridlangloadedrenderedrendererType
dojo dojoAttributesdojoType
イベント onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
format aligncolspanrowspanvalign
styling disableThemestylestyleClassthemeId
使用法
実行時に、表がページに 表示されます。 ユーザーは、表の個々のセルにアクセスできます。
設計モードで XPage に表を挿入するとき、行数と列数を指定するように求めるダイアログが表示されます。 表の作成後、以下のことが可能です。
  • 行と列の追加と削除。
  • セルの結合。
  • 1 つのセルと複数のセルの選択。
  • セルコンテンツの追加と削除。
下の表では、4 つのセルが 2 行と 2 列に編成されています。
<xp:table>
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

text - 計算結果フィールド

値を表示します。

カテゴリ
コアコントロール
構文
<xp:text attributes>content</xp:text>