IBM Domino Designer 9.0.1 ユーザーガイド

第 1 版

2013 年 10 月発行

本書について

この版の製品資料では、アクセシビリティに対する IBM の取り組みに従い、アクセシビリティが確保されています。

本書への更新

この HTML ファイルには、このリリースに対する公式の製品資料の最新ドラフトが含まれています。このドラフトは、必要に応じて四半期ごとに更新されます。 製品資料の最新の更新情報については、Wiki の製品資料のセクションに記載されているリリース固有の記事を参照してください。

印刷

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

オフライン作業

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

フィードバックの送信

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

IBM Domino Designer 9.0.1 Social Edition の新機能

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

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

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

IBM Domino Designer と XPages の領域におけるこのリリースの変更と追加を以下に示します。

  • Dojo バージョンの 1.8.1 から 1.8.3 へのアップグレード
  • 次の XPage 機能を Web アクセシビリティ要件に準拠するように変更
    • XPage 実行時体験
    • XPage チームルームテンプレートの Web ユーザーインターフェース
    • XPage ディスカッションテンプレートの Web ユーザーインターフェース
  • 次を含む XPage 9.0.1 モバイル拡張:
    • 拡張ライブラリのモバイルアプリケーションページやモバイルシングルページアプリケーションのコントロールで使用するイベントの追加
    • 人気の高い範囲のモバイルデバイスとタブレットデバイスを識別するための、使いやすくプログラミングしやすい方法を提供するための deviceBean の追加。この Bean から提供される情報により、デバイスやブラウザの要求に基づいて、アプリケーションページのさまざまな部分のロードやアンロードをするかどうかというプログラミング上の判断ができます。
    • 写真/ビデオファイルのアップロード機能
    • iOS と Android 用の OneUI IDX モバイルテーマ
    • iOS と Android 用のデフォルトのモバイルテーマとモバイルテーマの上書き
    • iOS や Android のユーザーエージェントを模倣するためのモバイルデバッグユーザーエージェントスイッチ
  • 動的検索 (検索エンジンの最適化) の改善。これには、動的コンテンツ機能の使用による wiki ページの応答性の改善に合わせた、検索ボットのサポートが含まれます。
  • XULRunner for XPiNC (XPages in the Notes® Client) の 10.0.6 へのアップグレード。これにより、Notes クライアントでの XPages のレンダリングが改善されます。
  • 製品ヘルプの索引付けの改善
  • [サーバーベースの XPage アプリケーションを Domino サーバー上で直接実行する] アプリケーション開始オプションを使用することにより、サーバーベースの XPages アプリケーションを Domino サーバー上で直接実行できる。
  • XPiNC (XPages in the Notes Client) クライアントサイドの JavaScript 拡張 - XSP.executeCommand() 機能の追加。

  • より高いメモリ要件をサポートするように、デフォルトの Designer の JVM.Properties 設定を更新
  • 部分的な更新ファイルのアップロードの向上
  • CKEditor の 3.6.6.1 から 3.6.6.2 へのアップグレード

一部の XPages 項目の詳細については、この文書の「XPages」セクションを参照してください。

プログラム可能な事項、言語、サービスの詳細については、この文書の「プログラム可能な事項、言語、サービス」セクションを参照してください。

XPages

さまざまな能力や障害を持つユーザーが使用できるソフトウェアアプリケーションを設計し作成することが、ビジネス界で要求されます。XPages を使用してアクセシビリティ対応アプリケーションを作成するには、障害のある方や加齢障害を持つ成人のユーザーなど、多種多様なユーザーのニーズを把握する必要があります。

このリリースの XPages 領域では、開発者によるアクセシビリティ対応 XPages アプリケーションの作成を支援し、XPages の実行時体験をよりアクセシビリティ要件に準拠させるために、大幅な変更が加えられました。

以下の項目は、このリリースで行われたアクセシビリティ準拠の変更点や追加点の要約を示します。

  • 新しいアクセシビリティ対応テーマの導入 - XPages ではアクセシビリティのガイドラインと要件に準拠するテーマがサポートされるようになりました。 テーマの名前は oneuiv2.1_blue です
  • role プロパティの廃止 - 9.0.1 からは、以下のコントロールでの role プロパティが廃止されました。デフォルトでは、適切なアクセシビリティ準拠値が生成されます。アクセシビリティ標準に準拠するには、このプロパティに値を指定しないでください。
    • xp:dataTable - データ表
    • xp:fileDownload - ファイルのダウンロード
    • xp:viewPanel - ビュー
    • xp:tabbedPanel - タブ付きパネル
    • xp:tabPanel - 「タブ付きパネル」を参照
    • xp:pager - ページャ
    • xp:pagerControl - 「ページャ」を参照
    • xe:dataView - データビュー
  • ウィジェットコンテナコントロールへの accesskey - アクセラレータプロパティと tabindex - タブ索引プロパティの追加 - これらのプロパティは、リリース 9.0.1 で以下のコントロールに対して新しく追加されました。詳細は、このガイドの「プロパティリファレンス (拡張ライブラリ)」セクションを参照してください。
    • xe:widgetContainer - ウィジェットコンテナ
  • titleBarLabel - タイトルバープロパティ、placeBarLabel - プレースバープロパティ、leftColumnLabel - 左列ファセットプロパティ、rightColumnLabel- 右列ファセットプロパティの追加 - これらのプロパティはリリース 9.0.1 で新しく追加されました。このコントロールに適用されます。詳細は、このガイドの「プロパティリファレンス (拡張ライブラリ)」セクションを参照してください。
    • xe:applicationConfiguration - アプリケーション構成
  • ariaLabel - ARIA ラベル プロパティの追加 - このプロパティはリリース 9.0.1 で新しく追加されました。これらのコントロールに適用されます。 詳細は、このガイドの「コントロールの追加 - プロパティの参照」、「コントロールの追加 - コントロールの参照」、「プロパティの参照 (拡張ライブラリ)」のセクションを参照してください。
    • xe:formtable - フォームテーブル
    • xe:navigator - ナビゲータ
    • xp:pager - ページャ
    • xe:pagerAddRows - PagerAdd 行
    • xe:pagerDetail - ページャ詳細の表示/非表示
    • xe:pagerExpand - ページャの展開/省略表示
    • xe:pagerSizes - ページャサイズ
    • xe:tagCloud - タグクラウド
    • xe:dataView - データビュー
  • summary - データ要約 プロパティの追加 - このプロパティはリリース 9.0.1 で新しく追加されました。このコントロールに適用されます。 詳細は、このガイドの「プロパティリファレンス (拡張ライブラリ)」セクションを参照してください。
    • xe:dataView - データビュー
  • headerLinkTitle - ヘッダーリンクタイトル プロパティの追加 - このプロパティはリリース 9.0.1 で新しく追加されました。これらのコントロールに適用されます。 詳細は、このガイドの「プロパティリファレンス (拡張ライブラリ)」セクションを参照してください。
    • xe:viewExtraColumns - 「追加の列」プロパティを参照。
    • xe:viewSummaryColumn - 「要約列」プロパティを参照。
  • mageAlt - イメージ代替テキスト プロパティの追加 - このプロパティはリリース 9.0.1 で新しく追加されました。このコントロールに適用されます。 詳細は、このガイドの「コントロールの追加 - プロパティの参照」、「コントロールの追加 - コントロールの参照」のセクションを参照してください。
    • xp:tabPanel - 「タブ付きパネル」を参照。
  • linkTitle - リンクタイトル プロパティの追加 - このプロパティはリリース 9.0.1 で新しく追加されました。これらのコントロールに適用されます。 詳細は、このガイドの「プロパティリファレンス (拡張ライブラリ)」セクションを参照してください。
    • xe:viewExtraColumns - 「追加の列」プロパティを参照
    • xe:viewSummaryColumn - 「要約列」プロパティを参照。
  • readonly - 読み取り専用 プロパティの追加 - このプロパティはリリース 9.0.1 で新しく追加されました。このコントロールに適用されます。 詳細は、このガイドの「コントロールの追加 - プロパティの参照」、「コントロールの追加 - コントロールの参照」のセクションを参照してください。
    • xp:label - ラベル
  • アクセシビリティ準拠の要件の文書化 - 以下のコントロールには、このリリースで文書化された、アクセシビリティ準拠の固有要件があります。詳細は、このガイドの「コントロールの追加 - プロパティの参照」、「コントロールの追加 - コントロールの参照」のセクションを参照してください。
    • xp:button - ボタン
    • xp:checkBox - チェックボックス
    • xp:checkBoxGroup - チェックボックスグループ
    • xp:dataTable - データ表
    • xp:dateTimeHelper - 日時ピッカー
    • xp:label - ラベル
    • xp:link - リンク
    • xp:message - エラー表示
    • xp:radioGroup - ラジオボタングループ
    • xp:radio - ラジオボタン
    • xp:Table - 表
    • xp:tabbedPanel - タブ付きパネル
  • 現在のコントロールは最新のアクセシビリティ標準に対してテストされていない - 以下のコントロールは、最新のアクセシビリティ標準に対してテストされていません。代替アクセシビリティパスを推奨します。詳細は、このガイドの「コントロールの追加 - プロパティの参照」、「コントロールの追加 - コントロールの参照」、「プロパティの参照 (拡張ライブラリ)」のセクションを参照してください。
    • xe:djAccordionContainer
    • xe:djAccordionPane
    • xe:djBorderContainer
    • xe:djBorderPane
    • xe:djButton
    • xe:djCheckBox
    • xe:djComboBox
    • xe:djContentPane
    • xe:djCurrencyTextBox
    • xe:djDateTextBox
    • xe:djextImageSelect
    • xe:djFilteringSelect
    • xe:djNumberSpinner
    • xe:djNumberTextBox
    • xe:djRadioButton
    • xe:djSimpleTextarea
    • xe:djStackContainer
    • xe:djStackPane
    • xe:djTabContainer
    • xe:djTabPane
    • xe:djTextarea
    • xe:djTextBox
    • xe:djTimeTextBox
    • xe:djToggleButton
    • xe:djValidationTextBox
    • xe:djxDataGrid
    • xe:djxDataGridColumn
    • xe:djxDataGridRow
    • xe:dropDownButton
    • xe:dynamicViewPanel
    • xe:inPlaceForm
    • xe:linksList
    • xe:listView
    • xe:listViewColumn
    • xe:popupMenu
    • xe:sortLinks
    • xe:toolbar
    • xe:tooltip
    • xe:tooltipDialog
    • xp:viewColumn
    • xp:viewColumnHeader
    • xp:viewPager
    • xp:viewPanel
    • xp:viewTitle
  • 動的コンテンツの改善 - このリリースでは、動的コンテンツ機能が改善されて、クライアントサイドの JavaScript コードを実行できない検索ボットによる文書索引作成がサポートされるようになりました。

    Web クローラとして認識する必要があるユーザーエージェント ID を指定するための新規プロパティが構成ファイルに追加されました。リストに存在する ID が要求のユーザーエージェントヘッダーに含まれている場合は、リンクのレンダリング時、またはリダイレクト応答のロケーションヘッダー内で、別の URL が返されます。この違いは、「#」記号が「?」または「&」に置き換わっていることです。

    この処理が実行されるのは、要求内に content パラメータが存在する場合だけです。 このチェックが実行された場合は、パフォーマンスへの影響を最小限にするために、結果はセッション属性に保管されます。

    返された URL をたどることにより、Web クローラは、クライアントサイド JavaScript を実行せずに文書を検索できるようになります。 この例では、このプロパティの使用方法を示しています。

    # ########################################
    # Search Engine web crawler User-Agent Ids
    # ########################################
    # A comma-separated and lowercase list of Web crawler user-agent Ids. If this property is missing an hard coded list of well known search crawlers is used (Google,Bing,Yahoo). Few keywords can be used with a special meaning
    # <empty>: The feature is disabled and no check will be performed against the user-agent header 
    # <auto>: This keyword is replaced with the list of hard coded search crawlers ids.
    
    #xsp.search.bot.id.list=<empty> (will disable the check) the usual behaviour is followed and no check is performed against the useragent.
    
    #xsp.search.bot.id.list=<auto>,blekkobot (will include google,bing,yahoo and blekko search crawlers in the list of ids to be checked against the user agent, if one of the id is found in the user-agent header, it will be treated as bot and url will be normalize to help indexing. i.e. Avoid use of # sign in URLs)

    この構成が有効になっている場合、Google 検索ボットのユーザーエージェント Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) はボットとして認識され、代わりの動作が実行されます。

  • [サーバーベースの XPage アプリケーションを Domino サーバー上で直接実行する] アプリケーション開始オプションを使用することにより、サーバーベースの XPages アプリケーションを Domino サーバー上で直接実行できる。

    これを機能させるためには、まず IBM Notes にアカウントをセットアップして、HTTP サーバーにアクセスできるようにする必要があります。 Notes アカウントを作成または表示するには、IBM Notes で [ファイル] -> [プリファレンス] -> [アカウント] を選択して、正しいタイプ (HTTP/HTTPS) になっていることと、サーバーへのアクセスに使用する必要がある完全修飾ホスト名が含まれていることを確認します。SSO を使用する場合、名前は、サーバーに登録されているサーバー名と正確に一致しなければなりません。Notes ワークスペース内の情報からホスト名を正確に導き出せない場合は、エラーが表示される可能性があります。

    その場合は、使用したい (ホスト名を提供したい) RunOnServer アプリケーションを登録する必要があります。これを行うには、[ファイル] > [プリファレンス] > [XPages パフォーマンス] > [サーバーで実行] を選択して、アプリケーション、サーバー、ホスト名を追加します。

    XPages とは関係なくこれをテストするには、アカウントをセットアップして、アプリケーションの HTTP アドレスを Notes URL アドレスバーに入力します。プロンプトが表示されることなくアプリケーションがロードされた場合、Notes 組み込みブラウザは Notes アカウントフレームワークに定義された情報を正しくパススルーしています。また、アドレスバーで使用したのと同じサーバー名が、[RunOnServer] プリファレンスにオプションのホスト名として格納され、使用されていることを確認してください。

  • XPiNC (XPages in the Notes Client) クライアントサイドの JavaScript 拡張 - XSP.executeCommand() 機能の追加。9.0 以降では XSP.executeCommand(commandID, commandParameters) が追加されています。commandID は要求された関数を識別します。commandParams は任意の arg 値を含むオブジェクトですが、NULL でも構いません。この機能では、他の XPiNC XSP JavaScript コマンド (例えば、XSP.alert()、XSP.confirm()、XSP.publishEvent()、など) と同じランタイムパスを使用します。

    XSP.executeCommand() が呼び出されると、XPages は登録されたコマンドプロバイダのリストを調べます。 コマンドを処理する投稿者が見つかった場合は、コマンドが呼び出され、実行されて、必要な場合は結果が返されます。

プログラム可能な事項、言語、サービス

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

  • モバイルコントロールイベント - モバイル拡張の分野では、拡張ライブラリのモバイルアプリケーションページやモバイルシングルページアプリケーションのコントロールで使用するために、次のイベントが追加されました。
    • onOrientationChange
    • onBeforeTransitionIn
    • onAfterTransitionIn
    • onBeforeTransitionOut
    • onAfterTransitionOut

    詳細は、「ユーザー・ガイド」を参照してください。

  • deviceBean - モバイルアプリケーション開発拡張の分野でも、deviceBean が、それに関連付けられている API とともにこのリリースで追加されました。

    これより前にバージョンでは、XPage は context.getUserAgent() サーバーサイドユーザーエージェント API を提供していました。この API は、要求もとのユーザーエージェントを識別するために使用されます。 これにより、CSS、クライアントサイド JavaScript などのリソースをサーバーサイドで管理しやすくなります。 これはアプリケーションレイアウトにも役立ち、要求元のユーザーエージェントに応答を送信する前に、XPage 内でコンポーネントの表示と非表示を切り替えることができるようになります。

    モバイルコンピューティングの人気度を考慮すると、現代では、複数のユーザーエージェントタイプ (つまり、モバイルデバイス) を識別できることも、標準的なデスクトップブラウザアプリケーションの識別よりはるかに重要です。この作業に役立つように、deviceBean と呼ばれる新しい管理 Bean が XPage ランタイムに導入されました。これにより、サーバーサイド JavaScript 計算式、または式言語 (EL) 計算式の中で直接、人気の高い範囲のモバイルデバイスとタブレットデバイスを識別するための、使いやすくプログラミングしやすい方法を提供します。この Bean から提供される情報により、デバイスやブラウザの要求に基づいて、アプリケーションページのさまざまな部分のロードやアンロードをするかどうかというプログラミング上の判断ができます。

    例えば、# {deviceBean.mobile} を呼び出すことで、EL 内でモバイルデバイスを識別でき、もう 1 つの方法のサーバーサイド JavaScript でも、# {javascript:deviceBean.isMobile()} を呼び出すことで識別できます。この deviceBean は、拡張ポイントもサポートするため、これを将来、IBM® からのアップグレードパックで拡張したり、独自のカスタムプロジェクトのニーズを満たすように調整したりできます。

    この Bean では次の API を使用できます。

    • deviceBean.mobile - EL バージョン。デバイスがモバイルデバイスであることを識別します。
    • deviceBean.isMobile() - JavaScript バージョン。 デバイスがモバイルデバイスであることを識別します。
    • deviceBean.tablet - EL バージョン。デバイスがタブレットであることを識別します。
    • deviceBean.isTablet() - JavaScript バージョン。 デバイスがタブレットであることを識別します。
    • deviceBean.getValue() - JavaScript バージョン。 その他のすべてのメソッドに別の方法でアクセスするために使用され、将来の拡張へのアクセス権限を付与します。例えば、getValue('mobile') を使用して isMobile と同じ結果を返すようにしたり、getValue('chrome') を使用して拡張呼び出し isChrome() (式言語の使用時には deviceBean.chrome などになります) を返すようにしたりできます。
    • deviceBean.iphone - EL バージョン。デバイスが iPhone であることを識別します。
    • deviceBean.isIphone() - JavaScript バージョン。 デバイスが iPhone であることを識別します。
    • deviceBean.ipad - EL バージョン。デバイスが iPad であることを識別します。
    • deviceBean.isIpad() - JavaScript バージョン。 デバイスが iPad であることを識別します。
    • deviceBean.android - EL バージョン。デバイスが Android デバイスであることを識別します。
    • deviceBean.isAndroid() - JavaScript バージョン。 デバイスが Android デバイスであることを識別します。
    • deviceBean.blackberry - EL バージョン。デバイスが Blackberry デバイスであることを識別します。
    • deviceBean.isBlackBerry() - JavaScript バージョン。 デバイスが Blackberry デバイスであることを識別します。
    • deviceBean.windows - EL バージョン。デバイスが Windows モバイルデバイスであることを識別します。
    • deviceBean.isWindows() - JavaScript バージョン。 デバイスが Windows モバイルデバイスであることを識別します。
    • deviceBean.version['key'] - EL バージョン。指定したキー (#{deviceBean.version['iphone']} など) のバージョンを返します。
    • deviceBean.getVersion('key') - JavaScript バージョン。 指定したキー (#{javascript:deviceBean.getVersion('iphone');}} など) のバージョンを返します。
    deviceBean で使用できる API の使用例をいくつか、次のコードサンプルに示します。
    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
    	<xe:singlePageApp id="singlePageApp1"
    		selectedPageName="appPage1">
    		<xe:appPage id="appPage1" pageName="appPage1">
    			<xe:djxmHeading id="djxmHeading1">deviceBean</xe:djxmHeading>
    			<xe:djxmRoundRectList id="djxmRoundRectList1">
    				<xe:djxmLineItem id="djxmLineItem2" label="Mobile"
    					rightText="#{deviceBean.mobile}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem5" label="Tablet"
    					rightText="#{deviceBean.tablet}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem1" label="Android"
    					rightText="#{javascript:deviceBean.isAndroid()}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem7" label="Apple"
    					rightText="#{javascript:deviceBean.getValue
    ('apple')}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem8" label="Windows"
    					rightText="#{javascript:deviceBean.getValue
    ('windows')}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem9" label="Blackberry"
    					rightText="#{javascript:deviceBean.getValue
    ('blackberry')}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem22" label="iPhone"
    					rightText="#{javascript:deviceBean.isIphone()}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem23" label="iPad"
    					rightText="#{deviceBean.ipad}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem24" label="iPod"
    					rightText="#{javascript:deviceBean.getValue
    ('ipod')}">
    				</xe:djxmLineItem>
    			</xe:djxmRoundRectList>
    		</xe:appPage>
    	</xe:singlePageApp>
    </xp:view>

IBM Domino アクセスサービス (REST API) の分野では、このリリースで次の追加と変更が行われました。

  • IBM Domino コアサービス - この REST API は、1 つのサービスドメインに特定しないリソースへのアクセス権限を提供します。例えば、ほとんどのアプリケーションには、認証ユーザーパスワードに関する情報 (最終変更日、期限日付など) を読み取るという要件があります。この要件は、1 つの特定の REST サービス (カレンダー、メールなど) に特定されないため、この機能はコアサービスに含められます。コアサービスから利用できるリソースには、次のものがあります。
    • パスワード統計リソース (pwstats)
    • nonce リソース
  • IBM Domino カレンダーサービス - これは、カレンダーデータにアクセスするためのリソースとメソッドを提供する REST API です。このサービスは、JSON 形式と iCalendar 形式の両方でカレンダーデータを表します。

製品の概要

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 には、運動機能や視覚に障害のある方向けの補助機能が用意されています。

IBM Domino Designer には、運動機能や視覚に障害のある方向けの補助機能が用意されています。

具体的には、IBM Domino Designer には以下の機能があります。

  • キーボードショートカットを使用すると、IBM Domino 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 plug-in: 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

[ページを開く] シンプルアクション (『IBM Domino Designer XPages リファレンス』を参照) は、アクティブにするとただちにページを開きます。 以下に例を示します。
<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 メソッドでのリダイレクト

redirectToPage (『IBM Domino Designer XPages リファレンス』参照)redirectToPrevious (『IBM Domino Designer XPages リファレンス』参照)redirectToHome (『IBM Domino Designer XPages リファレンス』参照) メソッドは、アクティブにするとただちにページを開きます。以下に例を示します。
<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 要素のみに限られます。フォームやビューなどは 共有されません。

XPages によるアクセシビリティ対応アプリケーションの作成 - 概要

Web アプリケーションを作成する IBM Domino 開発者にとって、XPages は推奨されるアクセシビリティ対応ソリューションです。

さまざまな能力や障害を持つユーザーが使用できるソフトウェアアプリケーションを設計し作成することは、ビジネス界の重要な要件です。Web アプリケーションを作成する IBM Domino 開発者の場合は、XPages を使用することで、推奨されるアクセシビリティ対応ソリューションが得られます。XPages を使用してアクセシビリティ対応アプリケーションを作成するには、障害のある方や加齢障害を持つ成人のユーザーなど、多種多様なユーザーのニーズを把握する必要があります。

障害のあるユーザーはアプリケーションの操作でいくつかの困難に直面する可能性がありますが、アプリケーション開発者がまず潜在的な問題領域を理解し、次に、これらの問題領域を回避するようにアプリケーションを適宜設計することにより、それらの困難を除去または最小化することができます。

アクセシビリティ対応アプリケーションの設計時に留意するべき障害の主なカテゴリは、次の 4 つです。

  • 視覚
  • 聴覚
  • 運動
  • 認知

以下のセクションは、XPages アプリケーションをアクセシビリティ対応となるように設計する際の考慮事項についての一般ガイドラインを示します。

視覚障害を持つユーザーに対応するための一般ガイドライン

視覚障害のあるユーザー向けにアプリケーションを設計するときは、以下のガイドラインを考慮してください。

  • ユーザーインターフェースのデザインがナビゲート可能であるかどうかに注意してください。マウス操作は手と目の連係が必要となるため、視覚障害のあるユーザーにとってマウスは実用的ではありません。ユーザーは、キーボードを使用してナビゲートします。例えば、[Tab] キーを押して、ある項目にフォーカスが移動すると、スクリーンリーダーはその項目をアナウンスして、フォーカスの場所をユーザーに知らせます。ユーザーは次に [Enter] キーを押します。 このことを考慮に入れて、アプリケーションラベルなどのテキストには、すべての非テキストコンテンツの代替テキストを用意して、それらのコンテンツを他の形式 (例えば、大きな文字、点字、音声、記号、よりシンプルな言い回し) に変更できるようにしてください。
  • 画像や図など、すべての非テキストコンテンツは、同等の目的を果たす代替テキストと共に提示されるようにします。 画面読み取り技術では、イメージからテキスト情報を取得することはできません。
  • クライアント側のイメージマップに代替テキストを提供します。サーバー側のイメージマップが使用される場合は、同等のテキストのリンクを提供する必要があります。
  • ユーザーインターフェースの色やフォントサイズは、低視力のユーザーが見えるものを使用するようにしてください。低視力のユーザーの場合は、ハードウェアまたはソフトウェアの拡大鏡を利用して、単なるフォント拡大よりもテキストを大きくする必要があります。色覚異常や低視力のユーザーには、色をハイコントラストにすることが有効です。

    情報が色のみで提示されると、色覚異常のユーザーはその情報を見落としてしまいます。 同様に、いずれかの属性 (例えば、コントラスト、奥行き、サイズ、場所、フォント) を単独で使用して情報を提示すると、低視力のユーザーはその情報を見つけられない可能性があります。複数の手法を使用して、アプリケーションの情報を伝達してください。例えば、グラフ上の各バーに色と塗りつぶしパターンの両方を使用する場合は、それらがカラーでも白黒でも見えるようにしてください。

聴覚障害を持つユーザーに対応するための一般ガイドライン

聴覚障害のあるユーザー向けにアプリケーションを設計するときは、以下のガイドラインを考慮してください。

  • 音声出力情報は、同等の予備視覚形式と一緒に提供するようにします。追加のサポートとして、視覚形式には予備のテキストオプションも用意しておいてください。
  • 時間ベースのメディア (ライブ音声のみやライブビデオのみのコンテンツなど) には、説明的なラベルを用意してください。コンテンツがコンピュータではなくユーザーによってアクセスされていることを確認するために使用される非テキストコンテンツは、複数の障害に対応するため、さまざまな形式で使用できます。
  • 必要な場所に表題を指定します (例えば、ビデオ内)

運動障害を持つユーザーに対応するための一般ガイドライン

運動障害のあるユーザー向けにアプリケーションを設計するときは、以下のガイドラインを考慮してください。

  • 運動障害を持つユーザーにとって、コンピュータの入力デバイスを使用するときや保存メディアを扱うときの操作は困難です。マウスやキーボードを使用せずに制御できるソフトウェア/デザインのソリューションやアクションを念頭に置くようにしてください。

認知障害を持つユーザーに対応するための一般ガイドライン

認知障害のあるユーザー向けにアプリケーションを設計するときは、以下のガイドラインを考慮してください。

  • 統一性のあるデザインとシンプルな言い回しを使用します。失読症や短期記憶の欠如などの認知障害を持つユーザーの場合は、一般的なソリューションが必要です。詳細な情報は混乱させるおそれがあります。例えば、テンプレートを使用すると、各ページで同じレイアウトやデザインを再使用できるので、認知障害を持つユーザーが Web サイトをナビゲートしやすくなります。
  • 認知障害や学習障害を持つユーザーには、予備入力も有効な場合があります。一例として、オーディオファイルとビデオのトランスクリプトの両方を提供することが考えられます。

    テキストを見ながら、同時にそのテキストの音声出力を聞くことによって、ユーザーは聴覚と視覚の両方の能力を利用して、素材をよりよく理解することができます。提示される言語になじみのないユーザーに対しては、認知障害を持つユーザーの場合と同じソリューションが有効である可能性があります。認知ソリューション (特に、ユーザーインターフェース、用語、事例をシンプルにすること) は、教育的または文化的な障害に直面する可能性がある人にも有効です。例えば、コンピュータをあまりよく知らない人、などです。

アクセシビリティ対応アプリケーションの作成に関する追加情報

以下のソースは、アクセシビリティ対応の Web アプリケーションやソフトウェアの作成に関する追加情報を示します。

  • IBM Web アクセシビリティチェックリスト - 以下についてのチェックリストがあります。
    • Web サイトと Web アプリケーション
    • Flash と Flex Web アプリケーション
    • IBM Domino Web アプリケーション
    • Web ブラウザ (QuickView、PARR、Learning Suite など) に表示されるコンテンツの理解
  • IBM アクセシビリティチェックリスト - 以下についてのチェックリストがあります。
    • Standard Widget Toolkit (SWT) コントロールを使用して記述された Eclipse アプリケーション
    • Swing のコントロールやコンポーネントを使用して作成された、Java 2 以降のアプリケーション
    • Abstract Window Toolkit (AWT) のコントロールやコンポーネントを使用して作成された Java 1.1.x アプリケーション
    • コマンドラインや「グリーン画面」インターフェースを備えた製品
    • ソフトウェアツールの出力およびユーザーインターフェース
    • ユーザーインターフェースを持つ一般的なソフトウェア製品やアプリケーション
  • Eclipse アクセシビリティ情報。以下のリンクでは、Eclipse 固有のアクセシビリティ情報が提供されます。

XPages 用の特定のアクセシビリティガイドライン

XPages アプリケーションやコントロールがアクセシビリティ対応となるようにします。

さまざまな能力や障害を持つユーザーが使用できるソフトウェアアプリケーションを設計し作成することは、ビジネス界の重要な要件です。Web アプリケーションを作成する IBM Domino 開発者の場合は、XPages を使用することで、推奨されるアクセシビリティ対応ソリューションが得られます。XPages を使用してアクセシビリティ対応アプリケーションを作成するには、障害のある方や加齢障害を持つ成人のユーザーなど、多種多様なユーザーのニーズを把握する必要があります。

XPages を使用して Web アプリケーションを作成する場合は、アプリケーションを確実にアクセシビリティ対応にするために従うべき追加の固有ガイドラインがあります。次のセクションで、これらのガイドラインについて説明します。

XPages アクセシビリティガイドライン

XPages 設計要素を使用して Web アプリケーションを作成する場合は、アプリケーションを確実にアクセシビリティ対応にするために従うべき追加の固有ガイドラインがあります。これらのコンポーネントは次のとおりです。

  • 必要に応じて ARIA を使用する - Accessible Rich Internet Applications (ARIA) は、Web ページのアクセシビリティを向上させるのに役立ちます。特に、Ajax、HTML、JavaScript、および関連テクノロジを使用して開発された動的コンテンツとユーザーインターフェースコンポーネントを扱う上で便利です。

    ARIA は、HTML 機能の支援するために使用されます。ページをアクセシビリティ対応にするために HTML の使用で十分な場合は、ARIA の設定は不要です。HTML で足りない部分がある場合は、ARIA を使用して、欠落している可能性があるアクセシビリティ情報を JAWS ユーザーに提供できます。 ただし、HTML は常に ARIA より優先されます。

    そのため、JAWS を使用するときは、いくつかの ARIA 属性が設定済みで HTML でレンダリングされていても、JAWS がそれらを使用し、ユーザーに対して読み上げるかどうかは、この考え方に基づいて決定されます。例えば aria-label と「for」属性の両方は必要ありません。HTML は常に ARIA より優先されるため、aria-label は無視されます。

  • JAWS を使用し、アプリケーションの部分更新やすべて更新の機能を使用する - 部分更新機能を使用する場合は注意してください。更新対象のターゲット領域/コントロールが、読み方向にある (まだナビゲートされていない) ようにします。これにより、JAWS ナビゲーションパスに更新対象が含まれるようになります。
  • アプリケーションでのイベントの使用 - 一般的な方法として、onmouse イベントに冗長関数ハンドラを使用して、障害を持ったユーザーのキーボードナビゲーションをサポートします。
  • アクセスキーを使用する - アクセスキーでは、実行時バインディングはサポートされません。できれば、これらは設計時に設定する必要があります。バインディングは、固有で直観的になるようにしてください。
  • 可能な場合はアクセシビリティ対応コントロールを使用する - 開発者がアクセシビリティ対応コントロールを使用してアクセシビリティ対応の XPages アプリケーションを作成する際に役立つ変更が加えられました。この目的は、XPages 実行時の体験を、よりアクセシビリティ要件に準拠させることです。いくつかのコントロールには、それらをアクセシビリティ対応にするための新規アクセシビリティプロパティが追加されました。また、この製品ヘルプのコントロール参照セクションには、アクセシビリティ対応アプリケーションの作成に役立つ資料やガイドラインがさらに追加されました。
  • 使用するコントロールに固有のアクセシビリティプロパティを使用します。特定のコントロールで使用可能なアクセシビリティプロパティの詳細については、このヘルプの「コントロールの参照」と「コントロールの参照 (拡張ライブラリ)」の各セクションを参照してください。

XPages アクセシビリティ対応テーマの使用

リリース 9.0.1 では、XPages がアクセシビリティガイドラインと要件に準拠するテーマをサポートするようになりました。テーマの名前は oneuiv2.1_blue です。

XPages によるコントロールを使用するためのアクセシビリティガイドライン

このユーザーガイドの「コントロールの参照」セクションには、アプリケーションをアクセシビリティ対応にするために使用するべきコントロールの選択に役立つ情報がさらに追加されました。この情報には、以下のものが含まれます。

  • 当該コントロールがアクセシビリティ要件を満たすのに役立つ特定アクセシビリティプロパティの概要
  • アプリケーションがアクセシビリティ要件を満たすのに役立つコントロール使用法のガイドライン
  • アプリケーションがアクセシビリティ要件を満たすのに役立つコントロールの回避策情報と推奨される置換

特定のコントロールで使用可能なアクセシビリティプロパティの詳細については、このヘルプの「コントロールの参照」と「コントロールの参照 (拡張ライブラリ)」の各セクションを参照してください。

アクセシビリティ要件を満たすようにカスタマイズされたエラーページの提供

システム管理者の助けを借りて、アクセシビリティ要件を満たすようにカスタマイズされたエラーページを提供することができます。

IBM Domino Web Engine からエラー 401、403、404、500 を受信する場合は、これらのエラーページを独自のカスタムページで上書きできます。詳しくは、IBM Domino Administrator 製品ヘルプの「Web サーバーのメッセージをカスタマイズする」トピックを参照してください。

Domino HTTP タスクからエラー 404 (ファイルが見つかりません) を受信する場合は、そのエラーページをカスタマイズできる NOTES.INI ファイル設定があります。詳しくは、IBM Domino Administrator 製品ヘルプと、この技術情報を参照してください。

一般アプリケーションのアクセシビリティヒント

Web アプリケーションを作成する IBM Domino 開発者の場合、XPages を使用することが、推奨されるアクセシビリティ対応ソリューションとなります。アプリケーションを確実にアクセシビリティ対応にするために従うべき、追加のヒントがあります。これらのコンポーネントは次のとおりです。

  • ユーザー認証をアクセシビリティ対応にするには、Domino サーバーで SSO を有効にします。

コントロールの追加

コントロールとは、編集ボックス、ボタン、イメージ、テキストなどの目に見える要素で、ユーザーはこれを使用して 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 など)。アクセシビリティに準拠するために、value プロパティには、実行されるアクションを記述する必要があります。
  • [送信] で、データが保存され、ページが閉じられます。アクセシビリティに準拠するためには、value プロパティは Submit でなければなりません。
  • [キャンセル] で、ページが閉じられます。アクセシビリティに準拠するためには、value プロパティは Cancel でなければなりません。
ページが閉じられたとき、 次にロードされるページは、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 を指定します。
使用法
実行時に、チェックボックスがページに 表示されます。 ユーザーは、このチェックボックスを選択、またはクリアできます。 選択されると、ボックス内にチェ ックマークが表示されます。

アクセシビリティに準拠するには、チェックボックスの後にラベルがある必要があります。これを行うには、text プロパティを指定するか、チェックボックスの後に ラベルコントロールを配置します。ラベルはチェックボックスの前に配置できません。

このチェックボックスコントロールは、ボックスが選択されている (デフォルト) かクリアされているかに基づいてデータ値を割り当てます。
<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 コントロールをデータ要素またはその他の値にバインドします。
legend 画面で読み取り可能なグループの説明を提供します。
使用法
実行時に、1 つ以上のチェックボッ クスがページに表示されます。 ユーザーは、これらのチェックボックスを選択、またはクリアできます。 選択されると、ボックス内にチェ ックマークが表示されます。

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

アクセシビリティに対応するために、legend プロパティを指定する必要があります。

下のチェックボックスグループコントロールには、 選択用の 2 つの項目があります。
<xp:checkBoxGroup id="checkBoxGroup1" legend="Select fruit" 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" legend="Select fruit" 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" legend="Select fruit" 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 オブジェクト)。
表 15. すべてのプロパティ (dataTable)
カテゴリ プロパティ
アクセシビリティ captionrolesummarytitle
注: この role プロパティは 9.0.1 から廃止されています。デフォルトでは、適切な準拠値が生成されます。アクセシビリティ標準に準拠するには、このプロパティに値を指定しないでください。
basics attrsbindingdirdisabledidlangloadedpartialExecutepartialRefreshrefreshIdrenderedrendererTyperules
data datafirstindexVarrowsvaluevar
イベント onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
format bgcolorbordercellpaddingcellspacingframeshowUnreadMarkswidth
styling captionStyleClasscolumnClassesdisableThemefooterClassheaderClassreadMarksClassrowClassesstylestyleClassthemeIdunreadMarksClass
表 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 ビューの設計による制約を受けます。

アクセシビリティに準拠するためには、このコントロールを視覚的なレイアウトに使用したり、role プロパティを presentation に設定したりしないでください。視覚的なレイアウトには、 コントロールを使用します。

下のデータ表は、現在のデータベースにあるすべての文書について、 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 要素をフォーカスします。

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

アクセシビリティに準拠するためには、type プロパティに both を指定しないでください。 type=datetype=time の 2 つのヘルパーを使用することを検討してください。

2 つの編集ボックスには、日時の値を選択するためのピッカーが含まれています。
<xp:inputText id="inputText1">
	<xp:dateTimeHelper id="dateTimeHelper1"></xp:dateTimeHelper>
	<xp:this.converter>
		<xp:convertDateTime type="date"></xp:convertDateTime>
	</xp:this.converter>
</xp:inputText>
<xp:inputText id="inputText2">
	<xp:dateTimeHelper id="dateTimeHelper2"></xp:dateTimeHelper>
	<xp:this.converter>
		<xp:convertDateTime type="time"></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 オリジナルファイル名を使用しない場合は、添付ファイル名を 指定します。
表 23. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ accesskeyroletabindextitle
注: この role プロパティは 9.0.1 から廃止されています。デフォルトでは、適切な準拠値が生成されます。アクセシビリティ標準に準拠するには、このプロパティに値を指定しないでください。
basics attrsallowDeletebindingcreatedTitlecreatedValuedeleteImageTitledeleteMessagedirdisableddisplayCreateddisplayLastModifieddisplaySizedisplayTypefileNameHrefValuefileNameTitlefileNameValuehideWhenidlanglastModifiedTitlelastModifiedValueloadedrenderedrendererTyperowAttrsrulessizeTitlesizeValuetypeTitletypeValue
data datafirstindexVarrowsvaluevar
イベント onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
format bgcolorbordercellpaddingcellspacingframewidth
styling captionStyleClasscolumnClassescreatedStyleClassdeleteStyleClassdisableThemefooterClassheaderClassmodifiedStyleClassnameStyleClassrowClassessizeStyleClassstylestyleClassthemeIdtypeStyleClass
使用法
実行時に、添付ファイルがあればその情報がページに 表示されます。 情報には、ファイルタイプ、サイズ、名前、更新日、作成日、ユーザーがその添付ファイルを削除できるかどうかが含まれます。 ユーザーは名前をクリックしてファイルブラウザにアクセスし、添付ファイルをダウンロードできます。
以下のファイルのダウンロードコントロールによって、ユーザーは文書 の 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. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ accesskeyrolereadonlytitle
basics attrsbindingdirforhtmlFilteridlangloadedrenderedrendererType
data convertervalue
イベント onbluronclickondblclickonfocusonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
styling disableThemestylestyleClassthemeId
使用法
実行時に、ラベルの値がページに 表示されます。 フォーカスは、指定されたとおりにリダイレクトされます。

収容側の XPage またはパネルが読み取り専用の場合、あるいはラベルの readonly プロパティが true の場合、ラベルコントロールは読み取り専用です。

下のラベルコントロールは、共通のユーザー名を青で 表示します。
<xp:label
	value="#{javascript:session.getCommonUserName()}"
	id="label1" style="color:rgb(0,0,255)" for="inputText1">
</xp:label>
アクセシビリティ準拠
アクセシビリティ標準に従ってラベルを適用するには、ラベルコントロールを使用し、for プロパティを以下に示すように指定します。
<xp:label value="foo" for="inputText1" />
&#160;
<xp:inputText id="inputText1" defaultValue="foo" />
別の方法としては、aria-labelledby 属性を以下に示すように適用します。 ただし、WAI-ARIA をサポートしていないブラウザでは、この属性はサポートされません。
<xp:label value="foo" id="label1">
	&#160;
	<xp:inputText id="inputText1" defaultValue="foo" >
		<xp:this.attrs>
				<xp:attr name="aria-labelledby" value="#{id:label1}"></xp:attr>
		</xp:this.attrs>
	</xp:inputText>
</xp:label>
もう 1 つの方法としては、aria-label 属性を以下に示すように適用します。 ただし、この属性は非表示ラベルを生成します。
<xp:label value="foo" id="label1">
	&#160;
	<xp:inputText id="inputText1" defaultValue="foo" >
		<xp:this.attrs>
				<xp:attr name="aria-label" value="bar"></xp:attr>
		</xp:this.attrs>
	</xp:inputText>
</xp:label>

この 2 つの代替方法はどちらの場合も、示されているように、属性値にはクライアントサイドの完全な識別子を使用します。

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 に設定する必要があります。

このコントロールを使用するときにアクセシビリティ要件に準拠するには、ある特定の入力コントロールについて、例に示すように aria-describedby 属性を使用して、それぞれの xp:message control を関連付けることをお勧めします。これにより支援機能がサポートされるので、入力コントロールがフォーカスを受け取るときに、関連付けられた検証エラーメッセージを示す説明がユーザーに提供されます。

<xp:label id="xpLabel1" value="Enter any value" for="xpInputText1" />
<xp:inputText id="xpInputText1" value="#{sessionScope.foo}" required="true"
        disableClientSideValidation="true">

	<xp:this.attrs>
		<xp:attr attr name="aria-describedby" value="#{id:msgPanel}" />
	<xp:this.attrs>

</xp:inputText>

<xp:panel id="msgPanel">
	<xp:message id="message1" for="xpInputText1"/>
</xp:panel>
注: ラベルのクライアント ID をスペースで区切ったリストを aria-describedby 属性に指定することにより、1 つの入力コントロールに複数の説明を関連付けることができます。
ここでは、入力ボックスは数値データにバインドされており、 クライアントサイドの検証は行われません。 入力ボックスのエラー表示は以下 のとおりです。
<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)
カテゴリ プロパティ
アクセシビリティ ariaLabelroletitle
注: この role プロパティは 9.0.1 から廃止されています。デフォルトでは、適切な準拠値が生成されます。アクセシビリティ標準に準拠するには、このプロパティに値を指定しないでください。
basics attrsalwaysCalculateLastbindingdirforidlangloadedpageCountpartialExecutepartialRefreshrenderedrendererType
format layoutpanelPosition
styling disableThemeouterStyleClassstylestyleClassthemeId
表 51. すべてのプロパティ (pagerControl)
カテゴリ プロパティ
アクセシビリティ accesskeyaltroletabindextitle
注: この role プロパティは 9.0.1 から廃止されています。デフォルトでは、適切な準拠値が生成されます。アクセシビリティ標準に準拠するには、このプロパティに値を指定しないでください。
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 コントロールをデータ要素またはその他の値にバインドします。
legend 画面で読み取り可能なグループの説明を提供します。
使用法
実行時に、1 つ以上のラジオボタンが ページに表示されます。 ユーザーは 1 つのボタンを選択できます。 1 つのボタンを選択すると、それまで選択されていた他のボタンはクリアされます。

アクセシビリティに対応するために、legend プロパティを指定する必要があります。

下のラジオボタングループコントロールには、 選択用の 2 つの項目があります。
<xp:radioGroup id="radioGroup1" legend="Select fruit" 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" legend="Select fruit" 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" legend="Select fruit" 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
注: この role プロパティは 9.0.1 から廃止されています。デフォルトでは、適切な準拠値が生成されます。アクセシビリティ標準に準拠するには、このプロパティに値を指定しないでください。
basics attrsbindingdiridlangloadedrenderedrendererTypeselectedTab
styling containerStyleClassdisableThemeouterStyleClassstylestyleClassthemeId
表 75. すべてのプロパティ (tabPanel)
カテゴリ プロパティ
アクセシビリティ imageAltroletitle
注: この role プロパティは 9.0.1 から廃止されています。デフォルトでは、適切な準拠値が生成されます。アクセシビリティ標準に準拠するには、このプロパティに値を指定しないでください。
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 つのセルと複数のセルの選択。
  • セルコンテンツの追加と削除。

視覚に訴えるレイアウトでテキストやイメージを表示するには、このコントロールを使用します。デフォルトでは、role プロパティは presentation です。 アクセシビリティに準拠するためには、このコントロールを視覚的なレイアウト以外の目的で使用したり、rolepresentation 以外に変更したりしないでください。表データの場合は、データ表コントロールを使用します。

下の表では、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>
表 79. 必須プロパティ
プロパティ 説明
id デフォルトは computedField1computedField2 などです。
value 計算結果フィールドをデータ要素またはその他の値にバインドします。
表 80. すべてのプロパティ
カテゴリ プロパティ
アクセシビリティ roletitle
basics attrsbindingdirescapeforhtmlFilteridlangloadedrenderedrendererTypetagName
data convertervalue
format contentType
styling disableThemeouterStyleClassstylestyleClassthemeId
使用法

実行時に、計算結果フィールドの値がページに 表示されます。

下の計算結果フィールドコントロールは、2 つのスコープ変数の合計を表示します。
<xp:text escape="true" id="computedField1"
	value="#{javascript:return requestScope.number1 + requestScope.number2}">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:text>
下の計算結果フィールドコントロールは、現在の XPage にバインドされているデータ要素の値を表示します。
<xp:text escape="true" id="computedField4" value="#{document1.subject}"></xp:text>

typeAhead - AJAX 入力補完

ユーザーが入力した一連の文字が特定の候補に一致すると、その親コントロールに自動的にデータが入力されます。

カテゴリ
その他のコントロール
構文
<xp:typeAhead attributes>content</xp:typeAhead>
表 81. 必須プロパティ
プロパティ 説明
mode 更新モード。
minChars 入力補完をトリガーするための最小文字数。
valueList 最初の数文字が入力されたときに戻される候補。
valueListSeparator 分離記号の候補。
tokens ユーザーマシンが候補を指定した場合のクライアントの分離記号。
ignoreCase 大/小文字を区別するか無視するかの設定。
表 82. すべてのプロパティ