4.2
新しい機能
データ フレームワークは、データを画面へのデータの取り込みに使用される、宣言型 (XML 以外にプログラミングの必要がない) のプログラマチックなフレームワークです。この新しいフレームワークを使用すると、データソースを定義し、そのデータソースをテーブルやラベルなどのユーザーインターフェイス要素にバインドして、出力をフォーマット設定することができます。開発者は、データソースが変更されるたびにインターフェイスが更新されるよう指定することもできます。
開発者は、簡単な XML 文をユーザーインターフェイスに配置することにより、アプリケーション以外のコードをまったく記述せずに、複雑なデータを自動的にロード、表示、および更新することができます。開発者は、ObjectDataSource を使用して複雑な Java オブジェクトツリーをトラバースし、ユーザーインターフェイスにデータを自動的に表示することができます。さらに、Java メソッドを直接呼び出して、その出力を表示することもできます。これらの処理についても、コードを記述する必要はまったくありません。
プログラマは、デスクトップクライアント機能を使用して、インストーラを含めたパッケージ化およびデスクトップへのインストールが可能な Web アプリケーションを作成できます。このアプリケーションとサーバーとの通信量は必要に応じて自由に調整できます。また、アプリケーションの実行中にオンラインからオフラインに切り替えることができます。各モード (オンライン/オフライン) を通じて一貫性のあるプログラミングモデルが保持されています。また、オフライン時には、リモートリソースへのアクセスに使用される API がローカルリソースへのアクセスにリダイレクトされます。こうした機能により、一時的に接続するアプリケーションの作成方法は非常にわかりやすいものとなっています。
デスクトップクライアントを使用して作成したアプリケーションは、追加作業なしで自動的にアップグレードすることができます。Nexaweb コンポーネントまたはユーザーが作成したコンポーネントの新しいバージョンがサーバー上で利用可能になると、デスクトップクライアントアプリケーションは更新が利用可能であることをユーザーに通知し、その更新を自動的にダウンロードしてアプリケーションを再起動します。
最低限のクライアント環境要件のサポート
以前のバージョンでは、開発者が独自のアプリケーションローダーを作成し、ユーザーがサポートされないバージョンの JVM (Nexaweb 自体はすべてのバージョンをサポートします) でアプリケーションをロードするのを防止する必要がありました。この機能強化により、開発者が JVM バージョン、JVM ベンダ、ユーザーエージェント、画面解像度などのパラメータに基づいて追加/除外ロジックを指定するための簡単なコンフィギュレーションオプションが提供されます。その後、開発者はアプリケーションをエラー URL にリダイレクトすることができます。
さらに、スタートアップ画面をカスタマイズするための新しいオプションが client.xml に用意されています。
クライアントのロード時間のパフォーマンスチューニング
この機能では、特定のセッションのロード時間およびロード順序を含む XML レポートが提供されます。開発者は、このレポートを使用して、どのオブジェクトがどの順序でロードされるかを詳しく調べることができます。これにより、ロード時間を高速化するよう、パッケージ化の決定を下すことができます。
このレポートは、アクティブなサービス コンソール (サーバーの計測機能) を通じて利用できます。ロード時間およびロード順序は、セッションの終了時にファイルに書き込まれます。
Mercury QuickTestPro などの AWT 自動化ツールに対する完全サポート
Nexaweb 内のすべてのユーザーインターフェイス要素が更新され、Mercury QuickTestPro などのテストケース自動化ツールを使用できるようになりました。これらのユーザーインターフェイス要素は、Java AWT 自動テストをサポートする、事実上すべてのツールと連携します。
以前のバージョンの Nexaweb では、"低レベル" の記録および再生しかサポートされませんでした。このレベルの自動化では、マウスとキーボードのイベントが正確に記録および再生されます。これは、ユーザーインターフェイスに関する真の自動テストを実現するには不十分でした。このバージョンでは、コンポーネントをスクリプト化し、そのスクリプトに対してクエリを実行することができます。
バージョン 4.1 以降の Nexaweb では、サーバーのロードテストがサポートされます。
パラメータ化されたマクロ
現在の Nexaweb UI 定義ではマクロがサポートされます。マクロとは、XUpdate を使用して既存のユーザーインターフェイスドキュメントを変更する小さな XML 部品のことです。これまで、これらのマクロは容易に再利用することができず、1 つの特定のタスクを実行するためにだけ存在していました。この機能では、JavaMessageFormat で実装したパラメータをマクロに持たせることで、マクロの再利用が可能になります。これにより、Nexaweb は UI の完全なスクリプト化に一歩近づくことになります。パラメータには、文字列や、同一またはその他のローカルドキュメント内を参照する Xpath 文を指定できます。
PDF 印刷出力のサポート
画面イメージのコピーをプリンタに送信する既存の印刷サポートの拡張により、ドキュメント作成用の XML ページ付けマークアップ言語である XSL-FO が Platform でサポートされるようになりました。使用されるオープンソースライブラリにより、NXML から Adobe PDF への変換が可能になります。変換は XLST を介して行われます。エンドユーザーは特定のニーズに合わせてこの変換を変更できます。
NXML はドキュメントフォーマットにはあまり適していません。テーブルおよびテキスト要素 (label、textArea、textView) に対してのみ組み込みのサポートが提供されます。これにより、エンドユーザーは、テーブルなどを表示する一般的な大規模データに基づくレポートを生成できます。開発者は、この変換を拡張して、その他の必要なインターフェイス要素をサポートすることができます。
提供される XSL-FO のバージョンは Alpha バージョンです。利用可能な最新のバージョンは Beta です。ただし、このバージョンは若干不安定です。JRockit (BEA の JVM) を使用する場合、このライブラリは BEA WebLogic では動作しません。
バージョン 4.2 では、Unicode (国際文字) が直接サポートされません。
プラグインアーキテクチャの機能強化
これはプラグインアーキテクチャの 2 回目の改訂であり、初期デザインを前進させ、開発や操作の容易性をさらに高めることに重点が置かれています。エンドユーザー開発者は、動作またはユーザーインターフェイスを提供するカスタム XML タグを開発できます。組み込みのユーザー インターフェイス要素をこれらのタグで結合することで、カスタム ウィジェットを提供する複雑な要素を作成できます。いったん作成したこれらのプラグインは、アプリケーション間で容易に再利用できます。また、ユーザーインターフェイスマークアップファイル (NXML ファイル) 内でカスタム XML タグを指定することにより、これらのプラグインに簡単にアクセスできます。
Pack200 圧縮のサポート
Java 1.5 以上で利用可能なより効率的な圧縮アルゴリズムを使用すると、クライアントまたはそれに関連するカスタムコードを、以前の JAR (Java アーカイブ) 圧縮と比較して 3 分の 1 から 4 分の 1 のサイズに圧縮できます。以前のバージョンの JVM を使用してアクセスするエンドユーザーは、より小さなサイズのファイルを自動的に受け取ります。
新しいクラスタリングメッセージオプションの追加
クラスタリング用のデフォルトの UDP メッセージオプションが新たに追加されました。このメッセージオプションは、JGroups の代わりにデフォルトでインストールされます。ただし、必要な場合は JGroups も引き続き使用できます。詳細については、クラスタリングのドキュメントを参照してください。
ドラッグ & ドロップの概要
ドラッグ&ドロップの視覚的柔軟性を向上させるために、新しいドラッグ&ドロップスタイルが追加されました。
新しい属性およびイベント
ソート済みデータの管理機能を提供するonAfterSort イベントが追加されました。
システムコンテナ
4.1 より前のリリースには、"mco://" シンタックスを使用して特定の Nexaweb 定義済みオブジェクトを呼び出すことができる隠しシステムコンテナが含まれていました。このシンタックスの使用が廃止され、システムレベルオブジェクトにアクセスする際にプレフィックスが不要になりました。例:
<button text="Browse Nexaweb Home" onCommand="mco://NetService.openBrowser('http://www.nexaweb.com')"/>
上記のコードは次のようになります。
<button text="Browse Nexaweb Home" onCommand=="NetService.openBrowser('http://www.nexaweb.com')"/>
これは NetService が Nexaweb 定義済みシステムオブジェクトであるためです。新しいシステムレベルオブジェクトを作成するには、ClientSession インターフェイスから利用可能なシステムコンテナにそのオブジェクトを追加します。
MCO の呼び出し規則
詳細については、MCO のドキュメントを参照してください。以前の規則はすべてこれまでと同様に機能します。次の呼び出し規則が新たに追加されました。
' で囲んだ文字列 (例: 'myString')
コンテナのオブジェクト (例: mco://myMco または document://nxml)
メソッド呼び出し (例: mco://myMco.do.)
たとえば、次のようなコードを使用できます。
onCommand="mco://myMco.do( mco://myOtherMco, mco://myOtherMco.do('hello') )"
スタイルシートの削除
unloadStyleSheet() という名前の新しいメソッドが DisplayService に追加されました。デフォルトのスタイルシートをアンロードするには、
classpath://defaultstylesheet.txt を渡します。セルの編集モードへの移行 (テーブル用)
editing 属性を "true" に設定すると、セルが編集モードになります (編集可能な場合)。
ドキュメントコンテナ
ドキュメントコンテナがクライアントに追加され、クライアントサイドの登録済みドキュメントに宣言的にアクセスできるようになりました。ドキュメントをメソッドの引数として mco に渡すには、次のようなコードを使用します。
"mco://mco_name:method_name(document://document_name)"
mco コンテナに加えて、複数の名前付きコンテナがクライアントでサポートされるようになりました。たとえばクライアントには、定義済みマクロ (macro://) や登録済みドキュメントに対して定義されたコンテナがあります。もちろん、mco コンテナ (mco://) もあります。さらに、ClientSession の addContainer(String name, Container container) メソッドを使用してコンテナを追加することができます。
変更
(欠陥 4846)。
XSL-FO を使用して PDF を印刷する場合、大量のメモリが必要になります
この機能を使用する場合は、サーバーの JVM を適切に構成してください。
JBoss 4.03 SP1 以上のサポート
複数の J2EE アプリケーションを JBoss 経由でデプロイする場合は、インストール時に "Enable deployment isolation/call by value" を設定します。詳細については、JBoss ドキュメントを参照してください。
無効なコンポーネントは、マウスまたはキーボードのイベントを受け取らなくなりました。ツールヒントは引き続き表示されます
既知の問題
複数コンテナのサポート