JAVA Applet 实现工作流设计器
很久没有更新博客了,不是偷懒,而是去年一年的时间都在编写一个快速JAVA开发框架ARK,终于有所小成,才有了闲情逸致没事写点小玩意儿,JAVA Swing自己很少关注,Applet也是如此,从学习Swing和Applet到写出这东西只花了2天时间,算是一些自己的学习心得和成果,希望各位看客多多交流,虽然Applet和Swing不是我工作的重点,偶尔当消遣了。
?
?
?
言归正传,这是一个工作流系统中的流程设计器,整个设计完全面向接口,所以有比较好的扩展性,小弟我水平有限,一些功能就没有加上,有兴趣的XD可以完善这些代码(其实大部分功能都已经实现了,包括流程图路径验证,只是现在只能绘制流程生成XML,没有反向去实现将XML生成流程图),可能自己想起来会再把他翻出来改改,在某个时间将图形转换成HTML能够直接在网页上显示,为什么这么干,你懂得!!
?
?
强调一下,NodeButtonSupport是所有节点的抽象类,如果希望扩展节点类型的XD在增加类型的时候一定别忘了继承他,里面很多算法我都已经实现好了,当然还有两个接口。
package com.applet.flows;import java.awt.dnd.DropTargetListener;import java.util.Collection;/** * 流程节点接口,用于处理流程的节点 * * @author 熊浩华 - xionghh * * 2011-3-10:上午10:02:53- */public interface INodeButton extends DropTargetListener,IFlow {/** * 初始化节点对象 * @param id 对象ID */public void init(int id);/** * 某个节点拖入,是否允许他和你进行链接 * @param button 发起链接的对象 * @return 判断是否允许链接,返回true表示允许,false表示不允许操作 */public boolean link(INodeButton button);/** * 通知节点,你被拖动到某个节点上,需要你和他进行链接 * @param button 需要链接的对象 * @return 允许链接返回true,不允许链接返回false */public boolean report(INodeButton button);/** * 获取对象ID * @return 对象ID */public int getID();/** * 添加一个父对象 * @param nb */public void addParent(INodeButton nb);/** * 添加一个子对象 * @param nb */public void addChild(INodeButton nb);/** * 获取所有子对象 * @return */public Collection<INodeButton> getChilds();/** * 获取所有父对象 * @return */public Collection<INodeButton> getParents();}?
INodeButton是所有节点的抽象接口,其实很多方法都是想到的时候补上的,开始打算写这个东西的时候没有想把他做成什么样,就当玩票,没仔细去对接口进行详细的设计,很粗略的就描绘了一下。所以看起来有点似是而非。
?
?
最后说一下Demo,压缩包里有tomcat的工程目录,XFLow直接Copy到tomcat下的webapps里就能运行,里面两个包flows.jar和dom4j-1.6.1.jar是签名过的,否则无法当成Applet运行,源码在src里,修改代码后想要在Applet测试通过记得打成包然后对包进行签名。
?
PS:呵呵,老规矩,CSDN(最近穷疯了,分不够了,希望各位给小弟我捧个场)
?
?
?
?
?下载地址 : http://download.csdn.net/source/3082444
?