1 | package geniusweb.domaineditor.panels.profile;
|
---|
2 |
|
---|
3 | import java.awt.Component;
|
---|
4 |
|
---|
5 | import javax.swing.JTabbedPane;
|
---|
6 |
|
---|
7 | import geniusweb.domaineditor.model.profile.DiscreteValueSetUtilitiesModel;
|
---|
8 | import geniusweb.domaineditor.model.profile.LinearAdditiveUtilitySpaceModel;
|
---|
9 | import geniusweb.domaineditor.model.profile.NumberValueSetUtilitiesModel;
|
---|
10 | import geniusweb.domaineditor.model.profile.ValueSetUtilitiesModel;
|
---|
11 | import geniusweb.domaineditor.panels.DomainEditorPanel;
|
---|
12 | import tudelft.utilities.logging.Reporter;
|
---|
13 | import tudelft.utilities.mvc.model.MapModel;
|
---|
14 | import tudelft.utilities.mvc.model.StringModel;
|
---|
15 | import tudelft.utilities.mvc.panels.CustomMapEditor;
|
---|
16 | import tudelft.utilities.mvc.panels.MapPanel;
|
---|
17 |
|
---|
18 | /**
|
---|
19 | * Editor for entire {@link LinearAdditiveUtilitySpaceModel}
|
---|
20 | *
|
---|
21 | */
|
---|
22 | public class ProfileEditorPanel extends JTabbedPane {
|
---|
23 |
|
---|
24 | private LinearAdditiveUtilitySpaceModel linmodel;
|
---|
25 | private Reporter log;
|
---|
26 |
|
---|
27 | public ProfileEditorPanel(LinearAdditiveUtilitySpaceModel lamodel,
|
---|
28 | Reporter log) {
|
---|
29 | this.linmodel = lamodel;
|
---|
30 | this.log = log;
|
---|
31 | addTab("Properties", new PropertiesPanel(linmodel.getName(), log));
|
---|
32 | addTab("Domain", new DomainEditorPanel(linmodel.getDomain(), log));
|
---|
33 | addTab("Reservation Bid", new MapPanel<>(linmodel.getReservationBid()));
|
---|
34 | addTab("Utilities", new MyUtilsEditor(linmodel.getIssueUtilities()));
|
---|
35 | addTab("Weights", new MapPanel<>(linmodel.getWeights()));
|
---|
36 | }
|
---|
37 |
|
---|
38 | }
|
---|
39 |
|
---|
40 | /**
|
---|
41 | * CustomMapEditor for the utilities. Pulled out as getEditor is basically a
|
---|
42 | * factory.
|
---|
43 | *
|
---|
44 | */
|
---|
45 | class MyUtilsEditor
|
---|
46 | extends CustomMapEditor<String, StringModel, ValueSetUtilitiesModel> {
|
---|
47 |
|
---|
48 | public MyUtilsEditor(
|
---|
49 | MapModel<StringModel, ValueSetUtilitiesModel> issueUtilities) {
|
---|
50 | super(issueUtilities, false);
|
---|
51 | }
|
---|
52 |
|
---|
53 | @Override
|
---|
54 | public void addEntry() {
|
---|
55 | }
|
---|
56 |
|
---|
57 | @Override
|
---|
58 | public Component getEditor(StringModel key) {
|
---|
59 | ValueSetUtilitiesModel value = getModel().getValue(key);
|
---|
60 | if (value instanceof DiscreteValueSetUtilitiesModel)
|
---|
61 | return new DiscreteValueSetUtilitiesPanel(
|
---|
62 | (DiscreteValueSetUtilitiesModel) value);
|
---|
63 | if (value instanceof NumberValueSetUtilitiesModel)
|
---|
64 | return new NumberValueSetUtilitiesPanel(
|
---|
65 | (NumberValueSetUtilitiesModel) value);
|
---|
66 | throw new RuntimeException("Unknown valueset encountered:" + value);
|
---|
67 | }
|
---|
68 |
|
---|
69 | } |
---|