JFace TreeViewer с начальным расширением для определенных типов элементов

#swt #jface

#swt #jface

Вопрос:

Я хочу установить некоторые элементы TreeViewer как расширяемые по умолчанию. Возможно ли это?

Ответ №1:

TreeViewer предоставляет несколько методов, которые вы могли бы использовать в зависимости от ваших требований:

  • setExpandedElements(..)
  • setExpandedState((..)
  • setExpandedTreePaths(..)
  • setAutoExpandLevel(..)

Комментарии:

1. Привет, я не могу использовать setExpandedElements, потому что для этого метода требуются конкретные объекты экземпляра, которые находятся в дереве, которых у меня нет при компиляции. Также пути к деревьям генерируются во время выполнения, у меня нет доступа к ним во время компиляции. Мне понадобилось бы что-то вроде setExpandedElementsType (className)

2. Такого метода не существует. Я предполагаю, что у вас есть доступ к модели во время выполнения? Почему бы вам не выполнить итерацию по каждому объекту в модели, проверить его тип и затем вызвать setExpandedState(..) там, где это уместно?