(クラス)
ComboBox コントロールを実装します。このコントロールは、編集可能なテキスト フィールドと組み合わされた選択可能な値のリストです。
説明
ComboBoxは編集可能なテキストフィールド内に一つの値を表示し、取り得る値をリストから選択できるようにユーザに提示します。ユーザがリストから値を選択するとその値がテキストフィールドに表示され、ユーザはその値を編集したり消去したりする事が出来るようになります。
例
次の例は、標準の
ComboBox を示しています。
例 |
|
{ComboBox
"Antelope", "Llama", "Horse",
value="Antelope"
}
| |
プログラミング注意事項
ComboBox のリストアイテムの値は、リストアイテム自身の値と同じである必要はありません。例えば、明示的に値と
Visual のペアを持つ
ComboBox を作成することができます。サブクラスを作成する場合、
clone-appearance メソッドを実装する必要があります。
代わりに値を指定する時に
ListItem を生成する一つのプロシージャを指定することができます。選択された値のテキストは常にテキストフィールドに表示されています。しかし、
Visual は表示されません。これが可能ですが、推奨されません。その値が選択されている時、リストの一つの値をユーザに見せテキストフィールドでは別のものを見せるため混乱させるからです。
ComboBox の
ListModel の概念は様々な値をサポートしていますが、
ComboBox そのものは、改行が含まれている
String や、
max-chars で設定された値より長いものはサポートしません。コントロールの値が設定される時、モデル内のリストアイテムの値と
ComboBox の間での矛盾は、予期しない挙動を引き起こします。
予期されたイベント
Action:
ComboBox にキー フォーカスがある状態でユーザーが
Enter キーを押すと発生します。
ビジュアル テスト
このクラスは、CurlDropdown ビジュアル テスト タイプを実装します。
すべての
Visual によってサポートされる既定のビジュアル テスト アクションの他に、このクラスのオブジェクトは次のアクションをサポートします。
アクション | 引数 | 説明 |
Select | item:String | item アイテムを選択します。 |
すべての
Visual によってサポートされる既定のビジュアル テスト プロパティの他に、このクラスのオブジェクトは次のビジュアル テスト プロパティをサポートします。
プロパティ | 説明 |
items count:int | 選択対象のアイテムの数です。 |
value:String | コントロールの現在値です。 |
注意事項
このオブジェクトは、"ComboBox"、"ComboBox/string-box"、"ComboBox/drop-button"のスタイル ルールを記述することによってスタイル化することが出来ます。詳細は
スキンが適用されたテキストコントロール をご覧下さい。
コンストラクタ public | {ComboBox.default} |
アクセサ public ComboBox.can-redo?:
bool
アクセサ public ComboBox.can-undo?:
bool
アクセサ public ComboBox.container:
Graphic
editable?: | ユーザーがテキスト コントロールに値を入力できるかどうかを指定します。既定では、true です。 |
ローカル オプション public ComboBox.editable?:
bool =true
アクセサ public ComboBox.focus-object:
Visual
アクセサ public ComboBox.form-value:
any
アクセサ public final ComboBox.has-value?:
bool
アクセサ public ComboBox.max-chars:
int セッター public ComboBox.max-chars:
int
アクセサ public ComboBox.prompt:#
String セッター public ComboBox.prompt:#
String
フィールド public ComboBox.record-for-undo?:
bool =true
アクセサ public ComboBox.style-element:
String
アクセサ public ComboBox.value:
String セッター public ComboBox.value:
String
アクセサ public ComboBox.writable?:
bool プロパティ 継承 ControlFrame:
color, control-color, control-content-background, enabled?, font-family, font-size, font-style, font-weight, text-breakable?, text-line-through?, text-preserve-whitespace?, text-underline?, visible? プロパティ 継承 BaseFrame:
child, clonable-class?, completely-clonable-children?, graphical-children, halign-spec, hstretch?-spec, ordered-children, reverse-ordered-children, valign-spec, vstretch?-spec, width-first? プロパティ 継承 Visual:
_style-element, cursor, data-source, dragee, graphical-parent, has-key-focus?, input-method-enabled?, input-method-keyboard-mode, name, options, style-class, style-manager, style-options, test-child?, test-description, test-name, test-parent?, test-visible?, tooltip, user-data プロパティ 継承 Graphic:
avoid-page-break?, background, border-color, border-spec, border-style, border-width, cell-border-spec, cell-border-width, cell-margin, discrete-select-in-range?, graphic-selectable, height, horigin, is-paginating?, layout, margin, opaque-to-events?, option-parent, outside-margin, pagination-state, parent, possibly-displayed?, selection-context, shadow-color, shadow-spec, visual-parent, vorigin, width
protected | {ComboBox.add-from-init-args a:any}:void |
public | {ComboBox.become-active-from-traversal}:bool |
public | {ComboBox.clear-undo-stack}:void |
protected | {ComboBox.create-default-ui-object}:ControlUI |
public | {ComboBox.delete-selection}:void |
public | {ComboBox.end-undo-typing-sequence}:void |
protected | {ComboBox.handle-observer-message}:void |
public | {ComboBox.note-selection-context-activated}:void |
public | {ComboBox.note-selection-context-deactivated}:void |
public | {ComboBox.record-typing-deletion-for-undo num-chars:int,forward?:bool = false }:void |
public | {ComboBox.record-typing-for-undo ch:char}:void |
public | {ComboBox.redo}:void |
public | {ComboBox.replace-selection-with-string}:void |
public final | {ComboBox.request-undo-stack-depth-limit val:int}:void |
public | {ComboBox.select-all}:void |
public | {ComboBox.select-index index:int}:void |
public | {ComboBox.select-index-with-events i:int}:void |
public | {ComboBox.select-nothing}:void |
public | {ComboBox.set-value-with-events val:String}:void |
public | {ComboBox.undo}:void |
public | {ComboBox.unset-value}:void |
メソッド 継承 GuiEventTarget:
handle-delegate-event, handle-event, on-action, on-cancel-mode, on-command-changed, on-commit, on-composition-change-event, on-composition-result-event, on-context-menu-event, on-current-record-change-request, on-current-record-changed, on-destroy-notify, on-destroy-requested, on-drag-over, on-drag-pointer, on-drag-started, on-drop, on-end-composition-event, on-focus-event, on-focus-out, on-gesture, on-gesture-begin, on-gesture-end, on-gesture-magnify, on-gesture-pan, on-gesture-rotate, on-gesture-swipe, on-gesture-tap, on-gesture-touch, on-grab-release, on-gui-event, on-input-method-event, on-key-event, on-pointer-button, on-pointer-crossing, on-pointer-event, on-pointer-motion, on-pointer-release, on-pointer-scroll, on-raw-key-event, on-raw-key-press, on-raw-key-release, on-reset, on-selectable-added, on-selectable-removed, on-selection-context-activated, on-selection-context-deactivated, on-selection-event, on-start-composition-event, on-start-event, on-stop-event, on-view-activate, on-view-deactivate, on-window-close, remove-event-handlers-for-event-class メソッド 継承 BaseFrame:
add-internal, after-reposition, allocate-layout-object, attempt-revalidate-layout, before-reposition, clone-appearance-helper, compute-child-bounds, compute-parent-elastic, constrain-height, constrain-width, draw, end-pagination, get-height-preference, get-text, get-width-preference, install-child-bounds, internal-remove-child, note-attached, note-detaching, notify-option-children, paginate, pick-child, propagate-request-layout, register-options, set-size メソッド 継承 Visual:
add, animate, change-cursor, clonable-appearance?, clone-appearance, get-focus-manager, get-layout-context, get-test-parent, get-view, maybe-fire-attach-event, maybe-fire-detach-event, non-keyword-init-arg, note-caret-position, on-drag-leave, on-pointer-leave, pop-cursor, prepare-test-object, prepare-test-parent, push-cursor, quantize-width, refresh-style-options, release-key-focus, scroll-to-include, test-record, transform-from-display-coordinates, transform-from-graphical-root-coordinates, transform-to-display-coordinates, transform-to-graphical-root-coordinates メソッド 継承 Graphic:
create-pagination-state, detach, draw-range-as-selected, draw-shadow, find-ancestor, find-graphical-ancestor, fire-inferior-crossing-event, get-graphical-root, get-gui-path, get-origin-in-graphical-ancestor, get-origin-in-root, get-pagination-state, get-top-left-in-ancestor, get-visible-bounds-into, on-drag-enter, on-inspection, on-pointer-enter, paint-with-decorations, replace-with, request-draw, request-draw-rect, request-pointer-trace, search-next, search-prev, start-pagination, xy-offset-to メソッド 継承 OptionListInterface:
add-option, add-style-option, change-option-parent-notify, clone-options, get-option, get-option-by-name, keyword-init-arg, local-add-notify, local-remove-notify, name-to-option-key, new-option-item, option-change-notify, option-lookup, option-set?, propagate-option-change, remove-option, remove-style-option, remove-styles, set-option-by-name, set-style-option-by-name, unset-option-by-name, unset-style-option-by-name
(コンストラクタ)
public | {ComboBox.default} |
このオブジェクトを作成します。
...: 追加オプションの仕様とイベント ハンドラ。
(アクセサ)
アクセサ public ComboBox.can-redo?:
bool redo 操作が実行できるかどうかを示します。
導入:
バージョン 6.0
(アクセサ)
アクセサ public ComboBox.can-undo?:
bool undo 操作が実行できるかどうかを示します。
導入:
バージョン 6.0
(アクセサ)
アクセサ public ComboBox.container:
Graphic この SelectionContext が適用される Graphic。
説明
ネストされた
SelectionContext のメンバではない、この
Graphic の内容 (グラフィカルな子を含む) は、いずれもオブジェクトによる選択候補になります。
(ローカル オプション)
public ComboBox.editable?:
bool =true
ユーザーがテキスト コントロールに値を入力できるかどうかを指定します。既定では、true です。
注意事項
ComboBox が編集可能でない場合、値のリストで選択するか、キーボードの上や下キーを押すことでユーザーは値を変更できます。
導入:
バージョン 6.0
(アクセサ)
アクセサ public ComboBox.focus-object:
Visual
(アクセサ)
アクセサ public ComboBox.form-value:
any コントロールを含む HttpForm と共に送信されるコントロールの値。
説明
この実装は ComboBox.value の値を返します。
(アクセサ)
アクセサ public final ComboBox.has-value?:
bool この Control は値を持っているかどうかを示します。
説明
ValueControl は通常はこのゲッターに
true を返し、これはこのメソッドの既定の実装になります。ただし特定のタイプの
ValueControl は
false を返して、最初の値のない状態にあることを示します。
たとえば、
TextField と
ComboBox はそれらの値がプログラミングで、またはインタラクティブに設定されておらず、
プロンプト を示している場合に
false を返します。
RadioButton が選択されていない
RadioFrame も
false を返す必要があります。
一方、
RadioButton や
CheckButton などの多くのコントロールは、そのような初期化されていない状態ではないため、つねに
true を返します。
has-value? が false のときに
ValueControl.value-as-any ゲッターが返す値はクラスに依存することに注意してください。詳細については、各クラスのドキュメントを参照してください。
(アクセサ)
アクセサ public ComboBox.max-chars:
int セッター public ComboBox.max-chars:
int テキスト フィールドに入力される最大文字数。既定値は -1 です。
プログラミング注意事項
上限に達すると、テキスト フィールドに文字の入力や切り取り / 貼り付けができなくなります。値 -1 は、入力できる文字数の制約がないことを表します。このプロパティを設定した結果として、
ComboBox.unset-value によりコントロールの値が設定解除されます。
(アクセサ)
アクセサ public ComboBox.prompt:#
String セッター public ComboBox.prompt:#
String コントロールに値がないときに表示される String。
プログラミング注意事項
通常、"色を選択してください" など、ユーザーに選択操作を求めることを目的としています。プロンプトを指定しない場合、
ComboBox.has-value? が
false のときにはコントロールは空欄です。
(フィールド)
public ComboBox.record-for-undo?:
bool =true
undo の記録を行うかどうかを示します。
説明
このフィールドの目的は、次のコンストラクタで一時的に undo の記録を停止することです。:
{with cb.record-for-undo? = false do ...}
導入:
バージョン 7.0
(アクセサ)
プロジェクトにより保持される、現在の Selection。
(アクセサ)
String型で表現される現在のこのコントロールのデータモデルです。
説明
このアクセサは
data-modelと混同してしまいがちです。そのプロパティはこのコントロールのリストモデルを表わし、このプロパティは
Stringを表します。二つはしばしば同じ実効値を返す場合があります。
導入:
バージョン 7.0
(アクセサ)
文字列中の現在選択中の範囲を返します。
導入:
バージョン 7.0
(アクセサ)
アクセサ public ComboBox.style-element:
String スタイリングの目的のための、この Visual の "要素" や "型" です。
説明
オーバーライド
Visual のサブクラスのスタイルが他のオブジェクトと異なる場合、このゲッターは適切な文字列を返すようにオーバーライドされる必要があります。 慣例では,この文字列はクラス名または、オブジェクトを生成するマークアップの名前です。
オーバーライドでは、空の文字列でないかぎり、self._style-elementを返さなければなりません。
導入:
バージョン 6.0
(アクセサ)
アクセサ public ComboBox.value:
String セッター public ComboBox.value:
String このコントロールの値。
説明
ComboBox.max-chars で設定されている値より長い
String を設定することはエラーの原因となります。また、設定された値が
String の中にもし存在する場合、最初の改行で切り詰められます。
この値が設定された時、そのコントールで、同じ値を持つ、リスト下方のアイテムを選択していない限り、
最初の SelectableItem が選択されます。
コントロール内の選択可能なアイテム内でその文字列が見つからない場合、アイテムは選択されません。しかし、新しい文字列が表示され値となります。
(アクセサ)
アクセサ public ComboBox.writable?:
bool 選択コンテキストのテキストが、現在編集可能であるかどうかを示します。
説明
オーバーライド
(メソッド)
protected | {ComboBox.add-from-init-args a:any}:void |
この Visual のコンストラクタに渡されるオブジェクトを Visual の内容に追加します。
プログラミング注意事項
オーバーライド
このメソッドの既定の実装では、
Visual.add が呼び出されるだけです。サブクラスではこのメソッドをオーバーライドし、コンストラクタを使ってこの
Visual に内容を追加する際の特別な処理を指定してください。
(メソッド)
public | {ComboBox.become-active-from-traversal}:bool |
トラバースによるアクティブ化に応答します。
説明
forward?: トラバースが前方に移動する場合 (Tab キー) は true、後方に移動する場合 (Shift + Tab キー) は false です。一般にユーザー コードでは既定値 true を使用します。
戻り値
このオブジェクトがアクティブになる予定であれば true、それ以外の場合は false です。
(メソッド)
public | {ComboBox.clear-undo-stack}:void |
このオブジェクトの undo スタックをリセットします。
説明
このメソッドは、このオブジェクトが現在の値を初期値として生成されたかのように undo スタックから全てのエントリを取り除きます。
導入:
バージョン 7.0
(メソッド)
protected | {ComboBox.create-default-ui-object}:ControlUI |
このオブジェクトに適切な UI オブジェクトを作成します。
説明
このメソッドは、現在の
LookAndFeel がこのコントロールの UI オブジェクトを指定しない場合にのみ使用されます。
(メソッド)
public | {ComboBox.delete-selection}:void |
現在の選択の内容を削除します。
説明
選択が空でない場合、選択の内容は削除されます。選択が空の場合、このメソッドは何ら影響を与えません。いずれの場合も、結果の選択は空になりますが、有効なロケーションを持ちます。
(メソッド)
public | {ComboBox.end-undo-typing-sequence}:void |
現在の undo タイピング シーケンスを終了します。
説明
このメソッドはプロセスにおける現在のあらゆるシーケンスを終了させます。
導入:
バージョン 7.0
(メソッド)
protected | {ComboBox.handle-observer-message}:void |
監視対象のオブジェクトがメッセージを送信するときにこのメソッドを呼び出します。Observer はこのメソッドを実装して、変更が発生したときに処理を実行する必要があります。
sender: 変更があった Observable オブジェクトです。
message: これは、Observer からの変更に関する詳細情報が含まれています。詳細情報がない場合は NULL になります。
(メソッド)
public | {ComboBox.note-selection-context-activated}:void |
この SelectionContext がアクティブになっていることに注意してください。
オーバーライド
このメソッドをオーバーライドするサブクラスは、必ずスーパークラスの実装を呼び出す必要があります。
(メソッド)
public | {ComboBox.note-selection-context-deactivated}:void |
この SelectionContext が非アクティブになっていることに注意してください。
オーバーライド
このメソッドをオーバーライドするサブクラスは、必ずスーパークラスの実装を呼び出す必要があります。
(メソッド)
public | {ComboBox.record-typing-deletion-for-undo num-chars:int,forward?:bool = false }:void |
undo のスタックに削除のタイピング操作を記録します。
num-chars: 削除される
char の数です。
forward?: 削除する方向です。false(既定)は backspace キーのように後方に削除します。true は delete キーのように前方に削除します。
説明
undo がユニットとして全シーケンスを扱えるように、このメソッドは一連のタイピング操作を結合させようとします。
注意事項
導入:
バージョン 7.0
(メソッド)
public | {ComboBox.record-typing-for-undo ch:char}:void |
undo のスタックに入力操作を記録します。
ch: タイプされた文字。
説明
undo がユニットとして全シーケンスを扱えるように、このメソッドは一連のタイピング操作を結合させようとします。
注意事項
導入:
バージョン 7.0
(メソッド)
public | {ComboBox.redo}:void |
(メソッド)
public | {ComboBox.replace-selection-with-string}:void |
現在の選択の内容を text で置き換えます。
説明
選択が空でない場合、選択の内容は削除され、その場所に text が挿入されます。選択は空であるが、有効なロケーションにある場合 (例:これが編集可能なテキスト コントロールの点滅キャレットを表す場合)、空の選択のロケーションに text が挿入されます。いずれの場合も、挿入されるテキストは、操作が完了してから選択されます。
選択が、有効なロケーションを持たない場合、エラーが発生します。
(メソッド)
public final | {ComboBox.request-undo-stack-depth-limit val:int}:void |
undo スタックの深さ制限をリクエストします。
説明
値がマイナスの場合、undo スタックの制限はありません。値が 0 の場合は、undo が発生しません。そうでなければ、undo スタックはアイテムのこの数に制限されます。既定値は 100 です。
Curl® の将来のバージョンでは、undo スタックはこのオブジェクトの直接的な制御下にない可能性があります。そうであれば、このオブジェクトによって完全にリクエストを満たせないことがあるかもしれません。それでも、このクラスのオブジェクトができるだけそのリクエストを操作すべきです。特に、マイナスの値のリクエストによって undo スタックの深さが解除され、0 の値によって他のオブジェクトではなくこのオブジェクトの undo が止められ、正の値のリクエストによって少なくとも多くのレベルの undo が利用できるようになるべきです。
導入:
バージョン 7.0
(メソッド)
public | {ComboBox.select-all}:void |
(メソッド)
public | {ComboBox.select-index index:int}:void |
指定したインデックスの ListItem を選択します。
i: 指定したインデックス。
説明
i が範囲外の場合はエラーがスローされます。
(メソッド)
public | {ComboBox.select-index-with-events i:int}:void |
(メソッド)
public | {ComboBox.select-nothing}:void |
(メソッド)
public | {ComboBox.set-value-with-events val:String}:void |
コントロールの値を設定し、後で ValueChanged (該当する場合) および ValueFinished のイベントを発生させます。インタラクティブに値を設定するユーザーをビジュアルなしでシミュレーションすることになります。
val: コントロールに設定される値。
説明
このメソッドは、最初に set でコントロールの値を設定し、次にイベントを発生させます。
(メソッド)
public | {ComboBox.undo}:void |
(メソッド)
public | {ComboBox.unset-value}:void |
値をコントロールの既定値に戻すか、初期化されていない状態があればその状態に戻します。
説明