MetaNodeMouseListener.js
上传用户:ahit0551
上传日期:2009-04-15
资源大小:2345k
文件大小:6k
源码类别:

xml/soap/webservice

开发平台:

Java

  1. /**
  2.  * <p>Description: </p>
  3.  * <p>Copyright: Copyright (c) xio.name 2006</p>
  4.  * @author xio
  5.  */ function MetaNodeMouseListener(metaNodeModel, wrapper) {     this.metaNodeModel = metaNodeModel;     this.wrapper = wrapper; } MetaNodeMouseListener.prototype = new MouseListener(); MetaNodeMouseListener.prototype.onMouseDown = function (e) {     this.moved = false;     if (e.button != MouseEvent.BUTTON_LEFT) {         return;     }     this.down = true;
  6.     //     var state = this.wrapper.getStateMonitor().getState();     switch (state) {       case StateMonitor.SELECT:         if (this.metaNodeModel.isEditing()) {             return;         }         var selectedMetaNodeModels = this.wrapper.getModel().getSelectedMetaNodeModels();         var selectedTransitionModels = this.wrapper.getModel().getSelectedTransitionModels();         if ((selectedTransitionModels.size() <= 1) && (selectedTransitionModels.size() <= 1) && (!e.ctrlKey)) {             this.wrapper.getModel().clearSelectedMetaNodeModels();             this.wrapper.getModel().clearSelectedTransitionModels();             this.wrapper.getModel().addSelectedMetaNodeModel(this.metaNodeModel);             //双击节点,可以编辑节点名称;鼠标在节点右下角的点上托拽可以编辑节点尺寸             this.wrapper.setStatusInfo("u53ccu51fbu8282u70b9uff0cu53efu4ee5u7f16u8f91u8282u70b9u540du79f0uff1bu9f20u6807u5728u8282u70b9u53f3u4e0bu89d2u7684u70b9u4e0au6258u62fdu53efu4ee5u7f16u8f91u8282u70b9u5c3au5bf8");         }         break;       case StateMonitor.TRANSITION:         var transitionMonitor = this.wrapper.getTransitionMonitor();         if (this.metaNodeModel.isNewFromAvailable()) {             transitionMonitor.setFromMetaNodeModel(this.metaNodeModel);
  7.             //可以从 ×× 建立连接             this.wrapper.setStatusInfo("u53efu4ee5u4ece" + this.metaNodeModel + "u5efau7acbu8fdeu63a5");         } else {
  8.          //无法从 ×× 建立连接             this.wrapper.setStatusInfo("u65e0u6cd5u4ece" + this.metaNodeModel + "u5efau7acbu8fdeu63a5");         }         break;     } }; MetaNodeMouseListener.prototype.onMouseMove = function (e) {     if (e.button != MouseEvent.BUTTON_LEFT) {         return;     }     if (this.down) {         this.moved = true;     } }; MetaNodeMouseListener.prototype.onMouseOver = function (e) {     var state = this.wrapper.getStateMonitor().getState();     switch (state) {       case StateMonitor.TRANSITION:         var transitionMonitor = this.wrapper.getTransitionMonitor();         var fromMetaNodeModel = transitionMonitor.getFromMetaNodeModel();         if (fromMetaNodeModel) {             if ((this.metaNodeModel.isNewToAvailable()) && (fromMetaNodeModel != this.metaNodeModel)) {                 transitionMonitor.setToMetaNodeModel(this.metaNodeModel);              //可以到 ×× 建立连接                 this.wrapper.setStatusInfo("u53efu4ee5u5230" + this.metaNodeModel + "u5efau7acbu8fdeu63a5");             } else {          //无法到 ×× 建立连接                 this.wrapper.setStatusInfo("u65e0u6cd5u5230" + this.metaNodeModel + "u5efau7acbu8fdeu63a5");             }         }         break;     } }; MetaNodeMouseListener.prototype.onMouseOut = function (e) {     var state = this.wrapper.getStateMonitor().getState();     switch (state) {       case StateMonitor.TRANSITION:         var transitionMonitor = this.wrapper.getTransitionMonitor();         if (transitionMonitor.getFromMetaNodeModel() !== null) {             transitionMonitor.setToMetaNodeModel(null);          //未找到连接结束点             this.wrapper.setStatusInfo("u672au627eu5230u8fdeu63a5u7ed3u675fu70b9");         }         break;     } }; MetaNodeMouseListener.prototype.onMouseUp = function (e) {     this.down = false;     if (e.button != MouseEvent.BUTTON_LEFT) {         return;     }
  9.     //     var state = this.wrapper.getStateMonitor().getState();     switch (state) {       case StateMonitor.SELECT:         if (this.moved) {             return;         }         if (e.ctrlKey) {             if (this.metaNodeModel.isSelected()) {                 this.wrapper.getModel().removeSelectedMetaNodeModel(this.metaNodeModel);             } else {                 this.wrapper.getModel().addSelectedMetaNodeModel(this.metaNodeModel);             }             //您正在多选节点,按下键盘的方向键,或者托拽鼠标,可以移动选择节点的位置;按下删除按钮或者按下Delete键盘按键,可以删除选择的元             this.wrapper.setStatusInfo("u60a8u6b63u5728u591au9009u8282u70b9uff0cu6309u4e0bu952eu76d8u7684u65b9u5411u952euff0cu6216u8005u6258u62fdu9f20u6807uff0cu53efu4ee5u79fbu52a8u9009u62e9u8282u70b9u7684u4f4du7f6e;u6309u4e0bu5220u9664u6309u94aeu6216u8005u6309u4e0bDeleteu952eu76d8u6309u952euff0cu53efu4ee5u5220u9664u9009u62e9u7684u5143");         } else {             this.wrapper.getModel().clearSelectedMetaNodeModels();             this.wrapper.getModel().clearSelectedTransitionModels();             this.wrapper.getModel().addSelectedMetaNodeModel(this.metaNodeModel);             //双击节点,可以编辑节点名称;鼠标在节点右下角的点上托拽可以编辑节点尺寸             this.wrapper.setStatusInfo("u53ccu51fbu8282u70b9uff0cu53efu4ee5u7f16u8f91u8282u70b9u540du79f0uff1bu9f20u6807u5728u8282u70b9u53f3u4e0bu89d2u7684u70b9u4e0au6258u62fdu53efu4ee5u7f16u8f91u8282u70b9u5c3au5bf8");         }         break;       case StateMonitor.TRANSITION:         var transitionMonitor = this.wrapper.getTransitionMonitor();      //         var fromMetaNodeModel = transitionMonitor.getFromMetaNodeModel();         var toMetaNodeModel = this.metaNodeModel;         if ((this.metaNodeModel.isNewToAvailable()) && (fromMetaNodeModel) && (fromMetaNodeModel != toMetaNodeModel)) {             var transitionModel = new TransitionModel(fromMetaNodeModel, toMetaNodeModel);             this.wrapper.getModel().addTransitionModel(transitionModel);             //从 ×× 到 ×× 建立连接成功             this.wrapper.setStatusInfo("u4ece" + fromMetaNodeModel + "u5230" + toMetaNodeModel + "u5efau7acbu8fdeu63a5u6210u529f");         } else {             //添加连接失败             this.wrapper.setStatusInfo("u6dfbu52a0u8fdeu63a5u5931u8d25");         }      //         transitionMonitor.reset();         break;     } };