(クラス)
上下矢印ボタンがあり、それをクリックして増減できる 1 つの値を含むコントロールです。
注意事項
スピン コントロールには上限と下限があります。このコントロールの値は、端点を含め制限内に収まります。
コントロールの値は、上矢印ボタンをクリックすると、上限方向に移動し、下矢印ボタンをクリックすると、下限方向に移動します。その次の値は、コントロールのステップ サイズによって決まります。
SpinControl に関連付けられた
Domain は、コントロールの次のパラメータを定義します。
既定では、使用されるドメインは、最小値 0、最大値 100 の整数ドメインです。既定のステップ サイズは 1 です。
このオブジェクトは、"SpinControl"、"SpinControl/increase-button"、"SpinControl/decrease-button"、"SpinControl/text-field"のスタイル ルールを記述することによってスタイル化することが出来ます。詳細は
スキンが適用された他のコントロール をご覧下さい。
予期されたイベント
ValueFinished:
SpinControl.set-value-with-events によっても発生し、SpinControl.increment-with-events および SpinControl.decrement-with-events によって発生することがあります。
ビジュアル テスト
このクラスは、CurlSpin ビジュアル テスト タイプを実装します。
すべての
Visual によってサポートされる既定のビジュアル テスト アクションの他に、このクラスのオブジェクトは次のアクションをサポートします。
アクション | 引数 | 説明 |
Set | value:String | コントロールの値を設定します。 |
Next | <none> | スピン コントロールを次の値に設定します。 |
Prev | <none> | スピン コントロールを前の値に設定します。 |
すべての
Visual によってサポートされる既定のビジュアル テスト プロパティの他に、このクラスのオブジェクトは次のビジュアル テスト プロパティをサポートします。
コンストラクタ public | {SpinControl.default domain:Domain = {StandardIntDomain
default-value = 0,
min-allowable = 0,
max-allowable = 100
},step:any = 1,value:any = domain.default-value,ui-object:#SpinControlUI = null,... } |
アクセサ public final SpinControl.allowable-values:#{
Array-of any}
セッター private SpinControl.allowable-values:#{
Iterator-of any}
domain: | SpinControl に関連付けられたドメインです。 |
アクセサ public SpinControl.domain:
Domain セッター public SpinControl.domain:
Domain
editable?: | ユーザーがテキスト コントロールに値を入力できるかどうかを指定します。既定では、true です。 |
ローカル オプション public SpinControl.editable?:
bool =true
アクセサ public SpinControl.focus-object:
Visual
ローカル オプション public SpinControl.format-spec:
any =null
アクセサ public SpinControl.has-value?:
bool
アクセサ public SpinControl.max-value:
any
アクセサ public SpinControl.min-value:
any
ローカル オプション public SpinControl.parse-spec:
any =null
フィールド public SpinControl.pending-value?:
bool =false
アクセサ public SpinControl.step:
any セッター public SpinControl.step:
any
アクセサ public SpinControl.style-element:
String
test-type-name: | このオブジェクトをテストのメソッドとプロパティにマッピングするために、ビジュアル テスト インフラストラクチャが使用するタイプ名。 |
アクセサ public SpinControl.test-type-name:#
String
アクセサ public SpinControl.value:
any セッター public SpinControl.value:
any
wrap?: | 終端に達した場合にコントロールの値を折り返すかどうかを指定します。既定では、false です。 |
ローカル オプション public SpinControl.wrap?:
bool =false
プロパティ 継承 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 | {SpinControl.create-default-ui-object}:ControlUI |
public | {SpinControl.decrement}:void |
public | {SpinControl.decrement-with-events fire-value-finished?:bool = true }:void |
public | {SpinControl.get-formatted-data data:any}:String |
public | {SpinControl.get-parsed-value val:String}:any |
public | {SpinControl.get-test-property name:String}:any |
public | {SpinControl.increment}:void |
public | {SpinControl.increment-with-events fire-value-finished?:bool = true }:void |
public | {SpinControl.replace-value val:any}:void |
public | {SpinControl.set-value-with-events val:any}:void |
test-run: | オブジェクトに対してビジュアル テスト アクションを実行します。 |
public | {SpinControl.unset-value}:void |
メソッド 継承 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-state-change, react-to-visual-change, request-key-focus, set-layout メソッド 継承 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 メソッド 継承 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-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 メソッド 継承 Visual:
add, add-from-init-args, 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 | {SpinControl.default domain:Domain = {StandardIntDomain
default-value = 0,
min-allowable = 0,
max-allowable = 100
},step:any = 1,value:any = domain.default-value,ui-object:#SpinControlUI = null,... } |
SpinControl を作成します。
domain:
SpinControl によって使用される
Domain です。
ui-object: UI 代理です。
...: コンテンツとして追加するオプション設定、イベント ハンドラ、または
Graphic です。
例
例 |
|
{SpinControl
domain =
{StandardFloatDomain
default-value = 1.0,
min-allowable = 0.0,
max-allowable = 10.5
},
step = 0.5
}
| |
(アクセサ)
アクセサ public final SpinControl.allowable-values:#{
Array-of any}
セッター private SpinControl.allowable-values:#{
Iterator-of any}
SpinControl に使用できる値の一覧です。
戻り値
注意事項
配列内のアイテムは、
Domain の比較プロシージャを使用してソートされます。
(アクセサ)
アクセサ public SpinControl.domain:
Domain セッター public SpinControl.domain:
Domain SpinControl に関連付けられたドメインです。
注意事項
SpinControl の値の型は、
Domain の型によって決まります。
Domain は、
SpinControl のドメインの最小値と最大値を記述します。
ドメインの最小値と最大値は変更できません。
SpinControl の値の範囲を変更するには、ドメインに使用できる新しい最小値と最大値を使用して新しく
Domain を設定する必要があります。
(ローカル オプション)
public SpinControl.editable?:
bool =true
ユーザーがテキスト コントロールに値を入力できるかどうかを指定します。既定では、true です。
注意事項
SpinControl が編集可能でない場合、ユーザーは、テキスト コントロールの矢印キーをクリックするか、キーボードの上下移動キーを押してテキスト コントロールの値を変更することしかできません。スピンが編集可能な場合、ユーザーはテキスト コントロールの値を手動で変更できます。この場合、ユーザーが値を変更するたびに、入力が検証され、有効であると、現在の値がユーザーによって指定された値に変更されます。
(アクセサ)
アクセサ public SpinControl.focus-object:
Visual
(ローカル オプション)
public SpinControl.format-spec:
any =null
SpinControl の値が String に書式設定される方法を示します。
説明
この値は、次のいずれかとする必要があります。
- format マクロでの使用に適した String。
- {proc {data:any, sc:SpinControl}:String} 型のプロシージャ (この場合、data は SpinControl.value で、 sc はソース SpinControl を表わします)。sc パラメータは、ソース SpinControl とその関連付けられた SpinControl.domain の両方へのアクセスを可能にするため、コンテキストに応じた書式設定を行う際に非常に有用です。
- null (既定値)。
例
例 |
|
{define-proc package {hex-parse
str:String,
sp:SpinControl
}:any
let (new-value:int,
n-chars-consumed:int,
overflow?:bool) =
{str.to-int radix = 16, error-if-overflow? = false}
{if not overflow? and
new-value >= sp.min-value and
new-value <= sp.max-value
then
{return new-value}
}
{throw
{ValidationException "Not a valid value"}
}
}
{SpinControl
domain =
{StandardIntDomain
default-value = 0,
min-allowable = 0,
max-allowable = 200
},
format-spec = "%0x",
parse-spec = hex-parse
}
| |
(アクセサ)
アクセサ public SpinControl.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 SpinControl.max-value:
any
(アクセサ)
アクセサ public SpinControl.min-value:
any
(ローカル オプション)
public SpinControl.parse-spec:
any =null
String の入力値を解析して、この SpinControl に関連付けられたフィールドに入力する方法を指定します。
説明
この値は、次のいずれかとする必要があります。
- {proc {value:String, sc:SpinControl}:any} 型のプロシージャ (この場合、value は、ユーザーによる文字列入力を表わし、sc はソース SpinControl を表わします)。sc パラメータは、ソース SpinControl とその関連付けられた SpinControl.domain の両方へのアクセスを可能にするため、コンテキストに応じた解析を行う際に非常に有用です。
- null (既定値)。
NULL の場合、
Domain.parse メソッドが解析に使用されます。この場合、
Domain はこの
SpinControl に関連付けられたドメインです。
(フィールド)
public SpinControl.pending-value?:
bool =false
現在ユーザーが値を変更しているどうかを示します。
説明
つまり、ユーザーが
SpinControl の値を変更している限り
pending-value? は
true となりますが、それ以外では常に false となります。
このプロパティには Curl 言語に必要な特定の意味構造があるため、決してアプリケーションで設定しないでください。
(アクセサ)
アクセサ public SpinControl.step:
any セッター public SpinControl.step:
any SpinControl を増減する際の値の変化量を指定します。
注意事項
その種類は、通常
SpinControl.domain の種類によって決定されます。ドメインに対して
Domain.allowable-values を指定する場合、
SpinControl.step は、
SpinControl.allowable-values の現在の値を表わすインデックスから加算または減算された整数である必要があります。
注意事項
現在値に val を加算または減算しようとします。これは、SpinControl.step が正常に設定された場合に、SpinControl の値の増減が正常に行われるようにするためです。
(アクセサ)
アクセサ public SpinControl.style-element:
String スタイリングの目的のための、この Visual の "要素" や "型" です。
説明
オーバーライド
Visual のサブクラスのスタイルが他のオブジェクトと異なる場合、このゲッターは適切な文字列を返すようにオーバーライドされる必要があります。 慣例では,この文字列はクラス名または、オブジェクトを生成するマークアップの名前です。
オーバーライドでは、空の文字列でないかぎり、self._style-elementを返さなければなりません。
導入:
バージョン 6.0
(アクセサ)
アクセサ public SpinControl.test-type-name:#
String このオブジェクトをテストのメソッドとプロパティにマッピングするために、ビジュアル テスト インフラストラクチャが使用するタイプ名。
説明
ビジュアル テストを正しく実行するには、テストは次のいずれかのタイプでなければなりません。特定のテスト タイプの詳細については、リストされている実装例の test-run および get-test-property メソッドの説明を参照してください。
オブジェクトのセマンティクスに近い、いずれかの定義済みテスト タイプの使用を検討してください。ただし、テスト タイプを変更せずにオブジェクトにテストのアクションとプロパティを追加する方が簡単な場合もあります。
(アクセサ)
アクセサ public SpinControl.value:
any セッター public SpinControl.value:
any
(ローカル オプション)
public SpinControl.wrap?:
bool =false
終端に達した場合にコントロールの値を折り返すかどうかを指定します。既定では、false です。
注意事項
true の場合、ユーザーの操作により設定される新しい値が上限を越えてしまうと、その値が下限に設定されます。同様に、ユーザーの操作により設定される新しい値が下限を下回ってしまうと、その値が上限に設定されます。
説明
(メソッド)
protected | {SpinControl.create-default-ui-object}:ControlUI |
このオブジェクトに適切な UI オブジェクトを作成します。
説明
このメソッドは、現在の
LookAndFeel がこのコントロールの UI オブジェクトを指定しない場合にのみ使用されます。
(メソッド)
public | {SpinControl.decrement}:void |
現在の値を SpinControl.step 分減らします。
注意事項
このオブジェクトのドメインに
Domain.allowable-values を指定した場合、このメソッドは、
SpinControl の値を現在の値のインデックスから
SpinControl.step を引いたインデックスの値に設定します。
オーバーライド
Domain 型の一部は "-" 演算子をサポートしません。この
Domain のインスタンスが
Domain.allowable-values を指定しない場合は、このメソッドで実行時エラーがスローされます。ただし、このメソッドをオーバーライドして、独自の
SpinControl.decrement メソッドを実装できます。
(メソッド)
public | {SpinControl.decrement-with-events fire-value-finished?:bool = true }:void |
インタラクティブに値を減少します。
fire-value-finished?:
true の場合、このメソッドを呼び出すと、
ValueFinished イベントが発生します。
説明
fire-value-finished? が
true の場合、
SpinControl.pending-value? が
true に設定され、
ValueFinished イベントが発生します。
(メソッド)
public | {SpinControl.get-formatted-data data:any}:String |
SpinControl の値を表わすデータを String として書式設定します。
説明
UI オブジェクトは、このメソッドを呼び出して、
SpinControl の値に対応する
String を取得して、表示できます。
戻り値
オーバーライド
通常はオーバーライドされません。
(メソッド)
public | {SpinControl.get-parsed-value val:String}:any |
この SpinControl への String 値の入力を解析します。
説明
オーバーライド
通常はオーバーライドされません。
戻り値
any、パースされた値
(メソッド)
public | {SpinControl.get-test-property name:String}:any |
このオブジェクトのテスト プロパティ値を返します。
説明
既定の実装では、リフレクションを使用してオブジェクトの実行時プロパティの値を取得します。プロパティを実行時のインターフェイスではなくテスト環境に追加する場合は、サブクラスでこのメソッドをオーバーライドする必要があります。
注意事項
(メソッド)
public | {SpinControl.increment}:void |
現在の値を SpinControl.step 分増やします。
注意事項
このオブジェクトのドメインに
Domain.allowable-values を指定した場合、このメソッドは、
SpinControl の値を現在の値のインデックスに
SpinControl.step を加えたインデックスの値に設定します。
オーバーライド
Domain 型の一部は "+" 演算子をサポートしません。この
Domain のインスタンスが
Domain.allowable-values を指定しない場合は、このメソッドで実行時エラーがスローされます。ただし、このメソッドをオーバーライドして、独自の
SpinControl.increment メソッドを実装できます。
(メソッド)
public | {SpinControl.increment-with-events fire-value-finished?:bool = true }:void |
インタラクティブに値を増加します。
fire-value-finished?:
true の場合、このメソッドを呼び出すと、
ValueFinished イベントが発生します。
説明
fire-value-finished? が
true の場合、
SpinControl.pending-value? が
true に設定され、
ValueFinished イベントが発生します。
(メソッド)
(メソッド)
public | {SpinControl.replace-value val:any}:void |
(メソッド)
public | {SpinControl.set-value-with-events val:any}:void |
インタラクティブに値を設定するユーザーをシミュレーションします。
説明
(メソッド)
オブジェクトに対してビジュアル テスト アクションを実行します。
action: 実行するアクションの名前。
args: ビジュアル テスト アクションの引数。ビジュアル テスト インフラストラクチャは、引数の数と型をチェックしますが、値はチェックしません。実装では、すべての有効な値を処理し、不正な値に対しては例外またはエラーをスローするようにしてください。
説明
そのクラスによってサポートされたテスト動作のリストについてクラスのドキュメントを御読み下さい。
既定の実装では、RawClick などの一般的な操作を処理し、action が既知のアクションに一致しない場合にはリフレクションを使用してメソッドを呼び出します。
注意事項
QuickTest Property™ のビジュアル テスト環境では、任意の実行時メソッドを直接呼び出せません。代わりに CallMethod アクションを使用して、最初の引数としてメソッド名を渡してください。ビジュアル テスト インフラストラクチャは、CallMethod アクションを実際のアクションに変換してから test-run を呼び出します。
注意事項
オーバーライド
新しいテスト アクションを追加するには、action と新しいアクションの名前を照合します。一致する場合は、引数を処理してアクションを実行し、適切なタイプの値 (戻り値がない場合は null) を返します。action が新しいテスト アクションに一致しない場合は、super.test-run を呼び出します。
(メソッド)
public | {SpinControl.unset-value}:void |
値を SpinControl の初期値に戻します。
説明
注意事項
SpinControl.has-value? は常に true です。このメソッドは、SpinControl の値を初期値に戻すだけです。