问题标签 [eclipse-gef]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1289 浏览

java - 如何在 GEF 中选择子图形?

我使用 Logic 示例作为参考,将端口作为子项添加到矩形 Figure/EditPart/Model 中。端口 Figures 按预期显示,调试显示 EditParts 和 Models 已创建并添加到父级,但子级不可选择。

在子项的 EditPart 中,我重写 isSelectable() 以返回 true。

在父级中,我尝试重写 createChildEditPolicy() 以返回 NonResizableEditPolicy,方法是颠倒使儿童在此处不可选择的建议,但它似乎什么也没做。如果我在孩子的 EditPart 中将 NonResizableEditPolicy 安装为 SELECTION_FEEDBACK_ROLE,则最初在创建时选择它,但以后无法选择。

此外,当单击子图形时,也不会选择父图形 - 这是一个死点,单击不会更改选择。

我是否遗漏了一些使它可以选择的东西,或者可能有其他东西在干扰?

0 投票
1 回答
1172 浏览

java - GEF的编辑数字如何在外界下降?

经过长时间的调查和阅读这个问题,我仍然没有为我的问题找到一个“好的”解决方案。

我有一个 Gef 编辑器,我想让用户将图形(== 模型对象)从这个编辑器拖放到我的视角中可用的其他自定义视图。

在我的 GEF 编辑器图形画布上添加带有我自己的拖动传输的 DragSource 允许这样做。但作为副作用,我不希望这种副作用,这禁用了使用拖放在编辑器内部移动图形的可能性。

经过调查,我在 eclipse 论坛上找到了这个帖子,但这个解决方案对我来说是不可接受的。因此,我进行了更深入的调查并得出了以下纯 SWT 片段,该片段显示一旦添加了拖动源,就不再触发 MouseMove 事件(gef 用于支持在编辑器内拖动的事件):

我想这是从 man SWT 的角度来看的正常行为。你确认吗?

此外,我真的在寻找这个问题的解决方案,除了在 Eclipse 论坛上提出的一个解决方案,即只有在满足给定条件(例如按下 Shift)时才激活我的 DragSource(这是通过设置事件在 DragSourceListener.dragStart 方法中完成的.doit 为假)

欢迎任何帮助、建议和意见。

提前致谢,

马努

0 投票
2 回答
614 浏览

java - Eclipse 插件 - 节点和连接 + 代码生成

我想创建一个建模决策树/图表的 Eclipse 扩展。实际建模将使用图形界面(节点、连接等)完成。我希望这个插件能够根据节点及其互连生成代码。我已经准备好了基本的模型课程;但是,我的图表非常大,仅通过代码很难管理所有连接。我想我会使用 GUI 构建整个图表。当我双击一个连接时,我希望能够覆盖它的一些方法,从而创建一个匿名子类。

我发现GEF在类似的插件中使用。我的目标插件在 GEF 中是否“可行”?你有什么建议吗?

0 投票
1 回答
68 浏览

eclipse-gef - 如何在eclipse中使用图形编辑框架实现画面

我想在提供的链接中实现 GUI 代表http://www.eclipse.org/gef/。我想要那种视图作为拖放。是否有任何资源可用于获得这种屏幕。我已经尝试了可用于 Zest 的片段。但我的目标是将按钮拖放到编辑器窗口作为 GUI 生成器。

0 投票
1 回答
540 浏览

eclipse-gef - 如果文件重命名,如何更新 GEF 编辑器?

如果文件重命名,如何更新 GEF 编辑器?

这适用于文本编辑器。例如在 Eclipse 中转到 Navigator,在编辑器中打开文件 HelloWorld.java,在 Navigator 中将 HelloWorld.java 重命名为 HelloWorld2.java。请注意,编辑器现在已更新,其标题为“HelloWorld2.java”。

为此,Eclipse 创建侦听器并将其添加到 ITextEditor: IElementStateListener fElementStateListener= new ElementStateListener() (handles elementMoved and calles setInput((IEditorInput) movedElement)) ITextEditor.getDocumentProvider().addElementStateListener(fElementStateListener);

我想我需要在 org.eclipse.gef.ui.parts.GraphicalEditor 中做同样的事情,但我不知道如何导致 graphicsEditor,没有 documentProvider。

更新:

GEF 提供了三个示例。其中之一是逻辑示例: http ://wiki.eclipse.org/GEF_Developer_FAQ#How_do_I_Run_the_Logic_Example.3F

在 LogicEditor 类中,内部类 ResourceTracker 是关键。

0 投票
1 回答
680 浏览

eclipse-gef - 如何在 GEF 面板中添加/编辑标签名称

我在 GEF eclipse 中使用 Panel 作为图形。现在双击我想添加一个标签,如其他正常示例所示。如何实现。

0 投票
1 回答
575 浏览

eclipse - 如何为 GEF Eclipse 创建可编辑组件

我想为 GEF Eclipse 创建一种组件类型的文本框。我能够创建组件但无法使其可编辑。如何达到预期。

0 投票
1 回答
1227 浏览

java - GEF/draw2d 线路路由算法

我正在使用 GEF 和 Draw2d 创建图表。

我有一个要展示的 3 级结构,这意味着:

RootEditPart
/
Level1EditPart
/
Level2EditPart
/
Level3EditPart

其中 Level2 有多个孩子。

我想在 Level3EditParts (在 Level2 容器内)之间绘制连接。

我感到困惑的是我在哪里为这些连接设置线路路由算法,以及它如何通过父/子 EditPart/Figure 层次结构继承。

理想情况下,我想使用 ShortestPathConnectionRouter。我尝试通过使用我的 Level2EditPart 中的图将其设置为连接层的连接路由器来使用它。我的理解是,它会使用这个数字的孩子作为要避开的障碍物(所以它不会画线穿过我的其他 Level3,而是尽量避开它们)。

但是,它不是那样工作的,当我调试 ShortestPathRoutingAlgorithm 中的代码时,它使用一个坐标系统作为连接图(我猜它是连接层的坐标系统),另一个用于Level3 Figure(其父级的坐标系。Level2 Figure)。这意味着当它与我的一个 Level3 相交时它永远不会成功,所以永远不要试图避开它们。

所以我要么误解了 ShortestPathConnectionRouter 的功能,要么我设置不正确。谁能给我一些帮助?

0 投票
2 回答
3186 浏览

eclipse - 如何创建带有单独标签的 GEF 图?

我一直在尝试创建一个由两部分组成的 Draw2D Figure - 一个中央可调整大小的形状,例如圆形或矩形,以及一个用于底部的可编辑标签。此类图形的一个示例是您在计算机桌面上看到的图标/标签。

第一次尝试是创建一个包含两个子子图形的父容器图形 - 一个放置在中心的形状图形和一个放置在底部的标签。它还实现了 HandleBounds,以便选择和调整大小仅发生在上部形状子图上。事实证明,这不是一个可行的解决方案,因为随着标签随着文本的增加而变宽,主要的父图形以及中心形状的图形也会变宽。换句话说,整个父图形与子标签图形一样宽。

我正在寻找的是一个保持形状图形大小但允许标签图形宽度独立增长的图形。与桌面图标完全相同的行为。

0 投票
1 回答
190 浏览

eclipse-gef - 如何从 Eclipse GEF 模型生成 java 代码

我有 GEF WYSIWYG 模型,但现在我想像 GWT 那样生成 java 代码。如何实现这一点。是通过 EMF 还是其他工具。