TOPシステム開発> ビジネスロジック
エンタープライズWeb 2.0とNexaweb
エンタープライズWeb 2.0とNexaweb

第3回:Nexawebプラットフォーム全貌を知る(Client編)

著者:日本ネクサウェブ  松木 健太郎   2007/1/19
前のページ  1  2  3   4  次のページ
ビジネスロジック

   Nexaweb ClientのビジネスロジックはManaged Client Object(以下MCO)によって設定します。MCOはクライアントサイドの中でイベント処理、ビジネスロジック、データ処理などに使用することができます。

   MCOで実際に使用されるプログラム言語はNexaweb Client Runtimeの種類によって異なります。「Applet Client」「Desktop Client」ではJava言語となり、「Ajax Client」ではJavaScript言語を使用します。

   MCOを使用する場合には下記のようにMCOの定義を行う必要があり、実行時には「id」属性で指定された名称でインスタンスが生成されます。下記の例では「test.TestLogic」クラスを「test」というインスタンスで定義しています。
<mco:declarations xmlns:mco="http://openxal.org/core/mco">
   <mco:mco id="test" src="test.TestLogic"/>
</mco:declarations>
</code>

   「Applet Client」「Desktop Client」を使用している場合、ロジックの実体はJava言語になるため、ソースは下記のようになります。

TestLogic.java
package test;

import com.nexaweb.client.ClientSession;
import com.nexaweb.client.displayservice.DisplayService;
import com.nexaweb.client.mco.AbstractMco;

public class TestLogic extends AbstractMco {
  public void onCommand() {
    ClientSession clientSession = getSession();
    DisplayService displayService = clientSession.getDisplayService();
    displayService.modalAlert("ボタンが押されました.", "Information",
DisplayService.ALERT_INFORMATION, null, null);
  }
}

   実際に定義されたMCOを使用する場合は下記のようになります。ここではボタンの「onCommand」イベントで「TestLogic#onCommnad()」が呼び出されます。

<button height="25" text="Button" width="100" onCommand="mco://test.onCommand()"/>

   「TestLogic#onCommnad()」ではNexaweb Client APIを使用してダイアログを表示するような処理が記載されており、ボタンが押された場合は下記のようなダイアログが表示されます。

ボタンが押された場合に表示されるダイアログ
図6:ボタンが押された場合に表示されるダイアログ


xModify(XUpdate)

   NexawebではUIのXMLの編集のためにxModifyと呼ばれるXML表記によるXML更新言語を使用することができます。xModifyとして使用できる機能は下記になります。

機能 内容
append エレメントの追加
clone エレメントのコピー
create-document 新しいXML文書を作成します。
insert-after 選択されたエレメントの後にエレメントを追加します。
insert-at 指定されたインデックスの位置にエレメントを追加します。
insert-before 選択されたエレメントの前にエレメントを追加します。
remove-attribute 選択されたエレメントの属性を削除します。
remove-element 選択されたエレメントを削除します。
replace-children 選択されたエレメントの子エレメントを置換します。
replace 選択されたエレメントを置換します。
set-attribute 選択されたエレメントの属性を変更します。

表3:xModifyとして使用できる機能

   xModifyは使用する時に必ずエレメントを特定する必要があり、NexawebではXPathを使用することができます。XPathによって編集対象となるXML文書の位置を特定し、xModifyの機能によってXML文書の変更を行います。

   下記は、画面の中のウィンドウにボタンを追加する例です。<applend/>エレメントの「select」属性の中でXPathを使用し、編集対象となるXML文書の位置を特定しています。下記の例では「//window」と指定されていますので、文書内のすべての<window/>エレメントが編集対象として特定されます。

   <append/>エレメントのすべての子エレメントが追加されるものとなり、下記の例では<button/>エレメントが記載されているため、画面内のすべてのウィンドウの中にボタンが追加される形になります。

<xm:modifications xmlns:xm="http://openxal.org/core/xmodify">
  <xm:append select="//window">
    <button height="25" width="100" text="ボタン"/>
  </xm:append>
</xm:modifications>

   xModifyは多くの場合、クライアントからのリクエスト結果として返されるデータとして使用され、Nexaweb Clientではリクエスト結果がxModifyであった場合、その内容に応じて画面を更新していく形になります。

   このほかにもxModifyは静的なXMLファイルとしてだけではなく、JSP/Servletの結果として返される場合であっても有効なため、サーバサイドで画面に表示したいデータを挿入したxModifyを返すことでデータ内容に応じた動的な画面を作成することが可能です。この際、XPathによって編集対象の特定を行えるため、必要な部分だけを更新することが可能になります。

Nexaweb Clientではリクエスト結果がxModifyであった場合、その内容に応じて画面を更新していく
図7:Nexaweb Clientではリクエスト結果がxModifyであった場合、
その内容に応じて画面を更新していく

前のページ  1  2  3   4  次のページ


日本ネクサウェブ株式会社 松木 健太郎
著者プロフィール
日本ネクサウェブ株式会社
チーフエンジニア  松木 健太郎

2000年よりフリーランスのエンジニアとして活動。Delphi, C++, Java などによる Web ベースリッチクライアントシステムの開発に従事。2004年の米ネクサウェブ社の日本上陸時から Nexawebに関わり、展開当初の立上げに参画。日本法人の設立にも立ち会う。


INDEX
第3回:Nexawebプラットフォーム全貌を知る(Client編)
  はじめに
  アーキテクチャ
ビジネスロジック
  データバインディング