(クラス)
Curl グラフィック システムのオプション メカニズムに対するステートレス インターフェイス。
説明
アクセサ protected OptionListInterface.option-register-proc:#{
proc-type {OptionKey}:
void}
options: | このオブジェクトのオプション リストが存在する場合はそれを参照します。 |
アクセサ protected abstract OptionListInterface.options:#
OptionItem セッター protected abstract OptionListInterface.options:#
OptionItem
アクセサ public OptionListInterface.options-present-here:{
Iterator-of OptionItem}
アクセサ public OptionListInterface.registered-option-keys:{
Array-of OptionKey}
アクセサ protected OptionListInterface.style-options:#
OptionItem セッター protected OptionListInterface.style-options:#
OptionItem
add-option: | オプション リストにオプションを追加するか、あるいは既存のオプションの値を変更します。変更は、value がオプションの現在値と異なる場合にのみ行われます。 |
public | {OptionListInterface.add-style-option}:void |
public | {OptionListInterface.change-option-parent-notify}:void |
public | {OptionListInterface.clone-options}:void |
public final | {OptionListInterface.get-option key:OptionKey}:any |
public | {OptionListInterface.get-option-by-name}:any |
protected | {OptionListInterface.keyword-init-arg}:void |
protected | {OptionListInterface.local-remove-notify}:void |
public | {OptionListInterface.name-to-option-key}:#OptionKey |
protected | {OptionListInterface.new-option-item}:OptionItem |
public | {OptionListInterface.notify-option-children}:void |
protected | {OptionListInterface.option-change-notify}:void |
public | {OptionListInterface.option-changed key:String, value:any}:void |
public | {OptionListInterface.option-lookup}:#OptionItem |
public | {OptionListInterface.option-lookup-here}:(item:#OptionItem, local-key?:bool) |
public | {OptionListInterface.option-propagate-notify}:void |
public final | {OptionListInterface.option-set? key:OptionKey}:bool |
protected | {OptionListInterface.propagate-option-change}:void |
public | {OptionListInterface.register-options}:void |
public | {OptionListInterface.remove-style-option key:OptionKey}:void |
protected | {OptionListInterface.remove-styles}:void |
public | {OptionListInterface.set-option-by-name}:void |
public | {OptionListInterface.set-style-option-by-name}:void |
public | {OptionListInterface.unset-option-by-name name:String}:void |
public | {OptionListInterface.unset-style-option-by-name}:void |
(アクセサ)
オブジェクトのオプションの親を返します。
戻り値
オーバーライド
(アクセサ)
アクセサ protected OptionListInterface.option-register-proc:#{
proc-type {OptionKey}:
void}
子オブジェクトが興味を持つ非ローカルオプションに関して、このオブジェクトに通知するために呼び出されるプロシージャ。
プログラミング注意事項
返されたプロシージャは、各オプション子(またはその子孫)が興味を持つ、各非ローカルオプションに対して1回呼び出されます。オプション キーが、このプロシージャを介して登録されていない場合は、オプション値が変更する場合に、このオブジェクトは子孫に対し、(子孫がこのオプションに関心を示していないため)変更ハンドラを呼び出す必要はありません。
特に、返された値が null でない場合は、このオブジェクトが新しいオプション子を入手すると
OptionListInterface.change-option-parent-notify がそれを呼び出します。
注意事項
既定では、返されたプロシージャは、そのオプション親に登録を転送します。
オーバーライド
まれですが、典型的には、オプションの伝搬メカニズムをオーバーライドするオブジェクトのみにより、オーバーライドされます。
(アクセサ)
アクセサ protected abstract OptionListInterface.options:#
OptionItem セッター protected abstract OptionListInterface.options:#
OptionItem このオブジェクトのオプション リストが存在する場合はそれを参照します。
説明
(アクセサ)
アクセサ public OptionListInterface.options-present-here:{
Iterator-of OptionItem}
このオブジェクトに存在する全てのオプションのイテレータを返します。オプションは、ローカルで設定されていても、スタイル シートで設定されていても、LookAndFeel で設定されていても、適切であれば全て含まれます。
オーバーライド
option-lookup-here メソッドをオーバーライドする場合は、このメソッドもオーバーライドしなければなりません。通常、option-lookup-here はバインディングオプションに追加されたオプションを(テーブルセルの行列のバインドのように)検索し、このメソッドのオーバーライドは、バインディングオプションを Iterator で返します。
導入:
バージョン 6.0
(アクセサ)
アクセサ public OptionListInterface.registered-option-keys:{
Array-of OptionKey}
このオブジェクトおよびその子孫により登録されたオプション キーのリストを返します。
戻り値
オーバーライド
(アクセサ)
アクセサ protected OptionListInterface.style-options:#
OptionItem セッター protected OptionListInterface.style-options:#
OptionItem スタイル の機能を通してこのオブジェクトに指定されたオプションです。
説明
導入:
バージョン 6.0
(メソッド)
オプション リストにオプションを追加するか、あるいは既存のオプションの値を変更します。変更は、value がオプションの現在値と異なる場合にのみ行われます。
value: オプションに関連付けられる値。
プログラミング注意事項
このメソッドは、Curl コンパイラが次のような式に対して生成するコードから呼び出されます。
set object.option-name = value
通常は、ユーザー コードにより直接呼び出されることはありません。
オーバーライド
オプションが追加または設定されるたびに追加操作を実行する必要があるサブクラスでは、これをオーバーライドすることができます。
(メソッド)
public | {OptionListInterface.add-style-option}:void |
style-options リストにオプションを追加するか、あるいは既存のオプションの値を変更します。変更は、value がオプションの現在値と異なる場合にのみ行われます。
value: オプションに関連付けられる値。
オーバーライド
スタイル オプションが追加または設定されるたびに追加操作を実行する必要があるサブクラスでは、これをオーバーライドすることができます。
導入:
バージョン 6.0
(メソッド)
public | {OptionListInterface.change-option-parent-notify}:void |
このオブジェクトのオプション親が変更されると呼び出されます。
parent: 新しい親、または元の親。
removed?: このオブジェクトのオプション親として parent が削除されている場合は true、このオプションの親として parent が追加されている場合は false です。
プログラミング注意事項
親に行われた変更を
OptionListInterface に通知するため、
OptionListInterface 外部のコードにより呼び出されます。オブジェクトのオプション親が
A から
B に変更されると、このメソッドは 2 回呼び出されます。1 回目はオブジェクトのオプション親として
A が削除されたことを通知し、2 回目はオブジェクトの新しいオプション親として
B が追加されたことを通知します。
注意事項
オーバーライド
通常はオーバーライドされません。
(メソッド)
public | {OptionListInterface.clone-options}:void |
このオブジェクトのオプションをターゲットのオブジェクトにコピーします。
target: オプションをコピーするオブジェクト。
copy: 指定された場合、これはこのオブジェクトのオプション リストから
OptionItem を受け取るプロシージャになり、新しく割り当てられた
OptionItem を、
target のオプション リストとして配置するために返します。
注意事項
プログラミング注意事項
オーバーライド
通常はオーバーライドされません。
(メソッド)
public final | {OptionListInterface.get-option key:OptionKey}:any |
オプション値を検索します。
戻り値
オプションの値、あるいはオプションに値が割り当てられていない場合は、
OptionKey に関連付けられている既定値。
プログラミング注意事項
このメソッドは、プログラム内で object.option-name 構文が検出されると、適切な引数で呼び出されます。通常、これはユーザー コードから直接呼び出すことはありません。
オーバーライド
(メソッド)
public | {OptionListInterface.get-option-by-name}:any |
オプション値を検索します。
name: 読み取るオプションの名前。
default: オプションが設定されていない場合に返す値。
戻り値
オプションが設定されている場合のオプションの値。オプションが設定されていない場合、default が指定されるとこの値が返されます。オプションが設定されていない場合、default が指定されていなければオプション name の宣言で指定された既定値が返されます。
プログラミング注意事項
このメソッドは、読み取られるオプションの名前が事前に分からない場合に使用します。オプション名が明らかな場合は、object.option-name 構文を使用してオプションの値を読み取ってください。
オーバーライド
(メソッド)
protected | {OptionListInterface.keyword-init-arg}:void |
(メソッド)
このオブジェクトでバインディング オプションが追加または変更されたときに呼び出されます。
item: 新しいバインディング オプション。
注意事項
プログラミング注意事項
オーバーライド
通常はオーバーライドされません。
(メソッド)
protected | {OptionListInterface.local-remove-notify}:void |
このオブジェクトでバインディング オプションが削除されると呼び出されます。
item: 削除されたバインディング オプション。
注意事項
このメソッドは、バインディング オプションの変更に関する通知の内容を決定します。これらの通知により、オブションのバインド解除をオブジェクトに知らせることができます。また、祖先も同じオプション キーをバインドする場合に、オプションの値が変更されたことをオブジェクトに知らせることができます。いずれの場合も、
OptionListInterface.propagate-option-change が呼び出されて通知が実際に行なわれます。
プログラミング注意事項
オーバーライド
通常はオーバーライドされません。
(メソッド)
public | {OptionListInterface.name-to-option-key}:#OptionKey |
オプション名を OptionKey に変換します。
name: オプション名。
error-if-missing?: この引数が true で、
name がこのオブジェクトに対して有効なオプション名でない場合、
error が呼び出されます。
error-if-missing? が false で、
name がこのオブジェクトに対して有効なオプション名でない場合、
null が返されます。
error-if-missing? の既定値は true です。
戻り値
(メソッド)
protected | {OptionListInterface.new-option-item}:OptionItem |
新しい option-list アイテムを割り当てて、初期化します。
value: アイテムにインストールされるオプションの値。
戻り値
新しく割り当てられたオプション アイテム。
プログラミング注意事項
新しいオプション アイテムが割り当てられるたびに option-list メカニズムから呼び出されます。通常は、これ以外の場所から呼び出されることはありません。
オーバーライド
(メソッド)
public | {OptionListInterface.notify-option-children}:void |
このオブジェクトのオプションの子にオプションが変更されたことを通知します。
item: 追加または削除されたバインディング オプション。
removed?: item が削除された場合は true、それ以外の場合は false。
オーバーライド
(メソッド)
protected | {OptionListInterface.option-change-notify}:void |
このオブジェクトで値が変更されたオプションについて、オプションの変更ハンドラを呼び出します。
item: 追加または削除されたバインディング オプション。
removed?: item が削除された場合は true、それ以外の場合は false。
説明
オーバーライド
通常はオーバーライドされません。
(メソッド)
public | {OptionListInterface.option-changed key:String, value:any}:void |
このオブジェクトにオプションの値が変更したことを通知します。
key: 値が変更されたオプションの名前を指定する
String。
プログラミング注意事項
オプションが (a) ローカル オプションの場合、あるいは (b) 非ローカル オプションで、このオプションに対してオブジェクトが option-change ハンドラ プロシージャを宣言している場合、オプションの値がバインド、変更、またはバインド解除されるたびにオプション パッケージはこのメソッドを一度呼び出します。
オーバーライド
(メソッド)
public | {OptionListInterface.option-lookup}:#OptionItem |
オプション検索を実行し、該当する OptionItem があればこれを生成します。
local?:
bool で、このオブジェクトがオプション検索の開始場所である場合は true、オプション検索がこのオブジェクトの子孫から開始した場合は false です。
戻り値
このオブジェクトかその祖先の 1 つで該当する
key のバインドを含む
OptionItem。該当するバインドが見つからない場合は null が返されます。
プログラミング注意事項
オーバーライド
通常はオーバーライドされません。
(メソッド)
public | {OptionListInterface.option-lookup-here}:(item:#OptionItem, local-key?:bool) |
オプション検索ステップを実行します。
local?:
bool で、このオブジェクトがオプション検索の開始場所である場合は true、オプション検索がこのオブジェクトの子孫から開始した場合は false です。
戻り値
返される
OptionItem には、該当する
key のバインドが含まれます (このオブジェクトで存在する場合)。返される
bool は、
key がローカル オプション キーの場合は true です。この場合、このオブジェクト以降のオプション検索は行なわれません。
プログラミング注意事項
主に内部使用を目的としています。
オーバーライド
クラスが
OptionKey とバインディング オプションのマッピングに非標準のアルゴリズムを実装する場合は、オーバーライドされます。
(メソッド)
public | {OptionListInterface.option-propagate-notify}:void |
バインディング オプションに、このオブジェクトがオプションの親から継承した変更が存在する場合に呼び出されます。
item: 追加または削除されたバインディング オプション。
removed?: item が削除された場合は true、それ以外の場合は false。
プログラミング注意事項
これは、オブジェクトのオプション親から継承したオプションが変更されたことをオブジェクトに通知する場合に、
OptionListInterface のサブクラスが呼び出すメソッドです。このメソッドは、オブジェクトおよび関連オブジェクトへの通知が適切であるかどうかを判定してから (つまり、オプションが非ローカル オプションであり、このバインディング オプションをシャドウするようなバインディング オプションがオブジェクトに存在しないことを確認し)、
OptionListInterface.propagate-option-change を呼び出して、このオブジェクトおよび該当する場合はその子へのオプション変更通知メソッドを呼び出します。
オーバーライド
通常はオーバーライドされません。
(メソッド)
public final | {OptionListInterface.option-set? key:OptionKey}:bool |
オプションの値が設定されているかどうかを確認します。
戻り値
オプションが設定されている場合は true、それ以外の場合は false。
プログラミング注意事項
このメソッドは、Curl コンパイラが次のような式に対して生成するコードから呼び出されます。
{set? object.option-name}
通常は、ユーザー コードにより直接呼び出されることはありません。
オーバーライド
(メソッド)
protected | {OptionListInterface.propagate-option-change}:void |
このオブジェクト、および該当する場合はそのオプションの子孫にオプションが変更されたことを通知します。
item: 追加または削除されたバインディング オプション。
removed?: item が削除された場合は true、それ以外の場合は false。
注意事項
プログラミング注意事項
option-list パッケージでの内部使用を目的としています。
オーバーライド
通常はオーバーライドされません。
(メソッド)
public | {OptionListInterface.register-options}:void |
このオブジェクトがバインドのモニタリングを必要とする非ローカル オプション キーを登録します。
プログラミング注意事項
このメソッドは、オブジェクトがモニタしているオプション キーを確認する必要がある場合に任意のコード内で呼び出されます。このメソッドは、プロシージャ
p をまったく呼び出さないかまたは何回か呼び出し、呼び出すたびに引数として
OptionKey を渡す必要があります。このオブジェクトによりモニタリングされるオプション キーのセットは、
p のすべての呼び出しで指定されたオプション キー セットの連結であると見なされます。
p を複数回呼び出せるという能力を利用して、オプション親はモニタの対象となるオプション キーのリストを指定して
p を一度呼び出し、次に、同じ引数
p を与えてオプションの子それぞれの
register-options メソッドを呼び出し、このメソッドの目的を果たすことができます。この方法はシンプルですが、ほとんどの場合は、オプション親がその子における
register-options 呼び出しの結果をキャッシュして、親の
register-options メソッドが呼び出されたときにそのリストを提供する方がより効率的です。ローカル バインディング オプションへの変更通知は、それらのキーが登録されていない場合でも行われます。
オーバーライド
OptionListInterface.register-options の既定の実装は、このオブジェクトの変更ハンドラを持つ各非ローカル オプションで
p を呼び出します。サブクラスは、
{super.register-options p} を呼び出し、登録される必要がある追加のオプション キー上全てで、
p を呼び出すように、このメソッドをオーバーライドする必要する必要があります。一般的に、これらの追加のオプション キーは、子供または子孫のオブジェクトが監視する必要がある非ローカル オプションに対応します。それは、このオブジェクトの子オブジェクト上で、
register-options を呼び出すことによって決定されます。
注意 一般的に、このメソッドをオーバーライドする必要があるオブジェクトだけが、オプションの子を持つオブジェクトです。
(メソッド)
バインディング オプションを削除します。
プログラミング注意事項
このメソッドは、Curl コンパイラが次のような式に対して生成するコードから呼び出されます。
{unset object.option-name}
通常は、ユーザー コードにより直接呼び出されることはありません。
オーバーライド
オプションが削除されるたびに追加操作の実行を必要とするサブクラスで、オーバーライドすることができます。
(メソッド)
public | {OptionListInterface.remove-style-option key:OptionKey}:void |
(メソッド)
protected | {OptionListInterface.remove-styles}:void |
(メソッド)
public | {OptionListInterface.set-option-by-name}:void |
オプション リストにオプションを追加するか、または既存オプションの値を変更します。
name: 設定するオプションの名前。
value: オプションに関連付けられる値。
プログラミング注意事項
このメソッドは、設定されるオプションの名前が事前に分からない場合に使用します。オプション名が明らかな場合は、次の構文、
set object.option-name = value
を使用して、オプションを設定するようにしてください。
オーバーライド
(メソッド)
public | {OptionListInterface.set-style-option-by-name}:void |
(メソッド)
public | {OptionListInterface.unset-option-by-name name:String}:void |
オプション リストからオプションを削除します。
name: 削除するオプションの名前。
プログラミング注意事項
このメソッドは、削除されるオプションの名前が事前に分からない場合に使用します。オプション名が明らかな場合は、次の構文、
{unset object.option-name}
を使用して、オプションを削除するようにしてください。
オーバーライド
(メソッド)
public | {OptionListInterface.unset-style-option-by-name}:void |