ルート @ AboutPetanize

コンテンツのうち、他のアイテムをノードとして所持できるものを「ルート」と言う。ルートアイテムにぶら下がるアイテムを「エレメント」という。

ルートは複数のエレメントを持つことができる。持たないこともできる。エレメントはクラスの異なるアイテムが混在する。どのアイテムが自身のエレメントかを調べるには、マニフェストを見る。

バインダーとは機能的によく似ているが、データを更新する手順が違う。ルートを作成・更新する時はぶら下がるエレメントも(変更するものがあれば)同時に更新する。機能的にはいくつでもエレメントを所持できるが、人間はいちどに処理できるデータ量に限界があるので、そちら側に限度がある。

エレメントは他のアイテムをエレメントとして所持することができる。

要件

エレメントにメッセージ伝播

ルートがブーストしたときに、エレメントに対してもブーストのメッセージを伝搬する。

エレメントのリストを取得

ルートアイテムから、所持するエレメントの一覧を取得する必要がある。

  • child_models
  • child_element_names

ClassMethods

each_element_class_names

class_name_to_class k

each_element_classes

list_opt

環境によってぶら下がるエレメントが変わってくるので、エレメント一覧から生成する必要がある。

list_as_json_text ary

collect_element_value elements, name

validate_serial ary, offset = 0

validate_element_serial elements, name, offset = 0

validate_elements_serial c

InstanceMethods

elements_by_class_name class_name

parts_element

zorderd_elements

panel_elements

elements

panel_elements_as_json

new_t

new_z

validate_serial_list

validate_child

boost

element_count

destroy_with_elements