VisualFrame Version.1.1.0 変更点

ツール
ClientJavaエンジン
ビジネスルール
全体

不具合:不具合 機能Up:機能Up 仕様変更:仕様変更 その他:その他

ツール

1
機能Up
GuiDesignerがメニューとツールバーにも対応しました。
GuiDesignerがメニューとツールバーを表示できる機能が追加されました。

2
不具合
GuiDesignerをCAMCを複数起動した状態(同時でなくても)で起動すると、表示したいフレームと違う情報が表示される。
CAMCを複数起動した状態で、いくつかのフレームでGuiDesignerを起動していると、いつの間にかGuiDesignerからCAMCに戻れなくなることがあります。また、その時GuiDesignerでは一番最初に起動したCAMCで最後に表示したフレーム情報しか表示されなくなります。この現象が出る不具合を修正しました。

3
不具合
別のコンポーネントで修正中の値が違うコンポーネントに反映されてしまう。
GuiDesignerのレイアウトや%PROPERTY;情報を修正し、セルを編集状態のまま違うコンポーネントを選択すると、新たに選択したコンポーネントに修正中だった値が設定されてしまう不具合を修正しました。

4
不具合
CAMC 「レイアウト」タブに削除できないゴミが残ってしまう
「コンポーネント」タブで「挿入」ボタンをクリックし、基本クラス選択ダイアログで「キャンセル」を行うと「レイアウト」タブに削除できない空のレコードが追加されてしまう 不具合を修正しました。
(tc103pth1.jar の反映)

5
不具合
CAMC保存時のチェック条件追加。
複数のテーブルが1画面に存在するとき、各テーブルに同じアイテムを設定していても保存でエラーにならない不具合を修正した。

6
不具合
GuiDesigner上の複数階層メニュー表示の不具合修正。
GuiDesignerで、設定されたメニューセットが複数階層のものの時に正しくメニューが構成されない不具合を修正した。

7
不具合
GuiDesigner上のメニュー表示がクリアされない不具合修正。
GuiDesignerで、メニュー/ツールバーを使用した画面を表示後、新規に画面を作成した画面でGuiDesignerを起動すると、メニュー/ツールバーの表示が残る不具合を修正した。

8
機能Up
デスクトップのタイトル
Desktop のタイトルに、menu.wdg で指定した <desktop label=""> の値を表示するよう修正した。

9
機能Up
SAMC,CAMC,HAMC,SMCのID採番方法を変更
SAMC,CAMC,HAMC,SMCのIDをサーバ側で毎回採番するよう仕様変更した(ルート要素以外)。この修正は内部的なものなので意識する必要はありません。

10
機能Up
SAMC,CAMC,HAMC,SMCのフィルタリング機能
SAMC,CAMC,HAMC,SMCのメニューに「データ-フィルタ」が追加された。この機能でフィルタリングを行う事で、ツリーに表示される各データを絞り込むことができるようになった。

11
機能Up
GuiDesigner上でのデフォルトフォントを指定する機能追加。
ToolClient.wdgでGuiDesignerで使用するコンポーネントのデフォルトフォントの設定が行える機能を追加した。

12
機能Up
基本データの親のつけかえ機能追加
基本データの親のつけかえができるようになった。

13
機能Up
AllImport時にヒストリを残すようになった。
AllImport時にサーバ側にToolApServer.histories.logファイルにヒストリログを残すように修正した。

14
機能Up
アイテムの「項目チェック」のデフォルト値の修正。
アイテムの「項目チェック」のデフォルト値が「X」から「O」になった。

15
機能Up
アイテム定義へのジャンプ機能追加。
ルールの入力/出力アイテム、テーブルの列アイテムからダブルクリック操作によりアイテム一覧へ自動でジャンプする機能を追加した。

16
機能Up
アイテム「使用場所」からのジャンプ機能追加
アイテムの「使用場所」に表示されているルール/テーブルからダブルクリック操作によりルール/テーブル一覧へ自動でジャンプする機能を追加した。

17
機能Up
ビジネスルールに「使用場所」追加。
ビジネスルールの下のタブに「使用場所」タブがついた。そこから仕様先の定義へジャンプも可能。

ClientJavaエンジン

1
その他
JDK1.4.X対応
JDK1.4.Xにて動作するようになりました。JDK1.3.X以前では動作不可になります。

2
機能Up
JNLP ファイルの codebase 等にホスト名、または IP アドレス、URI 等を明示的に指定せず、実行時に Servlet API を使って実行時の環境から取得する機能を追加。
従来は JNLP ファイルに codebase="http://hostname/app" と指定していたところを codebase="$$codebase" と指定することで、実行時に JNLP サーブレットが実行環境から URL を取得し、$$codebase を実行時の codebase に置き換えてクライアントに返すことができるようになりました。これにより開発環境から実行環境に移行する際、JNLP ファイルの codebase 指定を変更する必要がなくなります。Servlet API を使っていることから、この機能を利用するにはサーブレット・コンテナが必要になります。(CGI, PHP 等からこの機能を利用することはできません。)

3
その他
index.html ファイルの内容を変更。
従来、Applet 起動用として同梱していた index.html を RunClient.html に名称変更し、index.html には Applet, JWS 起動用ファイルへのアンカーを記述するように変更しました。

4
機能Up
イベントに「Open処理」「Dispose処理」が追加、「UnLoad処理」を「Close処理」に名称変更
フレームのイベントに「Open処理」「Dispose処理」が追加されました。
結果、フレームのイベントは以下の4つになります。

Load処理:画面情報が生成された タイミング (Ver1.0.3の Load処理 と同等)
Open処理:画面が表示された タイミング
Close処理:画面が閉じられた タイミング (Ver1.0.3の UnLoad処理 と同等)
Dispose処理:画面情報が破棄された タイミング

5
仕様変更
アイテムタブ の項目チェックのデフォルトが○(有効)
アイテムタブ の"項目チェック"にて 値が無い状態 の場合、チェック有効(○) と認識されるように変更されました。
Ver1.0.X では チェック無し(×) と認識していますので、移行時には "項目チェック" が空欄のものは "×"を設定するようにして下さい。

6
仕様変更
画面タイトルの×ボタン時 項目チェック が実行
画面タイトルバー の ×ボタン押下時、現在フォーカスが当たっているコンポーネントの 項目チェック が実行されるように なりました。
項目チェックを実行したくない場合には、フレームの種類を ***_QUIT_ON_CLOSE に変更してください。

7
仕様変更
画面タイトルの×ボタン時 After実行結果がSTOPもしくは他にSetFocusされる場合は画面が終了しない
画面タイトルバー の ×ボタン押下時、After実行結果が STOP,STOP_SELECT_ALL もしくは フォーカス移動指示(実行リストの次のアイテム に指定がある もしくは setFocus のルールを使用している) がある場合には画面が終了しないようになりました。
つまり、フォーカス移動が出来ない状態 の場合には 画面を閉じる事が出来ない ようになります。
Ver1.0.Xでは、After実行後その結果に関わらず画面が終了してしまいましたが、Ver1.1.0では画面終了可・不可をアプリケーションにて 制御ができるようになります。
画面タイトルバー の ×ボタン押下時、常に画面を終了したい場合には フレームの種類を ***_QUIT_ON_CLOSE に変更してください。

8
仕様変更
処理中の先行入力不可
実行リスト処理中の マウス操作、Key入力操作、内部コードによるフォーカス移動操作 は有効にならないように制御が追加されました。
フォーカス移動は、処理後に 実行エンジンが指定のコンポーネントにフォーカス設定処理 を行います。
これにより、Ver1.0.Xでは、処理中にて 他をマウスクリックされると 処理終了後に クリック処理が実行されましたが、Ver1.1.0では クリック処理は実行されません。
これは、JDK1.4 より 重い処理のためにStackされた 処理(Event) は、GUI操作順に発生しないようになった為の考慮になります。
(マウスのEventが先にまとめてCallされ、その後KeyのEventが実行される)

この変更により、Ver1.0.Xでは 反応したボタンが、反応しなくなるケースがあります。
例えば、
Afterに重い処理を含む テキストフィールド にフォーカスがある状態にて ボタンを 押下 すると
Ver1.0.X では テキストのAfter処理後 ボタンの Before,After が実行されましたが、
Ver1.1.0 では テキストのAfter処理後 ボタンの Before,After が実行されません。
これは、ボタン押下では 2つのイベント MousePressed , MouseReleased が発生することによりActionイベントが発生しますが、 MouseReleased のタイミングにて テキストのAfterが処理中 のため 処理が実行されない為になります。

重い処理を設定するイベントは通常ボタンのBefore,Afterにて設定されると思いますが、テキストのAfterなどに 設定しないように設計してください。

9
機能Up
起動パラメータ(java起動時に与えるパラメータ)が、ビジネスルールより取得できるようになりました
AbstractClient(ルール継承元)のメソッドに public String getParameter(String key) が追加されました

10
機能Up
画面のリビジョン番号が、ビジネスルールより取得
AbstractClient(ルール継承元)のメソッドに public String getRevision() が追加されました

11
機能Up
ユーザ定数ファイルの読み込み機能を標準提供
ユーザ定数ファイル(Configにて設定)を読み込み、ビジネスルールより参照可能になりました。

12
機能Up
データチェック時の文字コード指定
データチェック時の文字コード が Configにて設定が可能になりました。

13
機能Up
「処理前ダイアログ」にて「いいえ」が選択された時の戻り値設定
「処理前ダイアログ」にて「いいえ」が選択された時の戻り値 を Config にて設定が可能になりました。

14
機能Up
画面、アクセスログパネルのスクロールの動作が速くなりました
画面、アクセスログパネル に対して javax.swing.Scrollable を実装し スクロール動作が速くなるように変更されました。

15
仕様変更
内部データ構造が変更されました
アイテムにて保持される データ構造 が変更されました。
Ver1.0.X以前では、String型 のみ保持が可能でしたが、Ver1.1.0より Object型 の保持が可能になりました。
また、データにアクセスするメソッドとして String型にてアクセスするメソッド(***String())、Object型にてアクセスする メソッド(***Object())、int型に変換して値を取得するメソッド(getInt())、double型に変換して値を取得するメソッド(getDouble()) などが追加されました。
また、null の状態も設定可能になりました。設定された値が null の場合が存在することになりますので、 取得の際には null かどうかの判断が必要になります。
「null であった場合には空文字が返る(nullは返さない)」という状態を取得するため、getStringNN() というメソッドが追加されていますので、 こちらを利用することも可能です。
実行エンジンにて 値を取得しコンポーネントに表示する 処理を行う際には getStringNN() メソッドを使用して制御を行っています。

16
機能Up
共通メモリ一覧表示のダイアログ表示
共通メモリにて登録されている一覧を ダイアログとしてGUIから参照できるようになりました。
ショートカットキーの設定は Config にて行います。デフォルトは Alt+VK_F8 にて設定されています。

17
仕様変更
Configのデフォルトフォント指定が全てのGUIコンポーネントに反映
Configのデフォルトフォント指定が全てのGUIコンポーネントに反映するようになりました。
アプリケーション起動時に、javax.swing.UIManager に対して全てのフォント設定を Configの設定に置き換えます。
そのため、ルールなどより新しい GUIコンポーネント を作成しても Configのデフォルトフォント が有効になった状態にて表示されます。
標準ルールでの FileChooser などの表示にも反映されます。

18
仕様変更
AfterMode="1"が廃止されました
Ver1.0.X での config指定 にて存在した AfterMode="1" の設定が廃止されました。
Ver1.1.0 では AfterMode="2" の状態にて動作します。

19
機能Up
ログ出力機構強化
実行時のトレースログの出力先、出力レベル を設定できるようになりました。
出力先として、 (1)デスクトップのトレースログ表示(メモリ内)
(2)標準出力(System.out)
(3)ファイル出力
が指定でき、各出力先での出力レベル(エラーのみ、実行トレースの詳細 など)が Config にて指定が可能です。

20
仕様変更
処理中の「フォーカス移動」拒否
実行リスト処理中の「フォーカス移動」は Swing内部で実行されたフォーカス移動処理も含めて拒否されるようになりました。
Swing標準では フォーカスコンポーネントをDisableにすることにより 次にフォーカス移動 する処理がありますが、そのような 勝手に行われる「フォーカス移動」は全て 拒否(実行されない)ように制御されています。
これにより、処理中に「フォーカス移動」を行うことにより発生するイベントの入れ子、JDKバージョンによる差 をカバーしています。
「フォーカス移動」はアプリケーションによって明示的に設定するようにして下さい。

実行リスト処理後、画面上に フォーカスが無い状態 になってしまった場合、実行エンジンにて以下の処理を行います。
1. 処理コンポーネント(current)がフォーカス取得可能な状態は、そのコンポーネントにフォーカス設定
2. 1.にてフォーカス設定できなかった場合には、1つ前に処理を行ったコンポーネント(oldCurrent)にフォーカス設定
3. 2.でもフォーカス設定できなかった場合には、画面最初のフォーカスコンポーネントにフォーカス設定
上記の処理はあくまでも最終手段として、基本的にはアプリケーションによって制御するようにして下さい。

21
機能Up
編集可能なコンボボックスが使用
編集可能なコンボボックスが使用可能になりました。
コンボボックスの属性の Editabled を true に設定することにより、編集可能コンボボックス になります。
編集可能コンボボックスは、 テキストフィールド + ボタン(リストプルダウン用) の組合せにて表示されます。
Before,Afterのイベントは テキストフィールドと同等の処理になります。
つまり、テキストフィールド に 選択可能なリストが付属した というイメージのコンポーネントになります。

22
機能Up
テーブルレンダラ、エディタに 「ラジオボタン」追加
テーブルレンダラ、エディタに 「ラジオボタン」が追加されました。
ラジオボタン エディタ を使用した場合、エディタをクリックされた時、対象行以外の値を 選択無し の状態に 変更します。
これにより、テーブル内の行にて 1行のみ選択 という状態が作成可能になります。

23
機能Up
テーブルレンダラに 「テキストエリア」追加
テーブルレンダラに 「テキストエリア」が追加されました。
テキストエリア レンダラ は 折り返し設定 を行っている為、セルに文字が入りきらない場合には自動的に折り返し(複数行)表示 されます。
但し、複数行として表示するためには 行サイズ を大きくする必要があります。

24
機能Up
テーブルレンダラ・エディタ クラス作成時の抽象クラスが用意
テーブルレンダラ・エディタ クラス作成を容易に行えるようにするため、抽象クラスが容易され、作成ドキュメントが整備 されました。

25
仕様変更
テーブルの マウスクリックによる編集開始タイミング変更
フォーカス未取得セルの場合は 1回のクリックで 「フォーカスセルの移動」、2回目のクリックで「編集開始」になります。
この変更は、Swingの不具合回避のために行われました。
この制御は テーブルエディタ に依存するため、テーブルエディタを自作して設定することによりこの挙動は変更されます。
テーブルエディタを自作することにより、Ver1.0.X以前の動きと同様の動き ・・・フォーカス未取得セル に対しても1回のクリックで 「編集開始」を行う ・・・ にすることは可能ですが、その設定によるSwing不具合については製品として対応が出来ませんので予めご了承ください。

26
機能Up
マウスPressのタイミングで処理を行うボタン系コンポーネント追加
マウスPressのタイミングにて処理を行うボタン系コンポーネントとして
1.プレスボタン
2.プレスラジオボタン
3.プレストグルボタン
4.プレスチェックボックス
が追加されました。

通常の ボタン では、 マウスPress → マウスRelease を行った時に Before,Afterイベントが実行されますが、 プレスボタン では、マウスPress の動作にて Before,Afterイベントが実行されます。

プレス系ボタンは通常使用することはありませんが、「処理中のフォーカス移動拒否 」の仕様変更によりボタンクリックの 先行入力が有効にならないのが困る方は このプレス系ボタンを使用することによる対応も可能です。

但し、SpaceKeyによる ボタン押下動作においても、 通常の ボタン では、 KeyPress → KeyRelease を行った時に Before,Afterイベントが実行
プレスボタン では、KeyPress の動作にて Before,Afterイベントが実行されます。
そのため、KeyPressを続けて行う(SpaceKeyを押しっぱなしにする)と、複数回ボタンの Before,Afterイベントが実行されます。

その他の差として、マウス時のボタンクリックキャンセル処理(マウスPress → ボタン外にマウス移動 → マウスRelease) は プレスボタンでは行うことはできません。
また、ボタンの Before,After中 通常ボタンは ボタンが押された(凹んだ)状態 にて表示されますが、プレスボタンは 通常(凹んでない)状態 にて表示されます。

27
仕様変更
コンボボックスAfterイベント発火条件変更
Ver1.0.Xでの、コンボボックスの Afterイベント発火条件は、
「ポップアップメニューを閉じられた時 かつ 値が変更された時」
でしたが、Ver1.1.0より、 「GUI操作にて 値が変更された時」
に変更されました。これにより、コンボボックスにて END,HOME キーなどにより値を変えられた場合にもAfterイベントが実行されるようになります。
但し、このAfterイベント発火条件は、編集可能コンボボックス には適用されません。

28
仕様変更
テーブルのフォントはレンダラに依存するように修正
Ver1.0.Xにて提供しているテーブルレンダラでは、テーブル自体のフォントにて常に表示するように作成されていましたが、 Ver1.1.0よりテーブルフォントの反映を行わず、レンダラコンポーネント自体のフォントが反映されるように修正されました。

29
機能Up
LikeEnterTab指定時の制御
LikeEnterTab が true に設定された場合、JDK1.4にて追加されたFocusTraversalKeyの設定をするように修正されました。
LikeEnterTab が true に設定された場合、実行エンジンでは 作成したGUIコンポーネントに対して、

1. JComponent#getFocusTraversalKeys により UIにて設定されている TraversalKey を取得
2. TraversalKey にて KeyEvent.VK_TAB の指定のものがある場合、同じModifierを使用して KeyEvent.VK_ENTER のものを TraversalKey に追加

という処理を、FORWARD_TRAVERSAL_KEYS(前に移動) BACKWARD_TRAVERSAL_KEYS(次に移動) 両方に対して行います。

Ver1.0.X以前では、LikeEnterTab が true に設定されている場合では ENTER key は強制的に Tab key に変換することにより動作していましたが、 Ver1.1.0では、FocusTraversalKey に設定することで動作しますので、別途ビジネスルールにて TraversalKey の変更など処理を変更することが可能になります。
また、フォーカス移動制御に関してはSwingに依存することになります。

30
機能Up
フォーカス移動順の制御
フォーカス移動順の制御は JDK1.4にて追加された FocusTraversalPolicy の設定により制御するように変更されました。
実行エンジンでは、CAMC:フォーカス移動順 に指定がある場合にはその指定のコンポーネントへ遷移、設定されていない場合には、 javax.swing.LayoutFocusTraversalPolicy にて取得したコンポーネントへ遷移します。
ビジネスルールにて、java.awt.DefaultKeyboardFocusManager#setDefaultFocusTraversalPolicy メソッドより 独自の FocusTraversalPolicy を設定することにより、独自のロジックに修正する事が可能です。
(逆に 独自のFocusTraversalPolicy を設定すると、実行エンジンでのフォーカス移動順制御は行わなくなります)

31
機能Up
リアルタイムチェック機能追加
コンポーネントの属性に リアルタイムチェック有無 が追加されました。
この属性は、テキスト系コンポーネントに対して、Key入力が行われたタイミングにて チェックを行い、チェックエラーの場合は入力不可 (Key入力が反映しない)ものになります。
同じような機能のものとして、バイト制限テキストフィールド などのコンポーネントがありましたが、これらのコンポーネントは 桁数のみ の判断を行い制御していました。
リアルタイムチェック機能により、桁数に限らず チェックが行う事ができるようになります。
リアルタイムチェック時に参照されるロジックは 設定されている アイテムの チェッククラス に依存します。

ビジネスルール

1
機能Up
新規ビジネスルール50件追加
新規ビジネスルール50件を追加しました。

2
その他
名称修正
ルール名称を一部修正しました。『Join → JoinMultiItems』『Split → SplitMuitlItems』『MergeSortDown → MergeDown』『MergeSortUp → MergeUp』。Webtribe1.0.xからバージョンアップ時にWedgeOMCImportを行わない場合はこれらのルールでClassNotFoundExceptionが発生しますのでご注意下さい。

3
機能Up
IfMatch...のルールにてInとOutに同じアイテムを設定可能に修正
IfMatchItemThenCopyValue, IfMatchParamThenCopyValue, IfUnMatchItemThenCopyValue, IfUnMatchParamThenCopyValueにてInとOutに同じアイテムを設定可能に修正。

4
機能Up
漢字コンバートルール修正
KanjiConvertにて『~』の文字を追加しました。また逆変換を行えるように修正しました。

5
機能Up
ファイルルールにてエンコードタイプを設定できるよう修正
WriteFileFromItem ,WriteCsvFileFromItem ,AddCsvFileFromItem ,ReadFileToItem ,ReadCsvFileToItemにて『-encoding』と指定をすることによりファイルの文字列エンコードを設定できるよう修正しました。また、URLEncodeのルールにおいてもエンコードが指定できるよう修正をしました。

6
機能Up
DecimalCalc...ルール修正
DecimalCalcAdd, DecimalCalcSubtract, DecimalCalcMultiply, DecimalCalcDivide, DecimalCalcModにてInとOutに同じアイテムを設定可能に修正。また、TEXTアイテムとCOLTEXTアイテムの演算を出来るよう修正。

7
機能Up
空白引数対応
共通(値)、共通(コンバート)、共通(日付)のパッケージ内にて、ルール引数が空のときにエラーを発生させず、空白文字列をそのまま出力するように修正しました。

8
機能Up
BigDecimal対応
int,doubleにて処理をしているため大きな数、小数を処理しきれないルールをBigDecimalを使用する形に修正しました。CheckBigSmall, CheckBigSmallParameter, RoundValue, Summary, SortValue(サブクラス)

全体

1
その他
conf/xml 以下のファイルをパッケージから除去
パッケージの conf/xml 以下に存在したファイルを JAR ファイル化したため、これらのファイルをパッケージから除去しました。これにより、従来と比較して WAR ファイルのサイズが小さくなっています。