Eclipse的flow插件开发
工作需要,让研究eclipse的flow插件开发,通过搜索资料发现在05-06年期间eclipse插件开发曾经火过一段时间,很多优秀的教程都是在那时出现的.不过现在貌似已经没落了.想想也是eclipse插件的整个体系比较庞大,同时也有很多优秀框架.但是学插件干嘛呢?一般公司不会用,除非专业出这样产品的公司,这样算下来市场的需求量确实是少之又少, 同事又缺乏像样的教程和书籍(英文的很多,中文的稀少……)。可是公司既然这样要求了也只有硬着头皮上了。下面介绍正文:
前面可以参见《八进制》的博客
http://bjzhanghao.cnblogs.com/archive/2005/02/19/106000.html
05年的教程,不得不说八进制写的很好.
实现了基本的添加,删除,拖拽,连线,属性显示等功能.但缺少非常关键的save与load方法(绘制的图像保存为xml,或图片,读取是回显上次编辑的内容)。
下面就将先实现save方法(将编辑后的东东保存为xml和png图片):
1.在实现GraphicalEditorWithPalette的类中找到doSave()方法,每次保存是都会调用该方法
2.要保存为图片,并且在本目录下,首先要获取本次打开的文件
IFile file =((IFileEditorInput)getEditorInput()).getFile();
File currentFile = file.getLocation().toFile();
String fileName = currentFile.getName();
String filePath = currentFile.getPath();
关于getEditorInput有这样一句解释:
当你在Resource Navigator里双击打开一个文件时,这个文件就和editor关联上了,因此可以通过editorInput得到文件。
3.保存为图片,添加export方法
public void export(GraphicalViewer viewer, String location, int format)
{
try
{
IFigure figure = ((AbstractGraphicalEditPart) viewer.getRootEditPart()).getFigure();
File file = new File(location);
if (file.exists())
{
if (!MessageDialog.openQuestion(null, "系统提示",
"该文件已经存在. 要重新覆盖它吗 ?"))
{
return;
}
}
else
{
file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(file);
if (figure instanceof Viewport)
{
// Reinit the figure
((Viewport) figure).setViewLocation(0, 0);
}
Dimension size = figure.getPreferredSize();
Image image = new Image(Display.getDefault(), size.width, size.height);
GC gc = new GC(image);
SWTGraphics graphics = new SWTGraphics(gc);
figure.paint(graphics);
ImageLoader loader = new ImageLoader();
loader.data = new ImageData[] {image.getImageData()};
loader.save(fos, format);
fos.close();
}
catch (Exception e)
{
//记录该异常
// ModelerPlugin.displayDialog(null, "An error occured during export. See the error log for more details.", IStatus.ERROR);
// ModelerPlugin.log(e);
}finally{
}
}
4.添加保存xml的方法xmlSave():
public void xmlSave(IProgressMonitor progressMonitor) {
editorSaving = true;
Platform.run(new SafeRunnable() {
public void run() throws Exception {
//以下存储xml文件
Document document = DocumentHelper.createDocument();
Element logicDiagramElement = document.addElement("LogicDiagram");
/*中间是你的xml*/
try{
OutputFormat format = OutputFormat.createPrettyPrint();
// IFile file = ((IFileEditorInput)getEditorInput()).getFile();
// final IFile file = (IFile) ((DiagramEditorInput)getEditorInput()).getFile();
IFile file =((IFileEditorInput)getEditorInput()).getFile();
File f = file.getLocation().toFile();
System.out.println("fileName:"+f.getName());
XMLWriter output = new XMLWriter(new FileOutputStream( f ), format);
output.write( document );
output.close();
} catch(IOException e){
System.out.println(e.getMessage());
}
getCommandStack().markSaveLocation();
}
});
editorSaving = false;
}
5.在doSave()中调用:
//保存为 xml
xmlSave(monitor);
//保存为图片export(getGraphicalViewer(),filePath+".png",SWT.IMAGE_PNG);
问题:保存xml使用的是dom4j这个外部jar,但是插件的寻包机制又和普通项目不同,所以需要处理一下:
a. 在项目下新建lib目录存放外部jar
b. MANIFEST.MF的Runtime页签,在右下角的classpath中添lib/dom4j-1.6.1.jar
c. 在左上角exported package中添加需要用到的包
d. 添加选中工程,在buildPath中添加lib中的jar
在当前工程目录下添加lib文件夹,将用到的第三方jar包放入lib文件夹中。在runtime右下角的classpath中添加/lib/*.jar,最后在runtime左上角的exported package中添加需要用到的包
- 大小: 32.5 KB
- 大小: 9.4 KB
分享到:
相关推荐
对于初学者而言,建议优先掌握Editor的使用,因为其提供了更完整的工作流支持。 #### 五、GEF编辑器的逐步开发 创建Editor后,接下来是对Editor进行定制化开发。这包括但不限于: - **自定义图形元素**:通过...
- **流程图编辑器**:设计工作流或业务流程时,GEF可以帮助构建图形化的流程表示。 - **UML建模工具**:支持创建和编辑类图、序列图等多种UML模型。 5. **扩展与自定义** - **Zest图表库**:作为GEF的一个扩展,...
它可以将不同服务组合成一个协调的工作流,便于管理和执行跨系统的业务操作。 3. **Eclipse插件**:GEF-SDK-3.4.1.zip内的“eclipse”文件很可能是Eclipse插件,使得开发者能够在Eclipse IDE内直接进行BPEL流程设计...
- **流程图**:流程控制图、工作流编辑器等。 - **网络拓扑**:网络设备配置和管理工具。 5. **开发流程** - **定义模型**:首先定义数据模型,描述编辑器将要处理的对象。 - **创建EditParts**:根据模型创建...
它提供了一组基础类和API,使得开发者可以快速地创建出交互式的图表和工作流编辑器。GEF支持拖放操作、连接线、缩放和平移等功能,为构建图形用户界面(GUI)提供了强大的支持。 VE插件是Eclipse的视觉编辑器,它是...
这种组合在开发图形化工作流、系统配置工具或者可视化数据管理系统时特别有用。 在实际应用中,开发者首先会使用EMF创建数据模型,定义数据对象的结构和关系。然后,通过SDO Runtime将这些模型映射到实际的数据源,...
在开发 Web 流程设计器之前,公司的工作流产品的流程设计器是 Eclipse 插件形式的,流程设计器的定位是给开发人员和客户的 IT 人员使用的。但是,客户希望部门秘书也可以自定义流程。这就出现了问题,因为部门秘书...
基于图形编辑软件JaWE(Java工作流程编辑器)的功能以及对自定义XML方言的必需解释(Eclipse无法解释),dotSource GmbH开发了解释工作流工具。 这样可以节省时间,简化应用程序,从而节省成本。 工作流工具是IBM...
这个框架允许开发者记录和重播用户操作,为用户提供撤销/重做功能。通过命令模型,开发者可以定义命令,绑定它们到菜单、工具栏按钮或者快捷键,从而增强Eclipse的用户交互性。 文档《实现内容助理(1. 自动完成)....
4. **Properties Editor**: 该插件专为编辑Java属性文件设计,支持Unicode格式保存,使属性文件管理更加方便。 5. **Colorer**: 提供了对上百种文件类型的语法高亮显示,增强了代码阅读体验。 6. **XMLBuddy**: ...
### jBPM5安装与配置详解 #### 一、引言 jBPM5是一款开源的工作流和业务流程管理(BPM)框架,基于...通过以上步骤,用户可以顺利完成jBPM5的安装和基本配置,为进一步探索和利用其强大的工作流功能打下坚实的基础。
在本文档中,我们将探讨如何使用Eclipse集成开发环境(IDE),配合Lomboz插件、Tomcat服务器和Jboss应用服务器来搭建一个完整的Java EE开发环境。这是一份详细的步骤指南,旨在帮助开发者顺利配置所需环境。 首先,...
Eclipse平台入门通常包括了解和熟悉其工作区(workspace)和项目(project)的概念,学习如何进行项目配置和管理,掌握使用Eclipse提供的各种视图(view)和透视图(perspective),以及如何使用代码编辑器、调试器...
VE-Visual Editor则为用户提供了一个可视化的编辑器来绘制和编辑图表。 ##### 2. lomboz J2EE, JSP, EJB - **下载地址**:[http://forge.objectweb.org/projects/lomboz]...
- **GEF (Graphical Editor Framework)**:GEF 提供了一组工具和组件,用于创建复杂的图形编辑器,如流程图编辑器等。 - **UML2**:UML2 插件为 Eclipse 提供了 UML 建模的支持。 - **VE (Visual Editor)**:VE 是一...
- **PropertiesEditor**:用于编辑Java属性文件,并可自动保存为Unicode格式。 - **ColorerTake**:为多种文件类型提供语法高亮。 - **XMLBuddy**:专门用于编辑XML文件。 - **CodeFolding**:增强代码折叠功能。 - ...
JBPM (Business Process Management) 是一款开源的工作流引擎,用于创建、管理和执行业务流程。本文档旨在提供一个详尽的JBPM5安装步骤指南,包括安装所需的先决条件、安装过程及其注意事项。 #### 一、先决条件 ...