В настоящее время я ищу решение следующей проблемы.
Мне нужно иметь возможность рисовать иерархическое дерево (например, синтаксическое дерево, которое в основном представляет собой график) поверх таблицы или другого выравниваемого компонента в представлении Eclipse RCP. Ячейки самого верхнего ряда в таблице действуют как листья. Рассмотрим следующий упрощенный пример:
S
/ \
/ \
N VP
| / \
| V NP
| | / \
| | D N
| | | |
-------------------
WORD|John|hit|the|ball|
CAT.| N | V | D | N |
Анализируемое предложение и сами значения анализа находятся в таблице, но могут быть помещены в любой другой выравниваемый элемент.
Теперь я хочу нарисовать дерево над столом. Для этого я хочу использовать каркас, который предоставляет алгоритмы компоновки. Деревья в реальности будут больше, и я хочу иметь возможность автоматически создавать макеты. Под «автоматическим макетом» я подразумеваю не разные «стили графиков» (график / дерево всегда будет горизонтальным и, как правило, более или менее «стилизованным», как в примере), но возможность упорядочить узлы и ребра так, чтобы они не не слишком сильно перекрываются и т. д. (было бы неплохо также выделить участки дерева / графика).
Zest
конечно, приходит на ум (видя, что эти деревья в основном графы), но, насколько я обнаружил , невозможно «привязать» ребра к ячейкам таблицы.
- Возможно ли что-то подобное в
GEF
?
- Знаете ли вы о других основах, которые могли бы достичь такого результата?
- Другие идеи, возможно, без использования таблицы?
Большое спасибо!