/
4.5.16 (Jul 2008)

4.5.16 (Jul 2008)

新しい機能 (Java)

Nexaweb Data Binding の iterator に対応したライフサイクルイベントの追加

アプリケーションで、特定の iterator のライフサイクルイベントに対するイベントハンドラを登録できるようになりました。 たとえば、マクロで、 iterator を使用してテーブルにセルを追加した後に、そのテーブルセルにバインドされたデータを選択することができます。 iterator に追加された属性は次のとおりです。

  • onIterationStart - このイベントは、iterator を実行する直前に実行されます。
  • onAfterIterationStep - このイベントは、iterator の 1 つのステップが完了し、iterator によってそのステップのサブコンテンツが UI ドキュメントに提供された後に、ターゲット コンポーネントで実行されます。
  • onBeforeIterationStep - このイベントは、iterator の 1 つのステップの実行前に実行されます。
  • onIterationEnd - このイベントは、iterator の実行が完了した後に実行されます。

Nexaweb Data Binding の iterator でのウェイトカーソルのサポート

iterator の実行中に UI でウェイトカーソルを表示するかどうかを指定するブール型の “showWaitCursor” 属性が追加されました。デフォルトでは false に設定されています。
“showWaitCursor” 属性は、スタイルシートでも認識されるため、スタイルシートで定義することによってiterator にグローバルに適用することもできます。

新しい属性 autoWrapType による文字の折り返しのサポート

ラベルベースのコンポーネント (button、textArea、messageDialg など) の属性として、新たに autoWrapType 属性が追加されました。 値は "word" と "character" で、デフォルトは "word" です。autoWrap 属性が true の場合、autoWrapType に応じて、 テキスト行の幅が使用可能なスペースを超えたときに行を単語の区切りで折り返すか任意の文字で折り返すかが決まります。 詳細については、API を参照してください。

ServerDOM 同期のための新しいオプションの追加

Nexaweb Platform 4.5.16 の 9963 の修正によって、リクエストを行う場合に必ず ServerDOM を同期させるためのオプションが追加されました。
9963 の問題によってマルチスレッドアプリケーションでユーザーリクエストとポーリングリクエストが重なった場合に ServerDOM が正しく同期されない問題が修正されました。
この修正によって振る舞いの変更が発生するため、互換性を確保するために新しい振る舞いを適応する場合にオプションが追加されました。

4.5.15 以前と同様の振る舞いを希望する場合は nexaweb-client.xml の /client-app/synchronize-nexaweb-server-requests の設定を「false」に設定してください。
/client-app/synchronize-nexaweb-server-requests の設定値の詳細については 9963 の修正内容を参照ください。

修正項目 (Java)
9982テーブル エディタとしてコンボボックスを使用しているときにコンボボックスの選択アイテムがクリアされない
9964iterator でのウェイトカーソルのサポート
9963ユーザーからのリクエストの後にポーリングリクエストによる同期が発生した場合、ServerDOM が同期されない
9958NexawebServletResponseWrapper の setResponse(ServletResponse response) メソッドで ServletResponse が設定されない
9942互換性 : onCreate で選択したセルの属性を設定する際に quickEdit テーブルから NullPointerException 例外がスローされる
9937"maxLength" 属性が設定された textArea に IME で文字を入力した場合に、入力カーソル位置が正しくない位置に移動する
9924互換性 : テーブルエディタのポップアップが閉じると stackOverflow がスローされる
9917textArea が textEntryMode="overtype" である場合に"元に戻す"を実行すると、改行が表示されることがある
9912comboBox 列エディタで listItem をダブルクリックするとテーブルの行が選択される
9911テキストコンポーネントの単語と文字の折り返しのサポート
9909無効なアプレットパラメータが設定される
9898互換性 : <ensure-pre-bugfix-table-statechange-behavior-onmousedown/> オプションを使用すると、テーブルの onStateChange イベントが 2 回呼び出される
9850テーブルセルの "editable" 属性をスタイルシートで設定できない
9785互換性 : セルが強調表示されているときに ComboBox エディタが開かない
9705ヘッダーのドキュメント フォント属性
7733712-5434838 - データバインディングと iterator に対応したライフサイクルイベントが必要

修正の詳細 (Java)
9982
テーブル エディタとしてコンボボックスを使用しているときにコンボボックスの選択アイテムがクリアされない
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:全て
対象テーブルエディタとして使用されている <comboBox/>
事象
内容
テーブルエディタとして使用されている <comboBox/> のデフォルトの選択値が前回選択された値になってしまう。
テーブルエディタとして使用されている <comboBox/> は単一のインスタンスを利用時に画面に表示して使用するため、 <comboBox/> によって選択された値が前回使用された際に選択された値となってしまう。
修正
内容
テーブルエディタとして使用されている <comboBox/> のデフォルト選択値を <comboBox/> が使用される度にクリアするように修正。
9964
iterator でのウェイトカーソルのサポート
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:全て
対象Nexaweb Data Binding の iterator
事象
内容
Nexaweb Data Binding の iterator を使用している場合に、多量のデータを表示しようとすると時間がかかるが、その際に画面上でマウスカーソルに変化がないため、 データが表示中であるかどうかがわからない。
修正
内容
この修正は、機能追加のための修正です。
Nexaweb Data Binding の iterator によってデータを表示中の場合にマウスカーソルがウェイトカーソルになるように修正。
9963
ユーザーからのリクエストの後にポーリングリクエストによる同期が発生した場合、ServerDOM が同期されない
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:全て
対象サーバーリクエスト処理全て
事象
内容
ServerDOM が有効で、かつポーリングが有効な場合、ポーリングリクエストとユーザーリクエストのタイミングが重なった場合、 ServerDOM の同期情報がユーザーリクエスト時に正しく同期されていない状態になることがある。
ユーザーリクエスト時に同期されるべき情報がユーザーリクエストではなく、ポーリングリクエストによって同期されるケースがあり、 ユーザーリクエストとポーリングリクエストの順序が変わる場合にユーザーリクエスト時に ServerDOM が正しく同期されていない状態になることがある。
修正
内容
内部的にリクエストの処理を行う部分にて ServerDOM の同期情報とリクエストの処理を完全に同期させる処理を追加。
ただし、この振る舞いの変更によって従来とは異なる処理が実行されることになるため、互換性のための以下のオプションが nexaweb-client.xml に追加されました。

/client-app/synchronize-nexaweb-server-requests
synchronize-nexaweb-server-requests は以下の二つの値を設定することができます。

  • true : ServerDOM 同期情報と リクエスト 処理が完全に同期させる。
  • false : マルチスレッドアプリケーション等でリクエストを行った場合、同期が正しく行えない場合がある。

4.5.15 以前のバージョンと同じ振る舞いを期待する場合には「false」を指定してください。
synchronize-nexaweb-server-requests が nexaweb-client.xml 内に存在しない、あるいは無効な設定値が設定されている場合のデフォルトの振る舞いは「false」になります。

指定の詳細な内容については 4.5.16 に同梱される nexaweb-client.xml を参照ください。


nexaweb-client.xml の設定例(抜粋)
<!-- =================================================================== -->
<!-- In multithreaded UI applications that require extra synchronization -->
<!-- on the server, set this to true to indicate that the client should  -->
<!-- synchronize when constructing nexaweb server messages with requests -->
<!-- =================================================================== -->
<synchronize-nexaweb-server-requests>false</synchronize-nexaweb-server-requests>
			
9958
NexawebServletResponseWrapper の setResponse(ServletResponse response) メソッドで ServletResponse が設定されない
環境
OS:全て
アプリケーションサーバー:Cosminexus
JVM:全て
Nexaweb Platform:全て
対象NexawebServletResponseWrapper
事象
内容
Cosminexus 上で JSP include を使用した場合に Cosminexus によって使用される ServletResponseWrapper を取得することができない。
修正
内容
NexawebServletResponseWrapper の処理の中で、継承元となる ServletResponseWrapper を正しく API の仕様に則って返していなかったため、正しく ServletResponseWrapper を返すように修正。
9942
互換性 : onCreate で選択したセルの属性を設定する際に quickEdit テーブルから NullPointerException 例外がスローされる
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:4.5.14~
対象テーブルエディタ(<textField/>, <comboBox/>)
事象
内容
quickEdit 属性値が "true" に設定されているテーブル内の <cell/> が onCreate イベントの処理によって <cell/> 自身に対して "selected" 属性値もしくは "editing" 属性値を設定している場合、 NullPointerException 例外が発生する。
Nexaweb Platform 4.5.13 を使用していた際には例外は発生していなかった。
修正
内容
NullPointerException 例外が発生しないように修正。
この問題は、 Nexaweb Platform 4.5.14 の 8828 の修正によって生じるようになった互換性問題になります。
8828 の修正によってテーブルエディタがテキスト値を取得するタイミングが変更されました。
この変更によって、 quickEdit が有効な場合(quickEdit="true") にテキストを取得しようとした場合に正常にテキスト値を取得することができずに NullPointerException が発生していました。
9937
"maxLength" 属性が設定された textArea に IME で文字を入力した場合に、入力カーソル位置が正しくない位置に移動する
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:全て
対象<textArea/>
事象
内容
maxLength 属性値が設定されおり、既に最大文字数が入力済みの <textArea/> に対して IME によって追加で文字入力を行うと、 最大文字数分既に入力済みであるため追加文字の入力を行う事ができないが、その際にテキストカーソル位置が後方に一文字分ずれてしまう。
修正
内容
IME によって文字入力された後のカーソル位置を移動するロジックを修正。
9924
互換性 : テーブルエディタのポップアップが閉じると stackOverflow がスローされる
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:4.5.14~
対象popup 属性値が設定されているテーブルエディタ(<textField/>, <comboBox/>
事象
内容
テーブルエディタが popup 属性値を持っている場合にテーブルエディタでポップアップを表示した後、ポップアップが閉じられると StackOverflowError 例外が発生する。
修正
内容
StackOverflowError 例外が発生しないように修正。
この問題は、 Nexaweb Platform 4.5.14 の 8828 の修正によって生じるようになった互換性問題になります。
8828 の修正によってテーブルエディタがテキスト値を取得するタイミングが変更されました。
この変更によって、ポップアップが閉じられた後にテキストを選択する際の処理に問題が生じたため StackOverflowError 例外が発生するようになりました。
この問題を修正するためにテーブルエディタに対するデフォルトスタイルシートに focusSelectionPolicy="all" が追加されました。
9917
textArea が textEntryMode="overtype" である場合に"元に戻す"を実行すると、改行が表示されることがある
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:全て
対象<textArea/>
事象
内容
<textArea/> 内で入力モードが上書きモードの状態で文字列を入力し、改行コードを上書きした後に、 Ctrl+Z によってアンドゥを行うと、 改行コードではなく <br/> がアンドゥされてしまう。
修正
内容
改行コードが上書きモードによって削除された後にアンドゥされた場合に正しく改行コードがアンドゥされるように修正。
9912
comboBox 列エディタで listItem をダブルクリックするとテーブルの行が選択される
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:全て
対象テーブルエディタとして使用されている <comboBox/>
事象
内容
テーブルエディタとして <comboBox/> が使用されており、 <comboBox/> のプルダウンリストに重なって行データが存在している場合に、 <comboBox/> のプルダウンリストをダブルクリックすると、 <comboBox/> のプルダウンリストが閉じられるだけではなく、 ダブルクリックされた位置の行データのテーブルエディタが開いてしまう。
<comboBox/> のプルダウンリストがダブルクリックで選択されても、プルダウンリストの背面に存在する行データのエディタは開くべきではありません。
また、この問題が生じた際、新しくテーブルエディタが開かれた行は選択行とはなりません。
このため、選択行ではない行のエディタだけを開くことができてしまう。
修正
内容
テーブルエディタとして使用されている <comboBox/> のプルダウンリストをダブルクリックした場合でも背面の行データのエディタを開かないように修正。
テーブルエディタとして使用されている <comboBox/> のプルダウンリストに対する連続クリックがキャンセルされるように修正。
9911
テキストコンポーネントの単語と文字の折り返しのサポート
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:全て
対象autoWrap 属性を利用可能な全ての UI コンポーネント
事象
内容
文字列の自動ラッピングを行う際に、これまでは単語単位でのラッピングの振る舞いのみがサポートされていました。
このため、半角スペースや区切り文字などが文字列中に存在した場合、これらの文字を折り返しの位置として自動的にラッピングされていました。
しかしながら、マルチバイト文字が使用されている場合、単語単位でのラッピングが行われることは必ずしも適切なラッピング処理ではなかったため、 このバージョンから文字単位でのラッピングを行う機能が追加されました。
修正
内容
文字単位のラッピングを行う事ができるように autoWrap 属性を利用可能な全ての UI コンポーネントで autoWrapType 属性が利用できるように修正しました。
autoWrapType 属性の属性値は "word" と "character" を使用する事ができ、新しく単語単位の折り返しを実現するために "character" 属性値を利用することができます。
従来の振る舞いは単語単位の折り返しで "word" 属性値を使用します。
autoWrapType 属性が存在しない場合、間違った属性値が指定されている場合のデフォルトの振る舞いは "word" になります。
9909
無効なアプレットパラメータが設定される
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:全て
対象Nexaweb/jsp/launcher/AppletDefs.jsp
事象
内容
AppletDefs.jsp の中のアプレットパラメータを生成する以下の処理に問題があり、正しくパスが指定されていないため、無効なパラメータになっていました。
&nbps; appletDef += "<param name=\"image\" value=\"/" + CONTEXT_PATH + "/Nexaweb/images/loading.gif\">";
修正
内容
AppletDefs.jsp の当該箇所を以下のように修正し、無効なパラメータとならないように修正。
&nbps; appletDef += "<param name=\"image\" value=\"" + CONTEXT_PATH + "/Nexaweb/images/loading.gif\">";
9898
互換性 : <ensure-pre-bugfix-table-statechange-behavior-onmousedown/> オプションを使用すると、テーブルの onStateChange イベントが 2 回呼び出される
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:4.5.13~
対象<table/>, <treeTable/>, <tree/>
事象
内容
Nexaweb Platform 4.5.13 の 9459 の修正によって加えられた <ensure-pre-bugfix-table-statechange-behavior-onmousedown/> オプションが有効な場合("true" 値を設定)に、複数のデータが選択されている際にマウスクリックを行うと 2 回 onStateChange イベントが呼び出されてしまう。
<ensure-pre-bugfix-table-statechange-behavior-onmousedown/> オプションは Nexaweb Platform 4.5.12 以前と同じ振る舞いを得るためのオプションであるが、 4.5.12 以前では複数のデータが選択されている場合にマウスクリックを行っても onStateChange イベントは 1 回だけしか呼び出されなかった。
修正
内容
<ensure-pre-bugfix-table-statechange-behavior-onmousedown/> オプションが有効な場合に、複数データを選択している状態でマウスクリックを行っても 1 回だけしか onStateChange イベントが呼び出されないように修正。
4.5.12 以前と同じ振る舞いを得る事ができるように修正。
9850
テーブルセルの "editable" 属性をスタイルシートで設定できない
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:全て
対象<tabel/>, <treeTable/>, <tree/>, <gridTable/>
事象
内容
スタイルシートによって <cell/> に対して "editable" 属性値を設定することができません。
修正
内容
スタイルシートによって <cell/> に対して "editable" 属性値を正しく設定することができるように修正。
9785
互換性 : セルが強調表示されているときに ComboBox エディタが開かない
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:4.5.13~
対象quickEdit が有効(quickEdit="true")なテーブル(<table/>, <treeTabel/>, <tree/>)
事象
内容
quickEdit 属性が有効(quickEdit="true")なテーブルに対してセルの存在していない部分をマウスクリックし、 テーブルがフォーカスを持った後に選択状態のセルをマウスクリックしてもセルが編集状態にならない。
quickEdit が有効な場合、セルは選択状態になるだけで編集状態になるべきであるが、編集状態にならない。
修正
内容
quickEdit が有効な場合にセルが選択されると、編集状態になるように修正。
9705
ヘッダーのドキュメント フォント属性
対象UI リファレンス(ドキュメント)
XAL の XML スキーマ
事象
内容
<header/> の XAL の UI リファレンスに NXML には存在していた以下の機能が存在していない。
  • color
  • fontAntiAlias
  • fontFamily
  • fontSize
  • fontStyle
  • fontWeight
  • textDecoration
修正
内容
この問題はドキュメントの記述に関する問題です。
<header/> の機能は NXML も XAL も同様であるため、属性値を指定する事で利用可能です。
このため、 UI リファレンスと、 XAL の XML のみが修正され、製品のプログラムは修正されませんでした。
7733
712-5434838 - データバインディングと iterator に対応したライフサイクルイベントが必要
環境
OS:全て
ブラウザ:全て
JVM:全て
Nexaweb Platform:全て
対象Nexaweb Data Binding の iterator
事象
内容
Nexaweb Data Binding の機能によってバインドされるデータは XAL ファイルあるいは XModify によるレスポンスデータをパース/レンダリングした後に処理されます。
このため、レスポンスデータの授受後にバインドされるデータがいつアプリケーションの上で利用可能になるかをユーザープログラムによって判断することができません。
この問題を解決するために Nexaweb Data Binding の機能によってバインドされるデータのライフサイクルを知るためのイベントが必要になります。
修正
内容
この修正は、機能追加のための修正です。
Nexaweb Data Binding の機能によってバインドされるデータに対して以下のライフサイクルイベントを追加。
  • onIterationStart - このイベントは、iterator を実行する直前に実行されます。
  • onAfterIterationStep - このイベントは、iterator の 1 つのステップが完了し、iterator によってそのステップのサブコンテンツが UI ドキュメントに提供された後に、ターゲット コンポーネントで実行されます。
  • onBeforeIterationStep - このイベントは、iterator の 1 つのステップの実行前に実行されます。
  • onIterationEnd - このイベントは、iterator の実行が完了した後に実行されます。