source: domaineditor/src/main/java/geniusweb/domaineditor/panels/DomainEditorPanel.java@ 52

Last change on this file since 52 was 52, checked in by ruud, 14 months ago

Fixed small issues in domaineditor.

File size: 2.9 KB
Line 
1package geniusweb.domaineditor.panels;
2
3import java.awt.BorderLayout;
4import java.awt.Component;
5
6import javax.swing.JComboBox;
7import javax.swing.JLabel;
8import javax.swing.JOptionPane;
9import javax.swing.JPanel;
10
11import geniusweb.domaineditor.model.DiscreteValueSetModel;
12import geniusweb.domaineditor.model.DomainModel;
13import geniusweb.domaineditor.model.NumberValueSetModel;
14import geniusweb.domaineditor.model.ValueSetModel;
15import tudelft.utilities.logging.Reporter;
16import tudelft.utilities.mvc.model.MapModel;
17import tudelft.utilities.mvc.model.StringModel;
18import tudelft.utilities.mvc.panels.CustomMapEditor;
19import tudelft.utilities.mvc.panels.LabeledPanel;
20import tudelft.utilities.mvc.panels.StringPanel;
21
22/**
23 * The actual editor panel for domains Domains are issues and their possible
24 * values.
25 */
26@SuppressWarnings("serial")
27public class DomainEditorPanel extends JPanel {
28
29 /**
30 * Panel with on the left a set of strings (issues). When user selects an
31 * issue, an editor is opened for the valueset of that issue.
32 *
33 * @param domainmodel the {@link DomainModel} containing the issue and
34 * valuesets.
35 * @param log used when generating new issue values
36 */
37 public DomainEditorPanel(final DomainModel domainmodel, Reporter log) {
38 setLayout(new BorderLayout());
39
40 add(new LabeledPanel("domain name ",
41 new StringPanel(domainmodel.getName())),
42 BorderLayout.NORTH);
43 add(new IssuesMapEditor(domainmodel.getIssues(), log),
44 BorderLayout.CENTER);
45
46 }
47}
48
49/**
50 * CustomMapEditor with issues on the left and editor for selected issue on the
51 * right.
52 */
53@SuppressWarnings("serial")
54class IssuesMapEditor
55 extends CustomMapEditor<String, StringModel, ValueSetModel> {
56 private final ValueSetEditorFactory vsetfactory = new ValueSetEditorFactory();
57 private Reporter logger;
58 private int n = 1;
59
60 public IssuesMapEditor(MapModel<StringModel, ValueSetModel> model,
61 Reporter log) {
62 super(model, true);
63 this.logger = log;
64 }
65
66 @Override
67 public Component getEditor(StringModel key) {
68 if (key == null)
69 return null; // how can this be?
70 ValueSetModel valuesetmodel = getModel().getValue(key);
71 System.out.println("key selected:" + key);
72 System.out.println("model contains key:" + valuesetmodel);
73 return vsetfactory.create(key, valuesetmodel, logger);
74 }
75
76 @Override
77 public void addEntry() {
78 JPanel panel = new JPanel(new BorderLayout());
79 panel.add(new JLabel("Select issue type"), BorderLayout.NORTH);
80 String[] types = { "discrete", "number" };
81 JComboBox combo = new JComboBox<>(types);
82 panel.add(combo, BorderLayout.CENTER);
83 JOptionPane.showMessageDialog(this, panel);
84 StringModel issuename = new StringModel("issue " + (n++), logger);
85 ValueSetModel valuesetmodel;
86 if (combo.getSelectedItem().equals("discrete"))
87 valuesetmodel = new DiscreteValueSetModel(logger);
88 else
89 valuesetmodel = new NumberValueSetModel(logger);
90 getModel().put(issuename, valuesetmodel);
91
92 }
93
94}
Note: See TracBrowser for help on using the repository browser.