EOS 2  1.1.0
Einfache Objektbasierte Sprache
Procedure.java
gehe zur Dokumentation dieser Datei
1 package de.lathanda.eos.gui.flowchart;
2 
3 import de.lathanda.eos.baseparser.ProgramSequence;
4 import de.lathanda.eos.gui.diagram.Drawing;
5 
12 public class Procedure extends ConnectedUnit {
13  private final Sequence sequence;
14  private final String title;
15  private float textx;
16  private float texty;
17  private float arrowxE;
18  private float arrowyE;
19  private float arrowxB;
20  private float arrowyB;
21 
22  public Procedure(String title, ProgramSequence programSequence) {
23  this.title = title;
24  sequence = new Sequence(programSequence);
25  font = HEADER_FONT;
26  }
27 
28  @Override
29  public void layoutUnit(Drawing d) {
30  sequence.layout(d);
31  float textwidth = d.stringWidth(title);
32  float textheight = d.getHeight();
33  if (textwidth + 2 * BORDER > sequence.getWidth()) {
34  width = textwidth + 2 * BORDER;
35  } else {
36  width = sequence.getWidth();
37  }
38  texty = d.getAscent() + BORDER;
39  textx = (width - textwidth) / 2;
40  height = sequence.getHeight() + textheight + 2 * BORDER + 2 * SPACE;
41  arrowyE = sequence.getHeight() + textheight + 2 * BORDER + SPACE;
42  arrowxE = width / 2;
43  arrowxB = arrowxE;
44  arrowyB = textheight + 2 * BORDER;
45  sequence.setOffsetX((width - sequence.getWidth()) / 2);
46  sequence.setOffsetY(textheight + 2 * BORDER + SPACE);
47  }
48 
49  @Override
50  public void drawUnit(Drawing d) {
51  d.drawString(title, textx, texty);
52  sequence.draw(d);
53 
54  if (!sequence.neverEnds) {
55  d.drawArrow(arrowxE, arrowyE, arrowxE, arrowyE + SPACE, 2);
56  }
57 
58  if (sequence.needsIncomingArrow) {
59  d.drawArrow(arrowxB, arrowyB, arrowxB, arrowyB + SPACE, 2);
60  } else {
61  d.drawLine(arrowxB, arrowyB, arrowxB, arrowyB + SPACE);
62  }
63  }
64 }
float stringWidth(String text)
Definition: Drawing.java:111
void drawLine(float x1, float y1, float x2, float y2)
Definition: Drawing.java:138
void drawArrow(float x1, float y1, float x2, float y2, float size)
Definition: Drawing.java:284
void drawString(String text, float x, float y)
Definition: Drawing.java:148
final void layout(Drawing d)
Definition: Unit.java:50
final void draw(Drawing d)
Definition: Unit.java:29
static final float SPACE
Definition: Unit.java:14
void setOffsetY(float offsetY)
Definition: Unit.java:79
void setOffsetX(float offsetX)
Definition: Unit.java:63
static final float BORDER
Definition: Unit.java:13
Procedure(String title, ProgramSequence programSequence)
Definition: Procedure.java:22
Impressum