3 The file is used to create, update Event of MSA/MBD file
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
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.
15 package org
.tianocore
.frameworkwizard
.module
.ui
.dialog
;
17 import java
.awt
.event
.ActionEvent
;
18 import java
.util
.Vector
;
20 import javax
.swing
.JButton
;
21 import javax
.swing
.JComboBox
;
22 import javax
.swing
.JLabel
;
23 import javax
.swing
.JPanel
;
24 import javax
.swing
.JScrollPane
;
25 import javax
.swing
.JTextField
;
27 import org
.tianocore
.frameworkwizard
.common
.DataType
;
28 import org
.tianocore
.frameworkwizard
.common
.DataValidation
;
29 import org
.tianocore
.frameworkwizard
.common
.EnumerationData
;
30 import org
.tianocore
.frameworkwizard
.common
.Log
;
31 import org
.tianocore
.frameworkwizard
.common
.Tools
;
32 import org
.tianocore
.frameworkwizard
.common
.ui
.ArchCheckBox
;
33 import org
.tianocore
.frameworkwizard
.common
.ui
.IDialog
;
34 import org
.tianocore
.frameworkwizard
.common
.ui
.IFrame
;
35 import org
.tianocore
.frameworkwizard
.common
.ui
.StarLabel
;
36 import org
.tianocore
.frameworkwizard
.module
.Identifications
.Events
.EventsIdentification
;
37 import org
.tianocore
.frameworkwizard
.workspace
.WorkspaceTools
;
40 The class is used to create, update Event of MSA/MBD file
41 It extends IInternalFrame
43 @since ModuleEditor 1.0
46 public class EventsDlg
extends IDialog
{
49 /// Define class Serial Version UID
51 private static final long serialVersionUID
= -4396143706422842331L;
54 //Define class members
56 private JPanel jContentPane
= null;
58 private JLabel jLabelEventType
= null;
60 private JLabel jLabelC_Name
= null;
62 private JComboBox jComboBoxGuidC_Name
= null;
64 private JLabel jLabelUsage
= null;
66 private JLabel jLabelGroup
= null;
68 private JComboBox jComboBoxUsage
= null;
70 private JComboBox jComboBoxEventGroup
= null;
72 private StarLabel jStarLabel1
= null;
74 private StarLabel jStarLabel2
= null;
76 private StarLabel jStarLabel3
= null;
78 private JComboBox jComboBoxEventsType
= null;
80 private JScrollPane jScrollPane
= null;
82 private JLabel jLabelArch
= null;
84 private JLabel jLabelHelpText
= null;
86 private JTextField jTextFieldHelpText
= null;
88 private JLabel jLabelFeatureFlag
= null;
90 private JTextField jTextFieldFeatureFlag
= null;
92 private ArchCheckBox jArchCheckBox
= null;
94 private JButton jButtonOk
= null;
96 private JButton jButtonCancel
= null;
101 private EventsIdentification id
= null;
103 private EnumerationData ed
= new EnumerationData();
105 private WorkspaceTools wt
= new WorkspaceTools();
108 This method initializes jTextFieldC_Name
110 @return javax.swing.JTextField jTextFieldC_Name
113 private JComboBox
getJComboBoxGuidC_Name() {
114 if (jComboBoxGuidC_Name
== null) {
115 jComboBoxGuidC_Name
= new JComboBox();
116 jComboBoxGuidC_Name
.setBounds(new java
.awt
.Rectangle(160, 35, 320, 20));
117 jComboBoxGuidC_Name
.setPreferredSize(new java
.awt
.Dimension(320, 20));
118 jComboBoxGuidC_Name
.setToolTipText("Select the GUID C Name of the Event");
120 return jComboBoxGuidC_Name
;
124 This method initializes jComboBoxUsage
126 @return javax.swing.JComboBox jComboBoxUsage
129 private JComboBox
getJComboBoxUsage() {
130 if (jComboBoxUsage
== null) {
131 jComboBoxUsage
= new JComboBox();
132 jComboBoxUsage
.setBounds(new java
.awt
.Rectangle(160, 85, 320, 20));
133 jComboBoxUsage
.setPreferredSize(new java
.awt
.Dimension(320, 20));
135 return jComboBoxUsage
;
139 This method initializes jComboBoxType
141 @return javax.swing.JComboBox jComboBoxType
144 private JComboBox
getJComboBoxEventsType() {
145 if (jComboBoxEventsType
== null) {
146 jComboBoxEventsType
= new JComboBox();
147 jComboBoxEventsType
.setBounds(new java
.awt
.Rectangle(160, 10, 320, 20));
148 jComboBoxEventsType
.setPreferredSize(new java
.awt
.Dimension(320, 20));
150 .setToolTipText("<html>Select CreateEvents if the Module has an event that is waiting to be signaled.<br>Select SignalEvents if the Module will signal all events in an event group.<br>NOTE: Signal events are named by GUID.</html>");
152 return jComboBoxEventsType
;
156 * This method initializes jComboBoxEventsType
158 * @return javax.swing.JComboBox
160 private JComboBox
getJComboBoxEventGroup() {
161 if (jComboBoxEventGroup
== null) {
162 jComboBoxEventGroup
= new JComboBox();
163 jComboBoxEventGroup
.setBounds(new java
.awt
.Rectangle(160, 60, 320, 20));
164 jComboBoxEventGroup
.setPreferredSize(new java
.awt
.Dimension(320, 20));
165 jComboBoxEventGroup
.setToolTipText("Select Type of Event, Guid or Timer.");
168 return jComboBoxEventGroup
;
172 This method initializes jScrollPane
174 @return javax.swing.JScrollPane
176 private JScrollPane
getJScrollPane() {
177 if (jScrollPane
== null) {
178 jScrollPane
= new JScrollPane();
179 jScrollPane
.setViewportView(getJContentPane());
185 * This method initializes jTextFieldFeatureFlag
187 * @return javax.swing.JTextField
189 private JTextField
getJTextFieldFeatureFlag() {
190 if (jTextFieldFeatureFlag
== null) {
191 jTextFieldFeatureFlag
= new JTextField();
192 jTextFieldFeatureFlag
.setBounds(new java
.awt
.Rectangle(160, 135, 320, 20));
193 jTextFieldFeatureFlag
.setPreferredSize(new java
.awt
.Dimension(320, 20));
195 return jTextFieldFeatureFlag
;
199 This method initializes jTextFieldHelpText
201 @return javax.swing.JTextField
204 private JTextField
getJTextFieldHelpText() {
205 if (jTextFieldHelpText
== null) {
206 jTextFieldHelpText
= new JTextField();
207 jTextFieldHelpText
.setBounds(new java
.awt
.Rectangle(160, 110, 320, 20));
208 jTextFieldHelpText
.setPreferredSize(new java
.awt
.Dimension(320, 20));
210 return jTextFieldHelpText
;
214 This method initializes jButtonOk
216 @return javax.swing.JButton
219 private JButton
getJButtonOk() {
220 if (jButtonOk
== null) {
221 jButtonOk
= new JButton();
222 jButtonOk
.setBounds(new java
.awt
.Rectangle(290, 190, 90, 20));
223 jButtonOk
.setText("Ok");
224 jButtonOk
.addActionListener(this);
230 This method initializes jButtonCancel
232 @return javax.swing.JButton
235 private JButton
getJButtonCancel() {
236 if (jButtonCancel
== null) {
237 jButtonCancel
= new JButton();
238 jButtonCancel
.setBounds(new java
.awt
.Rectangle(390, 190, 90, 20));
239 jButtonCancel
.setText("Cancel");
240 jButtonCancel
.addActionListener(this);
242 return jButtonCancel
;
245 public static void main(String
[] args
) {
250 This method initializes this
253 private void init() {
254 this.setSize(508, 265);
255 this.setContentPane(getJScrollPane());
256 this.setTitle("Events");
258 this.setViewMode(false);
263 This method initializes this
264 Fill values to all fields if these values are not empty
269 private void init(EventsIdentification inEventsId
) {
271 this.id
= inEventsId
;
273 if (this.id
!= null) {
274 this.jComboBoxGuidC_Name
.setSelectedItem(id
.getName());
275 this.jComboBoxEventsType
.setSelectedItem(id
.getType());
276 this.jComboBoxUsage
.setSelectedItem(id
.getUsage());
277 this.jTextFieldHelpText
.setText(id
.getHelp());
279 jTextFieldFeatureFlag
.setText(id
.getFeatureFlag());
280 this.jArchCheckBox
.setSelectedItems(id
.getSupArchList());
281 this.jComboBoxEventGroup
.setSelectedItem(id
.getGroup());
286 This is the override edit constructor
288 @param inEventsIdentification
292 public EventsDlg(EventsIdentification inEventsIdentification
, IFrame iFrame
) {
294 init(inEventsIdentification
);
298 Disable all components when the mode is view
300 @param isView true - The view mode; false - The non-view mode
303 public void setViewMode(boolean isView
) {
305 this.jComboBoxGuidC_Name
.setEnabled(!isView
);
306 this.jComboBoxUsage
.setEnabled(!isView
);
311 This method initializes jContentPane
313 @return javax.swing.JPanel jContentPane
316 private JPanel
getJContentPane() {
317 if (jContentPane
== null) {
318 jArchCheckBox
= new ArchCheckBox();
319 jArchCheckBox
.setBounds(new java
.awt
.Rectangle(160, 160, 320, 20));
320 jArchCheckBox
.setPreferredSize(new java
.awt
.Dimension(320, 20));
321 jLabelFeatureFlag
= new JLabel();
322 jLabelFeatureFlag
.setBounds(new java
.awt
.Rectangle(15, 135, 140, 20));
323 jLabelFeatureFlag
.setText("Feature Flag");
324 jLabelArch
= new JLabel();
325 jLabelArch
.setBounds(new java
.awt
.Rectangle(15, 160, 140, 20));
326 jLabelArch
.setText("Arch");
327 jLabelUsage
= new JLabel();
328 jLabelUsage
.setText("Usage");
329 jLabelUsage
.setBounds(new java
.awt
.Rectangle(15, 85, 140, 20));
330 jLabelC_Name
= new JLabel();
331 jLabelC_Name
.setText("Guid C Name");
332 jLabelC_Name
.setBounds(new java
.awt
.Rectangle(15, 35, 140, 20));
333 jLabelGroup
= new JLabel();
334 jLabelGroup
.setText("Event Type");
335 jLabelGroup
.setBounds(new java
.awt
.Rectangle(15, 60, 140, 20));
336 jLabelEventType
= new JLabel();
337 jLabelEventType
.setText("Type");
338 jLabelEventType
.setBounds(new java
.awt
.Rectangle(15, 10, 140, 20));
339 jLabelHelpText
= new JLabel();
340 jLabelHelpText
.setBounds(new java
.awt
.Rectangle(14, 110, 140, 20));
341 jLabelHelpText
.setText("Help Text");
343 jContentPane
= new JPanel();
344 jContentPane
.setLayout(null);
345 jContentPane
.setPreferredSize(new java
.awt
.Dimension(490, 220));
347 jContentPane
.add(jLabelEventType
, null);
348 jContentPane
.add(jLabelGroup
, null);
349 jContentPane
.add(jLabelC_Name
, null);
350 jContentPane
.add(getJComboBoxGuidC_Name(), null);
351 jContentPane
.add(jLabelUsage
, null);
352 jContentPane
.add(getJComboBoxUsage(), null);
353 jStarLabel1
= new StarLabel();
354 jStarLabel1
.setBounds(new java
.awt
.Rectangle(0, 10, 10, 20));
355 jStarLabel2
= new StarLabel();
356 jStarLabel2
.setBounds(new java
.awt
.Rectangle(0, 35, 10, 20));
357 jStarLabel3
= new StarLabel();
358 jStarLabel3
.setBounds(new java
.awt
.Rectangle(0, 60, 10, 20));
360 jContentPane
.add(jStarLabel1
, null);
361 jContentPane
.add(jStarLabel2
, null);
362 jContentPane
.add(jStarLabel3
, null);
363 jContentPane
.add(getJComboBoxEventsType(), null);
365 jContentPane
.add(jLabelArch
, null);
366 jContentPane
.add(jLabelFeatureFlag
, null);
367 jContentPane
.add(getJTextFieldFeatureFlag(), null);
368 jContentPane
.add(jLabelHelpText
, null);
369 jContentPane
.add(getJTextFieldHelpText(), null);
370 jContentPane
.add(jArchCheckBox
, null);
371 jContentPane
.add(getJButtonOk(), null);
372 jContentPane
.add(getJButtonCancel(), null);
373 jContentPane
.add(getJComboBoxEventGroup(), null);
379 This method initializes events groups and usage type
382 private void initFrame() {
383 Tools
.generateComboBoxByVector(jComboBoxEventsType
, ed
.getVEventType());
384 Tools
.generateComboBoxByVector(jComboBoxEventGroup
, ed
.getVEventGroup());
385 Tools
.generateComboBoxByVector(jComboBoxUsage
, ed
.getVEventUsage());
386 Tools
.generateComboBoxByVector(jComboBoxGuidC_Name
, wt
.getAllGuidDeclarationsFromWorkspace());
390 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
392 * Override actionPerformed to listen all actions
395 public void actionPerformed(ActionEvent arg0
) {
396 if (arg0
.getSource() == jButtonOk
) {
399 this.returnType
= DataType
.RETURN_TYPE_OK
;
400 this.setVisible(false);
404 if (arg0
.getSource() == jButtonCancel
) {
405 this.returnType
= DataType
.RETURN_TYPE_CANCEL
;
406 this.setVisible(false);
411 Data validation for all fields
413 @retval true - All datas are valid
414 @retval false - At least one data is invalid
417 public boolean checkAdd() {
419 // Check if all fields have correct data types
425 if (isEmpty(this.jComboBoxGuidC_Name
.getSelectedItem().toString())) {
426 Log
.wrn("Update Events", "Event Name couldn't be empty");
430 if (!isEmpty(this.jComboBoxGuidC_Name
.getSelectedItem().toString())) {
431 if (!DataValidation
.isC_NameType(this.jComboBoxGuidC_Name
.getSelectedItem().toString())) {
432 Log
.wrn("Update Events", "Incorrect data type for Event Name");
440 if (!isEmpty(this.jTextFieldFeatureFlag
.getText())) {
441 if (!DataValidation
.isFeatureFlag(this.jTextFieldFeatureFlag
.getText())) {
442 Log
.wrn("Update Events", "Incorrect data type for Feature Flag");
450 private EventsIdentification
getCurrentEvents() {
451 String arg0
= this.jComboBoxGuidC_Name
.getSelectedItem().toString();
452 String arg1
= this.jComboBoxEventsType
.getSelectedItem().toString();
453 String arg2
= this.jComboBoxUsage
.getSelectedItem().toString();
455 String arg3
= this.jTextFieldFeatureFlag
.getText();
456 Vector
<String
> arg4
= this.jArchCheckBox
.getSelectedItemsVector();
457 String arg5
= this.jTextFieldHelpText
.getText();
458 String arg6
= this.jComboBoxEventGroup
.getSelectedItem().toString();
459 id
= new EventsIdentification(arg0
, arg1
, arg2
, arg3
, arg4
, arg5
, arg6
);
463 public EventsIdentification
getId() {
467 public void setId(EventsIdentification id
) {