ГЭФ OutlineView
Я построил GEF-редактор (например, OPM-редактор), и мне нужна ваша помощь с OutlineView, потому что моя попытка не работает. Я создал ContentOutlinePage как пример GEF в ShapeEditor.
Я возвращаю свой новый OutlinePage в getAdapter, когда тип IContentOutlinePage.class. Затем я вызываю createControl и setContent (модель), есть ошибка. Я не могу установить addPropertyChangeListener, моя модель не предназначена для этого слушателя
Решение в ShapeEditor кажется очень сложным.
Разве нет простого решения для ContenToutlinePage или есть кто-нибудь решение с этим редактором OPM?
Спасибо за нашу помощь
1 ответ
См. ShapesEditor#createControl(Composite parent), строка 355: getViewer(). SetEditPartFactory(new ShapesTreeEditPartFactory());
Это, вероятно, то, для чего вам не хватает правильной реализации. Вам нужно будет реализовать собственную фабрику EditPart для создания собственных частей редактирования дерева (подкласс GEF AbstractTreeEditPart). Методы ShapeTreeEditPart #activate() и #deactivate() добавляют / удаляют слушателей изменения свойств. Эти слушатели должны реагировать на изменения модели (например, изменилась метка имени), чтобы вы могли зарегистрировать там своих собственных слушателей изменения модели или оставить метод пустым, если вам не нужны изменения в модели.