1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package p3j.gui.dialogs;
17
18 import java.util.ArrayList;
19 import java.util.List;
20
21 import javax.swing.JComboBox;
22
23 import p3j.database.DatabaseFactory;
24 import p3j.gui.panels.PropertiesShowPanelFactory;
25 import p3j.gui.panels.projections.IProjectionTree;
26 import p3j.gui.panels.projections.ProjectionTreeNode;
27 import p3j.misc.gui.GUI;
28 import p3j.pppm.parameters.ParameterAssignment;
29 import p3j.pppm.sets.Set;
30 import p3j.pppm.sets.SetType;
31
32
33
34
35
36
37
38
39
40 public class MoveAssignmentToSetDialog extends ProjectionDialog {
41
42
43 private static final long serialVersionUID = -1158858943985692727L;
44
45
46 private final ParameterAssignment assignment;
47
48
49 private final Set oldSet;
50
51
52 private final SetType setType;
53
54
55 private final IProjectionTree projectionTree;
56
57
58 private final JComboBox<Set> desitnationSetSelector = new JComboBox<Set>();
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 public MoveAssignmentToSetDialog(ParameterAssignment parameterAssignment,
75 IProjectionTree projTree, Set assignmentSet, SetType currentSetType) {
76 assignment = parameterAssignment;
77 oldSet = assignmentSet;
78 projectionTree = projTree;
79 setType = currentSetType;
80 initUI();
81 }
82
83 @Override
84 protected void okAction() {
85 Object item = desitnationSetSelector.getSelectedItem();
86 if (!(item instanceof Set)) {
87 return;
88 }
89 Set destSet = (Set) item;
90 oldSet.removeParameterAssignment(assignment);
91 destSet.addParameterAssignment(assignment);
92 DatabaseFactory.getDatabaseSingleton().saveSet(oldSet);
93 DatabaseFactory.getDatabaseSingleton().saveSet(destSet);
94 projectionTree.totalRefresh();
95 ProjectionTreeNode<?> selectNode = ((ProjectionTreeNode<?>) projectionTree
96 .getTreeModel().getRoot()).getChildWithEntity(assignment
97 .getParamInstance());
98 if (selectNode.getChildCount() > 0) {
99 selectNode = (ProjectionTreeNode<?>) selectNode.getChildAt(0);
100 }
101 projectionTree.selectNode(selectNode);
102 setVisible(false);
103 }
104
105
106
107
108 private void initUI() {
109 setTitle("Moving a parameter assignment");
110 setSize(DIALOG_WIDTH, DIALOG_HEIGHT);
111 setModal(true);
112 GUI.centerOnScreen(this);
113
114 List<Set> sets = new ArrayList<Set>(setType.getSets());
115 sets.remove(oldSet);
116
117 for (Set s : sets) {
118 desitnationSetSelector.addItem(s);
119 }
120
121 PropertiesShowPanelFactory pspf = new PropertiesShowPanelFactory(
122 getButtons(), 1);
123 pspf.sep("Assignment '" + assignment.getName() + "'");
124 pspf.app("Move to set:", desitnationSetSelector);
125 getContentPane().add(pspf.constructPanel());
126 }
127
128
129
130
131
132
133
134 public boolean isMeaningful() {
135 return desitnationSetSelector.getItemCount() > 0;
136 }
137 }