Я реализую панель Java JTree. Эта панель содержит построение TreeModel из набора древовидных структур (список списков композитов - разных классов). Я получаю эту структуру данных из внешних реализаций jar на основе набора интерфейсов, которые я определил.
Триоды содержат флажок, который пользователь может установить, чтобы указать, что проверенный узел и все дочерние узлы должны стать «активными», то есть объекты, представленные узлами, должны что-то делать, например, получать данные из базы данных.
Треноды также могут быть выбраны без их «активации», то есть без флажка.
Кроме того, другие части программы могут также переключать состояние активации объектов модели данных. Таким образом, модель данных, из которой построена древовидная модель, является источником состояния активации. Это должно быть отражено в древовидном представлении, динамически (не) устанавливая флажок.
Теперь, как мне реализовать это целое? Кто должен быть слушателем для каких изменений?
Теперь у меня есть все классы, которые находятся в узлах, выходящие из абстрактного класса, который содержит поле активации. Это настоящий источник данных. Когда это поле изменяется, все подписанные слушатели (EventListener) должны быть уведомлены, включая флажки.
У меня также есть TreeSelectionModel, которая основана на TreeSelectionModel по умолчанию, но расширена функциональностью, чтобы проверить, нужно ли проверять детей / родителей.
Возможно, мои вопросы не совсем понятны, но и этот сложный кусок кода. Надеюсь, что вы можете помочь.