1 package de.lathanda.eos.gui.flowchart;
3 import de.lathanda.eos.baseparser.AbstractProgram;
4 import de.lathanda.eos.baseparser.CompilerListener;
5 import de.lathanda.eos.baseparser.ProgramUnit;
6 import de.lathanda.eos.common.gui.BackgroundCompiler;
7 import de.lathanda.eos.common.gui.Messages;
8 import de.lathanda.eos.gui.diagram.Diagram;
9 import de.lathanda.eos.gui.diagram.Drawing;
10 import de.lathanda.eos.gui.text.Text;
11 import de.lathanda.eos.vm.ErrorInformation;
13 import java.awt.Color;
14 import java.awt.Dimension;
15 import java.awt.Graphics;
16 import java.awt.Graphics2D;
17 import java.awt.image.BufferedImage;
18 import java.util.LinkedList;
27 private static final long serialVersionUID = 401580908976907379L;
29 private final LinkedList<Procedure> procedures;
30 private static final float SPACE = 10;
34 procedures =
new LinkedList<>();
40 super.paintComponent(g);
41 render((Graphics2D) g);
60 procedures.add(
new Procedure(pu.getName(), pu.getSequence()));
63 this.setPreferredSize(layout(d));
69 public BufferedImage
export(
float dpi) {
71 Dimension dim = layout(drawing);
72 BufferedImage image =
new BufferedImage(dim.width, dim.height, BufferedImage.TYPE_INT_RGB);
73 Graphics2D g = image.createGraphics();
74 g.setBackground(Color.WHITE);
75 g.clearRect(0, 0, dim.width, dim.height);
82 private Dimension layout(
Drawing d) {
83 procedures.forEach(p -> p.layout(d));
88 h = h + u.getHeight() + SPACE;
89 if (w < u.getWidth()) {
96 private void render(Drawing d) {
98 d.translate(SPACE, SPACE);
100 procedures.stream().forEachOrdered(p -> p.draw(d));
void addCompilerListener(CompilerListener cl)
static String getString(String id)
int convertmm2pixel(float mm)
void deinit(BackgroundCompiler bc)
void paintComponent(Graphics g)
void init(BackgroundCompiler bc)
BufferedImage export(float dpi)
void render(Graphics2D g)
void compileComplete(LinkedList< ErrorInformation > errors, AbstractProgram program)
LinkedList< ProgramUnit > getSubPrograms()
ProgramSequence getProgram()