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

xml/soap/webservice

开发平台:

Java

  1. /**
  2.  * <p>Description: </p>
  3.  * <p>Copyright: Copyright (c) xio.name 2006</p>
  4.  * @author xio
  5.  */
  6. function WrapperTransitionMouseListener(wrapper) {
  7.     this.wrapper = wrapper;
  8. }
  9. WrapperTransitionMouseListener.prototype = new MouseListener();
  10. //
  11. WrapperTransitionMouseListener.prototype.onMouseDown = function (e) {
  12.     var state = this.wrapper.getStateMonitor().getState();
  13.     if (state == StateMonitor.TRANSITION) {
  14.         var transitionMonitor = this.wrapper.getTransitionMonitor();
  15.         if (transitionMonitor.getFromMetaNodeModel() !== null) {
  16.             this.newLine(e);
  17.         }
  18.     }
  19. };
  20. WrapperTransitionMouseListener.prototype.onMouseMove = function (e) {
  21.     var state = this.wrapper.getStateMonitor().getState();
  22.     if (state == StateMonitor.TRANSITION) {
  23.         var transitionMonitor = this.wrapper.getTransitionMonitor();
  24.         if (transitionMonitor.getFromMetaNodeModel() !== null) {
  25.             if (this.lineView) {
  26.                 var point = Toolkit.getContainerCoord(e, this.wrapper.getViewer());
  27.                 var fromPoint = this.lineView.getFromPoint();
  28.                 if (point.getX() < fromPoint.getX()) {
  29.                     point.setX(point.getX() + 10);
  30.                 }
  31.                 this.lineView.setTo(point);
  32.             }
  33.         }
  34.     }
  35. };
  36. WrapperTransitionMouseListener.prototype.onMouseUp = function (e) {
  37.     var state = this.wrapper.getStateMonitor().getState();
  38.     if (state == StateMonitor.TRANSITION) {
  39.         this.removeLine();
  40.     }
  41. };
  42. //
  43. WrapperTransitionMouseListener.prototype.newLine = function (e) {
  44.     if (!this.lineView) {
  45.         this.lineView = new LineView();
  46.         this.wrapper.getViewer().add(this.lineView);
  47.     }
  48.     var point = Toolkit.getContainerCoord(e, this.wrapper.getViewer());
  49.     this.lineView.setFrom(point);
  50.     this.lineView.setTo(point);
  51. };
  52. WrapperTransitionMouseListener.prototype.removeLine = function () {
  53.     if (!this.lineView) {
  54.         return;
  55.     }
  56.     this.lineView.listenerProxy.clear();
  57.     this.wrapper.getViewer().remove(this.lineView);
  58.     this.lineView = null;
  59. };