EOS 2  1.1.0
Einfache Objektbasierte Sprache
ClassChart.java
gehe zur Dokumentation dieser Datei
1 package de.lathanda.eos.gui.classchart;
2 
3 import java.awt.BorderLayout;
4 import java.awt.Font;
5 import java.awt.image.BufferedImage;
6 import java.util.ArrayList;
7 import javax.swing.BorderFactory;
8 import javax.swing.DefaultListModel;
9 import javax.swing.JList;
10 import javax.swing.JScrollPane;
11 import javax.swing.ListSelectionModel;
12 import javax.swing.border.BevelBorder;
13 import javax.swing.event.ListSelectionEvent;
14 import javax.swing.event.ListSelectionListener;
15 
16 import de.lathanda.eos.base.util.GuiToolkit;
17 import de.lathanda.eos.baseparser.SystemType;
18 import de.lathanda.eos.baseparser.Type;
19 import de.lathanda.eos.common.gui.BackgroundCompiler;
20 import de.lathanda.eos.common.gui.Messages;
21 import de.lathanda.eos.config.Language;
22 import de.lathanda.eos.gui.diagram.Diagram;
23 
24 public class ClassChart extends Diagram implements ListSelectionListener {
25  private static final long serialVersionUID = -9004622410733768404L;
26  private JList<String> classList;
27  private ClassDiagram classDiagram;
28  private DefaultListModel<String> classModel;
29  private ArrayList<Type> variableList = new ArrayList<>();
30 
31  public ClassChart() {
32  super(Messages.getString("ClassChart.Title"));
33  classModel = new DefaultListModel<String>();
34  classList = new JList<>(classModel);
35  classList.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
36  classList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
37  classList.setFont(GuiToolkit.createFont(Font.SANS_SERIF, Font.PLAIN, 10));
38  classDiagram = new ClassDiagram();
39  setLayout(new BorderLayout());
40  add(new JScrollPane(classList), BorderLayout.WEST);
41  add(new JScrollPane(classDiagram), BorderLayout.CENTER);
42  classList.addListSelectionListener(this);
43  update();
44  }
45 
46  @Override
47  public BufferedImage export(float dpi) {
48  return classDiagram.export(dpi);
49  }
50 
51  @Override
52  public void init(BackgroundCompiler bc) {
53  }
54 
55  @Override
56  public void deinit(BackgroundCompiler bc) {
57  }
58 
59  @Override
60  public void valueChanged(ListSelectionEvent lse) {
61  int[] indices = classList.getSelectedIndices();
62  for (int index : indices) {
63  classDiagram.setData(variableList.get(index));
64  }
65  repaint();
66  }
67 
68  private void update() {
69  variableList.addAll(SystemType.getAll());
70  for (Type t : variableList) {
71  classModel.addElement(Language.def.getClassLabel(t));
72  }
73  classList.repaint();
74  }
75 }
static Font createFont(String name, int style, int size)
Definition: GuiToolkit.java:89
static LinkedList< Type > getAll()
static String getString(String id)
Definition: Messages.java:29
void init(BackgroundCompiler bc)
Definition: ClassChart.java:52
void deinit(BackgroundCompiler bc)
Definition: ClassChart.java:56
void valueChanged(ListSelectionEvent lse)
Definition: ClassChart.java:60
Impressum