EOS 2  1.1.0
Einfache Objektbasierte Sprache
Window.java
gehe zur Dokumentation dieser Datei
1 package de.lathanda.eos.geo;
2 
3 import de.lathanda.eos.base.MutableColor;
4 import de.lathanda.eos.base.Picture;
5 import de.lathanda.eos.base.event.CleanupListener;
6 import de.lathanda.eos.base.math.Point;
7 import de.lathanda.eos.base.util.ConcurrentLinkedList;
8 import de.lathanda.eos.geo.gui.ViewFrame;
9 import de.lathanda.eos.geo.gui.event.CursorListener;
10 import de.lathanda.eos.geo.gui.event.FigureListener;
11 
12 import java.awt.event.ComponentEvent;
13 import java.awt.event.ComponentListener;
14 import java.util.LinkedList;
15 
21 public class Window implements FigureGroup, CleanupListener, CursorListener, ComponentListener {
22  ViewFrame vf;
23  ChangeMultiCaster cmc;
25  protected Point cursor = new Point(0,0);
26  protected boolean cursorDown = false;
27  protected boolean cursorClick = false;
28 
29  public Window() {
31  cmc = new ChangeMultiCaster();
32  vf = new ViewFrame(this);
33  vf.addCursorListener(this);
34  vf.addComponentListener(this);
35  vf.setVisible(true);
36  }
37 
38  @Override
39  public void addFigure(Figure figure) {
40  figure.replaceGroup(this);
41  members.add(figure);
42  cmc.fireDataChanged();
43  }
44 
45  @Override
46  public void removeFigure(Figure figure) {
47  members.remove(figure);
48  }
49 
50  @Override
51  public Group getGroup() {
52  return null;
53  }
54  @Override
56  return null;
57  }
58  public void draw(Picture g) {
59  for (Figure m : members) {
60  m.draw(g);
61  }
62  }
63  public void addFigureListener(FigureListener gol) {
64  cmc.add(gol);
65  }
67  cmc.remove(gol);
68  }
69 
70  @Override
71  public void fireDataChanged() {
72  cmc.fireDataChanged();
73  }
74 
75  public void setGridColor(MutableColor color) {
76  vf.setGridColor(color);
78  }
79 
81  return vf.getGridColor();
82  }
83 
84  public void setBackgroundColor(MutableColor color) {
85  vf.setBackgroundColor(color);
86  }
87 
89  return vf.getBackgroundColor();
90  }
91 
92  public void setHeight(double height) {
93  vf.setHeightMM(height);
94  }
95 
96  public double getHeight() {
97  return vf.getHeightMM();
98  }
99 
100  public void setWidth(double width) {
101  vf.setWidthMM(width);
102  }
103 
104  public double getWidth() {
105  return vf.getWidthMM();
106  }
107 
108  public void setTop(double top) {
109  vf.setTop(top);
110  }
111 
112  public double getTop() {
113  return vf.getTop();
114  }
115 
116  public void setLeft(double left) {
117  vf.setLeft(left);
118  }
119 
120  public double getLeft() {
121  return vf.getLeft();
122  }
123 
124  public void setCenter(double x, double y) {
125  vf.setCenter(x, y);
126  }
127 
128  public void setZoom(double zoom) {
129  vf.setZoom(zoom);
130  }
131  public void setGridWidth(double gridwidth) {
132  vf.setGridWidth(gridwidth);
133  }
134 
135  public double getGridWidth() {
136  return vf.getGridWidth();
137  }
138 
139  public void move(double dx, double dy) {
140  vf.move(dx, dy);
141  }
142 
143  public void setGridVisible(boolean b) {
144  vf.setGridVisible(b);
145  }
146  public boolean getGridVisible() {
147  return vf.getGridVisible();
148  }
149  public void turnGridOn() {
150  vf.setGridVisible(true);
151  }
152  public void turnGridOff() {
153  vf.setGridVisible(false);
154  }
155  public void setTitle(String title) {
156  vf.setTitle(title);
157  }
158 
159  public String getTitle() {
160  return vf.getTitle();
161  }
162  private class ChangeMultiCaster {
163  private final LinkedList<FigureListener> figureListener;
164  protected ChangeMultiCaster() {
165  figureListener = new LinkedList<>();
166  }
167  void add(FigureListener cl) {
168  figureListener.add(cl);
169  }
170  void remove(FigureListener cl) {
171  figureListener.remove(cl);
172  }
173  void fireDataChanged() {
174  figureListener.forEach((cl) -> {
175  cl.dataChanged();
176  });
177  }
178  }
179  @Override
180  public void terminate() {
181  if (vf != null) {
182  vf.dispose();
183  vf = null;
184  }
185  cmc = null;
186  members.clear();
187  members = null;
188  }
189 
190  public boolean isCursorClick() {
191  if (cursorClick) {
192  cursorClick = false;
193  return cursorClick;
194  }
195  return false;
196  }
197  public boolean isCursorDown() {
198  return cursorDown;
199  }
200  public double getCursorX() {
201  return cursor.getX();
202  }
203  public double getCursorY() {
204  return cursor.getY();
205  }
206 
207  @Override
208  public void cursorMoved(Point p) {
209  cursor = p;
210  }
211 
212  @Override
213  public void cursorUp(Point p) {
214  cursorDown = false;
215  cursor = p;
216  }
217 
218  @Override
219  public void cursorDown(Point p) {
220  cursorDown = true;
221  cursorClick = true;
222  cursor = p;
223  }
224 
225  @Override
226  public void componentHidden(ComponentEvent ce) {}
227 
228  @Override
229  public void componentMoved(ComponentEvent ce) {
230  cmc.fireDataChanged();
231  }
232 
233  @Override
234  public void componentResized(ComponentEvent ce) {
235  cmc.fireDataChanged();
236  }
237 
238  @Override
239  public void componentShown(ComponentEvent ce) {}
240 
241 }
void move(double dx, double dy)
Definition: Window.java:139
void componentHidden(ComponentEvent ce)
Definition: Window.java:226
void removeFigure(Figure figure)
Definition: Window.java:46
ConcurrentLinkedList< Figure > members
Definition: Window.java:24
void componentResized(ComponentEvent ce)
Definition: Window.java:234
MutableColor getGridColor()
Definition: Window.java:80
void componentMoved(ComponentEvent ce)
Definition: Window.java:229
void setTitle(String title)
Definition: Window.java:155
void componentShown(ComponentEvent ce)
Definition: Window.java:239
void cursorMoved(Point p)
Definition: Window.java:208
void cursorUp(Point p)
Definition: Window.java:213
void setGridColor(MutableColor color)
Definition: Window.java:75
void cursorDown(Point p)
Definition: Window.java:219
void setGridVisible(boolean b)
Definition: Window.java:143
void setHeight(double height)
Definition: Window.java:92
void setBackgroundColor(MutableColor color)
Definition: Window.java:84
void draw(Picture g)
Definition: Window.java:58
void setCenter(double x, double y)
Definition: Window.java:124
void removeFigureListener(FigureListener gol)
Definition: Window.java:66
void setGridWidth(double gridwidth)
Definition: Window.java:131
void addFigureListener(FigureListener gol)
Definition: Window.java:63
FigureGroup getParentGroup()
Definition: Window.java:55
void setWidth(double width)
Definition: Window.java:100
void addFigure(Figure figure)
Definition: Window.java:39
void setLeft(double left)
Definition: Window.java:116
void setZoom(double zoom)
Definition: Window.java:128
void setTop(double top)
Definition: Window.java:108
MutableColor getBackgroundColor()
Definition: Window.java:88
void setGridColor(MutableColor color)
Definition: ViewFrame.java:76
void addCursorListener(CursorListener cl)
Definition: ViewFrame.java:155
void setGridWidth(double gridwidth)
Definition: ViewFrame.java:129
void setWidthMM(double width)
Definition: ViewFrame.java:97
void setCenter(double x, double y)
Definition: ViewFrame.java:143
void move(double dx, double dy)
Definition: ViewFrame.java:137
void setHeightMM(double height)
Definition: ViewFrame.java:92
void setBackgroundColor(MutableColor color)
Definition: ViewFrame.java:84
Impressum