紧接上文。
总结:
- 采用了JFace View的方式;
- 三个图形点都增加了图标;
- 三条线都加了Tooltip;
- 感觉三个图形点会根据图标大小字体大小自动调整图形点的大小;
代码:
/**
* This snippet shows how to use the IGraphContentProvider to create a graph with Zest.
* In this example, getElements returns 3 edges:
* * Rock2Paper
* * Paper2Scissors
* * Scissors2Rock
*
* And for each of these, the source and destination are returned in getSource and getDestination.
*
* A label provider is also used to create the text and icons for the graph.
*
* @author Ian Bull
*
*/
public class GraphJFaceSnippet2 {
static class MyContentProvider implements IGraphContentProvider {
public Object getSource(Object rel) {
if ("Rock2Paper".equals(rel)) {
return "Rock";
} else if ("Paper2Scissors".equals(rel)) {
return "Paper";
} else if ("Scissors2Rock".equals(rel)) {
return "Scissors";
}
return null;
}
public Object[] getElements(Object input) {
return new Object[] { "Rock2Paper", "Paper2Scissors", "Scissors2Rock" };
}
public Object getDestination(Object rel) {
if ("Rock2Paper".equals(rel)) {
return "Paper";
} else if ("Paper2Scissors".equals(rel)) {
return "Scissors";
} else if ("Scissors2Rock".equals(rel)) {
return "Rock";
}
return null;
}
public double getWeight(Object connection) {return 0;}
public void dispose() {}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
}
static class MyLabelProvider extends LabelProvider {
final Image image = Display.getDefault().getSystemImage(SWT.ICON_WARNING);
public Image getImage(Object element) {
if (element.equals("Rock") || element.equals("Paper") || element.equals("Scissors")) {
return image;
}
return null;
}
public String getText(Object element) {
return element.toString();
}
}
static GraphViewer viewer = null;
/**
* @param args
*/
public static void main(String[] args) {
Display d = new Display();
Shell shell = new Shell(d);
shell.setText("GraphJFaceSnippet2");
shell.setLayout(new FillLayout(SWT.VERTICAL));
shell.setSize(400, 400);
viewer = new GraphViewer(shell, SWT.NONE);
viewer.setContentProvider(new MyContentProvider());
viewer.setLabelProvider(new MyLabelProvider());
viewer.setLayoutAlgorithm(new SpringLayoutAlgorithm(LayoutStyles.NO_LAYOUT_NODE_RESIZING));
viewer.setInput(new Object());
shell.open();
while (!shell.isDisposed()) {
while (!d.readAndDispatch()) {
d.sleep();
}
}
}
}
效果图:
- 大小: 12.7 KB
分享到:
相关推荐
总结来说,"maven_eclipse_GEF-zest-3.7.1_m2e-extras_m2e.zip"这个压缩包集合了Maven、Eclipse、GEF-Zest和m2e-extras的关键组件,旨在提供一个完整的、集成了图形化开发和Maven构建的开发环境。通过这个集成,...
Maven和Eclipse是Java开发中的两个重要工具。Maven是一个项目管理和综合工具,主要用于构建、依赖管理和项目信息管理。而Eclipse则是一款强大的集成开发环境(IDE),广泛用于Java应用的开发。将Maven与Eclipse集成...
**GEF(Graphical Editing Framework)**是Eclipse平台下的一个图形编辑框架,它为构建图形用户界面(GUI)提供了一种强大的工具,特别适用于创建复杂的图形编辑器。GEF主要用于设计和实现基于模型的图形编辑器,...
5. 创建或导入Maven项目:在Eclipse中,可以通过`File` -> `New` -> `Other` -> `Maven Project`来创建一个新的Maven项目,或者通过`Import`导入已有的Maven项目。 在Eclipse中使用Maven插件,你可以享受以下便利:...
这个"eclipse_gef_example.rar"压缩包提供了一系列的例子,帮助开发者更好地理解和掌握GEF框架。以下是对每个部分的详细解释: 1. **org.eclipse.gef.examples.text** 这个部分主要展示了如何在GEF环境中处理文本...
在提供的压缩包子文件中,有两个与Zest图形库相关的文件: 1. `org.eclipse.zest.core_1.3.0.v20110221-2050.jar`:这是Eclipse Zest核心库的一个版本,Zest是一个用于在Eclipse RCP应用程序中创建图形表示的库,...
旧版本eclipse,比如indigo版本要安装maven,旧的在线安装方式已经失效,因为依赖的zest和m2eclipse的location url都...所以从已经安装这两个包的eclipse中分离出离线的安装包,拷贝到对应的features和plugins下即可。
对于初学者,可以通过Eclipse官方文档、教程和示例项目来学习如何使用GEF。社区也有许多资源,如Stack Overflow、Eclipse forums等,可以寻求帮助和分享经验。 总结来说,Eclipse的GEF插件是一个强大的图形开发...
在给定的压缩包中,我们有两个与Eclipse插件和图形编辑框架(GEF)相关的PDF文档,这些文档是学习和理解Eclipse生态系统的重要资源。 首先,"Eclipse Plug-ins Third Edition Dec. 2008.pdf"这本书籍可能涵盖了...
【标题】"org.eclipse.gef" 是一个与 Eclipse 开发平台相关的插件,全称为 Graphical Editing Framework。这个插件是 Eclipse 社区为构建图形化用户界面(GUI)和图形编辑工具提供的一种强大框架。它允许开发者创建...
Eclipse插件开发是软件开发领域中的一个重要环节,它允许开发者扩展Eclipse集成开发环境(IDE)的功能,以满足特定的开发需求。GEF(Graphical Editing Framework)是Eclipse平台的一部分,专为构建图形化编辑器而...
1. **Subclipse**:这是一个用于Eclipse的Subversion客户端,使得用户可以直接在IDE内部管理版本控制系统中的代码。安装Subclipse,你可以访问其更新站点:http://subclipse.tigris.org/update_1.6.x。 2. **m2...
- **示例代码**:官方仓库包含多个示例项目,可供学习和参考。 - **社区支持**:Eclipse社区有活跃的论坛和邮件列表,可以提问和交流经验。 7. **扩展与自定义** - **Zest图库**:作为GEF的一部分,Zest提供了...
GEF(Graphical Editing Framework)是Eclipse平台中的一个关键组件,专门用于构建图形化用户界面(GUI)和图形编辑器。本压缩包"GEF-SDK-3.4.0.zip"提供了GEF的软件开发工具包,帮助开发者在Eclipse环境中创建功能...
在IT行业中,Eclipse是一个广泛使用的开源集成开发环境(IDE),尤其在Java开发领域中备受青睐。为了增强Eclipse的功能,开发者可以利用其强大的插件系统进行扩展。GEF(Graphical Editing Framework)是Eclipse提供...
《Eclipse插件》一书由Dan Rubel和Eric Clayberg撰写,被认为是学习如何扩展Eclipse平台的权威指南。该书不仅帮助开发者理解Eclipse插件的构建和分发,而且强调了插件开发中的最佳实践。 Eclipse插件开发涉及到对...
压缩包中的两个文件是Eclipse插件依赖的库文件: - `org.eclipse.zest.core_1.3.0.v20110221-2050.jar`:这是Eclipse Zest图形库的核心组件,用于绘制图表和可视化数据。在POM Editor插件中可能用于展示项目依赖树...
10. **示例和实践**:博客可能会提供一个或多个实际例子,演示如何从头开始创建一个简单的图形编辑器。 压缩包内的文件"SubjectEditor"和"SubjectModel"可能代表了博主分享的代码示例,"SubjectEditor"可能是图形...
2. **Draw2D**: Draw2D是GEF的基础,它是一个二维图形绘制库,用于在Eclipse RCP应用程序中创建和管理图形元素。Draw2D提供了各种图形形状、布局算法和交互功能。 3. **ZEST**:ZEST(Zest Graph Visualization)...
5. **Zest图渲染库**:ECLIPSE GEF 5.4.0可能集成了Zest库,这是一个用于绘制图表和图形网络的库,可以创建有吸引力的视觉表示。 6. **插件体系**:Eclipse本身就是一个插件化的开发环境,GEF也是通过插件形式集成...