1 19 package org.openharmonise.workfloweditor.flowchart.shapes; 20 21 import java.awt.Graphics2D ; 22 import java.awt.Paint ; 23 import java.awt.Stroke ; 24 import java.util.ArrayList ; 25 import java.util.Iterator ; 26 27 import org.openharmonise.workfloweditor.flowchart.*; 28 29 30 37 public abstract class AbstractWorkflowShape { 38 39 42 private float m_x = 0; 43 44 47 private float m_y = 0; 48 49 52 private ArrayList m_moveListeners = new ArrayList (); 53 54 60 public AbstractWorkflowShape(float x, float y) { 61 super(); 62 this.m_x = x; 63 this.m_y = y; 64 } 65 66 71 public float getX() { 72 return this.m_x; 73 } 74 75 80 public float getY() { 81 return this.m_y; 82 } 83 84 89 public void setX(float x) { 90 this.m_x = x; 91 this.fireMoveEvent(); 92 } 93 94 99 public void setY(float y) { 100 this.m_y = y; 101 this.fireMoveEvent(); 102 } 103 104 109 public void draw(Graphics2D g) { 110 Stroke oldStroke = g.getStroke(); 111 Paint oldPaint = g.getPaint(); 112 113 this.drawSelf(g); 114 115 g.setStroke(oldStroke); 116 g.setPaint(oldPaint); 117 118 } 119 120 125 public void addMoveListener(MoveListener listener) { 126 this.m_moveListeners.add(listener); 127 } 128 129 134 public void removeMoveListener(MoveListener listener) { 135 this.m_moveListeners.remove(listener); 136 } 137 138 142 private void fireMoveEvent() { 143 Iterator itor = this.m_moveListeners.iterator(); 144 while (itor.hasNext()) { 145 MoveListener listener = (MoveListener) itor.next(); 146 listener.moved(this); 147 } 148 } 149 150 155 public abstract void drawSelf(Graphics2D g); 156 157 } 158 | Popular Tags |