4.5.20 (Nov 2008)
機能改善 (Java)
Swing plug-in コンポーネントサポート
Swing plug-in コンポーネントが Nexaweb コンポーネントと重なっており、Swing plug-in コンポーネントが Nexaweb コンポーネントの後ろ(背面)に存在する場合、 Swing plug-in コンポーネントの描画は Nexaweb コンポーネントの上に描画されてしまうかもしれません。この問題を解決するための修正が4.5.17の修正に加えて 4.5.20にて行われました。
Swing plug-in コンポーネントがフォーカスを持っている場合、キーイベントが発生する用になりました。
メニューの自動ラッピングが可能になりました
borderPane内のmenuBarがborderPostion属性値として”north”, “center”, “south”が設定されている場合、ブラウザの表示領域によってはメニューが全て表示されないケースがありました。メニューが全て表示されないケースに おいて、自動的にラッピングすることによりメニューを全て表示できるようになりました。
メモリリークの問題を解決しました
DisplayService#modalCustomButtonAlert() メソッドを使用している場合、メモリリークが起こっていました。この問題を解決しました。
Test API の改善
ApplicationScriptObject が提供するfindObject() とobjectExists() が Swingのプラグインコンポーネントと連携できるようになりました
ButtonScriptObject の新しいメソッド clickAndWait() によって、ボタンをクリックしたときのイベントハンドラでテストスクリプトのつぎの行を実行する前にテストを終了させることができます。この機能によっ て、ボタンをクリックしたときに実行されるXModifyの処理のタイミングに関する問題を解決することがでます
プラグインオブジェクトがテストされる場合、オブジェクトの要素の定義が参照され、テストスクリプトオブジェクトマネージャは、その オブジェクトをラッピングしたテストスクリプトを生成します。プラグインオブジェクトが持つ属性は、setAttributeInDom() とgetAttributeFromDom() によって参照することができます
振る舞いの変更 (Java)
フォーカスコントロールについて
このバージョンで Java アプレット自身がフォーカスを失った場合に Nexaweb UI コンポーネントもフォーカスを失う修正が行われました。
この結果、以下の場合に Nexaweb UI コンポーネント上でフォーカスイベントが発生する用になりました。
ブラウザウインドウ自身のアクティブ/非アクティブが切り替えられた場合。
ブラウザウインドウ内で、非アプレット領域にフォーカスを移動した場合。 例えば、ブラウザのアドレスバーやメニューバーなど。
この振る舞いは、 AWT, Swing, Windows UI などの一般的な振る舞いになります。
過去バージョンの Nexaweb アプリケーションではアプレット自身がフォーカスを失った場合でも Nexaweb UI コンポーネントはフォーカスイベントを発生させていませんでした。
この振る舞いの変更は 10102、 10104、10192、 10202 の修正に伴い、製品仕様の見直しを行った結果生じた振る舞いの変更になります。
この振る舞いの変更で問題が生じる可能性がある場合、Nexaweb Platform 4.5.28 の 10526 により導入された互換性のオプションを使用してください。
Swing コンポーネントからのイベント通知
このバージョンで Swing コンポーネントを使用した場合の大幅な変更が行われました。
過去バージョンでは Swing コンポーネント上で発生したイベントは Nexaweb アプリケーションからフックすることはできませんでしたが、 このバージョンから Swing コンポーネント上で発生したイベントも全て Nexaweb アプリケーションからフックすることができるようになりました。
アプリケーションの実装としてイベントをフックする処理が存在している場合、このバージョンから Swing コンポーネント上で発生するイベントもフックされる点に注意してください。
修正項目 (Java)
712-4987982 - ウィンドウをリサイズしたときにmenuBar がラップされない | |
test api: testidを設定しているtable, tree, treeTable がテストできない | |
test api: XModify と objectWithIdExists(), findObjectById() などのテストに関連するメソッドを利用したときにタイミングの問題が生じる | |
column をドラッグすると垂直方向のスクロールバーがいっしょに動く | |
table が持つウィジェットが、表示する文字列の長さによって自動的にリサイズされるときスクロールバーの長さが同時に調整されない | |
テキストを入力するときのラッピングの動作が統一されていない | |
table のheader がドラッグ&ドロップで移動したとき、ボーダーラインが残ったままとなる | |
test api: findObjectById() や objectWithIdExists() がプラグインコンポーネントで正しく動作しない | |
test api: findObject() がXPath を使用するプラグインコンポーネントで正しく動作しない | |
test api: findObject() やobjectExists() がベースオブジェクトや XPath を使用するプラグインコンポーネントで正しく動作しない | |
table のcolumn をドラッグ&ドロップすると、水平方向のスクロールバーが動き、意図した位置に移動できない | |
IME を起動したときテキストが入力できずキーボードの制御がIMEに移ったままとなる | |
空のXModify を実行すると例外が発生する | |
horizontalAlignment を "center" にしたとき、テキストの位置が正しく表示されないことがある | |
Swing : JTextPane がフォーカスを持っている場合にショートカットキーが有効ではない | |
Swing : 文字入力が可能なSwing コンポーネントがフォーカスを持っている場合 Nexaweb のグローバルキーイベントが発生しない | |
Swing : Nexaweb のtextField からJScrollPane のJTextPane inside にカーソルを移動してゆくと、ひとつの画面に2つのアクティブなカーソルが表示される | |
gridTable: table のタブオーダー(タブの移動)と異なる | |
test api: クリックするとonCommand が2回呼ばれ、そのためテストIDが1つインクリメントされる | |
gridTable: 別のcellが選択される | |
Swing : ウィジェットを移動したときSwing のコンポーネントがNexaweb のコンポーネントの上に重なって表示される | |
Swing : Swingコンポーネントでクリックしたとき、Nexaweb のポッブアップメニューが閉じない | |
モーダルダイアログが表示されたとき、comboBox のボタンが押下したときの色のままとなる | |
DisplayService のmodalCustomButtonAlert() を呼び出した後、OutOfMemoryError が発生する | |
Swing : window が Swing コンポーネントを持つとき、マウスオーバーでNexaweb のコンポーネントの全面に表示される | |
マウスホイールで table がスクロールできないことがある | |
gridTable: gridTable の editor でテキストの配置が table と異なる | |
window がフォーカスを持っていないときにテキスト入力のキャレットがブリンクする | |
マウスとキーボードショートカットを使って削除したテキストが、消えないで再び表示される | |
互換性 : column をリサイズしたときに NullPointerException が発生する | |
gridTable: lockedColumn にcell以外のウィジェットを利用すると正しく動作しない |
修正の詳細 (Java)
XModify によるコマンド(<append/>, <replace-children/> など)の中でコマンドタグの子要素を指定するコマンド
8708 | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
712-4987982 - ウィンドウをリサイズしたときにmenuBar がラップされない | |||||||||||||
環境 |
| ||||||||||||
対象 | 全てのメニューを表示することができない <menuBar/> | ||||||||||||
事象 | <menuBar/> の中のメニューを表示幅内で全て表示することができなかった場合、メニューが切れて表示されてしまう。 | ||||||||||||
修正 | <menuBar/> に幅の指定が存在せず、リサイズが可能なレイアウトマネージャ上に <menuBar/> が配置されている場合に、 <menuBar/> の自動ラッピング機能を追加。 | ||||||||||||
9790 | |||||||||||||
test api: testidを設定しているtable, tree, treeTable がテストできない | |||||||||||||
環境 |
| ||||||||||||
対象 | Test API | ||||||||||||
事象 | testid オプションを有効にしている状態で Test API を使用して <table/>, <tree/>, <treeTable/> をテストしようとした場合、 例外が発生しアプリケーションを正常に稼働することができない。 | ||||||||||||
修正 | testid オプションを有効にして Test API を使用した場合に例外が発生せずに正常にアプリケーションを稼働することができるように修正。 | ||||||||||||
9887 | |||||||||||||
test api: XModify と objectWithIdExists(), findObjectById() などのテストに関連するメソッドを利用したときにタイミングの問題が生じる | |||||||||||||
環境 |
| ||||||||||||
対象 | Test API | ||||||||||||
事象 | XModify による更新後に Test API を使用して objectWithIdExists(), findObjectById() を使用するとタイミングによってオブジェクトを取得できない場合がある。 | ||||||||||||
修正 | XModify による更新後に Test API の objectWithIdExists(), findObjectById() にて正しくオブジェクトを取得できるように修正。 | ||||||||||||
9895 | |||||||||||||
column をドラッグすると垂直方向のスクロールバーがいっしょに動く | |||||||||||||
環境 |
| ||||||||||||
対象 | <table/>, <treeTable/> | ||||||||||||
事象 | テーブルのカラムをマウスドラッグによって入れ替えようとすると、縦スクロールバーが不要にスクロールする。 | ||||||||||||
修正 | カラムドラッグ時に縦スクロールバーが不要にスクロールしないように修正。 | ||||||||||||
9901 | |||||||||||||
table が持つウィジェットが、表示する文字列の長さによって自動的にリサイズされるときスクロールバーの長さが同時に調整されない | |||||||||||||
環境 |
| ||||||||||||
対象 | <cell/> 以外の UI コンポーネントを使用している <table/>, <treeTable/>, <tree/> | ||||||||||||
事象 | テーブルのカラム幅はカラム自身に明示的に幅が指定されていない場合はカラムに所属しているデータの文字列長で自動的に調整されるが、カラムに所属してい るデータが <cell/> 以外の UI コンポーネントであった場合、 自動的に列幅が調整されない。 | ||||||||||||
修正 | <cell/> 以外の UI コンポーネントをテーブル内で使用している場合に文字列長によって自動的にカラム幅を調整するように修正。 | ||||||||||||
9913 | |||||||||||||
テキストを入力するときのラッピングの動作が統一されていない | |||||||||||||
環境 |
| ||||||||||||
対象 | <textArea/> | ||||||||||||
事象 | <textArea/> 内でコンポーネント幅よりも長い文字列を入力した場合に自動ラッピング機能によって入力文字列が自動的にラップされるが、 入力方法によって同じ文字列を入力した場合であってもラップされた結果が異なる場合がある。
| ||||||||||||
修正 | 入力方法、オペレーションの内容によって自動ラッピングの結果が異ならないように自動ラッピングの処理を修正。 | ||||||||||||
9914 | |||||||||||||
table のheader がドラッグ&ドロップで移動したとき、ボーダーラインが残ったままとなる | |||||||||||||
環境 |
| ||||||||||||
対象 | <table/>, <treeTable/> | ||||||||||||
事象 | テーブルのカラムヘッダをマウスによってドラッグアンドドロップで移動する際のドラッグ中に列の移動位置を表現するためにテーブル内にカラムを表現するた めのボーダーラインが表示されるが、 横スクロールが発生する形でカラムヘッダの移動を行った場合にボーダーラインが残ったままになる場合がある。 | ||||||||||||
修正 | 移動位置を表現するためのボーダーラインが残らないように修正。 | ||||||||||||
9959 | |||||||||||||
test api: findObjectById() や objectWithIdExists() がプラグインコンポーネントで正しく動作しない | |||||||||||||
環境 |
| ||||||||||||
対象 | Test API | ||||||||||||
事象 | プラグインアーキテクチャを使用して画面で利用されている UI コンポーネントを Test API の findObjectById() と objectWithIdExists() にて取得できない。 | ||||||||||||
修正 | プラグインアーキテクチャによって組み込まれている UI コンポーネントも Test API から取得できるように修正。 | ||||||||||||
9960 | |||||||||||||
test api: findObject() がXPath を使用するプラグインコンポーネントで正しく動作しない | |||||||||||||
環境 |
| ||||||||||||
対象 | Test API | ||||||||||||