`

【学习】Eclipse官方Zest的两个例子(二)

阅读更多

紧接上文。

 

总结:

  1. 采用了JFace View的方式;
  2. 三个图形点都增加了图标;
  3. 三条线都加了Tooltip;
  4. 感觉三个图形点会根据图标大小字体大小自动调整图形点的大小;

 

代码:

/**
 * 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-3.7.1_m2e-extras_m2e.zip"这个压缩包集合了Maven、Eclipse、GEF-Zest和m2e-extras的关键组件,旨在提供一个完整的、集成了图形化开发和Maven构建的开发环境。通过这个集成,...

    maven与eclipse集成所需插件

    Maven和Eclipse是Java开发中的两个重要工具。Maven是一个项目管理和综合工具,主要用于构建、依赖管理和项目信息管理。而Eclipse则是一款强大的集成开发环境(IDE),广泛用于Java应用的开发。将Maven与Eclipse集成...

    GEF的Eclipse官方示例(源代码)

    **GEF(Graphical Editing Framework)**是Eclipse平台下的一个图形编辑框架,它为构建图形用户界面(GUI)提供了一种强大的工具,特别适用于创建复杂的图形编辑器。GEF主要用于设计和实现基于模型的图形编辑器,...

    maven插件安装以及eclipse安装maven插件的资料

    5. 创建或导入Maven项目:在Eclipse中,可以通过`File` -> `New` -> `Other` -> `Maven Project`来创建一个新的Maven项目,或者通过`Import`导入已有的Maven项目。 在Eclipse中使用Maven插件,你可以享受以下便利:...

    eclipse_gef_example.rar

    这个"eclipse_gef_example.rar"压缩包提供了一系列的例子,帮助开发者更好地理解和掌握GEF框架。以下是对每个部分的详细解释: 1. **org.eclipse.gef.examples.text** 这个部分主要展示了如何在GEF环境中处理文本...

    m2eclipse插件

    在提供的压缩包子文件中,有两个与Zest图形库相关的文件: 1. `org.eclipse.zest.core_1.3.0.v20110221-2050.jar`:这是Eclipse Zest核心库的一个版本,Zest是一个用于在Eclipse RCP应用程序中创建图形表示的库,...

    Eclipse Indigo 离线安装maven插件m2eclipse

    旧版本eclipse,比如indigo版本要安装maven,旧的在线安装方式已经失效,因为依赖的zest和m2eclipse的location url都...所以从已经安装这两个包的eclipse中分离出离线的安装包,拷贝到对应的features和plugins下即可。

    eclipse的GEF插件

    对于初学者,可以通过Eclipse官方文档、教程和示例项目来学习如何使用GEF。社区也有许多资源,如Stack Overflow、Eclipse forums等,可以寻求帮助和分享经验。 总结来说,Eclipse的GEF插件是一个强大的图形开发...

    eclipse及gef相关文档

    在给定的压缩包中,我们有两个与Eclipse插件和图形编辑框架(GEF)相关的PDF文档,这些文档是学习和理解Eclipse生态系统的重要资源。 首先,"Eclipse Plug-ins Third Edition Dec. 2008.pdf"这本书籍可能涵盖了...

    org.eclipse.gef

    【标题】"org.eclipse.gef" 是一个与 Eclipse 开发平台相关的插件,全称为 Graphical Editing Framework。这个插件是 Eclipse 社区为构建图形化用户界面(GUI)和图形编辑工具提供的一种强大框架。它允许开发者创建...

    Eclipse插件开发:GEF入门系列宝典

    Eclipse插件开发是软件开发领域中的一个重要环节,它允许开发者扩展Eclipse集成开发环境(IDE)的功能,以满足特定的开发需求。GEF(Graphical Editing Framework)是Eclipse平台的一部分,专为构建图形化编辑器而...

    eclipse常用插件安装

    1. **Subclipse**:这是一个用于Eclipse的Subversion客户端,使得用户可以直接在IDE内部管理版本控制系统中的代码。安装Subclipse,你可以访问其更新站点:http://subclipse.tigris.org/update_1.6.x。 2. **m2...

    eclipse gef 插件 最新版本

    - **示例代码**:官方仓库包含多个示例项目,可供学习和参考。 - **社区支持**:Eclipse社区有活跃的论坛和邮件列表,可以提问和交流经验。 7. **扩展与自定义** - **Zest图库**:作为GEF的一部分,Zest提供了...

    eclipse插件 GEF-SDK-3.4.0.zip

    GEF(Graphical Editing Framework)是Eclipse平台中的一个关键组件,专门用于构建图形化用户界面(GUI)和图形编辑器。本压缩包"GEF-SDK-3.4.0.zip"提供了GEF的软件开发工具包,帮助开发者在Eclipse环境中创建功能...

    Eclipse插件开发--gef开发指南与入门系列宝典

    在IT行业中,Eclipse是一个广泛使用的开源集成开发环境(IDE),尤其在Java开发领域中备受青睐。为了增强Eclipse的功能,开发者可以利用其强大的插件系统进行扩展。GEF(Graphical Editing Framework)是Eclipse提供...

    The Eclipse Graphical Editing FrameWork

    《Eclipse插件》一书由Dan Rubel和Eric Clayberg撰写,被认为是学习如何扩展Eclipse平台的权威指南。该书不仅帮助开发者理解Eclipse插件的构建和分发,而且强调了插件开发中的最佳实践。 Eclipse插件开发涉及到对...

    pom editor 插件

    压缩包中的两个文件是Eclipse插件依赖的库文件: - `org.eclipse.zest.core_1.3.0.v20110221-2050.jar`:这是Eclipse Zest图形库的核心组件,用于绘制图表和可视化数据。在POM Editor插件中可能用于展示项目依赖树...

    java eclipse gef

    10. **示例和实践**:博客可能会提供一个或多个实际例子,演示如何从头开始创建一个简单的图形编辑器。 压缩包内的文件"SubjectEditor"和"SubjectModel"可能代表了博主分享的代码示例,"SubjectEditor"可能是图形...

    Eclipse GEF Reference(Plugins&Examples;,with source)

    2. **Draw2D**: Draw2D是GEF的基础,它是一个二维图形绘制库,用于在Eclipse RCP应用程序中创建和管理图形元素。Draw2D提供了各种图形形状、布局算法和交互功能。 3. **ZEST**:ZEST(Zest Graph Visualization)...

    ECLIPSE GEF 5.4.0

    5. **Zest图渲染库**:ECLIPSE GEF 5.4.0可能集成了Zest库,这是一个用于绘制图表和图形网络的库,可以创建有吸引力的视觉表示。 6. **插件体系**:Eclipse本身就是一个插件化的开发环境,GEF也是通过插件形式集成...

Global site tag (gtag.js) - Google Analytics