...
...
サンプル 1 (従来の DOM コード)
Code Block | ||||
---|---|---|---|---|
| ||||
public void newWindow() { Document uiDoc = getSession().getDocumentProvider().getUIDocument(); Element newWindow = uiDoc.createElement("window"); newWindow.setAttribute("backgroundColor", "blue"); newWindow.setAttribute("borderWidth", "2"); newWindow.setAttribute("borderStyle", "inset"); Element rootElement = uiDoc.getRootElement(); Vector kids = rootElement.getChildren(); Element rootPane = null; for (int i = 0; i < kids.length(); i++) { if (kids.elementAt(i) instanceof Element) { (Element) curElement = (Element) kids.elementAt(i); if (curElement.getLocalName().equals("rootPane") { rootPane = curElement; } } } if (rootPane == null) { rootPane = uiDoc.createElement("rootPane"); rootElement.appendChild(rootPane); } rootPane.appendChild(newWindow); } |
Sample サンプル 2 (NFC codeコード)
Code Block | ||||
---|---|---|---|---|
| ||||
public void newWindow() { Application app = Application.getApplication(getSession()); Window newWindow = new Window(); newWindow.setBackgroundColor("blue"); newWindow.setBorderWidth(2); newWindow.setBorderStyle(BorderStyle.INSET); RootPane rootPane = app.getRoot().getRootPane(); if (rootPane == null) { rootPane = new RootPane(); app.getRoot().addRootPane(rootPane); } rootPane.addChild(newWindow); } |
...
...
...
...
Properties
...
プロパティ
コンポーネントに定義されるプロパティは、Nexaweb の UI 要素に定義される属性と対応しています。プロパティは、コンポーネント定義の標準 get および set メソッドによって使用可能です。プロパティは標準の Java データ型 (int、float、String など) である可能性があります。また、定義済みの列挙型定義を持つ属性には特別な列挙プロパティがあり、これらの列挙プロパティはcom.nexaweb.nfc.types
...
パッケージにあります。
Listeners
...
リスナ
リスナはプロパティに似ていますが、add および remove リスナメソッドを使用して登録および登録解除する点が異なります。リスナを使用して、UI イベントの発生時に発生させるロジックを実装できます。UI イベント属性、つまり接頭辞 on の付いた属性 (例: onCommand) にはリスナを定義します。リスナを登録するには、適切なリスナインターフェイスを実装して、コンポーネントでリスナを提供する add リスナメソッドを呼び出します。com.nexaweb.nfc.listeners
...
Content
...
パッケージはリスナインターフェイスを定義します。
コンテンツ
コンポーネント | NFC で提供されるメソッド |
サブコンポーネントを含めることができるコンポーネント (ウィンドウなど) | 子コンテンツを追加および削除するためのメソッド |
ほとんどのコンポーネント タイプを子コンポーネントとして含めることができるコンポーネント | 汎用メソッド:
|
Specialized components such as ListBox Specific methods for content handling. For example, for ListBox専用のコンポーネント (ListBox など) | コンテンツを処理するための特定のメソッド ListBox の場合:
|
...
イベント
...
...
Note: Since NFC registers its event handlers using the event attributes supplied in the NXML syntax, event registration will overwrite any existing event attribute if one has been declared ahead of time in XML.
How to enable NFC in your application
For a traditional client-driven application, you must indicate the use of NFC libraries on the client side. You do this either by:
...
It is not considered a best practice to maintain UI DOM state on the server side using Nexaweb. However, the NFC library has been built as agnostically as possible with regard to location. You can use it to drive the UI from the server side if this is required.
Example - A simple Nexaweb application with an NFC MCO
...
注: NFC は、NXML シンタックスで提供されるイベント属性を使用してイベントハンドラを登録します。そのため、XML でイベント属性が既に宣言されている場合は、イベント登録によって、既存のイベント属性が上書きされます。
NFC をアプリケーションで有効にする方法
- Nexaweb Studio でアプリケーションをデザインする場合は、[Incorporate Nexaweb Foundation Classes] というラベルのチェックボックスを選択する
- nexaweb-client.xml ファイルを編集して nfc 要素を true に設定する
例: NFC の MCO を使用したシンプルな Nexaweb アプリケーション
次のファイルの例は、シンプルな Nexaweb アプリケーションを表しています。このアプリケーションには、2 つのボタンが含まれており、ボタンを押すと、ルートペインの色がこのボタンのフォントカラーに変化します。index.nxml ファイルには、Nexaweb Studio ビジュアルエディタで作成された UI 定義が含まれています。この例には、押されたボタンを処理する ICommandListener インターフェイスを NFC から実装するために作成された BackGroundSwitch.java クラスが含まれています。このボタンの onCreate イベントは各ボタンを MCO に登録します。
index.xml
Code Block | ||||
---|---|---|---|---|
| ||||
<nxml> <declarations xmlns="http://nexaweb.com/mco"> <mco id="BackgroundColorChanger" src="BackgroundSwitch"/> </declarations> <rootPane> <button fontColor="red" width="100" height="25" text="Red Background" onCreate="mco://BackgroundColorChanger.clientCreationHandler(this)"/> <button fontColor="blue" width="100" height="25" text="Blue Background" onCreate="mco://BackgroundColorChanger.clientCreationHandler(this)"/> </rootPane> </nxml> |
...