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:ボタンが押された場合に表示されるダイアログ
|