]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleEvents.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@671 6f19259b...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / module / ui / ModuleEvents.java
CommitLineData
a13899c5 1/** @file\r
2 \r
3 The file is used to create, update Event of MSA/MBD file\r
4 \r
5 Copyright (c) 2006, Intel Corporation\r
6 All rights reserved. This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10 \r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 \r
14 **/\r
15package org.tianocore.frameworkwizard.module.ui;\r
16\r
17import java.awt.event.ActionEvent;\r
18import java.awt.event.ComponentEvent;\r
19import java.awt.event.ItemEvent;\r
20import java.util.Vector;\r
21\r
22import javax.swing.JButton;\r
23import javax.swing.JComboBox;\r
24import javax.swing.JLabel;\r
25import javax.swing.JPanel;\r
26import javax.swing.JScrollPane;\r
27import javax.swing.JTextArea;\r
28import javax.swing.JTextField;\r
29\r
30import org.tianocore.EventsDocument;\r
31import org.tianocore.ProtocolNotifyUsage;\r
32import org.tianocore.ProtocolUsage;\r
33import org.tianocore.EventsDocument.Events;\r
34import org.tianocore.EventsDocument.Events.CreateEvents;\r
35import org.tianocore.EventsDocument.Events.SignalEvents;\r
36import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
37import org.tianocore.frameworkwizard.common.DataType;\r
38import org.tianocore.frameworkwizard.common.DataValidation;\r
39import org.tianocore.frameworkwizard.common.EnumerationData;\r
40import org.tianocore.frameworkwizard.common.Log;\r
41import org.tianocore.frameworkwizard.common.OpeningModuleType;\r
42import org.tianocore.frameworkwizard.common.Tools;\r
43import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
44import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
45import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
46import org.tianocore.frameworkwizard.module.Identification.Events.EventsIdentification;\r
47import org.tianocore.frameworkwizard.module.Identification.Events.EventsVector;\r
48\r
49/**\r
50 The class is used to create, update Event of MSA/MBD file\r
51 It extends IInternalFrame\r
52 \r
53 @since ModuleEditor 1.0\r
54\r
55 **/\r
56public class ModuleEvents extends IInternalFrame {\r
57\r
58 ///\r
59 /// Define class Serial Version UID\r
60 ///\r
61 private static final long serialVersionUID = -4396143706422842331L;\r
62\r
63 //\r
64 //Define class members\r
65 //\r
66 private JPanel jContentPane = null;\r
67\r
68 private JLabel jLabelEventType = null;\r
69\r
70 private JLabel jLabelC_Name = null;\r
71\r
72 private JTextField jTextFieldC_Name = null;\r
73\r
74 private JLabel jLabelUsage = null;\r
75\r
76 private JComboBox jComboBoxUsage = null;\r
77\r
78 private StarLabel jStarLabel1 = null;\r
79\r
80 private StarLabel jStarLabel2 = null;\r
81\r
82 private JComboBox jComboBoxEventsType = null;\r
83\r
84 private JTextArea jTextAreaList = null;\r
85\r
86 private JComboBox jComboBoxList = null;\r
87\r
88 private JButton jButtonAdd = null;\r
89\r
90 private JButton jButtonRemove = null;\r
91\r
92 private JButton jButtonUpdate = null;\r
93\r
94 private JScrollPane jScrollPane = null;\r
95\r
96 private JScrollPane jScrollPaneList = null;\r
97\r
98 private JLabel jLabelArch = null;\r
99\r
100 private ICheckBoxList iCheckBoxListArch = null;\r
101\r
102 private JScrollPane jScrollPaneArch = null;\r
103 \r
104 private JLabel jLabelHelpText = null;\r
105\r
106 private JTextField jTextFieldHelpText = null;\r
107 \r
108 private JLabel jLabelFeatureFlag = null;\r
109\r
110 private JTextField jTextFieldFeatureFlag = null;\r
111\r
112 //\r
113 // Not used by UI\r
114 //\r
115 private int intSelectedItemId = 0;\r
116\r
117 private OpeningModuleType omt = null;\r
118\r
119 private ModuleSurfaceArea msa = null;\r
120\r
121 private EventsDocument.Events events = null;\r
122\r
123 private EventsIdentification id = null;\r
124\r
125 private EventsVector vid = new EventsVector();\r
126\r
127 private EnumerationData ed = new EnumerationData();\r
128\r
129 /**\r
130 This method initializes jTextFieldC_Name \r
131 \r
132 @return javax.swing.JTextField jTextFieldC_Name\r
133 \r
134 **/\r
135 private JTextField getJTextFieldC_Name() {\r
136 if (jTextFieldC_Name == null) {\r
137 jTextFieldC_Name = new JTextField();\r
138 jTextFieldC_Name.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
139 jTextFieldC_Name.setPreferredSize(new java.awt.Dimension(320, 20));\r
140 }\r
141 return jTextFieldC_Name;\r
142 }\r
143\r
144 /**\r
145 This method initializes jComboBoxUsage \r
146 \r
147 @return javax.swing.JComboBox jComboBoxUsage\r
148 \r
149 **/\r
150 private JComboBox getJComboBoxUsage() {\r
151 if (jComboBoxUsage == null) {\r
152 jComboBoxUsage = new JComboBox();\r
153 jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
154 jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
155 }\r
156 return jComboBoxUsage;\r
157 }\r
158\r
159 /**\r
160 * This method initializes jComboBoxEventsType \r
161 * \r
162 * @return javax.swing.JComboBox \r
163 */\r
164 private JComboBox getJComboBoxEventsType() {\r
165 if (jComboBoxEventsType == null) {\r
166 jComboBoxEventsType = new JComboBox();\r
167 jComboBoxEventsType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
168 jComboBoxEventsType.setPreferredSize(new java.awt.Dimension(320, 20));\r
169 }\r
170 return jComboBoxEventsType;\r
171 }\r
172\r
173 /**\r
174 This method initializes jComboBoxFileList \r
175 \r
176 @return javax.swing.JComboBox jComboBoxFileList\r
177 \r
178 **/\r
179 private JComboBox getJComboBoxList() {\r
180 if (jComboBoxList == null) {\r
181 jComboBoxList = new JComboBox();\r
182 jComboBoxList.setBounds(new java.awt.Rectangle(15, 220, 210, 20));\r
183 jComboBoxList.addItemListener(this);\r
184 jComboBoxList.addActionListener(this);\r
185 jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
186 }\r
187 return jComboBoxList;\r
188 }\r
189\r
190 /**\r
191 This method initializes jButtonAdd \r
192 \r
193 @return javax.swing.JButton jButtonAdd\r
194 \r
195 **/\r
196 private JButton getJButtonAdd() {\r
197 if (jButtonAdd == null) {\r
198 jButtonAdd = new JButton();\r
199 jButtonAdd.setBounds(new java.awt.Rectangle(230, 220, 80, 20));\r
200 jButtonAdd.setText("Add");\r
201 jButtonAdd.addActionListener(this);\r
202 jButtonAdd.setPreferredSize(new java.awt.Dimension(80, 20));\r
203 }\r
204 return jButtonAdd;\r
205 }\r
206\r
207 /**\r
208 This method initializes jButtonRemove \r
209 \r
210 @return javax.swing.JButton jButtonRemove\r
211 \r
212 **/\r
213 private JButton getJButtonRemove() {\r
214 if (jButtonRemove == null) {\r
215 jButtonRemove = new JButton();\r
216 jButtonRemove.setBounds(new java.awt.Rectangle(400, 220, 80, 20));\r
217 jButtonRemove.setText("Remove");\r
218 jButtonRemove.addActionListener(this);\r
219 jButtonRemove.setPreferredSize(new java.awt.Dimension(80, 20));\r
220 }\r
221 return jButtonRemove;\r
222 }\r
223\r
224 /**\r
225 This method initializes jButtonUpdate \r
226 \r
227 @return javax.swing.JButton jButtonUpdate\r
228 \r
229 **/\r
230 private JButton getJButtonUpdate() {\r
231 if (jButtonUpdate == null) {\r
232 jButtonUpdate = new JButton();\r
233 jButtonUpdate.setBounds(new java.awt.Rectangle(315, 220, 80, 20));\r
234 jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
235 jButtonUpdate.setText("Update");\r
236 jButtonUpdate.addActionListener(this);\r
237 }\r
238 return jButtonUpdate;\r
239 }\r
240\r
241 /**\r
242 * This method initializes jScrollPaneFileList \r
243 * \r
244 * @return javax.swing.JScrollPane \r
245 */\r
246 private JScrollPane getJScrollPaneList() {\r
247 if (jScrollPaneList == null) {\r
248 jScrollPaneList = new JScrollPane();\r
249 jScrollPaneList.setBounds(new java.awt.Rectangle(15, 245, 465, 240));\r
250 jScrollPaneList.setViewportView(getJTextAreaList());\r
251 jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
252 }\r
253 return jScrollPaneList;\r
254 }\r
255\r
256 /**\r
257 This method initializes jScrollPane \r
258 \r
259 @return javax.swing.JScrollPane \r
260 */\r
261 private JScrollPane getJScrollPane() {\r
262 if (jScrollPane == null) {\r
263 jScrollPane = new JScrollPane();\r
264 jScrollPane.setViewportView(getJContentPane());\r
265 }\r
266 return jScrollPane;\r
267 }\r
268\r
269 /**\r
270 * This method initializes jTextAreaFileList \r
271 * \r
272 * @return javax.swing.JTextArea \r
273 */\r
274 private JTextArea getJTextAreaList() {\r
275 if (jTextAreaList == null) {\r
276 jTextAreaList = new JTextArea();\r
277 jTextAreaList.setEditable(false);\r
278\r
279 }\r
280 return jTextAreaList;\r
281 }\r
282\r
283 /**\r
284 This method initializes iCheckBoxListArch \r
285 \r
286 @return ICheckBoxList \r
287 **/\r
288 private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
289 if (iCheckBoxListArch == null) {\r
290 iCheckBoxListArch = new ICheckBoxList();\r
291 iCheckBoxListArch.addFocusListener(this);\r
292 iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
293 }\r
294 return iCheckBoxListArch;\r
295 }\r
296\r
297 /**\r
298 This method initializes jScrollPaneArch \r
299 \r
300 @return javax.swing.JScrollPane \r
301 \r
302 **/\r
303 private JScrollPane getJScrollPaneArch() {\r
304 if (jScrollPaneArch == null) {\r
305 jScrollPaneArch = new JScrollPane();\r
306 jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 135, 320, 80));\r
307 jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
308 jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
309 }\r
310 return jScrollPaneArch;\r
311 }\r
312\r
313 /**\r
314 * This method initializes jTextFieldFeatureFlag \r
315 * \r
316 * @return javax.swing.JTextField \r
317 */\r
318 private JTextField getJTextFieldFeatureFlag() {\r
319 if (jTextFieldFeatureFlag == null) {\r
320 jTextFieldFeatureFlag = new JTextField();\r
321 jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160,110,320,20));\r
322 jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320,20));\r
323 }\r
324 return jTextFieldFeatureFlag;\r
325 }\r
326 \r
327 /**\r
328 This method initializes jTextFieldHelpText \r
329 \r
330 @return javax.swing.JTextField \r
331 \r
332 **/\r
333 private JTextField getJTextFieldHelpText() {\r
334 if (jTextFieldHelpText == null) {\r
335 jTextFieldHelpText = new JTextField();\r
336 jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
337 jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
338 }\r
339 return jTextFieldHelpText;\r
340 }\r
341\r
342 public static void main(String[] args) {\r
343\r
344 }\r
345 \r
346 /**\r
347 This method initializes this\r
348 \r
349 **/\r
350 private void init() {\r
351 this.setSize(500, 515);\r
352 this.setContentPane(getJScrollPane());\r
353 this.setTitle("Events");\r
354 initFrame();\r
355 this.setViewMode(false);\r
356 }\r
357\r
358 /**\r
359 This method initializes this\r
360 Fill values to all fields if these values are not empty\r
361 \r
362 @param inPackageDependencies\r
363\r
364 **/\r
365 private void init(Events inEvents) {\r
366 init();\r
367 this.events = inEvents;\r
368\r
369 if (this.events != null) {\r
370 if (this.events.getCreateEvents() != null) {\r
371 if (this.events.getCreateEvents().getEventTypesList().size() > 0) {\r
372 for (int index = 0; index < this.events.getCreateEvents().getEventTypesList().size(); index++) {\r
373 String arg0 = events.getCreateEvents().getEventTypesList().get(index).getEventGuidCName();\r
374 String arg1 = ed.getVEventType().get(0);\r
375 String arg2 = null;\r
376 if (events.getCreateEvents().getEventTypesList().get(index).getUsage() != null) {\r
377 arg2 = events.getCreateEvents().getEventTypesList().get(index).getUsage().toString(); \r
378 }\r
379 \r
380 String arg3 = events.getCreateEvents().getEventTypesList().get(index).getFeatureFlag();\r
381 Vector<String> arg4 = Tools.convertListToVector(events.getCreateEvents().getEventTypesList().get(index)\r
382 .getSupArchList());\r
383 String arg5 = events.getCreateEvents().getEventTypesList().get(index).getHelpText();\r
384 id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
385 vid.addEvents(id);\r
386 }\r
387 }\r
388 }\r
389 if (this.events.getSignalEvents() != null) {\r
390 if (this.events.getSignalEvents().getEventTypesList().size() > 0) {\r
391 for (int index = 0; index < this.events.getSignalEvents().getEventTypesList().size(); index++) {\r
392 String arg0 = events.getSignalEvents().getEventTypesList().get(index).getEventGuidCName();\r
393 String arg1 = ed.getVEventType().get(1);\r
394 String arg2 = null;\r
395 if (events.getSignalEvents().getEventTypesList().get(index).getUsage() != null) {\r
396 arg2 = events.getSignalEvents().getEventTypesList().get(index).getUsage().toString(); \r
397 }\r
398\r
399 String arg3 = events.getSignalEvents().getEventTypesList().get(index).getFeatureFlag();\r
400 Vector<String> arg4 = Tools.convertListToVector(events.getSignalEvents().getEventTypesList().get(index)\r
401 .getSupArchList());\r
402 String arg5 = events.getSignalEvents().getEventTypesList().get(index).getHelpText();\r
403 id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
404 vid.addEvents(id);\r
405 }\r
406 }\r
407 }\r
408 }\r
409 //\r
410 // Update the list\r
411 //\r
412 Tools.generateComboBoxByVector(jComboBoxList, vid.getEventsName());\r
413 reloadListArea();\r
414 }\r
415\r
416 /**\r
417 This is the default constructor\r
418 \r
419 **/\r
420 public ModuleEvents() {\r
421 super();\r
422 init();\r
423 this.setVisible(true);\r
424 }\r
425\r
426 /**\r
427 This is the override edit constructor\r
428 \r
429 @param inEvents The input EventsDocument.Events\r
430 \r
431 **/\r
432 public ModuleEvents(OpeningModuleType inOmt) {\r
433 super();\r
434 this.omt = inOmt;\r
435 this.msa = omt.getXmlMsa();\r
436 init(msa.getEvents());\r
437 this.setVisible(true);\r
438 }\r
439\r
440 /**\r
441 Disable all components when the mode is view\r
442 \r
443 @param isView true - The view mode; false - The non-view mode\r
444 \r
445 **/\r
446 public void setViewMode(boolean isView) {\r
447 if (isView) {\r
448 this.jTextFieldC_Name.setEnabled(!isView);\r
449 this.jComboBoxUsage.setEnabled(!isView);\r
450 }\r
451 }\r
452\r
453 /**\r
454 This method initializes jContentPane\r
455 \r
456 @return javax.swing.JPanel jContentPane\r
457 \r
458 **/\r
459 private JPanel getJContentPane() {\r
460 if (jContentPane == null) {\r
461 jLabelFeatureFlag = new JLabel();\r
462 jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15,110,140,20));\r
463 jLabelFeatureFlag.setText("Feature Flag");\r
464 jLabelArch = new JLabel();\r
465 jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
466 jLabelArch.setText("Arch");\r
467 jLabelUsage = new JLabel();\r
468 jLabelUsage.setText("Usage");\r
469 jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
470 jLabelC_Name = new JLabel();\r
471 jLabelC_Name.setText("Guid C_Name");\r
472 jLabelC_Name.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
473 jLabelEventType = new JLabel();\r
474 jLabelEventType.setText("Event Type");\r
475 jLabelEventType.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
476 jLabelHelpText = new JLabel();\r
477 jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));\r
478 jLabelHelpText.setText("Help Text");\r
479\r
480 jContentPane = new JPanel();\r
481 jContentPane.setLayout(null);\r
482 jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
483\r
484 jContentPane.add(jLabelEventType, null);\r
485 jContentPane.add(jLabelC_Name, null);\r
486 jContentPane.add(getJTextFieldC_Name(), null);\r
487 jContentPane.add(jLabelUsage, null);\r
488 jContentPane.add(getJComboBoxUsage(), null);\r
489 jStarLabel1 = new StarLabel();\r
490 jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20));\r
491 jStarLabel2 = new StarLabel();\r
492 jStarLabel2.setBounds(new java.awt.Rectangle(0, 35, 10, 20));\r
493\r
494 jContentPane.add(jStarLabel1, null);\r
495 jContentPane.add(jStarLabel2, null);\r
496 jContentPane.add(getJComboBoxEventsType(), null);\r
497\r
498 jContentPane.add(getJComboBoxList(), null);\r
499 jContentPane.add(getJButtonAdd(), null);\r
500 jContentPane.add(getJButtonRemove(), null);\r
501 jContentPane.add(getJButtonUpdate(), null);\r
502 jContentPane.add(getJScrollPaneList(), null);\r
503 jContentPane.add(jLabelArch, null);\r
504 jContentPane.add(getJScrollPaneArch(), null);\r
505 jContentPane.add(jLabelFeatureFlag, null);\r
506 jContentPane.add(getJTextFieldFeatureFlag(), null);\r
507 jContentPane.add(jLabelHelpText, null);\r
508 jContentPane.add(getJTextFieldHelpText(), null);\r
509 }\r
510 return jContentPane;\r
511 }\r
512\r
513 /**\r
514 This method initializes events groups and usage type\r
515 \r
516 **/\r
517 private void initFrame() {\r
518 Tools.generateComboBoxByVector(jComboBoxEventsType, ed.getVEventType());\r
519 Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVEventUsage());\r
520 \r
521 this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
522 }\r
523\r
524 /* (non-Javadoc)\r
525 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
526 *\r
527 * Override actionPerformed to listen all actions\r
528 * \r
529 */\r
530 public void actionPerformed(ActionEvent arg0) {\r
531 if (arg0.getSource() == jButtonAdd) {\r
532 if (!checkAdd()) {\r
533 return;\r
534 }\r
535 addToList();\r
536 }\r
537 if (arg0.getSource() == jButtonRemove) {\r
538 removeFromList();\r
539 }\r
540 if (arg0.getSource() == jButtonUpdate) {\r
541 if (!checkAdd()) {\r
542 return;\r
543 }\r
544 updateForList();\r
545 }\r
546 }\r
547\r
548 /**\r
549 Data validation for all fields\r
550 \r
551 @retval true - All datas are valid\r
552 @retval false - At least one data is invalid\r
553 \r
554 **/\r
555 public boolean checkAdd() {\r
556 //\r
557 // Check if all fields have correct data types \r
558 //\r
559\r
560 //\r
561 // Check Name \r
562 //\r
563 if (isEmpty(this.jTextFieldC_Name.getText())) {\r
564 Log.err("Event Name couldn't be empty");\r
565 return false;\r
566 }\r
567 \r
568 if (!isEmpty(this.jTextFieldC_Name.getText())) {\r
569 if (!DataValidation.isC_NameType(this.jTextFieldC_Name.getText())) {\r
570 Log.err("Incorrect data type for Event Name");\r
571 return false;\r
572 }\r
573 }\r
574 \r
575 //\r
576 // Check FeatureFlag\r
577 //\r
578 if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
579 if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
580 Log.err("Incorrect data type for Feature Flag");\r
581 return false;\r
582 }\r
583 }\r
584\r
585 return true;\r
586 }\r
587\r
588 /**\r
589 Save all components of Events\r
590 if exists events, set the value directly\r
591 if not exists events, new an instance first\r
592 \r
593 **/\r
594 public void save() {\r
595 try {\r
596 int count = this.vid.size();\r
597\r
598 this.events = Events.Factory.newInstance();\r
599 CreateEvents ce = CreateEvents.Factory.newInstance();\r
600 SignalEvents se = SignalEvents.Factory.newInstance();\r
601 \r
602 if (count > 0) {\r
603 for (int index = 0; index < count; index++) {\r
604 if (vid.getEvents(index).getType().equals(ed.getVEventType().get(0))) {\r
605 CreateEvents.EventTypes e = CreateEvents.EventTypes.Factory.newInstance();\r
606 if (!isEmpty(vid.getEvents(index).getName())) {\r
607 e.setEventGuidCName(vid.getEvents(index).getName());\r
608 }\r
609 if (!isEmpty(vid.getEvents(index).getUsage())) {\r
610 e.setUsage(ProtocolUsage.Enum.forString(vid.getEvents(index).getUsage()));\r
611 }\r
612 if (!isEmpty(vid.getEvents(index).getFeatureFlag())) {\r
613 e.setFeatureFlag(vid.getEvents(index).getFeatureFlag());\r
614 }\r
615 if (vid.getEvents(index).getSupArchList() != null\r
616 && vid.getEvents(index).getSupArchList().size() > 0) {\r
617 e.setSupArchList(vid.getEvents(index).getSupArchList());\r
618 }\r
619 if (!isEmpty(vid.getEvents(index).getHelp())) {\r
620 e.setHelpText(vid.getEvents(index).getHelp());\r
621 }\r
622 ce.addNewEventTypes();\r
623 ce.setEventTypesArray(ce.getEventTypesList().size() - 1, e);\r
624 }\r
625 if (vid.getEvents(index).getType().equals("Protocol Notify")) {\r
626 SignalEvents.EventTypes e = SignalEvents.EventTypes.Factory.newInstance();\r
627 if (!isEmpty(vid.getEvents(index).getName())) {\r
628 e.setEventGuidCName(vid.getEvents(index).getName());\r
629 }\r
630 if (!isEmpty(vid.getEvents(index).getUsage())) {\r
631 e.setUsage(ProtocolNotifyUsage.Enum.forString(vid.getEvents(index).getUsage()));\r
632 }\r
633 if (!isEmpty(vid.getEvents(index).getFeatureFlag())) {\r
634 e.setFeatureFlag(vid.getEvents(index).getFeatureFlag());\r
635 }\r
636 if (vid.getEvents(index).getSupArchList() != null\r
637 && vid.getEvents(index).getSupArchList().size() > 0) {\r
638 e.setSupArchList(vid.getEvents(index).getSupArchList());\r
639 }\r
640 if (!isEmpty(vid.getEvents(index).getHelp())) {\r
641 e.setHelpText(vid.getEvents(index).getHelp());\r
642 }\r
643 se.addNewEventTypes();\r
644 se.setEventTypesArray(ce.getEventTypesList().size() - 1, e);\r
645 }\r
646 }\r
647 }\r
648 if (ce.getEventTypesList().size() > 0) {\r
649 events.addNewCreateEvents();\r
650 events.setCreateEvents(ce);\r
651 }\r
652 if (se.getEventTypesList().size() > 0) {\r
653 events.addNewSignalEvents();\r
654 events.setSignalEvents(se);\r
655 }\r
656 this.msa.setEvents(events);\r
657 this.omt.setSaved(false);\r
658 } catch (Exception e) {\r
659 e.printStackTrace();\r
660 Log.err("Update Events", e.getMessage());\r
661 }\r
662 }\r
663\r
664 /* (non-Javadoc)\r
665 * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
666 * \r
667 * Override componentResized to resize all components when frame's size is changed\r
668 */\r
669 public void componentResized(ComponentEvent arg0) {\r
670 int intCurrentWidth = this.getJContentPane().getWidth();\r
671 int intCurrentHeight = this.getJContentPane().getHeight();\r
672 int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
673 int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
674\r
675 resizeComponentWidth(jComboBoxEventsType, intCurrentWidth, intPreferredWidth);\r
676 resizeComponentWidth(jTextFieldC_Name, intCurrentWidth, intPreferredWidth);\r
677 resizeComponentWidth(jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
678 resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
679 resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
680 resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
681 \r
682 resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
683 resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
684 relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
685 relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
686 relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
687 }\r
688 \r
689 private EventsIdentification getCurrentEvents() {\r
690 String arg0 = this.jTextFieldC_Name.getText();\r
691 String arg1 = this.jComboBoxEventsType.getSelectedItem().toString();\r
692 String arg2 = this.jComboBoxUsage.getSelectedItem().toString();\r
693\r
694 String arg3 = this.jTextFieldFeatureFlag.getText();\r
695 Vector<String> arg4 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
696 String arg5 = this.jTextFieldHelpText.getText();\r
697 id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
698 return id;\r
699 }\r
700\r
701 /**\r
702 Add current item to Vector\r
703 \r
704 **/\r
705 private void addToList() {\r
706 intSelectedItemId = vid.size();\r
707\r
708 vid.addEvents(getCurrentEvents());\r
709\r
710 jComboBoxList.addItem(id.getName());\r
711 jComboBoxList.setSelectedItem(id.getName());\r
712\r
713 //\r
714 // Reset select item index\r
715 //\r
716 intSelectedItemId = vid.size();\r
717\r
718 //\r
719 // Reload all fields of selected item\r
720 //\r
721 reloadFromList();\r
722\r
723 // \r
724 // Save to memory\r
725 //\r
726 save();\r
727 }\r
728\r
729 /**\r
730 Remove current item from Vector\r
731 \r
732 **/\r
733 private void removeFromList() {\r
734 //\r
735 // Check if exist items\r
736 //\r
737 if (this.vid.size() < 1) {\r
738 return;\r
739 }\r
740\r
741 int intTempIndex = intSelectedItemId;\r
742\r
743 jComboBoxList.removeItemAt(intSelectedItemId);\r
744\r
745 vid.removeEvents(intTempIndex);\r
746\r
747 //\r
748 // Reload all fields of selected item\r
749 //\r
750 reloadFromList();\r
751\r
752 // \r
753 // Save to memory\r
754 //\r
755 save();\r
756 }\r
757\r
758 /**\r
759 Update current item of Vector\r
760 \r
761 **/\r
762 private void updateForList() {\r
763 //\r
764 // Check if exist items\r
765 //\r
766 if (this.vid.size() < 1) {\r
767 return;\r
768 }\r
769\r
770 //\r
771 // Backup selected item index\r
772 //\r
773 int intTempIndex = intSelectedItemId;\r
774\r
775 vid.updateEvents(getCurrentEvents(), intTempIndex);\r
776\r
777 jComboBoxList.removeAllItems();\r
778 for (int index = 0; index < vid.size(); index++) {\r
779 jComboBoxList.addItem(vid.getEvents(index).getName());\r
780 }\r
781\r
782 //\r
783 // Restore selected item index\r
784 //\r
785 intSelectedItemId = intTempIndex;\r
786\r
787 //\r
788 // Reset select item index\r
789 //\r
790 jComboBoxList.setSelectedIndex(intSelectedItemId);\r
791\r
792 //\r
793 // Reload all fields of selected item\r
794 //\r
795 reloadFromList();\r
796\r
797 // \r
798 // Save to memory\r
799 //\r
800 save();\r
801 }\r
802\r
803 /**\r
804 Refresh all fields' values of selected item of Vector\r
805 \r
806 **/\r
807 private void reloadFromList() {\r
808 if (vid.size() > 0) {\r
809 //\r
810 // Get selected item index\r
811 //\r
812 intSelectedItemId = jComboBoxList.getSelectedIndex();\r
813\r
814 this.jTextFieldC_Name.setText(vid.getEvents(intSelectedItemId).getName());\r
815 this.jComboBoxEventsType.setSelectedItem(vid.getEvents(intSelectedItemId).getType());\r
816 this.jComboBoxUsage.setSelectedItem(vid.getEvents(intSelectedItemId).getUsage());\r
817 this.jTextFieldHelpText.setText(vid.getEvents(intSelectedItemId).getHelp());\r
818\r
819 jTextFieldFeatureFlag.setText(vid.getEvents(intSelectedItemId).getFeatureFlag());\r
820 iCheckBoxListArch.setAllItemsUnchecked();\r
821 iCheckBoxListArch.initCheckedItem(true, vid.getEvents(intSelectedItemId).getSupArchList());\r
822\r
823 } else {\r
824 }\r
825\r
826 reloadListArea();\r
827 }\r
828\r
829 /**\r
830 Update list area pane via the elements of Vector\r
831 \r
832 **/\r
833 private void reloadListArea() {\r
834 String strListItem = "";\r
835 for (int index = 0; index < vid.size(); index++) {\r
836 strListItem = strListItem + vid.getEvents(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
837 }\r
838 this.jTextAreaList.setText(strListItem);\r
839 }\r
840\r
841 /* (non-Javadoc)\r
842 * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
843 *\r
844 * Reflesh the frame when selected item changed\r
845 * \r
846 */\r
847 public void itemStateChanged(ItemEvent arg0) {\r
848 if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
849 reloadFromList();\r
850 }\r
851 }\r
852}\r