(クラス)
すべての GUI Toolkit コマンドのスーパークラス。
説明
Command は、コマンドについてのメタ情報と、現在の実装 (
Command.impl) を示す
CommandImpl へのアクセッサで構成されています。コマンドの機能を実際に使用するには、
Command.impl プロパティを取得する必要があります。なお、コマンドの現在の状態によっては、このプロパティは
null の可能性があります。
Command を観察対象にすることができます。この場合、その実装の値、またはその実装によって保持される状態が変更されたときに、その
Observer に通知することを約束します。特に、UI 要素は、コマンドを観察し、
Command の状態が変わるときにそのアフォーダンスを変更します。
コマンドの命名規則の詳細については、クラス
CommandContext を参照してください。
オーバーライド
コンストラクタ public | {Command.default name:String} |
フィールド public constant Command.name:
String
protected | {Command.ensure-updated}:void |
protected | {Command.note-state-changed}:void |
public | {Command.request-update error-if-updating?:bool = true}:void |
protected | {Command.update}:void |
protected | {Command.update-completed}:void |
(コンストラクタ)
public | {Command.default name:String} |
(アクセサ)
(フィールド)
public constant Command.name:
String
(メソッド)
protected | {Command.ensure-updated}:void |
このコマンドの状態が再計算されていることを保証します。
説明
このメソッドは、サブクラスによって呼び出されて、更新を必要としているコマンドが更新されてから、アプリケーション コードによる操作または呼び出しが可能になるようにします。
オーバーライド
このメソッドは、サブクラスによるオーバーライドはありません。
(メソッド)
protected | {Command.note-state-changed}:void |
サブクラスによって呼び出され、コマンドの状態が変更されていることを認識します。
説明
このメソッドは、オブザーバーへの通知が必要となるようなコマンドの状態の変更をサブクラスが認識したときに、そのサブクラスによって呼び出されなければなりません。この通知は、ペンディングの直後、または次の
Command.update-completed が起こるときに行われます。
オーバーライド
このメソッドをオーバーライドするサブクラスは、スーパークラスの実装を必ず呼び出す必要があります。
(メソッド)
public | {Command.request-update error-if-updating?:bool = true}:void |
この Command に、その状態の再計算が必要であることを通知します。
説明
このコマンドに
Observer がある場合に、このメソッドを実行すると、次回イベント ループがヒットしたときに更新が行われるようにスケジュールされます。それ以外の場合、更新は必要になるまで遅延されます。
このメソッドは、アプリケーションでの使用が目的ではありません。
error-if-updating?: コマンドがすでに更新中である場合に取られるアクションを決定するブール値。true の場合は、エラーがスローされます。それ以外の場合、このメソッドは何も行なわれません。
オーバーライド
このメソッドでは、通常、サブクラスによるオーバーライドは行われません。
(メソッド)
protected | {Command.update}:void |
この Command の状態を再計算します。
説明
このメソッドは、コマンドの状態を再計算するために呼び出されます。これは、たとえば、コマンドが依存するオブジェクトが変更されたときにトリガされることがあります。
このメソッドは、通常、サブクラスからは呼び出されません。代わりに
Command.request-update を使用します。
オーバーライド
実装では、このメソッドの最初に super.update を呼び出す必要があります。
(メソッド)
protected | {Command.update-completed}:void |
Command.update が完了したときに呼び出されます。
説明
このメソッドは、
Command.update の呼び出しが完了した後で、コマンドが (潜在的に) 新しい状態についてオブザーバーに通知する前に、直接呼び出されます。 これは、サブクラスがコマンドの状態が変更されたことを認識して、
Command.note-state-changed を呼び出す最後の機会を示します。また、これは、サブクラスが新しく更新されたコマンドの任意の要素をキャッシュする機会でもあります。
このメソッドは、通常、サブクラスからは呼び出されません。
オーバーライド
実装では、パブリックに可視であるコマンドの状態をこのメソッドで
変更すべきではないことに注意してください。また、このメソッド内からの
Command.request-update の呼び出しでは何も行なわれません。
実装では、通常、このメソッドの最初に
super.update-completed を呼び出す必要があります。