论坛首页 Web前端技术论坛

[源码]XiorkFlow:用JavaScript写的工作流设计器

浏览 95010 次
该帖已经被评为良好帖
作者 正文
   发表时间:2007-01-04  

这是一个用JavaScript写的WorkFlow的设计工具,算是JavaScript MVC的练习。自己标榜为真的具有OO、MVC思想的JavaScript。最值得说的是,我真的将“象Java一样写JavaScript”用到了自己的实际开发中。

公布源码,或许有些喜欢JavaScript的人用得到。

另外,做为Server,使用Spring framework。
基本环境:
JDK1.5,Tomcat5.5,IE5.5+(因为基于VML,所以仅IE可以用,如果需要,也可以方便重新改成其他的,例如svg)
如果你使用“XiorkFlow”做为WebRoot名,不需要做更改。
主要的js源码目录:\XiorkFlow\WebRoot\XiorkFlow\src
事实上,如果您不想要保存数据,并不需要特定的服务器。

JavaScript统计:
程序行总数: 6084 (共82个文件)
代码行总数: 4374 (71.75%)
注释行总数: 1130 (18.54%)
空白行总数: 592 (9.71%)



预览:http://www.xio.name/XiorkFlow



网站下载(超过1m):

XiorkFlow文档.rar


文档:
http://www.xio.name/download.htm?path=/xiorkflow/xiorkflow.rar

本地下载

 

文档

 

  • XiorkFlow.rar (271 KB)
  • 描述: 未包括lib的源码: lib: commons-logging jdom log4j spring
  • 下载次数: 5037
   发表时间:2007-01-04  
没见过,下下来去看看!
0 请登录后投票
   发表时间:2007-01-04  
挺好的!我们的业务中有不少这样的需求!
学习ing
0 请登录后投票
   发表时间:2007-01-04  
考虑阅读代码的方便,上传部分相关文档。
本文档书写时过于仓促,如有错误,还请见谅。
  • XiorkFlow文档.rar (234.3 KB)
  • 描述: XiorkFlow概要设计 XiorkFlow详细设计
  • 下载次数: 9076
0 请登录后投票
   发表时间:2007-01-05  
我们的系统是客户自己定制流程的。正好把这部分那来用一下
0 请登录后投票
   发表时间:2007-01-05  
看了一下,可能有一些值得改进的东西,如果想写的更象java的话:
1 举个例子
这是XiorkFlow\WebRoot\XiorkFlow\src\name\xio\util\String.js的部分代码:
String.prototype.contains = function (A) {
    return (this.indexOf(A) > -1);
};
String.prototype.equals = function () {
    for (var i = 0; i < arguments.length; i++) {
        if (this == arguments[i]) {
            return true;
        }
    }
    return false;
};
String.prototype.startsWith = function (A) {
    return (this.substr(0, A.length) == A);
};
可以写成这样
Util.String = function() {};
Util.String = Class.create();
Util.String.prototype = {
initialize : function() {
this.buf = new Array();
this.length = 0;
},

contains : function() {
........
},

startsWith : function() {
.....
},
};
当然必须引用Prototype.js.
2 XiorkFlow\WebRoot\XiorkFlow\js\XiorkFlowWorkSpace.js
  如果把每个js文件看成一个java类的话.类的组织(import AAA.BBB;)
  和继承应该和java一样;即一个js本身只会到入我所需要的其他js
  这个JSAN可以解决的.
 
0 请登录后投票
   发表时间:2007-01-05  

qianjinfu 写道
看了一下,可能有一些值得改进的东西,如果想写的更象java的话:
1 举个例子
这是XiorkFlow\WebRoot\XiorkFlow\src\name\xio\util\String.js的部分代码:
String.prototype.contains = function (A) {
    return (this.indexOf(A) > -1);
};
String.prototype.equals = function () {
    for (var i = 0; i < arguments.length; i++) {
        if (this == arguments[i]) {
            return true;
        }
    }
    return false;
};
String.prototype.startsWith = function (A) {
    return (this.substr(0, A.length) == A);
};
可以写成这样
Util.String = function() {};
Util.String = Class.create();
Util.String.prototype = {
initialize : function() {
this.buf = new Array();
this.length = 0;
},

contains : function() {
........
},

startsWith : function() {
.....
},
};
当然必须引用Prototype.js.
2 XiorkFlow\WebRoot\XiorkFlow\js\XiorkFlowWorkSpace.js
  如果把每个js文件看成一个java类的话.类的组织(import AAA.BBB;)
  和继承应该和java一样;即一个js本身只会到入我所需要的其他js
  这个JSAN可以解决的.
 


谢谢你的建议

关于1:
事实上,我并不想建立新的一个String类,我在String.js中所做的是对String原型(prototype)添加新的方法,我更加希望用户能够直接对环境中的String对象使用新的功能,没有必要浪费JS的这种特性(当然,这种情况对于有些系统级别的对象接口所获得的对象是不是同样具备prototype新添加的能力,我现在还不能很清楚知道底层是不是支持)。
对于“象Java一样写JavaScript”,我是想让它可以不抵触 OO地进行开发,而且一些类上很象JDK中的API,当然并不需要外貌完全象,但至少架子是象的:)


关于2:
我刚才稍微看了一下JSON,它是不是Apache的插件哦?
这样对于我,就不是很有诱惑力了,我想建立的是平台无关的。
关于import,我觉得这个没办法很好解决,我现在的办法是:那个XiorkFlowWorkSpace.js仅仅是项目开发的时候使用,而项目部署的时候,则把需要的所有js都放到一个文件中,并且混淆。。。。
0 请登录后投票
   发表时间:2007-01-05  


xio 写道
(当然,这种情况对于有些系统级别的对象接口所获得的对象是不是同样具备prototype新添加的能力,我现在还不能很清楚知道底层是不是支持)


只要在HTML引用都是可以的
<script type="text/javascript" charset="utf-8" src="../prototype.js"></script>
<script type="text/javascript" charset="utf-8" src="../JSAN.js"></script>


xio 写道
我刚才稍微看了一下JSON,它是不是Apache的插件哦?
这样对于我,就不是很有诱惑力了,我想建立的是平台无关的。
关于import,我觉得这个没办法很好解决,我现在的办法是:那个XiorkFlowWorkSpace.js仅仅是项目开发的时候使用,而项目部署的时候,则把需要的所有js都放到一个文件中,并且混淆。。。。


想象一下如果完全用JS写前台,开发系统的话,良好的JS模块组织和面向对象的写法个人认为是很关键的.

JSAN : http://www.openjsan.org/.它是一个组织js的东东

另:很佩服你的JS功力和毅力。以后多交流一下
0 请登录后投票
   发表时间:2007-01-05  
以前我在写某个系统的时候,我对Array原型添加新的方法,但是从某个环境对象获得到的数组对象的时候(例如环境提供的xml接口),竟然没有办法认到该方法(好像是某些个别的接口,大部分可以),我后面并没有继续测试,所以不是很能确认。按照js的文档应该不会才对。

引用

想象一下如果完全用JS写前台,开发系统的话,良好的JS模块组织和面向对象的写法个人认为是很关键的.

同意,对于那个import,我非常渴望能有语言上的直接支持。
我上面提到的解决办法只是一种折中后的勉强使用的。而且需要是适合象google map那样一个系统一个js文件的。


jsan我得再看看
0 请登录后投票
   发表时间:2007-01-07  
做得很好,公司以前做的一个是用Applet,因为没毅力用js来做。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics