EOS 2  1.1.0
Einfache Objektbasierte Sprache
Procedure.java
gehe zur Dokumentation dieser Datei
1 package de.lathanda.eos.gui.structogram;
2 
3 import de.lathanda.eos.baseparser.ProgramSequence;
4 import de.lathanda.eos.gui.diagram.Drawing;
5 import de.lathanda.eos.gui.diagram.Unit;
6 
13 public class Procedure extends Unit {
14  private final Sequence sequence;
15  private final String title;
16 
17  private float textx;
18  private float texty;
19 
20  public Procedure(String title, ProgramSequence programSequence) {
21  this.title = title;
22  sequence = new Sequence(programSequence);
23  font = HEADER_FONT;
24  }
25 
26  @Override
27  public void layoutUnit(Drawing d) {
28  sequence.layout(d);
29 
30  float textwidth = d.stringWidth(title);
31  float textheight = d.getHeight();
32  if (textwidth + 2 * BORDER > sequence.getWidth()) {
33  width = textwidth + 2 * BORDER;
34  sequence.setWidth(width);
35  } else {
36  width = sequence.getWidth();
37  }
38  texty = d.getAscent() + BORDER;
39  textx = (sequence.getWidth() - textwidth) / 2;
40  height = sequence.getHeight() + textheight + 2 * BORDER;
41  sequence.setOffsetY(textheight + 2 * BORDER);
42  }
43 
44  @Override
45  public void drawUnit(Drawing d) {
46  d.drawString(title, textx, texty);
47  sequence.draw(d);
48  }
49 }
float stringWidth(String text)
Definition: Drawing.java:111
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
void setOffsetY(float offsetY)
Definition: Unit.java:79
static final float BORDER
Definition: Unit.java:13
Procedure(String title, ProgramSequence programSequence)
Definition: Procedure.java:20
Impressum