Sysml - Внутренняя блок-схема с GEF в Eclipse JAVA
В настоящее время я работаю над RCP-приложением, в котором я могу нарисовать внутреннюю блок-схему.
Может быть, большинство из вас знают "Папирус" по затмению. Этот инструмент моделирования предоставляет диаграмму внутренних блоков, но я думаю, что она немного перегружена, поэтому я решил сделать это самостоятельно.
Я нашел этот удивительный учебник: https://www.vainolo.com/tutorials/gef-tutorials/
Мне очень помогло то, как работает ГЭФ, но одно не объясняется. Как нарисовать порты. На картинке ниже вы можете увидеть, на что я способен.
Я пытаюсь изменить свое приложение, чтобы пользователь мог рисовать порты. Как на следующей картинке:
Кто-нибудь знает, как это делается в ГЭФ? Насколько я понимаю, это как-то связано с фигурой узла. У каждого узла есть фигура, которая отображается внутри диаграммы. Порт является продолжением края узла, и невозможно превысить край узла. Поэтому я думаю, что папирус использует другой способ, чтобы это произошло. Я пытался получить исходный код папируса, но ничего не нашел, ни документация об этом...
Я благодарен за каждое мнение.
1 ответ
Папирус использует GMF для создания этих портов. Вы можете проверить классы, содержащие BorderItem, например AbstractBorderItemEditPart.
Будьте осторожны, учебник, который вы читаете, написан для GEF3. Насколько я знаю, не существует "простого" способа управления портом в чистом GEF3.
В прошлом году в GEF произошли серьезные изменения: вы сможете легко создавать порт с помощью нового GEF4 API.