TreeModel (クラス)
public TreeModel {inherits Observable}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.CONTROL-LOGICAL.

TreeControl によって表示されるツリーを説明するデータ モデル。


コンストラクタ
default:このオブジェクトを作成します。
コンストラクタ public {TreeModel.default
root:#TreeNode = null,
read-only?:bool = false
}

プロパティ
batch-notify?:このオブジェクトでの変更をオブザーバーに通知しないようにするために true に設定されます。
アクセサ public TreeModel.batch-notify?:bool
セッター public TreeModel.batch-notify?:bool
read-only?:この TreeModel は変更できないようにロックされていますか?
アクセサ public TreeModel.read-only?:bool
セッター public TreeModel.read-only?:bool
root:このモデルのルート ノードを表す TreeNode
アクセサ public TreeModel.root:#TreeNode
セッター public TreeModel.root:#TreeNode
プロパティ 継承 Observable: has-observers?, notify-observers?

メソッド
note-tree-model-change:モデルに、そのノードの 1 つに変更があることを通知します。
public {TreeModel.note-tree-model-change change:TreeModelChange}:void
walk-nodes:この TreeModel の一部に対して depth-first トラバースを実行します。
public {TreeModel.walk-nodes
action:{proc-type {TreeNode}:bool},
root:#TreeNode = self.root
}:#TreeNode
メソッド 継承 Observable: add-observer, notify-observers, remove-observer
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {TreeModel.default
root:#TreeNode = null,
read-only?:bool = false
}

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

root: TreeModel.root を参照してください。
read-only?: TreeModel.read-only? を参照してください。



プロパティ詳細
batch-notify? (アクセサ)
アクセサ public TreeModel.batch-notify?:bool
セッター public TreeModel.batch-notify?:bool

このオブジェクトでの変更をオブザーバーに通知しないようにするために true に設定されます。

説明

このオブジェクトは、false に戻されると、フラグが true であったときにモデルの状態に加えられた変更を示すために、必要なすべての通知を行います。

プログラミング注意事項

このプロパティは通常は明示的に設定できません。with マクロの中で true に設定して使用するのが最善の方法です。これは、フラグに対するネストされた変更を許可するほかに、すべてのクラスで最終的に false に戻ることを保証します。
次の例は、batch-notify? を使用して、モデルが作成された後、監視コントロールを 1 回だけ更新できるようにするものです。
例:
let tm:TreeModel ={TreeModel null}
{TreeControl data-model = tm}
{with tm.batch-notify? = true do
|| Add and manipulate node-structure in tm.
|| This may involve many small changes to the model.
}

オーバーライド

このフラグが false に戻されたときは、セッターがすべてのオブザーバーにその旨を通知する必要があります。このセッターの既定実装は、モデルに何らかの変更があった可能性があることを示すために、"大量変更" タイプの TreeModelChangeTreeModel.note-tree-model-change を呼び出します。
より高い効率を望むサブクラスは、このセッターのほかに、特定の変更を追跡できる note-tree-model-change もオーバーライドする必要があります。


read-only? (アクセサ)
アクセサ public TreeModel.read-only?:bool
セッター public TreeModel.read-only?:bool

この TreeModel は変更できないようにロックされていますか?

説明

false の場合は、このモデルの構造や内容を変更すると、エラーがスローされます。


root (アクセサ)
アクセサ public TreeModel.root:#TreeNode
セッター public TreeModel.root:#TreeNode

このモデルのルート ノードを表す TreeNode






メソッド詳細
note-tree-model-change (メソッド)
public {TreeModel.note-tree-model-change change:TreeModelChange}:void

モデルに、そのノードの 1 つに変更があることを通知します。

change: このモデル内のノードの 1 つで発生した TreeModelChange

説明

このメソッドは、このクラスの実装または TreeNode の実装によって、モデルの変更を通知するために呼び出されます。

オーバーライド

既定実装は、TreeModel.batch-notify?false の場合、change をメッセージとしてすべての Observer に中継します。batch-notify?true の場合、この実装は何もしません。
より高度で効率の良いバッチ更新を実装するためには、batch-notify? のセッターとともに、このメソッドをオーバーライドしてください。


walk-nodes (メソッド)
public {TreeModel.walk-nodes
action:{proc-type {TreeNode}:bool},
root:#TreeNode = self.root
}:#TreeNode

この TreeModel の一部に対して depth-first トラバースを実行します。

action: 各ノードに適用される proc。この proc がどれかのノードで true を返すと、トラバースが停止されます。
root: トラバースされるサブツリーのルートである TreeNode。既定値はこのオブジェクトの root です。null の場合、このメソッドは何もしません。

説明

このメソッドと同様でありながら、特定の TreeControl に展開されるノードへのトラバースを制限することも可能な TreeControl.walk-nodes も参照してください。

戻り値

トラバースが停止された TreeNode。すべてのノードにアクセスした場合は null

オーバーライド

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