使用activiti explorer工具复制流程

画一个流程图后,再画一个,都要重头开始
将一个模板当前配的节点,复制到另外一个模板中。
先找到activiti-explorer的复制粘贴代码
通过跟踪代码,找到代码的复制地方。
oryx.debug.js页面中的editCopy为原生的复制代码,而editPaste为粘贴的相关代码
怎么改?
考虑使用localStorage将复制的内空存在localStorage,而粘贴时,要将代码从localStorage读取出来。

以下是代码片段:
/**
 * Performs the copy operation.
 * @param {Object} will_not_update ??
 */
editCopy: function( will_update, useNoOffset ){
	var selection = this.facade.getSelection();
	
	//if the selection is empty, do not remove the previously copied elements
	if(selection.length == 0) return;
	
	this.clipboard.refresh(selection, this.getAllShapesToConsider(selection), this.facade.getCanvas().getStencil().stencilSet().namespace(), useNoOffset);

	if( will_update ) this.facade.updateSelection();

	//将复制内容
	localStorage.setItem('flowclipboard', JSON.stringify(this.clipboard));
},


 /**
 * Performs the paste operation.
 */
editPaste: function(){
	//从  h5中复制内容
	this.clipboard= JSON.parse(localStorage.getItem('flowclipboard'));
	//这个一定要序列化对象才可能,否则getChildShapes报错
	this.clipboard.shapesAsJson= JSON.parse( this.clipboard.shapesAsJson);

	// Create a new canvas with childShapes 
	//and stencilset namespace to be JSON Import conform

找到修改代码toolbar.js,修改内容如下:

        {
            "type" : "button",
            "title" : "TOOLBAR.ACTION.PASTE",
            "cssClass" : "editor-icon editor-icon-paste",
            "action" : "KISBPM.TOOLBAR.ACTIONS.paste",
            "enabled" : localStorage.getItem('flowclipboard')!=''
        },

上一篇:[Python]网络爬虫(一):抓取网页的含义和URL基本构成


下一篇:Activiti产生的背景和作用