TreeNode (クラス)
public abstract TreeNode {inherits {Sequence-of TreeNode}}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.CONTROL-LOGICAL.
直接継承しているサブクラス: DefaultTreeNode

TreeModel 内のノードの抽象スーパークラス。

プログラミング注意事項

このクラスの既定ファクトリはDefaultTreeNode を作成することに、注意してください。DefaultTreeNode には、子を持つ基本ノードを作成するために必要な状態と実装がすべて含まれます。
TreeNode のサブクラスを作成しようとしているアプリケーションは、まず DefaultTreeNode またはそのサブクラス LazyTreeNode (これは動的に生成された子をサポートするものです) のサブクラス化を検討する必要があります。

説明

このノードの子ノードには、Sequence-of インターフェイスを介してアクセスできます。ただし、TreeNode.read-only? プロパティが true になっているインスタンスの場合は、このインターフェイスを介した変更を許可しません。

オーバーライド

このクラスのインスタンスのプロパティが変わる場合は (子ノードのコレクションの内容が変わる場合も含めて)、サブクラスが必ず TreeNode.notify-change を呼び出すようにする必要があります。詳細については、個々のプロパティの資料を参照してください。
子ノードへのアクセスに大きなコストがかかる場合 (つまり、子ノードが動的に作成される場合) は、サブクラスが効率よく TreeNode.has-children? を実装するようにする必要があります。

改訂

このクラスは同じ名前の古いクラスを置き換えます。既存のアプレットを RTE バージョン 3.0 と 4.0 の両方で実行させる古いクラスが必要なデベロッパーをサポートするため、古いツリー コントロール、TreeControlBaseTreeNodeTreeNode および TreeNodeState に関連付けられたクラスは CURL.GUI.OLD パッケージから利用することができます。バージョン 4.0 アプレットで古いクラスを使用するには、override = true に設定してインポートします。以下の例を参照してください。
{import * from CURL.GUI.OLD, override? = true}
古いクラスドキュメントを参照するには、3.0 IDE をインストールし、バージョン 3.0 のドキュメント ビューアを開かなければなりません。

コンストラクタ
default:このファクトリは DefaultTreeNode のインスタンスを作成します。
ファクトリ public {TreeNode.default node-data:any = null, ...:TreeNode}:TreeNode

プロパティ
has-children?:このノードに子はありますか?
アクセサ public TreeNode.has-children?:bool
modifying-internally?:このノードの変更が内部で処理されることを通知します。したがって、read-only? ノードにも許可されます。
フィールド protected TreeNode.modifying-internally?:bool =false
next-sibling:この TreeNode の後に続く兄弟。
アクセサ public TreeNode.next-sibling:#TreeNode
node-data:このノードに関連付けられる基本状態。
アクセサ public TreeNode.node-data:any
セッター public TreeNode.node-data:any
node-label:このノードのラベル。
アクセサ public TreeNode.node-label:any
parent:この TreeNode の親。
アクセサ public abstract TreeNode.parent:#TreeNode
セッター public abstract TreeNode.parent:#TreeNode
previous-sibling:この TreeNode に先行する兄弟。
アクセサ public TreeNode.previous-sibling:#TreeNode
read-only?:この TreeNode は変更できないようにロックされていますか?
アクセサ public TreeNode.read-only?:bool
tree-model:このノードを含む TreeModel
アクセサ public abstract TreeNode.tree-model:#TreeModel
セッター public abstract TreeNode.tree-model:#TreeModel
プロパティ 継承 Association-of: efficient-size, empty?, key-type, size
プロパティ 継承 Aggregate-of: element-type

メソッド
notify-change:このノードが変更されたことを示す TreeModelChange を生成して転送します。
protected {TreeNode.notify-change change:TreeModelChangeType}:void
メソッド 継承 Sequence-of: append, clear, clone, clone-range, concat, equal?, filter, filter-clone, filter-keys, filter-keys-clone, find, insert, key-exists?, keys-to-Iterator, pop, push, reverse, set, sort, splice, to-Iterator, top-of-stack
メソッド 継承 Association-of: get, get-if-exists, get-key, get-key-if-exists, remove
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (ファクトリ)
public {TreeNode.default node-data:any = null, ...:TreeNode}:TreeNode

このファクトリは DefaultTreeNode のインスタンスを作成します。

node-data: anyDefaultTreeNode.node-data を参照してください。
...: このノードに子として追加されるゼロ個以上の TreeNode



プロパティ詳細
has-children? (アクセサ)
アクセサ public TreeNode.has-children?:bool

このノードに子はありますか?

説明

このプロパティは、このノードがリーフであるかどうかを効率的に決定するために、呼び出し元が使用する必要があります。例えば、このプロパティは、縮小されているノードに展開アフォーダンスを提供する必要があるかどうかを決定するために、標準 UI オブジェクトによって調べられます。

オーバーライド

このメソッドの既定実装は、単に Sequence-of.size プロパティを参照するだけです。実際にこのプロパティを呼び出すと子を動的に生成することになるようであれば、これは効率が悪いことになります。サブクラス、特に子の "遅延" 生成に依存するようなサブクラスは、より効率の良い実装を提供する必要があります。


modifying-internally? (フィールド)
protected TreeNode.modifying-internally?:bool =false

このノードの変更が内部で処理されることを通知します。したがって、read-only? ノードにも許可されます。

プログラミング注意事項

TreeNode.notify-change の呼び出しをトリガする方法でノードを内因的に変更する場合、サブクラスはこのフラグを true に設定する必要があります。それにより、TreeNode.read-only?true の場合に、そのメソッドでトリガされるエラーが回避されます。
通常、このフィールドは最終的にその元の値に戻るよう with コンストラクタを使用して設定する必要があります。


next-sibling (アクセサ)
アクセサ public TreeNode.next-sibling:#TreeNode

この TreeNode の後に続く兄弟。

オーバーライド

このメソッドの既定実装は、Sequence-of.find を使用し、親ノードをスキャンして、このノードのインデックスを見つける必要があります。このメソッドのより効率の良い (つまり恒常的な) 実装を提供できるサブクラスは、そうする必要があります。


node-data (アクセサ)
アクセサ public TreeNode.node-data:any
セッター public TreeNode.node-data:any

このノードに関連付けられる基本状態。

説明

このプロパティの既定値は null です。
この値は TreeNode.node-label に対する既定値として機能するため、既定では、DefaultTreeItem のグラフィックとして表示できます。そうでない場合は、サブクラスおよびアプリケーションに応じて、このプロパティを使用するかどうかを決めることができます。

オーバーライド

子のプロパティの値が変更された場合は、サブクラスが必ず TreeNode.notify-change を呼び出すようにする必要があります。


node-label (アクセサ)
アクセサ public TreeNode.node-label:any

このノードのラベル。

説明

このプロパティはこのタイプのノードを表示するために DefaultTreeItem によって使用されます。通常このプロパティはテキスト、またはラベルとしての使用に適した Graphic を返します。
このプロパティの既定値は、単に TreeNode.node-data です。別のラベルを計算するには、このゲッターをオーバーライドします。


parent (アクセサ)
アクセサ public abstract TreeNode.parent:#TreeNode
セッター public abstract TreeNode.parent:#TreeNode

この TreeNode の親。

説明

null の場合は、このノードがツリーのルートであるとみなす必要があります。


previous-sibling (アクセサ)
アクセサ public TreeNode.previous-sibling:#TreeNode

この TreeNode に先行する兄弟。

オーバーライド

このメソッドの既定実装は、Sequence-of.find を使用し、親ノードをスキャンして、このノードのインデックスを見つける必要があります。このメソッドのより効率の良い (つまり恒常的な) 実装を提供できるサブクラスは、そうする必要があります。


read-only? (アクセサ)
アクセサ public TreeNode.read-only?:bool

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

説明

このプロパティの既定値は、このノードを含むモデルに対する TreeModel.read-only? の値です。このノードが TreeModel に関連付けられてない場合、値は false になります。
この値が true の場合は、プロパティあるいはこのノードが含むノードのコレクションを変更すると、エラーがスローされます。

オーバーライド

変更をサポートしないサブクラスは、true を返すようにこのメソッドをオーバーライドすることができます。ただし、ノードが読み取り専用の TreeModel に関連付けられているときは、サブクラスが false を返さないようにする必要があります。


tree-model (アクセサ)
アクセサ public abstract TreeNode.tree-model:#TreeModel
セッター public abstract TreeNode.tree-model:#TreeModel

このノードを含む TreeModel






メソッド詳細
notify-change (メソッド)
protected {TreeNode.notify-change change:TreeModelChangeType}:void

このノードが変更されたことを示す TreeModelChange を生成して転送します。

change: このノードで発生した TreeModelChange

プログラミング注意事項

このメソッドは、ノードが変わったことを示すために、このクラスの実装で呼び出す必要があります。

オーバーライド

このメソッドの既定実装は、適切な TreeModelChange を生成して、それを TreeModel.note-tree-model-change に渡すだけです。
TreeNode.read-only?true の場合は、エラーがスローされます。内因的な変更のためにこの動作をオーバーライドするには、サブクラスは TreeNode.modifying-internally? フラグを true に設定する必要があります。
このメソッドは、このノードでの変更を認識するために、サブクラスによってオーバーライドされることがあります。ただし、このメソッドのオーバーライドは通常、スーパー実装を呼び出す必要があります。