【问题标题】:One EditPart for all model views (in GMF/GEF)一个适用于所有模型视图的 EditPart(在 GMF/GEF 中)
【发布时间】:2009-06-03 18:26:21
【问题描述】:
我们正致力于创建基于 GMF 框架和工具的建模工具。我们要求允许用户在运行时添加视图(图形)并在他们的图表中使用它们。我们将使用 SVG 文件来表示图形。
在这种情况下,EditParts 和其他 GEF 相关类的正确结构是什么?我们正在考虑实现单个 GEF EditPart 类,该类将基于模型中存在的参数(SVG 文件的路径)创建适当的图形。到目前为止,它似乎没有工作。
必须有人以前已经做过类似的事情。到目前为止,谷歌搜索和 Eclipse 论坛都没有帮助...
【问题讨论】:
标签:
eclipse-gef
eclipse-gmf
【解决方案1】:
我们找到了一个(部分)解决方案。我们有一个元素,根据参数我们在其中创建一个子图形,它使用 SVG 文件(基于参数)。
在Figure的构造函数中调用如下测试代码:
ScalableImageFigure svg;网址网址;
如果(类型 == 1){ 网址 =
ArchitectureStudioDiagramEditorPlugin.getInstance().getBundle().getEntry(
"图标" + IPath.SEPARATOR + "shadow-box.svg"); } 其他 { 网址 =
ArchitectureStudioDiagramEditorPlugin.getInstance().getBundle().getEntry(
"图标" + IPath.SEPARATOR + "star.svg"); } SVG = 新的
ScalableImageFigure(RenderedImageFactory.getInstance(url),
真的,真的,真的);
this.add(svg);
现在我们需要弄清楚如何在 Palette 中拥有多个元素。
【解决方案2】:
正确的方法是在 figure 和 editpart 之间进行一对一的映射。绘画任务也应该留给人物。图片应该如何绘制,逻辑必须在图形内部而不是在编辑部分。
谢谢