3.8 KiB
3.8 KiB
ツリー
コントロール機能:ツリー構造のコントロールで、階層的なデータ(例:ディレクトリ、組織構造など)を表示するために使用されます。非同期読み込み、ノードの追加・削除・編集、チェックボックス選択、ツールバー操作などの機能をサポートしています。静的ツリーまたは編集可能なツリーとして利用可能です。
タイプ:コンテナーコントロール
親クラスコントロール:bricks.VScrollPanel
初期化パラメータ
| パラメータ名 | 型 | 必須 | 説明 |
|---|---|---|---|
row_height |
String |
否 | 各ノード行の高さ。デフォルトは '35px' |
idField |
String |
是 | データ内でノードの一意識別子を表すフィールド名 |
textField |
String |
是 | データ内でノードの表示テキストを表すフィールド名 |
is_leafField |
String |
否 | ノードが葉ノードかどうかを示すフィールド名。デフォルトは 'is_leaf' |
typeField |
String |
否 | ノードの種類を区別するためのフィールド名。アイコンのカスタマイズに使用 |
data |
Array |
否 | 静的ツリーのデータ配列。直接ノードを初期化 |
dataurl |
String |
否 | 子ノードデータを非同期で読み込むためのURLアドレス |
method |
String |
否 | データ取得時のリクエスト方法。デフォルトは 'GET' |
params |
Object |
否 | リクエスト時に付加されるグローバルパラメータ |
node_view |
Widget Description |
否 | ノード描画テンプレートのカスタマイズ(記述オブジェクト) |
checkField |
String |
否 | チェックボックス機能を使用する場合、データ内にチェック状態を保持するフィールド名 |
node_typeicons |
Object |
否 | ノードタイプごとにアイコンを定義するマッピングテーブル。形式: { nodetype: { open, close, leaf }, default_type: "type" } |
editable |
Object |
否 | 編集設定。fields, add_url, delete_url, update_url などを含む |
newdata_params |
Object |
否 | 新規ノード追加時に追加される固定パラメータ |
主なイベント
| イベント名 | 発生条件 | コールバックパラメータの説明 |
|---|---|---|
node_selected |
ノードがクリックされ選択または選択解除されたときに発生 | パラメータは node.user_data に { selected: true/false } を拡張したもの |
check_changed |
ノードのチェックボックスの状態が変更されたときに発生 | パラメータはそのノードの user_data。最新のチェック状態を反映 |
command(toolbar_wより) |
ツールバーボタンがクリックされたときに発生 | toolbar_command が処理し、event.params.name に基づいて追加、削除、更新、その他のカスタムコマンドを実行 |
(カスタムコマンド)例:add, delete, updateなど |
対応する操作が実行され、正常に送信された後、dispatch(name, data) により発生 |
data にはノードデータとメタ情報 meta_data(出所、タイトル、アイコンなど)が含まれており、フォームを開いたり、他のモジュールに通知したりするために使用可能 |
その他、Tree は以下のユーザー操作に対しても反応し、対応するロジックを実行します:
- ノードの展開/折りたたみ(
expand()/collapse()経由) - 子ノードデータの動的読み込み(
get_children_data) - ノードの追加・削除・編集(HTTPリクエストまたはローカル操作経由)