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