DropdownList (クラス)
public DropdownList {inherits {BaseComboBox any}}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.CONTROL-LOGICAL.
直接継承しているサブクラス: SRGDropdownList, ColorDropdown

メニューのプルダウンによってユーザーが参照する選択可能なリストを実装します。

説明

DropdownList は、従来の ComboBox に似ていますが、選択した値のテキストをユーザーが編集することはできません。したがって任意の型の値を表示できます。また、イメージのようにテキスト表現を持たないものも表示できます。DropdownList は、ユーザーが比較的小さなリストから 1 つの値を選択する場合に適しています。
ユーザーが値のリストを表示するには、マウス ポインタでコントロールのどこかをクリックします。次に、ユーザーがリストのいずれかの値をクリックすると、その値がコントロールの先頭に表示されてリストが閉じます。

次の例は、通常のテキストのみの DropdownList を示しています。
{DropdownList
    "Antelope", "Llama", "Horse",
    value="Antelope"
}

プログラミング注意事項

DropdownList の値は、リストで異なるように表示することができます。たとえば、値と Visual のペアを明示的に保持する ListItem で DropdownList を作成できます。ペアの Visual コンポーネントは、Curl 社で定義された Visual サブクラスのインスタンスであることが必要です。独自のサブクラスを作成する場合、clone-appearance メソッドを実装する必要があります。

別の方法として、値を与えると ListItem を生成する 1 つのプロシージャを指定することができます。

次の例は、DropdownList のカスタムリストアイテムの作成方法を示します。各アイテムは、文字列値 (色の名前) を持ち、色付きの四角形で表示されます。


{DropdownList
    {ListValueItem value="red",
        {RectangleGraphic fill-color="red",
            width=50pt, height=10pt
        }
    },
    {ListValueItem value="blue",
        {RectangleGraphic fill-color="blue",
            width=50pt, height=10pt
        }
    },
    {ListValueItem value="green",
        {RectangleGraphic fill-color="green",
            width=50pt, height=10pt
        }
    },
    value="red"
}


次の例は上の例と似ていますが、それぞれの値の表示を指定して繰り返し取得せずに次のプロシージャを使用します。


{DropdownList
    "red", "blue", "green",
    list-item-creation-proc =
        {proc {val:any}:ListItem
            {return {ListValueItem
                        value=val,
                        {RectangleGraphic fill-color=val,
                            width=50pt, height=10pt
                        }
                    }
            }
        },
    value="red"
}

予期されたイベント

ValueChanged: ユーザーが新しい値を選択すると発生します。また、DropdownList.set-value-with-events が呼び出されると発生します。
ValueFinished: ValueChanged イベントが発生した直後に常に発生します。
Commit: Dialog.commit が呼び出されると、Dialog によって送信されます。

ビジュアル テスト

このクラスは、CurlDropdown ビジュアル テスト タイプを実装します。
すべての Visual によってサポートされる既定のビジュアル テスト アクションの他に、このクラスのオブジェクトは次のアクションをサポートします。
アクション 引数 説明
Select item:Stringitem アイテムを選択します。
すべての Visual によってサポートされる既定のビジュアル テスト プロパティの他に、このクラスのオブジェクトは次のビジュアル テスト プロパティをサポートします。
プロパティ 説明
items count:int選択対象のアイテムの数です。
value:String コントロールの現在値です。

注意事項

このオブジェクトは、"DropdownList"、"DropdownList/drop-button"、"DropdownList/item-frame"のスタイル ルールを記述することによってスタイル化することが出来ます。詳細は スキンが適用されたリストコントロール をご覧下さい

コンストラクタ
default:このオブジェクトを作成します。
コンストラクタ public {DropdownList.default
value:any = null,
data-model:ListModel = {DefaultListModel},
prompt:#String = null,
dropdown-height:Distance = 0pt,
list-item-creation-proc:{proc-type {val:any}:ListItem} = ListModelControl.default-list-item-creation-proc,
ui-object:#DropdownListUI = null,
...
}

プロパティ
form-value:DropdownList の値は、このコントロールを含む HttpForm が送信されるときに送信されます。

戻り値は、ValueControl.form-string プロシージャを使用して null または String に変換された DropdownList.value です。
アクセサ public DropdownList.form-value:any
halign:コントロールが表示されるエリアに関連して、このオブジェクト内のテキストが水平に並べられる方法を規定します。
ローカル オプション public DropdownList.halign:any ="origin"
has-value?:この Control は値を持っているかどうかを示します。
アクセサ public DropdownList.has-value?:bool
prompt:コントロールに値がないときに表示される String
アクセサ public DropdownList.prompt:#String
セッター public DropdownList.prompt:#String
style-element:スタイリングの目的のための、この Visual の "要素" や "型" です。
アクセサ public DropdownList.style-element:String
value:適切な型によるこのコントロールの現在の値。
アクセサ public DropdownList.value:any
セッター public DropdownList.value:any
プロパティ 継承 BaseComboBox: dropdown-height, dropdown-width, pending-value?, selected-index, selected-item, test-type-name
プロパティ 継承 ListModelControl: data-model, for-loop-count, items, list-item-creation-proc, list-item-selected-background, list-item-selected-foreground, list-items, size
プロパティ 継承 MultiUIControlFrame: _ui-object, _ui-set-locally?, control-appearance-changeable?, display-context, focus-object, look-and-feel, options-present-here, ui-object
プロパティ 継承 ValueControl-of: value-as-any, value-type
プロパティ 継承 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?
プロパティ 継承 CommandBinding: bound-command, bound-command-impl
プロパティ 継承 Control: control-container, dialog, focus-skin, form, skin
プロパティ 継承 ActiveTraversor: _active-traversal-container, active-traversal-container, mnemonic, tab-index, takes-focus?, valid?, validation-result
プロパティ 継承 GetBoundsBox: layout-locally-valid?, layout-valid?
プロパティ 継承 EventTarget: event-handlers
プロパティ 継承 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
プロパティ 継承 Box: clip-child-shadows?
プロパティ 継承 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
プロパティ 継承 DataBindingTarget: data-binding-context, data-bindings
プロパティ 継承 OptionListInterface: option-register-proc, registered-option-keys

メソッド
create-default-ui-object:このオブジェクトに適切な UI オブジェクトを作成します。
protected {DropdownList.create-default-ui-object}:ControlUI
react-to-state-change:コントロールの状態が変更された場合に、コントロールの外観を変更します。
public {DropdownList.react-to-state-change}:void
unset-value:値をコントロールの既定値に戻すか、初期化されていない状態があればその状態に戻します。
public {DropdownList.unset-value}:void
メソッド 継承 BaseComboBox: add-from-init-args, deselect-all-items, get-test-property, notify-interval-added, notify-interval-changed, notify-interval-removed, notify-item-selected, select-index, select-index-internal, select-index-with-events, set-value-with-events, test-run
メソッド 継承 MultiUIValueControlFrame-of: unset-property
メソッド 継承 ListModelControl: append, clear-items, find, get, insert, rebuild-from-data-model, remove, set
メソッド 継承 MultiUIControlFrame: generate-ui-object, handle-look-and-feel-change, handle-observer-message, on-focus-in, option-changed, option-lookup-here, option-propagate-notify, react-to-visual-change, request-key-focus, set-layout
メソッド 継承 ControlFrame: become-active, clear
メソッド 継承 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
メソッド 継承 Control: on-pointer-press
メソッド 継承 BasicBox: contains-point?, find-graphic-at, handle-crossing, on-pointer-envelope-event, pointer-enter-occurred, pointer-leave-occurred
メソッド 継承 StandardActiveTraversor: become-active-from-traversal, fire-event-at-container, handle-mnemonic, on-key-press
メソッド 継承 Observer: observe, stop-observing
メソッド 継承 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-changed, 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
メソッド 継承 ActiveTraversor: mark-invalid, mark-valid
メソッド 継承 GetBoundsBox: get-bounds, get-elastic-bounds-into, get-nonparent-bounds-into, request-layout, validate-layout
メソッド 継承 EventTarget: accepts-event-class?, add-event-handler, event-handler-present?, remove-event-handler, verify-event
メソッド 継承 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
メソッド 継承 Box: compare-children, find-test-children, get-delimited-child-text-selection, get-gui-path-to-child, get-range-as-selected-text, get-visible-rect-in-root-into, graphical-child-visible-at, make-gui-mark, search-next-here, search-prev-here
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 GraphicOptions: any-to-Distance, get-display-context
メソッド 継承 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
メソッド 継承 DataBindingTarget: add-data-binding, get-data-binding, refresh-data-binding, remove-data-binding, update-data-binding, validate-data-binding
メソッド 継承 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
メソッド 継承 InitRestArgParser: process-rest-args
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {DropdownList.default
value:any = null,
data-model:ListModel = {DefaultListModel},
prompt:#String = null,
dropdown-height:Distance = 0pt,
list-item-creation-proc:{proc-type {val:any}:ListItem} = ListModelControl.default-list-item-creation-proc,
ui-object:#DropdownListUI = null,
...
}

このオブジェクトを作成します。

value: DropdownList.value を参照してください。
data-model: DropdownList.data-model を参照してください。
prompt: DropdownList.prompt を参照してください。
dropdown-height: DropdownList.dropdown-height を参照してください。
list-item-creation-proc: DropdownList.list-item-creation-proc を参照してください。
ui-object: このコントロールが使用する特定の DropdownListUI。詳細については、DropdownList.ui-object を参照してください。
...: 追加オプションの仕様とイベント ハンドラ。



プロパティ詳細
form-value (アクセサ)
アクセサ public DropdownList.form-value:any

DropdownList の値は、このコントロールを含む HttpForm が送信されるときに送信されます。

戻り値は、ValueControl.form-string プロシージャを使用して null または String に変換された DropdownList.value です。



halign (ローカル オプション)
public DropdownList.halign:any ="origin"

コントロールが表示されるエリアに関連して、このオブジェクト内のテキストが水平に並べられる方法を規定します。

説明

このオプションで使用可能な値の詳細は Frame.halign を参照してください。
導入: バージョン 7.0


has-value? (アクセサ)
アクセサ public DropdownList.has-value?:bool

この Control は値を持っているかどうかを示します。

説明

ValueControl は通常はこのゲッターに true を返し、これはこのメソッドの既定の実装になります。ただし特定のタイプの ValueControlfalse を返して、最初の値のない状態にあることを示します。

たとえば、TextFieldComboBox はそれらの値がプログラミングで、またはインタラクティブに設定されておらず、プロンプト を示している場合に false を返します。

RadioButton が選択されていない RadioFramefalse を返す必要があります。

一方、RadioButtonCheckButton などの多くのコントロールは、そのような初期化されていない状態ではないため、つねに true を返します。

has-value? が false のときに ValueControl.value-as-any ゲッターが返す値はクラスに依存することに注意してください。詳細については、各クラスのドキュメントを参照してください。


prompt (アクセサ)
アクセサ public DropdownList.prompt:#String
セッター public DropdownList.prompt:#String

コントロールに値がないときに表示される String

プログラミング注意事項

通常、"色を選択してください" など、ユーザーに選択操作を求めることを目的としています。プロンプトを指定しない場合、DropdownList.has-value?false のときにはコントロールは空欄です。


style-element (アクセサ)
アクセサ public DropdownList.style-element:String

スタイリングの目的のための、この Visual の "要素" や "型" です。

説明

この実装によって Visual._style-elementの値が返されますが、通常は定数を返すためにオーバーライドされます。

オーバーライド

Visual のサブクラスのスタイルが他のオブジェクトと異なる場合、このゲッターは適切な文字列を返すようにオーバーライドされる必要があります。 慣例では,この文字列はクラス名または、オブジェクトを生成するマークアップの名前です。
オーバーライドでは、空の文字列でないかぎり、self._style-elementを返さなければなりません。
導入: バージョン 6.0


value (アクセサ)
アクセサ public DropdownList.value:any
セッター public DropdownList.value:any

適切な型によるこのコントロールの現在の値。

説明

多くのサブクラスは値が変更したときにイベントが起動する set-value-with-events メソッドを持っています。詳細については BaseTextField.set-value-with-events を御覧下さい。





メソッド詳細
create-default-ui-object (メソッド)
protected {DropdownList.create-default-ui-object}:ControlUI

このオブジェクトに適切な UI オブジェクトを作成します。

説明

このメソッドは、現在の LookAndFeel がこのコントロールの UI オブジェクトを指定しない場合にのみ使用されます。


react-to-state-change (メソッド)
public {DropdownList.react-to-state-change}:void

コントロールの状態が変更された場合に、コントロールの外観を変更します。

説明

このコントロールが non-null の UI オブジェクトをすでに持っている場合、このメソッドは ControlUI.react-to-state-change への呼び出しを生成します。

オーバーライド

通常はオーバーライドされません。


unset-value (メソッド)
public {DropdownList.unset-value}:void

値をコントロールの既定値に戻すか、初期化されていない状態があればその状態に戻します。

説明

詳細については、ValueControl.has-value? を参照してください。