コンポーネントは、テキストボックス、コンボボックスなど、システムのユーザが直接操作する部品(コントロール)です。
コンポーネントは、Swingのそれを機能拡張した形で提供されます。
(したがってコンポーネントは、Swingの制限(不具合)に依存しますのでご了承ください。)
コンポーネントは、(ロジッククラスの実行による)イベントハンドリング、(トランザクションの実行による)サーバとの交信、(標準チェックの実行による)データの妥当性チェックの機能を持ちます。
コンポーネントの属性は、Client Application Management Consoleのコンポーネントタブの属性で設定します。ロジッククラス内からSwingのメソッドを直接呼び出すことによって設定することも可能です。
コンポーネントタブの属性の詳細はコンポーネント属性を参照してください。
これらコンポーネントの設定は方法はClient Application Management Consoleを参照してください。
また、コンポーネント作成のインターフェースは現在提供しておりません。独自のコンポーネントを使用したい場合にはフレームインターフェースにて実装するかメディア情報技術(株)までご相談ください。
jp.ne.mki.wedge.run.client.component.text.DefaultTextField
「javax.swing.JTextField」を拡張した、1行テキストの編集を可能にする軽量コンポーネントです。
複数行の表示はできません。複数行表示を行いたい場合には テキストエリア を使用してください。
必要なアイテム
このコンポーネントは、1つのアイテムと関連付けます。入力されたデータは、そのアイテムに格納されます。
コンポーネント取得方法
ロジッククラスにてコンポーネントを取得するには、アイテムの「getComponent()」を使用します。
取得した「JComponent」は JComponentは javax.swing.JTextField もしくは javax.swing.JFormattedTextField にキャスト可能です
入力位置
「データタイプ」にて数値・日付・日付時刻・時刻が選択されている場合には右寄せ、それ以外は左寄せになります。
(コンポーネント属性 / TextPosition が指定されている場合を除く)
IME自動設定
フォーカス取得時に「データ型」にて
JAPANESEが選択されている場合にはひらがな入力モード(InputSubset.KANJI)、
HALF_KANAが選択されている場合には半角カナモード(InputSubset.HALFWIDTH_KATAKANA)、
FULL_ALPHABETが選択されている場合には全角英数字モード(InputSubset.FULLWIDTH_LATIN)、
それ以外は英数半角入力モードになります。
表示変換クラス
データにフォーマットが指定されている場合には、Focus紛失前(他のコンポーネントに制御が移る前)にフォーマットが実行されます。編集開始時には入力値(フォーマットされていない値)になります。
項目チェック
項目チェックを実行する設定の場合には、Focus紛失前(他のコンポーネントに制御が移る前)にデータ型の値に基づきチェックが実行されます。但しこのタイミングでは省略不可チェックは行いません。(省略不可チェックはトランザクションの標準チェックにて行います ※Webtribeのみ)
Before | Focus取得時 |
---|---|
After | Focus紛失前(他のコンポーネントに制御が移る前) |
jp.ne.mki.wedge.run.client.component.text.DefaultPasswordField
「javax.swing.JPasswordField」を拡張した、1 行のテキストの編集を可能にする、軽量コンポーネントです。
ただし、ビューは入力があった事を示しますが、どの文字が入力されたかは表示しません。
必要なアイテム
このコンポーネントは、1つのアイテムと関連付けます。入力されたデータは、そのアイテムに格納されます。
コンポーネント取得方法
ロジッククラスにてコンポーネントを取得するには、アイテムの「getComponent()」を使用します。
取得した「JComponent」を javax.swing.JPasswordField にキャスト可能です
表示変換クラス
データにフォーマットが指定されている場合には、Focus紛失前(他のコンポーネントに制御が移る前)にフォーマットが実行されます。編集開始時には入力値(フォーマットされていない値)になります。
項目チェック
項目チェックを実行する設定の場合には、Focus紛失前(他のコンポーネントに制御が移る前)にデータ型の値に基づきチェックが実行されます。但しこのタイミングでは省略不可チェックは行いません。(省略不可チェックはトランザクションの標準チェックにて行います ※Webtribeのみ)
Before | Focus取得時 |
---|---|
After | Focus紛失前(他のコンポーネントに制御が移る前) |
jp.ne.mki.wedge.run.client.component.text.DefaultTextArea
「javax.swing.JTextArea」を拡張した、複数行のテキストの編集を可能にする、軽量コンポーネントです。
文字 が 表示領域 を超えた場合、自動的に スクロールバー が表示されます。
必要なアイテム
このコンポーネントは、1つのアイテムと関連付けます。入力されたデータは、そのアイテムに格納されます。
コンポーネント取得方法
ロジッククラスにてコンポーネントを取得するには、アイテムの「getComponent()」を使用します。
取得した「JComponent」を javax.swing.JTextArea にキャスト可能です
IME自動設定
フォーカス取得時に「データ型」にて
JAPANESEが選択されている場合にはひらがな入力モード(InputSubset.KANJI)、
HALF_KANAが選択されている場合には半角カナモード(InputSubset.HALFWIDTH_KATAKANA)、
FULL_ALPHABETが選択されている場合には全角英数字モード(InputSubset.FULLWIDTH_LATIN)、
それ以外は英数半角入力モードになります。
表示変換クラス
データにフォーマットが指定されている場合には、Focus紛失前(他のコンポーネントに制御が移る前)にフォーマットが実行されます。編集開始時には入力値(フォーマットされていない値)になります。
項目チェック
項目チェックを実行する設定の場合には、Focus紛失前(他のコンポーネントに制御が移る前)にデータ型の値に基づきチェックが実行されます。但しこのタイミングでは省略不可チェックは行いません。(省略不可チェックはトランザクションの標準チェックにて行います ※Webtribeのみ)
Before | Focus取得時 |
---|---|
After | Focus紛失前(他のコンポーネントに制御が移る前) |
jp.ne.mki.wedge.run.client.component.button.DefaultButton
「javax.swing.JButton」を拡張した、プッシュボタンのコンポーネントです。
プッシュ動作 は マウスクリック や SPACEキー押下 などにより行うことができます。
必要なアイテム
このコンポーネントは、1つのアイテムと関連付けます。
ボタンクリック時に アイテム の Before,After 処理が実行されます。
コンポーネント取得方法
ロジッククラスにてコンポーネントを取得するには、アイテムの「getComponent()」を使用します。
取得した「JComponent」を javax.swing.JButton にキャスト可能です
IME自動設定
フォーカス取得時は 英数半角入力モード になります。
Before | Click時 |
---|---|
After | Click時 |
jp.ne.mki.wedge.run.client.component.checkbox.DefaultCheckBox
「javax.swing.JCheckBox」を拡張した、チェックボックスのコンポーネントです。
プッシュ動作 は マウスクリック や SPACEキー押下 などにより行うことができます。
選択あるいは選択解除できる項目の実装で、その状態を表示します。
必要なアイテム
このコンポーネントは、1つのアイテムと関連付けます。入力されたデータは、そのアイテムに格納されます。
チェックされると「1」が、チェックされなかったら「0」がデータに設定されます。
ただし、アイテム/基本データ の「ENUM」 が設定されている場合は、チェックされると「ENUM」の一番目の値が、チェックされなかったら2番目の値が設定されます。
チェックあり | チェックなし | |
---|---|---|
ENUM設定あり | ENUMの一番目の値 | ENUMの二番目の値 |
ENUM設定なし | 1 | 0 |
Before | クリック時:値設定前 |
---|---|
After | クリック時:値設定後 |
jp.ne.mki.wedge.run.client.component.combobox.DefaultComboBox
「javax.swing.JComboBox」を拡張した、コンボボックスのコンポーネントです。
コンボボックスとは、ボタン、または編集可能フィールドとドロップダウンリストを組み合わせたコンポーネントです。
ユーザは要求に応じて表示されるドロップダウンリストから値を選択できます。
選択された値と、アプリケーションとして保持したい値が異なる場合・・・例えば、表示は名称だが、選択値として保持したいのは、そのID など
・・・でもそれらの情報をコンボボックスに与える事により選択値が自動的に取得可能になるように拡張されています。
コンボボックスを編集可能にすると、編集可能なフィールドを持つようになり、ユーザが値を自由に入力できるようになります。
必要なアイテム
コンボボックスを画面で使用する場合はアイテムタイプが「TEXT」
「BOXKEY」「BOXDATA」の3種類のアイテムをセットにする必要が有ります。
「BOXKEY」のアイテムには ”コンボボックスが選択された時の値のリスト”、
「BOXDATA」のアイテムには ”コンボボックスに表示される値のリスト” をセットする必要が有ります。
「TEXT」のアイテムには ”コンボボックスが選択された時の値” が自動的にセットされます。
ロジッククラス等から「TEXT」のアイテムに値をセットすると、
「BOXKEY」のアイテムの中から同じ値を探し出し、対応する「BOXDATA」の値を自動で選択状態にします。
コンポーネント取得方法
ロジッククラスにてコンポーネントを取得するには、アイテムの「getComponent()」を使用します。
コンボボックス独自のメソッドが使用したい場合には、取得した「JComponent」を「DefaultComboBox」にキャストして下さい。
(javax.swing.JComboBox にキャストする事も可能です)
TEXTのアイテムは「DefaultComboBox.getItem()」、BOXKEYのアイテムは「DefaultComboBox.getKeyItem()」、BOXDATAのアイテムは「DefaultComboBox.getListItem()」により取得します。
編集可能コンボ since:Version.1.1.0
コンポーネント属性にて、editable=true の設定にすると 編集可能なコンボボックスになります。
編集可能にする為には、コンポーネントの属性にて設定を行ってください。
編集可能なコンボボックスは、入力エディタは「テキストフィールド」になります。Before,Afterの実行は テキストフィールドと同様になります。
表示されるコンボボックスのリストは、BOXDATA のものになり、リスト選択値は エディタに反映されます。
BOXKEYは使用しません
アイテムタイプがBOXKEYのアイテム
Before | ポップアップ表示時 |
---|---|
After | ポップアップが閉じた時 かつ 値が変更されていた時 もしくは KeyBindより値を変えられたとき(Endキーなど) |
Before | Focus取得時 |
---|---|
After | Focus紛失前(他のコンポーネントに制御が移る前) |
jp.ne.mki.wedge.run.client.component.list.DefaultList
「javax.swing.JList」を拡張した、リストボックスのコンポーネントです。
ユーザは、表示リストから任意の行を選択することにより、値を設定します。
選択された値と、アプリケーションとして保持したい値が異なる場合・・・例えば、表示は名称だが、選択値として保持したいのは、そのID など
・・・でもそれらの情報をコンボボックスに与える事により選択値が自動的に取得可能になるように拡張されています。
必要なアイテム
リストを画面で使用する場合はアイテムタイプが「TEXT」
「BOXKEY」「BOXDATA」の3種類のアイテムをセットにする必要が有ります。
「BOXKEY」のアイテムには ”リストボックスが選択された時の値のリスト”、
「BOXDATA」のアイテムには ”リストボックスに表示される値のリスト” をセットする必要が有ります。
「TEXT」のアイテムには ”リストボックスが選択された時の値” が自動的にセットされます。
ロジッククラス 等から「TEXT」のアイテムに値をセットすると、BOXKEYのアイテムの中から同じ値を探し出し、
対応するBOXDATAの値を自動で選択状態にします。
コンポーネント取得方法
ロジッククラスにてコンポーネントを取得するには、アイテムの「getComponent()」を使用します。
リスト独自のメソッドが使用したい場合には、取得した「JComponent」を「DefaultList」にキャストして下さい。
(javax.swing.JList にキャストする事も可能です)
TEXTのアイテムは「DefaultList.getItem()」、BOXKEYのアイテムは「DefaultList.getKeyItem()」、BOXDATAのアイテムは「DefaultList.getListItem()」により取得します。
Before | Focus取得時 |
---|---|
After | Focus紛失前(他のコンポーネントに制御が移る前) |
jp.ne.mki.wedge.run.client.component.button.DefaultToggleButton
「javax.swing.JToggleButton」を拡張した、トグルボタンのコンポーネントです。
グループ化内トグルボタンでは、常に1つ選択された状態になります。
(初期値設定無し時は、初期状態では選択は無し という状態になります。)
必要なアイテム
選択された値を保持するアイテムを1つ用意し、グループアイテムとして登録します。(Client Application Management Console/グループ 参照)
GUIより選択変更されると、グループアイテムの値が自動的に変更されます。
また、プログラム内部より グループアイテム の値が変更されると、GUI上の選択状態も自動的に変更されます。
コンポーネント取得方法
グループで割当てたアイテムに、コンポーネントと値のセットで設定した値がセットされます。
ロジッククラスにてコンポーネントを取得するには、アイテムの「getComponent()」を使用します。
リスト独自のメソッドが使用したい場合には、取得した「JComponent」を「DefaultTiggleButton」にキャストして下さい。
(javax.swing.JToggleButton にキャストする事も可能です)
グループ化している場合、グループのアイテムは、「DefaultToggleButton.getGroupItem()」にて取得します。
Before | Focus取得時 |
---|---|
After | 値変更時 |
Before | 値設定前 |
---|---|
After | 値設定後 |
jp.ne.mki.wedge.run.client.component.button.DefaultRadioButton
「javax.swing.JRadioButton」を拡張した、ラジオボタンのコンポーネントです。
グループ化内ラジオボタンでは、常に1つ選択された状態になります。
(初期値設定無し時は、初期状態では選択は無し という状態になります。)
必要なアイテム
選択された値を保持するアイテムを1つ用意し、グループアイテムとして登録します。(Client Application Management Console/グループ 参照)
GUIより選択変更されると、グループアイテムの値が自動的に変更されます。
また、プログラム内部より グループアイテム の値が変更されると、GUI上の選択状態も自動的に変更されます。
コンポーネント取得方法
ロジッククラスにてコンポーネントを取得するには、アイテムの「getComponent()」を使用します。
ラジオ独自のメソッドが使用したい場合には、取得した「JComponent」を「DefaultRadioButton」にキャストして下さい。
(javax.swing.JRadioButton にキャストする事も可能です)
グループ化している場合、グループのアイテムは、「DefaultRadioButton.getGroupItem()」にて取得します。
Before | Focus取得時 |
---|---|
After | 値変更時 |
Before | 値設定前 |
---|---|
After | 値設定後 |
jp.ne.mki.wedge.run.client.component.table.DefaultTable
「javax.swing.JTable」を拡張した、
複数列、複数行に渡って 入力・表示 が可能な グリッドコンポーネントです。
必要なアイテム
1列に付き、1つのアイテムが必要です。
各列のアイテムとテーブルとの紐付けは、Client Application Management Console:テーブル タブにて別途登録する必要があります。
列アイテムの行数は同じにする必要があります。
GUIからの 行追加、行削除 などを行った場合には、"非表示列も含め" 各列アイテムに対して同等の処理を行われます。
コンポーネント取得方法
ロジッククラスにてコンポーネントを取得するには、アイテムの「getComponent()」を使用します。
テーブル独自のメソッドが使用したい場合には、取得した「JComponent」を「DefaultTable」にキャストして下さい。
(javax.swing.JTable にキャストする事も可能です)
テーブル内セルのコンポーネントは、
セルエディタ と セルレンダラ という 2つのコンポーネントの組合せで動作しています。(Swingデフォルト)
セルエディタ と セルレンダラ の説明は 後述の説明をご覧下さい。
入力位置
「データタイプ」にて数値・日付・日付時刻・時刻が選択されている場合には右寄せ、それ以外は左寄せになります。
(コンポーネント属性 / TextPosition が指定されている場合を除く)
IME自動設定
フォーカス取得時に「データ型」にて
JAPANESEが選択されている場合にはひらがな入力モード(InputSubset.KANJI)、
HALF_KANAが選択されている場合には半角カナモード(InputSubset.HALFWIDTH_KATAKANA)、
FULL_ALPHABETが選択されている場合には全角英数字モード(InputSubset.FULLWIDTH_LATIN)、
それ以外は英数半角入力モードになります。
データにフォーマットが指定されている場合には、セルレンダラにフォーマットされた値が表示されます。セルレンダラには入力値(フォーマットされていない値)になります。
項目チェックを実行する設定の場合には、編集終了時にデータ型の値に基づきチェックが実行されます。但しこのタイミングでは省略不可チェックは行いません。(省略不可チェックはトランザクションの標準チェックにて行います)
Before | 編集開始時 |
---|---|
After | 編集終了時 |
クリック | テーブル行Click時 |
---|---|
ダブルクリック | テーブル行DoubleClick時 |
jp.ne.mki.wedge.run.client.component.panel.DefaultPanel
Componentを格納するコンテナです。
jp.ne.mki.wedge.run.client.component.label.DefaultLabel
文字列を表示します。入力は行えません。
通常は 1行の文字列 が表示されます。HTML 形式 にて文字を指定すると 複数行 の表示も可能です。
jp.ne.mki.wedge.run.client.component.tab.DefaultTab
指定されたタイトルを持つタブをクリックすることにより、ユーザがコンポーネントのグループを切替えられるようにするコンポーネントです。
Panelを追加することにより、タブが生成されます。
Tabのタイトルはパネルの論理名が表示されます。
jp.ne.mki.wedge.run.client.component.split.DefaultSplitPane
2 つの コンポーネント を分割するのに使います (2 つだけに分割)。2 つの コンポーネント はユーザが対話的にサイズ変更出来る様になります。
両ペインには パネル を貼り付けてその中に各種GUIコンポーネントを貼り付けるようにして下さい。
レイアウトにて最初に設定されているパネル が LEFT の位置に、後に設定されているパネルが RIGHT の位置に設定されます。
jp.ne.mki.wedge.run.client.component.tree.DefaultTree
階層データのセットをアウトラインで表示するコンポーネントです。
デフォルトの表示では、アイテムの論理名が ノード に表示され、アイテム内データの値を 子ノード として表示します。
アイテム の 中に アイテムを 含めることにより、階層表示も可能です。
アイテム以外のノードについても ロジッククラス より追加が可能です。
追加するノードは javax.swing.tree.DefaultMutableTreeNode にて作成し、アイテム のデータとして
追加します。
実行エンジンでは、Before,After などの処理実行は行いません。
ノード選択時のイベントにて処理を実行したい場合には、javax.swing.JTree#addTreeSelectionListener などを行い、
イベントをトリガーして処理を組み込んでください。
//TreeNode を作成 するサンプルコード Item treeTop = getOutItem(0); //DefaultMutableTreeNode で ノードオブジェクト作成 DefaultMutableTreeNode node = new DefaultMutableTreeNode("取締役"); node.add(new DefaultMutableTreeNode("佐藤")); //DefaultMutableTreeNode を アイテム の値 として追加もOK treeTop.addObject(node); //複数階層表示にするため、アイテムの中に 子アイテムの参照を追加 getInItem(0).addObject(getInItem(1)); getInItem(0).addObject(getInItem(2)); treeTop.addObject(getInItem(0)); treeTop.addObject(getInItem(3)); treeTop.addObject(getInItem(4)); getInItem(4).addObject("伊藤"); getInItem(4).addObject(getInItem(5)); getInItem(4).addObject(getInItem(6));
jp.ne.mki.wedge.run.client.component.table.editor.*
Table編集時の入力用コンポーネントです。
指定なしの場合には テキストフィールド になります。
入力位置
「データタイプ」にて数値・日付・日付時刻・時刻が選択されている場合には右寄せ、それ以外は左寄せになります。
(コンポーネント属性 / TextPosition が指定されている場合を除く)
IME自動設定
フォーカス取得時に「データ型」にて
JAPANESEが選択されている場合にはひらがな入力モード(InputSubset.KANJI)、
HALF_KANAが選択されている場合には半角カナモード(InputSubset.HALFWIDTH_KATAKANA)、
FULL_ALPHABETが選択されている場合には全角英数字モード(InputSubset.FULLWIDTH_LATIN)、
それ以外は英数半角入力モードになります。
jp.ne.mki.wedge.run.client.component.table.renderer.*
Table表示時の表示用コンポーネントです。設定なしの場合は、ラベルになります。
入力位置
「データタイプ」にて数値・日付・日付時刻・時刻が選択されている場合には右寄せ、それ以外は左寄せになります。
(コンポーネント属性 / TextPosition が指定されている場合を除く)
IME自動設定
フォーカス取得時に「データ型」にて
JAPANESEが選択されている場合にはひらがな入力モード(InputSubset.KANJI)、
HALF_KANAが選択されている場合には半角カナモード(InputSubset.HALFWIDTH_KATAKANA)、
FULL_ALPHABETが選択されている場合には全角英数字モード(InputSubset.FULLWIDTH_LATIN)、
それ以外は英数半角入力モードになります。
セルレンダラについては独自で作成が可能です。詳しい情報は コンポーネント / Tableレンダラ を参照して下さい。
各コンポーネントに実装しているインターフェースは以下になります。使用用途により実装しているものが変わります。
ComponentInterface | FocusEventInterface | ExecutableInterface | GroupInterface | ListInterface | |
---|---|---|---|---|---|
テキストフィールド | ○ | ○ | ○ | × | × |
テキストエリア | ○ | ○ | ○ | × | × |
ボタン | ○ | ○ | ○ | × | × |
チェックボックス | ○ | ○ | ○ | × | × |
コンボボックス | ○ | ○ | ○ | × | ○ |
リスト | ○ | ○ | ○ | × | ○ |
トグルボタン | ○ | ○ | ○ | ○ | × |
ラジオボタン | ○ | ○ | ○ | ○ | × |
テーブル(セル) | ○ | ○ | ○ | × | × |
パネル | ○ | × | × | × | × |
ラベル | ○ | × | × | × | × |
タブ | ○ | ○ | ○ | × | × |
スプリットペイン | ○ | × | × | × | × |
Before | After | |
---|---|---|
テキストフィールド | Focus取得時 | Focus紛失前(他のコンポーネントに制御が移る前) |
パスワードフィールド | Focus取得時 | Focus紛失前(他のコンポーネントに制御が移る前) |
テキストエリア | Focus取得時 | Focus紛失前(他のコンポーネントに制御が移る前) |
ボタン | 押された時 | 押された時 |
チェックボックス | 値設定前 | 値設定後 |
コンボボックス | ポップアップ表示時 | ポップアップが閉じた時 かつ 値が変更されていた時 もしくは KeyBindより値を変えられたとき(Endキーなど) |
リスト | Focus取得時 | Focus紛失前(他のコンポーネントに制御が移る前) |
トグルボタン | 値設定前(GroupItem:Focus取得時) | 値設定後(GroupItem:値変更時) |
ラジオボタン | 値設定前(GroupItem:Focus取得時) | 値設定後(GroupItem:値変更時) |
テーブル | 編集開始時 | 編集終了時 |
パネル | 実行なし | 実行なし |
ラベル | 実行なし | 実行なし |
タブ | 実行なし | 実行なし |
スプリットペイン | 実行なし | 実行なし |
文字位置設定 | IME | |
---|---|---|
テキストフィールド | データ型による自動設定 | データ型による自動設定 |
パスワードフィールド | Swingデフォルト(Left) | データ型による自動設定 |
テキストエリア | Swingデフォルト(Left) | データ型による自動設定 |
ボタン | Swingデフォルト(Center) | 英数モード |
チェックボックス | Swingデフォルト(Left) | 英数モード |
コンボボックス | Swingデフォルト(Left) | 英数モード |
リスト | Swingデフォルト(Left) | 英数モード |
トグルボタン | Swingデフォルト(Center) | 英数モード |
ラジオボタン | Swingデフォルト(Left) | 英数モード |
テーブル | レンダラコンポーネントに依存 | エディタコンポーネントに依存 |
パネル | Swingデフォルト | 設定なし |
ラベル | Swingデフォルト(Left) | 設定なし |
タブ | Swingデフォルト | 設定なし |
スプリットペイン | Swingデフォルト | 設定なし |