1 package de.lathanda.eos.gui.objectchart;
4 import java.awt.Dimension;
5 import java.awt.Graphics;
6 import java.awt.Graphics2D;
7 import java.awt.image.BufferedImage;
8 import java.util.LinkedList;
10 import javax.swing.JPanel;
12 import de.lathanda.eos.gui.diagram.Unit;
13 import de.lathanda.eos.vm.MemoryEntry;
14 import de.lathanda.eos.baseparser.AbstractProgram;
15 import de.lathanda.eos.baseparser.SystemType;
16 import de.lathanda.eos.baseparser.Type;
17 import de.lathanda.eos.config.Language;
18 import de.lathanda.eos.gui.diagram.Drawing;
27 private static final long serialVersionUID = -8489967668090334257L;
28 private LinkedList<Unit> units;
30 private static final float SPACE = 5;
33 setBackground(Color.WHITE);
34 units =
new LinkedList<>();
40 super.paintComponent(g);
44 public BufferedImage
export(
float dpi) {
45 if (units.isEmpty()) {
46 return new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
49 Dimension dim = layout(drawing);
50 BufferedImage image =
new BufferedImage(dim.width, dim.height, BufferedImage.TYPE_INT_RGB);
51 Graphics2D g = image.createGraphics();
52 g.setBackground(Color.WHITE);
53 g.clearRect(0, 0, dim.width, dim.height);
65 private Dimension layout(
Drawing d) {
66 units.forEach(p -> p.layout(d));
69 for (
Unit u : units) {
71 h = h + u.getHeight() + SPACE;
72 if (w < u.getWidth()) {
80 private void render(Drawing d) {
82 d.translate(SPACE, SPACE);
84 d.setColor(Color.BLACK);
85 units.stream().forEachOrdered(p -> p.draw(d));
100 setPreferredSize(layout(d));
static SystemType getInstanceByID(String id)
String getClassLabel(Type t)
int convertmm2pixel(float mm)
void paintComponent(Graphics g)
BufferedImage export(float dpi)
void setData(LinkedList< MemoryEntry > data, AbstractProgram program)
void render(Graphics2D g)
Type getTypeByName(String id)