...
Lifecycle events added for iterator
An application can now register event handlers on certain iterator lifecycle events. For example, a macro can select a data bound table cell after that cell has been appended to the table by the iterator.
The following attributes have been added to iterator.
- onIterationStart - This event occurs before the iterator is about to run.
- onAfterIterationStep - This event occurs after a single iteration step has completed, and the iterator has contributed the subcontent for that step to the ui document, in the target component.
- onBeforeIterationStep - This event occurs before a single iteration step occurs.
- onIterationEnd - This event occurs after the iterator completes its run.
Support wait cursor on iterator
A Boolean attribute “showWaitCursor” has been added which determines whether or not the wait cursor is displayed in the UI during the iteration run. Default is set to false.
Also the attribute is stylesheet aware which means you can globally apply “showWaitCursor” attribute to iterator by defining it in the stylesheet.
Character wrap supported by new attribute: autoWrapType
A new attribute, autoWrapType, is added for label-based components such as button, textArea, messageDialg, etc. The values are "word" or "character" with "word" being the default. When the autoWrap attribute is true, autoWrapType determines whether line wrapping is at word boundaries or any character when the text line width exceeds the available space. Please see API for more details.
Defects Resolved (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 の修正内容を参照ください。
9982 | テーブル エディタとしてコンボボックスを使用しているときにコンボボックスの選択アイテムがクリアされない |
9964 | iterator でのウェイトカーソルのサポート |
9963 | ユーザーからのリクエストの後にポーリングリクエストによる同期が発生した場合、ServerDOM が同期されない |
9958 | NexawebServletResponseWrapper の setResponse(ServletResponse response) メソッドで ServletResponse が設定されない |
9942 | 互換性 : onCreate で選択したセルの属性を設定する際に quickEdit テーブルから NullPointerException 例外がスローされる |
9937 | "maxLength" 属性が設定された textArea に IME で文字を入力した場合に、入力カーソル位置が正しくない位置に移動する |
9924 | 互換性 : テーブルエディタのポップアップが閉じると stackOverflow がスローされる |
9917 | textArea が textEntryMode="overtype" である場合に"元に戻す"を実行すると、改行が表示されることがある |
9912 | comboBox 列エディタで listItem をダブルクリックするとテーブルの行が選択される |
9911 | テキストコンポーネントの単語と文字の折り返しのサポート |
9909 | 無効なアプレットパラメータが設定される |
9898 | 互換性 : <ensure-pre-bugfix-table-statechange-behavior-onmousedown/> オプションを使用すると、テーブルの onStateChange イベントが 2 回呼び出される |
9850 | テーブルセルの "editable" 属性をスタイルシートで設定できない |
9785 | 互換性 : セルが強調表示されているときに ComboBox エディタが開かない |
9705 | ヘッダーのドキュメント フォント属性 |
7733 | 712-5434838 - データバインディングと iterator に対応したライフサイクルイベントが必要 |
...
9982 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
テーブル エディタとしてコンボボックスを使用しているときにコンボボックスの選択アイテムがクリアされない | |||||||||||||
環境 |
| ||||||||||||
対象 | テーブルエディタとして使用されている <comboBox/> | ||||||||||||
事象 内容 | テーブルエディタとして使用されている <comboBox/> のデフォルトの選択値が前回選択された値になってしまう。 テーブルエディタとして使用されている <comboBox/> は単一のインスタンスを利用時に画面に表示して使用するため、 <comboBox/> によって選択された値が前回使用された際に選択された値となってしまう。 | ||||||||||||
修正 内容 | テーブルエディタとして使用されている <comboBox/> のデフォルト選択値を <comboBox/> が使用される度にクリアするように修正。 | ||||||||||||
9964 | |||||||||||||
iterator でのウェイトカーソルのサポート | |||||||||||||
環境 |
| ||||||||||||
対象 | Nexaweb Data Binding の iterator | ||||||||||||
事象 内容 | Nexaweb Data Binding の iterator を使用している場合に、多量のデータを表示しようとすると時間がかかるが、その際に画面上でマウスカーソルに変化がないため、 データが表示中であるかどうかがわからない。 | ||||||||||||
修正 内容 | この修正は、機能追加のための修正です。 Nexaweb Data Binding の iterator によってデータを表示中の場合にマウスカーソルがウェイトカーソルになるように修正。 | ||||||||||||
9963 | |||||||||||||
ユーザーからのリクエストの後にポーリングリクエストによる同期が発生した場合、ServerDOM が同期されない | |||||||||||||
環境 |
| ||||||||||||
対象 | サーバーリクエスト処理全て | ||||||||||||
事象 内容 | ServerDOM が有効で、かつポーリングが有効な場合、ポーリングリクエストとユーザーリクエストのタイミングが重なった場合、 ServerDOM の同期情報がユーザーリクエスト時に正しく同期されていない状態になることがある。 ユーザーリクエスト時に同期されるべき情報がユーザーリクエストではなく、ポーリングリクエストによって同期されるケースがあり、 ユーザーリクエストとポーリングリクエストの順序が変わる場合にユーザーリクエスト時に ServerDOM が正しく同期されていない状態になることがある。 | ||||||||||||
修正 内容 | 内部的にリクエストの処理を行う部分にて ServerDOM の同期情報とリクエストの処理を完全に同期させる処理を追加。 ただし、この振る舞いの変更によって従来とは異なる処理が実行されることになるため、互換性のための以下のオプションが nexaweb-client.xml に追加されました。 /client-app/synchronize-nexaweb-server-requests
4.5.15 以前のバージョンと同じ振る舞いを期待する場合には「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 が設定されない | |||||||||||||
環境 |
| ||||||||||||
対象 | NexawebServletResponseWrapper | ||||||||||||
事象 内容 | Cosminexus 上で JSP include を使用した場合に Cosminexus によって使用される ServletResponseWrapper を取得することができない。 | ||||||||||||
修正 内容 | NexawebServletResponseWrapper の処理の中で、継承元となる ServletResponseWrapper を正しく API の仕様に則って返していなかったため、正しく ServletResponseWrapper を返すように修正。 | ||||||||||||
9942 | |||||||||||||
互換性 : onCreate で選択したセルの属性を設定する際に quickEdit テーブルから NullPointerException 例外がスローされる | |||||||||||||
環境 |
| ||||||||||||
対象 | テーブルエディタ(<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 で文字を入力した場合に、入力カーソル位置が正しくない位置に移動する | |||||||||||||
環境 |
| ||||||||||||
対象 | <textArea/> | ||||||||||||
事象 内容 | maxLength 属性値が設定されおり、既に最大文字数が入力済みの <textArea/> に対して IME によって追加で文字入力を行うと、 最大文字数分既に入力済みであるため追加文字の入力を行う事ができないが、その際にテキストカーソル位置が後方に一文字分ずれてしまう。 | ||||||||||||
修正 内容 | IME によって文字入力された後のカーソル位置を移動するロジックを修正。 | ||||||||||||
9924 | |||||||||||||
互換性 : テーブルエディタのポップアップが閉じると stackOverflow がスローされる | |||||||||||||
環境 |
| ||||||||||||
対象 | popup 属性値が設定されているテーブルエディタ(<textField/>, <comboBox/> | ||||||||||||
事象 内容 | テーブルエディタが popup 属性値を持っている場合にテーブルエディタでポップアップを表示した後、ポップアップが閉じられると StackOverflowError 例外が発生する。 | ||||||||||||
修正 内容 | StackOverflowError 例外が発生しないように修正。 この問題は、 Nexaweb Platform 4.5.14 の 8828 の修正によって生じるようになった互換性問題になります。 8828 の修正によってテーブルエディタがテキスト値を取得するタイミングが変更されました。 この変更によって、ポップアップが閉じられた後にテキストを選択する際の処理に問題が生じたため StackOverflowError 例外が発生するようになりました。 この問題を修正するためにテーブルエディタに対するデフォルトスタイルシートに focusSelectionPolicy="all" が追加されました。 | ||||||||||||
9917 | |||||||||||||
textArea が textEntryMode="overtype" である場合に"元に戻す"を実行すると、改行が表示されることがある | |||||||||||||
環境 |
| ||||||||||||
対象 | <textArea/> | ||||||||||||
事象 内容 | <textArea/> 内で入力モードが上書きモードの状態で文字列を入力し、改行コードを上書きした後に、 Ctrl+Z によってアンドゥを行うと、 改行コードではなく <br/> がアンドゥされてしまう。 | ||||||||||||
修正 内容 | 改行コードが上書きモードによって削除された後にアンドゥされた場合に正しく改行コードがアンドゥされるように修正。 | ||||||||||||
9912 | |||||||||||||
comboBox 列エディタで listItem をダブルクリックするとテーブルの行が選択される | |||||||||||||
環境 |
| ||||||||||||
対象 | テーブルエディタとして使用されている <comboBox/> | ||||||||||||
事象 内容 | テーブルエディタとして <comboBox/> が使用されており、 <comboBox/> のプルダウンリストに重なって行データが存在している場合に、 <comboBox/> のプルダウンリストをダブルクリックすると、 <comboBox/> のプルダウンリストが閉じられるだけではなく、 ダブルクリックされた位置の行データのテーブルエディタが開いてしまう。 <comboBox/> のプルダウンリストがダブルクリックで選択されても、プルダウンリストの背面に存在する行データのエディタは開くべきではありません。 また、この問題が生じた際、新しくテーブルエディタが開かれた行は選択行とはなりません。 このため、選択行ではない行のエディタだけを開くことができてしまう。 | ||||||||||||
修正 内容 | テーブルエディタとして使用されている <comboBox/> のプルダウンリストをダブルクリックした場合でも背面の行データのエディタを開かないように修正。 テーブルエディタとして使用されている <comboBox/> のプルダウンリストに対する連続クリックがキャンセルされるように修正。 | ||||||||||||
9911 | |||||||||||||
テキストコンポーネントの単語と文字の折り返しのサポート | |||||||||||||
環境 |
| ||||||||||||
対象 | autoWrap 属性を利用可能な全ての UI コンポーネント | ||||||||||||
事象 内容 | 文字列の自動ラッピングを行う際に、これまでは単語単位でのラッピングの振る舞いのみがサポートされていました。 このため、半角スペースや区切り文字などが文字列中に存在した場合、これらの文字を折り返しの位置として自動的にラッピングされていました。 しかしながら、マルチバイト文字が使用されている場合、単語単位でのラッピングが行われることは必ずしも適切なラッピング処理ではなかったため、 このバージョンから文字単位でのラッピングを行う機能が追加されました。 | ||||||||||||
修正 内容 | 文字単位のラッピングを行う事ができるように autoWrap 属性を利用可能な全ての UI コンポーネントで autoWrapType 属性が利用できるように修正しました。 autoWrapType 属性の属性値は "word" と "character" を使用する事ができ、新しく単語単位の折り返しを実現するために "character" 属性値を利用することができます。 従来の振る舞いは単語単位の折り返しで "word" 属性値を使用します。 autoWrapType 属性が存在しない場合、間違った属性値が指定されている場合のデフォルトの振る舞いは "word" になります。 | ||||||||||||
9909 | |||||||||||||
無効なアプレットパラメータが設定される | |||||||||||||
環境 |
| ||||||||||||
対象 | 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 回呼び出される | |||||||||||||
環境 |
| ||||||||||||
対象 | <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" 属性をスタイルシートで設定できない | |||||||||||||
環境 |
| ||||||||||||
対象 | <tabel/>, <treeTable/>, <tree/>, <gridTable/> | ||||||||||||
事象 内容 | スタイルシートによって <cell/> に対して "editable" 属性値を設定することができません。 | ||||||||||||
修正 内容 | スタイルシートによって <cell/> に対して "editable" 属性値を正しく設定することができるように修正。 | ||||||||||||
9785 | |||||||||||||
互換性 : セルが強調表示されているときに ComboBox エディタが開かない | |||||||||||||
環境 |
| ||||||||||||
対象 | quickEdit が有効(quickEdit="true")なテーブル(<table/>, <treeTabel/>, <tree/>) | ||||||||||||
事象 内容 | quickEdit 属性が有効(quickEdit="true")なテーブルに対してセルの存在していない部分をマウスクリックし、 テーブルがフォーカスを持った後に選択状態のセルをマウスクリックしてもセルが編集状態にならない。 quickEdit が有効な場合、セルは選択状態になるだけで編集状態になるべきであるが、編集状態にならない。 | ||||||||||||
修正 内容 | quickEdit が有効な場合にセルが選択されると、編集状態になるように修正。 | ||||||||||||
9705 | |||||||||||||
ヘッダーのドキュメント フォント属性 | |||||||||||||
対象 | UI リファレンス(ドキュメント) XAL の XML スキーマ | ||||||||||||
事象 内容 | <header/> の XAL の UI リファレンスに NXML には存在していた以下の機能が存在していない。
| ||||||||||||
修正 内容 | この問題はドキュメントの記述に関する問題です。 <header/> の機能は NXML も XAL も同様であるため、属性値を指定する事で利用可能です。 このため、 UI リファレンスと、 XAL の XML のみが修正され、製品のプログラムは修正されませんでした。 | ||||||||||||
7733 | |||||||||||||
712-5434838 - データバインディングと iterator に対応したライフサイクルイベントが必要 | |||||||||||||
環境 |
| ||||||||||||
対象 | Nexaweb Data Binding の iterator | ||||||||||||
事象 内容 | Nexaweb Data Binding の機能によってバインドされるデータは XAL ファイルあるいは XModify によるレスポンスデータをパース/レンダリングした後に処理されます。 このため、レスポンスデータの授受後にバインドされるデータがいつアプリケーションの上で利用可能になるかをユーザープログラムによって判断することができません。 この問題を解決するために Nexaweb Data Binding の機能によってバインドされるデータのライフサイクルを知るためのイベントが必要になります。 | ||||||||||||
修正 内容 | この修正は、機能追加のための修正です。 Nexaweb Data Binding の機能によってバインドされるデータに対して以下のライフサイクルイベントを追加。
|