xiorkflowwrapper.js

来自「xiorkflow工作流源码 是一个java开发的工作流源码」· JavaScript 代码 · 共 257 行

JS
257
字号
/**
 * <p>Title:  </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) xio.name 2006</p>
 * @author xio
 *//** * * @param viewer Component * @param model XiorkFlowModel */function XiorkFlowWrapper(viewer, model, stateMonitor, statuser) {	//    if (stateMonitor) {        this.setStateMonitor(stateMonitor);        this.getStateMonitor().addObserver(this);        this.transitionMonitor = new TransitionMonitor();    }	//    this.metaNodes = new Array();    this.transitions = new Array();	//    this.nodeMouseListener = new Array();    this.transitionMouseListener = new Array();    //    if (model == null) {        model = new XiorkFlowModel();    }    this.setModel(model);    //    if (viewer == null) {        return;    }    this.setViewer(viewer);    //    this.statuser = statuser;    this.setChanged(false);}//XiorkFlowWrapper.prototype.setStateMonitor = function (stateMonitor) {    this.stateMonitor = stateMonitor;};XiorkFlowWrapper.prototype.getStateMonitor = function () {    return this.stateMonitor;};//XiorkFlowWrapper.prototype.setChanged = function (b) {    this.changed = b;};XiorkFlowWrapper.prototype.isChanged = function () {    return this.changed;};//XiorkFlowWrapper.prototype.setStatusInfo = function (text) {    if (this.statuser) {        this.statuser.setText(text);    }};//XiorkFlowWrapper.prototype.getTransitionMonitor = function () {    return this.transitionMonitor;};//XiorkFlowWrapper.prototype._initViewer = function () {    this.getViewer().setPosition("relative");    //    if (this.getModel().isEditable()) {        this.getViewer().addMouseListener(new WrapperMetaMouseListener(this));        this.getViewer().addMouseListener(new WrapperSelectMouseListener(this));        this.getViewer().addMouseListener(new MetaMoveMouseListener(this));        this.getViewer().addMouseListener(new WrapperTransitionMouseListener(this));        this.getViewer().addKeyListener(new MetaMoveKeyListener(this));    }};XiorkFlowWrapper.prototype._updateViewer = function () {    Toolkit.clearElement(this.getViewer());    var model = this.getModel();    var viewer = this.getViewer();    //    var metaNodeModels = model.getMetaNodeModels();    for (var i = 0; i < metaNodeModels.size(); i++) {        var metaNodeModel = metaNodeModels.get(i);        var metaNode = XiorkFlowWrapper.convertMetaNodeModelToMetaNode(metaNodeModel, this);        this.addMetaNode(metaNode);    }	//    var transitionModels = model.getTransitionModels();    for (var i = 0; i < transitionModels.size(); i++) {        var transitionModel = transitionModels.get(i);        var transition = XiorkFlowWrapper.convertTransitionModelToTransition(transitionModel, this);        this.addTransition(transition);    }};//XiorkFlowWrapper.prototype.setViewer = function (viewer) {    if (!viewer) {        return;    }    if (this.viewer == viewer) {        return;    }    if (this.viewer) {        this.viewer.listenerProxy.clear();//clear memory    }    this.viewer = viewer;    this._initViewer();};XiorkFlowWrapper.prototype.getViewer = function () {    return this.viewer;};//XiorkFlowWrapper.prototype.setModel = function (model) {    if (!model) {        return;    }    if (this.model == model) {        return;    }    if (this.transitionMonitor) {        this.transitionMonitor.reset();    }    this.model = model;    this.model.addObserver(this);    this._updateViewer();};XiorkFlowWrapper.prototype.getModel = function () {    return this.model;};//XiorkFlowWrapper.prototype.addMetaNode = function (metaNode) {    this.metaNodes.add(metaNode);    this.getViewer().add(metaNode);    if (this.getModel().isEditable()) {        metaNode.addMouseListener(new MetaNodeMouseListener(metaNode.getModel(), this));        metaNode.addMouseListener(new MetaNodeTextMouseListener(metaNode, this));        metaNode.addKeyListener(new MetaNodeTextKeyListener(metaNode, this));    }};XiorkFlowWrapper.prototype.removeMetaNode = function (metaNode) {    metaNode.listenerProxy.clear();//clear memory    this.metaNodes.remove(metaNode);    this.getViewer().remove(metaNode);};XiorkFlowWrapper.prototype.addTransition = function (transition) {    if (this.getModel().isEditable()) {        transition.addMouseListener(new TransitionMouseListener(transition.getModel(), this));        transition.addMouseListener(new TransitionTextMouseListener(transition, this));        transition.addKeyListener(new TransitionTextKeyListener(transition, this));    }    this.transitions.add(transition);    this.getViewer().add(transition);    this.getViewer().add(transition.getLineText());};XiorkFlowWrapper.prototype.removeTransition = function (transition) {    transition.listenerProxy.clear();//clear memory    this.transitions.remove(transition);    this.getViewer().remove(transition);    this.getViewer().remove(transition.getLineText());};//XiorkFlowWrapper.convertMetaNodeModelToMetaNode = function (metaNodeModel, wrapper) {    var type = metaNodeModel.type;    var metaNode = null;    switch (type) {      case MetaNodeModel.TYPE_NODE:        metaNode = new Node(metaNodeModel, wrapper);        break;      case MetaNodeModel.TYPE_FORK_NODE:        metaNode = new ForkNode(metaNodeModel, wrapper);        break;      case MetaNodeModel.TYPE_JOIN_NODE:        metaNode = new JoinNode(metaNodeModel, wrapper);        break;      case MetaNodeModel.TYPE_START_NODE:        metaNode = new StartNode(metaNodeModel, wrapper);        break;      case MetaNodeModel.TYPE_END_NODE:        metaNode = new EndNode(metaNodeModel, wrapper);        break;      default:        break;    }    return metaNode;};XiorkFlowWrapper.convertTransitionModelToTransition = function (transitionModel, wrapper) {    return new Transition(transitionModel, wrapper);};//XiorkFlowWrapper.prototype.addNodeMouseListener = function () {};XiorkFlowWrapper.prototype.removeNodeMouseListener = function () {};XiorkFlowWrapper.prototype.addTransitionMouseListener = function () {};XiorkFlowWrapper.prototype.removeTransitionMouseListener = function () {};//XiorkFlowWrapper.prototype.update = function (observable, arg) {    if (arg instanceof Array) {        this.setChanged(true);        if (arg.size() == 2) {            var property = arg[0];            var model = arg[1];            switch (property) {              case XiorkFlowModel.META_NODE_MODEL_ADD:                var node = XiorkFlowWrapper.convertMetaNodeModelToMetaNode(model, this);                this.addMetaNode(node);                break;              case XiorkFlowModel.META_NODE_MODEL_REMOVE:                model.suicide();                break;              case XiorkFlowModel.TRANSITION_MODEL_ADD:                var transition = XiorkFlowWrapper.convertTransitionModelToTransition(model, this);                this.addTransition(transition);                break;              case XiorkFlowModel.TRANSITION_MODEL_REMOVE:                model.suicide();                break;              default:                break;            }        }        return;    }    if (arg == StateMonitor.OPERATION_STATE_CHANGED) {        var state = this.getStateMonitor().getState();        if (state == StateMonitor.SELECT) {            this.getViewer().setCursor(Cursor.AUTO);            this.getViewer().getUI().focus();        } else {            this.getViewer().setCursor(Cursor.CROSSHAIR);        }        return;    }};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?