9.1.3 データフォーム転送
データフォーム転送機能を使用すると,入力操作またはドラッグ&ドロップを使用しないでクライアントサイドでのポートレット間データ通信ができます。
データフォーム転送機能には,次の二つの方法があります。
- <この項の構成>
- (1) 補助ウィンドウを使用する方法
- (2) ボタンを使用する方法
(1) 補助ウィンドウを使用する方法
補助ウィンドウを使用する方法とは,入力項目が表示されている補助ウィンドウから入力項目を選択する方法です。入力項目が表示されている補助ウィンドウを開き,入力項目を選択したあと[OK]ボタンをクリックすることにより,補助ウィンドウで選択した入力項目のデータを入力フォームに出力します。
補助ウィンドウを使用する方法を実現するための前提条件を次に示します。
- データ転送先のメイン画面には,「ペーストイベントハンドラ」が定義されている必要があります。ペーストイベントハンドラとは,データ転送先にデータを貼り付けるためのJavaScriptハンドラのことです。
- データ転送元には,「コピーイベントハンドラ」が定義されている必要があります。コピーイベントハンドラとは,HTML上に格納されているシリアライズされたJavaオブジェクトである文字列を取得し,ポータルクリップボードウィンドウにその文字列をコピーするJavaScriptイベントハンドラのことです。
補助ウィンドウを使用する方法の場合,ペーストイベントハンドラおよびコピーイベントハンドラは,[OK]ボタンをクリックしたときに呼ばれます。
なお,ドラッグ&ドロップする際のデータの保管場所には,クライアントPCのuserData領域,またはポータルクリップボードウィンドウを使用します。userData領域およびポータルクリップボードウィンドウの詳細は,「9.1.5 データ保管領域」を参照してください。
補助ウィンドウを使用する方法の実現方法を次に示します。
- 補助ウィンドウを使用する方法では,コピーイベントハンドラおよびペーストイベントハンドラを一度に実行するため,補助ウィンドウは,データ転送先に定義されているペーストイベントハンドラの名称を認識している必要があります。
- データ転送先では,補助ウィンドウを開く際のURLに,実行するペーストイベントハンドラ名称をクエリとして埋め込む必要があります。クエリ内のペーストイベントハンドラを認識するキー名称は,「hptl.pasteHandler」です。
補助ウィンドウを使用する方法の概念を次の図に示します。
図9-2 補助ウィンドウを使用する方法の概念(データフォーム転送)
![[図データ]](figure/zu090200.gif)
- 図の説明
- メイン画面表示
- [宛先]ボタンをクリック
- 補助ウィンドウを表示
補助ウィンドウが表示されます。URLのクエリ部分に,実行するペーストイベントハンドラの名称を指定します。クエリ内のペーストハンドラを認識するキー名称は,「hptl.pasteHandler」です。
ポータルクリップボードウィンドウだけを使用する方式の場合,ポータルクリップボードウィンドウを開きます。
- 項目を選択
データ転送の対象となる項目を選択します。データ転送の対象となる項目を選択していない場合は,データを転送できません。
- [OK]ボタンをクリック
4.で選択した項目に対応するシリアライズされた文字列を「コピーイベントハンドラ」でデシリアライズし,userData領域またはポータルクリップボードウィンドウにコピーします。
userData領域に格納するデータを再シリアライズします。シリアライズ後のデータが,PortalResources.propertiesファイルのjp.co.hitachi.soft.portal.csdc.datasize.threshold項目に指定されている値を超えているかどうかによって次のようになります。PortalResources.propertiesファイルの詳細は,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「PortalResources.propertiesの詳細」の説明を参照してください。
<指定値以内の場合>
userData領域にデータを格納します。
<指定値を超えている場合>
処理を続行するかどうかを示すダイアログボックスが表示されます。
処理を続行するときは,ポータルクリップボードウィンドウを開き,ポータルクリップボードウィンドウにデータを格納します。
処理を中止するときは終了します。
URLのクエリ部分から「hptl.pasteHandler」のキー値を取得します。これを実行するペーストイベントハンドラとします。
ペーストイベントハンドラを実行し,userData領域またはポータルクリップボードウィンドウから取得したデータを入力フォームに反映します。
ポータルクリップボードウィンドウが開かれている場合,ポータルクリップボードウィンドウを閉じます。
(2) ボタンを使用する方法
ボタンを使用する方法とは,入力項目を選択して[コピー]ボタンをクリックし,データ転送先で[貼り付け]ボタンをクリックすることにより選択した入力項目のデータを入力フォームに入力する方法です。
ボタンを使用する方法を実現するための前提条件を次に示します。
- データ転送先のポートレットには,「ペーストイベントハンドラ」が定義されている必要があります。ペーストイベントハンドラとは,データ転送先にデータを貼り付けるためのJavaScriptハンドラのことです。ペーストイベントハンドラは,[貼り付け]ボタンがクリックされたときに呼ばれます。
- データ転送元には,「コピーイベントハンドラ」が定義されている必要があります。コピーイベントハンドラとは,HTML上に格納されているシリアライズされたJavaオブジェクトである文字列を取得し,ポータルクリップボードウィンドウにその文字列をコピーするJavaScriptイベントハンドラのことです。コピーイベントハンドラは,[コピー]ボタンがクリックされたときに呼ばれます。
なお,ドラッグ&ドロップする際のデータの保管場所には,クライアントPCのuserData領域,またはポータルクリップボードウィンドウを使用します。userData領域およびポータルクリップボードウィンドウの詳細は,「9.1.5 データ保管領域」を参照してください。
ボタンを使用する方法の概念を次の図に示します。
図9-3 ボタンを使用する方法の概念(データフォーム転送)
![[図データ]](figure/zu090300.gif)
- 図の説明
- 画面表示
Javaオブジェクトがシリアライズされ,HTMLに格納されます。
ポータルクリップボードウィンドウだけを使用する方式の場合,ポータルクリップボードウィンドウを開きます。
- 項目を選択
データ転送の対象となる項目を選択します。データ転送の対象となる項目を選択していない場合は,データを転送できません。
- [コピー]ボタンをクリック
2.で選択された項目に対応するシリアライズされた文字列を「コピーイベントハンドラ」でデシリアライズし,userData領域またはポータルクリップボードウィンドウにコピーします。
userData領域に格納するデータを再シリアライズします。シリアライズ後のデータが,PortalResources.propertiesファイルのjp.co.hitachi.soft.portal.csdc.datasize.threshold項目に指定されている値を超えているかどうかによって次のようになります。PortalResources.propertiesファイルの詳細は,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「PortalResources.propertiesの詳細」の説明を参照してください。
<指定値以内の場合>
userData領域にデータを格納します。
<指定値を超えている場合>
処理を続行するかどうかを示すダイアログボックスが表示されます。
処理を続行するときは,ポータルクリップボードウィンドウを開き,ポータルクリップボードウィンドウにデータを格納します。
処理を中止するときは終了します。
- [貼り付け]ボタンをクリック
userData領域またはポータルクリップボードウィンドウから取得したデータを「ペーストイベントハンドラ」で,入力フォームに反映します。
ポータルクリップボードウィンドウが開かれている場合,ポータルクリップボードウィンドウを閉じます。