在一般的gef编辑器中需要采用向导页,生成一个格式的gef编辑文件。例如JBPM中创建流程图过程。
重点:
流程文件在编辑器中打开:
流程文件的保存:
package com.easyway.plugin.gef.diagram.dev.ui;
import java.io.InputStream;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
import org.eclipse.ui.part.FileEditorInput;
import com.easyway.plugin.gef.diagram.dev.model.Diagram;
/**
* 添加向导页
* @author longgangbai
*
*/
publicclass DiagramCreationWizard extends Wizard implements INewWizard {
//向导页对象
private WizardPage wizardPage;
//选中对象
private IStructuredSelection selection;
//工作平台
private IWorkbench workbench;
//----------------------------------------------------------------
// Abstract methods from IWorkbenchWizard
@Override
publicvoid init(IWorkbench workbench, IStructuredSelection currentSelection) {
this.workbench = workbench;
this.selection = currentSelection;
}
//-------------------------------------------------------------
// Overridden from Wizard
@Override
publicvoid addPages() {
// by default the superclass doesn't have any pages - here we add one
this.wizardPage = new WizardPage(this.workbench, this.selection);
addPage(this.wizardPage);
}
//-------------------------------------------------------------
// Abstract methods from Wizard
@Override
publicboolean performFinish() {
returnthis.wizardPage.finish();
}
}
/**
* 添加一个向导页面
* (备注:此处给eclipse系统新建的基础上添加相关的向导继承WizardNewFileCreationPage)
* @author longgangbai
*
*/
class WizardPage extends WizardNewFileCreationPage {
private IWorkbench workbench;
public WizardPage(IWorkbench aWorkbench, IStructuredSelection selection) {
super("自定义流程向导", selection);
this.setTitle("创建自定义流程文件");
this.setDescription("创建自定义流程文件");
this.workbench = aWorkbench;
}
publicboolean finish() {
//创建一个新文件中
IFile newFile = createNewFile();
if (newFile == null)
returnfalse; // ie.- creation was unsuccessful
// Since the file resource was created fine, open it for editing
// iff requested by the user
try {
IWorkbenchWindow dwindow = workbench.getActiveWorkbenchWindow();
IWorkbenchPage page = dwindow.getActivePage();
if (page != null)
{
page.openEditor(new FileEditorInput(newFile),DiagramEditor.ID);
}
}
catch (org.eclipse.ui.PartInitException e) {
e.printStackTrace();
returnfalse;
}
returntrue;
}
//---------------------------------------------------------------
// Overridden from WizardNewFileCreationPage
@Override
publicvoid createControl(Composite parent) {
super.createControl(parent);
this.setFileName("model.river");
setPageComplete(validatePage());
}
@Override
protected InputStream getInitialContents() {
// by default the superclass returns null for this
Diagram diagram = new Diagram();
InputStream istream = null;
try {
istream = diagram.getAsStream();
}
catch (Exception e) {
e.printStackTrace();
}
return istream;
}
}
关于编辑器向导的plugin.xml配置如下:
<extensionpoint="org.eclipse.ui.newWizards">
<categoryid="com.easyway.plugin.gef.diagram.dev"name="diagram"/>
<wizardid="com.easyway.plugin.gef.diagram.dev.wizard.new.file"
name="River Model"
icon="icons/river.gif"
category="com.easyway.plugin.gef.diagram.dev" class="com.easyway.plugin.gef.diagram.dev.ui.DiagramCreationWizard">
<description>Wizard for creating a new River model.</description>
<selectionclass="org.eclipse.core.resources.IResource">
</selection>
</wizard>
</extension>
相关推荐
- **创建编辑器项目**: 使用Eclipse的插件开发向导创建一个新的GEF编辑器项目。 - **定义模型**: 使用EMF生成模型类,并定义图形元素的数据结构。 - **实现视图和编辑器**: 根据模型生成视图和编辑器的初始代码,...
GEF的开发指南详细讲解了如何使用该框架进行图形编辑,内容涵盖了从创建RCP(Rich Client Platform)插件开始,到创建图形编辑器、与图形的交互、撤销/回复操作、缩放、快捷键设置、大纲视图、鸟瞰视图、环境菜单、...
Eclipse GEF(Graphical Editing Framework)是一款强大的图形编辑框架,用于在Eclipse环境中开发图形化用户界面,尤其是用于创建可视化的建模工具和流程编辑器。本DEMO旨在指导开发者如何利用GEF来开发Eclipse插件...
同时,Eclipse的插件系统使得开发者能够无缝地集成GEF编辑器到现有的Eclipse工作台环境中。 总的来说,"GEF-ALL-3.9.100.zip" 提供了一个完整的开发环境,帮助开发者利用GEF框架构建图形编辑工具,适用于各种领域,...
GEF(Graphical Editing Framework)是Eclipse提供的一种图形编辑框架,专为创建富图形用户界面和模型编辑器而设计。本指南将深入探讨Eclipse插件开发中的GEF框架,帮助开发者快速入门并掌握相关知识。 首先,让...
GEF(Graphical Editing Framework)是Eclipse平台提供的一套用于构建图形编辑器的工具集。它支持复杂的图形编辑需求,如图表绘制、节点连接等功能,并能够与Eclipse的其他组件(例如Modeling Frameworks)无缝集成...
在本压缩包 "GEF-SDK-3.1.zip" 中,包含的是 GEF 的 3.1 版本的 SDK,为开发者提供了在 Eclipse 环境下进行 web 开发时构建图形化编辑器的工具集。 **1. GEF 框架介绍** GEF 为开发者提供了模型-视图-控制器(MVC)...
- **步骤三**: 将`Editor`类与主应用程序关联起来,以便能够在应用中打开并使用该编辑器。 **4. 创建src包结构** - **建议**: 按照MVC(Model-View-Controller)模式组织代码,将模型、视图和控制器分离开来。 - `...
GEF适用于需要通过图形界面来表示和编辑复杂数据模型的应用程序。这些应用程序包括但不限于: - **软件工程工具**:例如用于设计数据库结构、UML图、系统架构等。 - **配置管理工具**:用于可视化配置复杂的系统...
Eclipse HTML编辑器插件主要提供以下功能: - HTML/JSP/XML/CSS/DTD/JavaScript语法高亮 - HTML/JSP预览 - JSP/XML验证 - HTML标签,基于DTD的XML,以及JSP标签的内容输入补全 - HTML/JSP/XML创建向导 包含GEF-...
最后,"把GEF editor集成到Multi-page editor中.txt"和"GridLayoutFactory和GridDataFactory.txt"这两份文本文件,分别介绍了如何将GEF编辑器集成到多页编辑器中,以及如何使用GridLayoutFactory和GridDataFactory这...
第24章“GEF实例”进一步深化了对GEF的理解,通过具体的示例展示如何设计和实现GEF编辑器。 第21章“Draw2d”是GEF的一部分,专注于2D图形绘制,提供了创建图形用户界面的基本元素,如线条、形状和文本。 第22章的...
8. **第22章:GEF介绍与实现** - Graphical Editing Framework (GEF) 是Eclipse中的一个组件,用于构建图形化编辑器。本章可能介绍了GEF的基本概念,以及如何使用它来开发可视化的模型编辑器。 9. **第23章:插件...
9. **第20章 GEF介绍与实现**:GEF(Graphical Editing Framework)是Eclipse中的图形编辑框架,用于创建图形化编辑器。本章可能涉及了GEF的基本概念,以及如何利用它来构建可视化的编程或设计工具。 10. **第22章 ...
而GEF则是一个用于构建图形编辑器的框架,允许开发者创建自定义的图形用户界面。这两个框架相结合,使得VE能够为用户提供强大的可视化编辑能力。 **3. 配置Eclipse以使用Visual Editor** 要在Eclipse中启用Visual ...
它需要JDT和GEF。 它具有以下功能。 HTML / JSP / XML / CSS / DTD / JavaScript照明 HTML / JSP预览 JSP / XML验证 内容辅助(HTML标记/属性,基于DTD和JSP taglib的XML等) 创建HTML / JSP / XML文件的向导 ...
【GEF(Graphical Editing Framework)】是Eclipse的图形编辑框架,为开发人员提供了一套构建图形用户界面和图形编辑器的工具。GEF支持自定义图形表示和交互操作,常用于创建数据建模、流程图、网络拓扑等领域的可视...
GEF和Draw2D用于创建图形化插件, Draw2D负责对象和连接器的绘制,而GEF处理编辑器命令、工具条、拖放和打印等功能。在开始开发图形化插件前,需要下载并解压GEF-SDK-3.0.1.zip到Eclipse目录。 **PDE配置**: 插件...
Visual Editor (VE) 是一款用于Eclipse平台的图形化编辑器插件,它能够帮助开发者更直观地进行界面设计工作。本文将详细介绍安装VE插件的过程中需要注意的关键点,特别是针对Eclipse 3.5版本与VE 1.4版本的兼容性...