|
@@ -42,36 +42,41 @@ import net.miginfocom.swing.MigLayout;
|
42
|
42
|
* Perform panel.
|
43
|
43
|
*/
|
44
|
44
|
public final class PerformPanel extends JPanel implements ActionListener {
|
45
|
|
-
|
|
45
|
+
|
46
|
46
|
/**
|
47
|
47
|
* A version number for this class. It should be changed whenever the class
|
48
|
48
|
* structure is changed (or anything else that would prevent serialized
|
49
|
49
|
* objects being unserialized with the new class).
|
50
|
50
|
*/
|
51
|
51
|
private static final long serialVersionUID = 1;
|
52
|
|
-
|
|
52
|
+
|
53
|
53
|
/** Parent server. */
|
54
|
54
|
private final Server server;
|
55
|
|
-
|
|
55
|
+
|
56
|
56
|
/** The action used for server performs. */
|
57
|
57
|
private Action serverAction;
|
58
|
58
|
/** The action used for network performs. */
|
59
|
59
|
private Action networkAction;
|
60
|
|
-
|
|
60
|
+ /** The action used for profile server performs. */
|
|
61
|
+ private Action profileServerAction;
|
|
62
|
+ /** The action used for profile network performs. */
|
|
63
|
+ private Action profileNetworkAction;
|
|
64
|
+
|
61
|
65
|
/** The server perform string. */
|
62
|
66
|
private String serverPerform;
|
63
|
67
|
/** The network perform string. */
|
64
|
68
|
private String networkPerform;
|
65
|
|
-
|
66
|
|
- /** Keeps track of which perform we're editing. */
|
67
|
|
- private boolean isNetworkPerform;
|
68
|
|
-
|
|
69
|
+ /** The profile's server perform string. */
|
|
70
|
+ private String profileServerPerform;
|
|
71
|
+ /** The profile's network perform string. */
|
|
72
|
+ private String profileNetworkPerform;
|
|
73
|
+
|
69
|
74
|
/** Network/server combo box. */
|
70
|
75
|
private JComboBox target;
|
71
|
|
-
|
|
76
|
+
|
72
|
77
|
/** Perform text area. */
|
73
|
78
|
private JTextArea textarea;
|
74
|
|
-
|
|
79
|
+
|
75
|
80
|
/**
|
76
|
81
|
* Creates a new instance of IgnoreList.
|
77
|
82
|
*
|
|
@@ -79,61 +84,81 @@ public final class PerformPanel extends JPanel implements ActionListener {
|
79
|
84
|
*/
|
80
|
85
|
public PerformPanel(final Server server) {
|
81
|
86
|
super();
|
82
|
|
-
|
|
87
|
+
|
83
|
88
|
this.server = server;
|
84
|
|
-
|
|
89
|
+
|
85
|
90
|
this.setOpaque(UIUtilities.getTabbedPaneOpaque());
|
86
|
91
|
initComponents();
|
87
|
92
|
addListeners();
|
88
|
93
|
loadPerforms();
|
89
|
94
|
populatePerform();
|
90
|
95
|
}
|
91
|
|
-
|
|
96
|
+
|
92
|
97
|
/** Initialises teh components. */
|
93
|
98
|
private void initComponents() {
|
94
|
99
|
setLayout(new MigLayout("fill"));
|
95
|
|
-
|
|
100
|
+
|
96
|
101
|
final DefaultComboBoxModel model = new DefaultComboBoxModel();
|
97
|
102
|
target = new JComboBox(model);
|
98
|
|
-
|
99
|
|
- if (!server.getNetwork().isEmpty()) {
|
100
|
|
- model.addElement("Network perform (" + server.getNetwork() + ")");
|
101
|
|
- }
|
102
|
|
- if (!server.getName().isEmpty()) {
|
103
|
|
- model.addElement("Server perform (" + server.getName() + ")");
|
104
|
|
- }
|
105
|
|
-
|
|
103
|
+
|
|
104
|
+ model.addElement("Network perform (" + server.getNetwork()
|
|
105
|
+ + ") Any profile");
|
|
106
|
+ model.addElement("Network perform (" + server.getNetwork()
|
|
107
|
+ + ") This profile (" + server.getProfile().getName() + ")");
|
|
108
|
+ model.addElement("Server perform (" + server.getName()
|
|
109
|
+ + ") Any profile");
|
|
110
|
+ model.addElement("Server perform (" + server.getName()
|
|
111
|
+ + ") This profile (" + server.getProfile().getName() + ")");
|
|
112
|
+
|
106
|
113
|
add(target, "growx, pushx, wrap");
|
107
|
|
-
|
|
114
|
+
|
108
|
115
|
textarea = new JTextArea();
|
109
|
116
|
textarea.setColumns(40);
|
110
|
|
-
|
|
117
|
+
|
111
|
118
|
add(new JScrollPane(textarea), "grow, push");
|
112
|
119
|
}
|
113
|
|
-
|
|
120
|
+
|
114
|
121
|
/** Adds listeners to the components. */
|
115
|
122
|
private void addListeners() {
|
116
|
123
|
target.addActionListener(this);
|
117
|
124
|
}
|
118
|
|
-
|
|
125
|
+
|
119
|
126
|
/** Loads the perform actions. */
|
120
|
127
|
private void loadPerforms() {
|
121
|
|
- serverAction = PerformWrapper.getPerformWrapper().getActionForServer(server.getName());
|
122
|
|
- networkAction = PerformWrapper.getPerformWrapper().getActionForNetwork(server.getNetwork());
|
123
|
|
-
|
|
128
|
+ serverAction = PerformWrapper.getPerformWrapper().
|
|
129
|
+ getActionForServer(server.getName());
|
|
130
|
+ networkAction = PerformWrapper.getPerformWrapper().
|
|
131
|
+ getActionForNetwork(server.getNetwork());
|
|
132
|
+ profileServerAction = PerformWrapper.getPerformWrapper().
|
|
133
|
+ getActionForServer(server.getName(), server.getProfile().getName());
|
|
134
|
+ profileNetworkAction = PerformWrapper.getPerformWrapper().
|
|
135
|
+ getActionForNetwork(server.getNetwork(), server.getProfile().getName());
|
|
136
|
+
|
124
|
137
|
if (serverAction == null) {
|
125
|
138
|
serverPerform = "";
|
126
|
139
|
} else {
|
127
|
140
|
serverPerform = implode(serverAction.getResponse());
|
128
|
141
|
}
|
129
|
|
-
|
|
142
|
+
|
130
|
143
|
if (networkAction == null) {
|
131
|
144
|
networkPerform = "";
|
132
|
145
|
} else {
|
133
|
146
|
networkPerform = implode(networkAction.getResponse());
|
134
|
147
|
}
|
|
148
|
+
|
|
149
|
+ if (profileServerAction == null) {
|
|
150
|
+ profileServerPerform = "";
|
|
151
|
+ } else {
|
|
152
|
+ profileServerPerform = implode(profileServerAction.getResponse());
|
|
153
|
+ }
|
|
154
|
+
|
|
155
|
+ if (profileNetworkAction == null) {
|
|
156
|
+ profileNetworkPerform = "";
|
|
157
|
+ } else {
|
|
158
|
+ profileNetworkPerform = implode(profileServerAction.getResponse());
|
|
159
|
+ }
|
135
|
160
|
}
|
136
|
|
-
|
|
161
|
+
|
137
|
162
|
/**
|
138
|
163
|
* Implodes the specified string array, joining each line with a LF.
|
139
|
164
|
*
|
|
@@ -142,60 +167,107 @@ public final class PerformPanel extends JPanel implements ActionListener {
|
142
|
167
|
*/
|
143
|
168
|
private String implode(final String[] lines) {
|
144
|
169
|
final StringBuilder res = new StringBuilder();
|
145
|
|
-
|
|
170
|
+
|
146
|
171
|
for (String line : lines) {
|
147
|
172
|
res.append('\n');
|
148
|
173
|
res.append(line);
|
149
|
174
|
}
|
150
|
|
-
|
|
175
|
+
|
151
|
176
|
return res.length() == 0 ? "" : res.substring(1);
|
152
|
177
|
}
|
153
|
|
-
|
|
178
|
+
|
154
|
179
|
/** Populates the perform text area. */
|
155
|
180
|
private void populatePerform() {
|
156
|
|
- if (target.getSelectedIndex() == 0) {
|
157
|
|
- isNetworkPerform = true;
|
158
|
|
- textarea.setText(networkPerform);
|
159
|
|
- } else {
|
160
|
|
- isNetworkPerform = false;
|
161
|
|
- textarea.setText(serverPerform);
|
|
181
|
+ switch (target.getSelectedIndex()) {
|
|
182
|
+ case 0:
|
|
183
|
+ textarea.setText(networkPerform);
|
|
184
|
+ break;
|
|
185
|
+ case 1:
|
|
186
|
+ textarea.setText(profileNetworkPerform);
|
|
187
|
+ break;
|
|
188
|
+ case 2:
|
|
189
|
+ textarea.setText(serverPerform);
|
|
190
|
+ break;
|
|
191
|
+ case 3:
|
|
192
|
+ textarea.setText(profileServerPerform);
|
|
193
|
+ break;
|
|
194
|
+ default:
|
|
195
|
+ break;
|
162
|
196
|
}
|
163
|
197
|
}
|
164
|
|
-
|
|
198
|
+
|
165
|
199
|
/** Stores the text currently in the textarea into the perform strings. */
|
166
|
200
|
private void storeText() {
|
167
|
|
- if (isNetworkPerform) {
|
168
|
|
- networkPerform = textarea.getText();
|
169
|
|
- } else {
|
170
|
|
- serverPerform = textarea.getText();
|
|
201
|
+ switch (target.getSelectedIndex()) {
|
|
202
|
+ case 0:
|
|
203
|
+ networkPerform = textarea.getText();
|
|
204
|
+ break;
|
|
205
|
+ case 1:
|
|
206
|
+ profileNetworkPerform = textarea.getText();
|
|
207
|
+ break;
|
|
208
|
+ case 2:
|
|
209
|
+ serverPerform = textarea.getText();
|
|
210
|
+ break;
|
|
211
|
+ case 3:
|
|
212
|
+ profileServerPerform = textarea.getText();
|
|
213
|
+ break;
|
|
214
|
+ default:
|
|
215
|
+ break;
|
171
|
216
|
}
|
172
|
217
|
}
|
173
|
|
-
|
|
218
|
+
|
174
|
219
|
/** Saves the performs. */
|
175
|
220
|
public void savePerforms() {
|
176
|
221
|
storeText();
|
177
|
|
-
|
|
222
|
+
|
178
|
223
|
if (!serverPerform.isEmpty() || serverAction != null) {
|
179
|
224
|
if (serverAction == null) {
|
180
|
|
- serverAction = PerformWrapper.getPerformWrapper().createActionForServer(server.getName());
|
|
225
|
+ serverAction = PerformWrapper.getPerformWrapper().
|
|
226
|
+ createActionForServer(server.getName());
|
181
|
227
|
}
|
182
|
228
|
serverAction.setResponse(serverPerform.split("\n"));
|
183
|
229
|
serverAction.save();
|
184
|
230
|
}
|
185
|
|
-
|
|
231
|
+
|
186
|
232
|
if (!networkPerform.isEmpty() || networkAction != null) {
|
187
|
233
|
if (networkAction == null) {
|
188
|
|
- networkAction = PerformWrapper.getPerformWrapper().createActionForNetwork(server.getNetwork());
|
|
234
|
+ networkAction = PerformWrapper.getPerformWrapper().
|
|
235
|
+ createActionForNetwork(server.getNetwork());
|
189
|
236
|
}
|
190
|
237
|
networkAction.setResponse(networkPerform.split("\n"));
|
191
|
238
|
networkAction.save();
|
192
|
239
|
}
|
|
240
|
+
|
|
241
|
+ if (!profileNetworkPerform.isEmpty() || profileNetworkAction != null) {
|
|
242
|
+ if (profileNetworkAction == null) {
|
|
243
|
+ profileNetworkAction = PerformWrapper.getPerformWrapper().
|
|
244
|
+ createActionForNetwork(server.getNetwork(),
|
|
245
|
+ server.getProfile().getName());
|
|
246
|
+ }
|
|
247
|
+ profileNetworkAction.setResponse(profileNetworkPerform.split("\n"));
|
|
248
|
+ profileNetworkAction.save();
|
|
249
|
+ }
|
|
250
|
+
|
|
251
|
+ if (!profileServerPerform.isEmpty() || profileServerAction != null) {
|
|
252
|
+ if (profileServerAction == null) {
|
|
253
|
+ profileServerAction = PerformWrapper.getPerformWrapper().
|
|
254
|
+ createActionForServer(server.getName(),
|
|
255
|
+ server.getProfile().getName());
|
|
256
|
+ }
|
|
257
|
+ profileServerAction.setResponse(profileServerPerform.split("\n"));
|
|
258
|
+ profileServerAction.save();
|
|
259
|
+ }
|
193
|
260
|
}
|
194
|
|
-
|
195
|
|
- /** {@inheritDoc} */
|
|
261
|
+
|
|
262
|
+ /**
|
|
263
|
+ * {@inheritDoc}
|
|
264
|
+ *
|
|
265
|
+ * @param e Action event
|
|
266
|
+ */
|
|
267
|
+ @Override
|
196
|
268
|
public void actionPerformed(final ActionEvent e) {
|
197
|
269
|
storeText();
|
198
|
270
|
populatePerform();
|
199
|
271
|
}
|
200
|
|
-
|
|
272
|
+
|
201
|
273
|
}
|