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
.awt
.event
.ItemEvent
;
19 import java
.awt
.event
.ItemListener
;
20 import java
.util
.Vector
;
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
.JTextField
;
29 import org
.tianocore
.frameworkwizard
.common
.DataType
;
30 import org
.tianocore
.frameworkwizard
.common
.DataValidation
;
31 import org
.tianocore
.frameworkwizard
.common
.EnumerationData
;
32 import org
.tianocore
.frameworkwizard
.common
.Log
;
33 import org
.tianocore
.frameworkwizard
.common
.Tools
;
34 import org
.tianocore
.frameworkwizard
.common
.ui
.ArchCheckBox
;
35 import org
.tianocore
.frameworkwizard
.common
.ui
.IDialog
;
36 import org
.tianocore
.frameworkwizard
.common
.ui
.IFrame
;
37 import org
.tianocore
.frameworkwizard
.common
.ui
.StarLabel
;
38 import org
.tianocore
.frameworkwizard
.module
.Identifications
.Events
.EventsIdentification
;
39 import org
.tianocore
.frameworkwizard
.workspace
.WorkspaceTools
;
42 The class is used to create, update Event of MSA/MBD file
43 It extends IInternalFrame
45 @since ModuleEditor 1.0
48 public class EventsDlg
extends IDialog
{
51 /// Define class Serial Version UID
53 private static final long serialVersionUID
= -4396143706422842331L;
56 //Define class members
58 private JPanel jContentPane
= null;
60 private JLabel jLabelEventType
= null;
62 private JLabel jLabelC_Name
= null;
64 private JComboBox jComboBoxGuidC_Name
= null;
66 private JLabel jLabelUsage
= null;
68 private JLabel jLabelGroup
= null;
70 private JComboBox jComboBoxUsage
= null;
72 private JComboBox jComboBoxEventGroup
= null;
74 private StarLabel jStarLabel1
= null;
76 private StarLabel jStarLabel2
= null;
78 private StarLabel jStarLabel3
= null;
80 private JComboBox jComboBoxEventsType
= null;
82 private JScrollPane jScrollPane
= null;
84 private JLabel jLabelArch
= null;
86 private JLabel jLabelHelpText
= null;
88 private JTextField jTextFieldHelpText
= null;
90 private JLabel jLabelFeatureFlag
= null;
92 private JTextField jTextFieldFeatureFlag
= null;
94 private ArchCheckBox jArchCheckBox
= null;
96 private JButton jButtonOk
= null;
98 private JButton jButtonCancel
= null;
103 private EventsIdentification id
= null;
105 private EnumerationData ed
= new EnumerationData();
107 private WorkspaceTools wt
= new WorkspaceTools();
110 This method initializes jTextFieldC_Name
112 @return javax.swing.JTextField jTextFieldC_Name
115 private JComboBox
getJComboBoxGuidC_Name() {
116 if (jComboBoxGuidC_Name
== null) {
117 jComboBoxGuidC_Name
= new JComboBox();
118 jComboBoxGuidC_Name
.setBounds(new java
.awt
.Rectangle(160, 35, 320, 20));
119 jComboBoxGuidC_Name
.setPreferredSize(new java
.awt
.Dimension(320, 20));
120 jComboBoxGuidC_Name
.setToolTipText("Select the GUID C Name of the Event");
122 return jComboBoxGuidC_Name
;
126 This method initializes jComboBoxUsage
128 @return javax.swing.JComboBox jComboBoxUsage
131 private JComboBox
getJComboBoxUsage() {
132 if (jComboBoxUsage
== null) {
133 jComboBoxUsage
= new JComboBox();
134 jComboBoxUsage
.setBounds(new java
.awt
.Rectangle(160, 85, 320, 20));
135 jComboBoxUsage
.setPreferredSize(new java
.awt
.Dimension(320, 20));
137 return jComboBoxUsage
;
141 This method initializes jComboBoxType
143 @return javax.swing.JComboBox jComboBoxType
146 private JComboBox
getJComboBoxEventsType() {
147 if (jComboBoxEventsType
== null) {
148 jComboBoxEventsType
= new JComboBox();
149 jComboBoxEventsType
.setBounds(new java
.awt
.Rectangle(160, 10, 320, 20));
150 jComboBoxEventsType
.setPreferredSize(new java
.awt
.Dimension(320, 20));
152 .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>");
154 return jComboBoxEventsType
;
158 * This method initializes jComboBoxEventsType
160 * @return javax.swing.JComboBox
162 private JComboBox
getJComboBoxEventGroup() {
163 if (jComboBoxEventGroup
== null) {
164 jComboBoxEventGroup
= new JComboBox();
165 jComboBoxEventGroup
.setBounds(new java
.awt
.Rectangle(160, 60, 320, 20));
166 jComboBoxEventGroup
.setPreferredSize(new java
.awt
.Dimension(320, 20));
167 jComboBoxEventGroup
.setToolTipText("Select Type of Event, Guid or Timer.");
170 return jComboBoxEventGroup
;
174 This method initializes jScrollPane
176 @return javax.swing.JScrollPane
178 private JScrollPane
getJScrollPane() {
179 if (jScrollPane
== null) {
180 jScrollPane
= new JScrollPane();
181 jScrollPane
.setViewportView(getJContentPane());
187 * This method initializes jTextFieldFeatureFlag
189 * @return javax.swing.JTextField
191 private JTextField
getJTextFieldFeatureFlag() {
192 if (jTextFieldFeatureFlag
== null) {
193 jTextFieldFeatureFlag
= new JTextField();
194 jTextFieldFeatureFlag
.setBounds(new java
.awt
.Rectangle(160, 135, 320, 20));
195 jTextFieldFeatureFlag
.setPreferredSize(new java
.awt
.Dimension(320, 20));
197 return jTextFieldFeatureFlag
;
201 This method initializes jTextFieldHelpText
203 @return javax.swing.JTextField
206 private JTextField
getJTextFieldHelpText() {
207 if (jTextFieldHelpText
== null) {
208 jTextFieldHelpText
= new JTextField();
209 jTextFieldHelpText
.setBounds(new java
.awt
.Rectangle(160, 110, 320, 20));
210 jTextFieldHelpText
.setPreferredSize(new java
.awt
.Dimension(320, 20));
212 return jTextFieldHelpText
;
216 This method initializes jButtonOk
218 @return javax.swing.JButton
221 private JButton
getJButtonOk() {
222 if (jButtonOk
== null) {
223 jButtonOk
= new JButton();
224 jButtonOk
.setBounds(new java
.awt
.Rectangle(290, 190, 90, 20));
225 jButtonOk
.setText("Ok");
226 jButtonOk
.addActionListener(this);
232 This method initializes jButtonCancel
234 @return javax.swing.JButton
237 private JButton
getJButtonCancel() {
238 if (jButtonCancel
== null) {
239 jButtonCancel
= new JButton();
240 jButtonCancel
.setBounds(new java
.awt
.Rectangle(390, 190, 90, 20));
241 jButtonCancel
.setText("Cancel");
242 jButtonCancel
.addActionListener(this);
244 return jButtonCancel
;
247 public static void main(String
[] args
) {
252 This method initializes this
255 private void init() {
256 this.setSize(508, 265);
257 this.setContentPane(getJScrollPane());
258 this.setTitle("Events");
260 this.setViewMode(false);
265 This method initializes this
266 Fill values to all fields if these values are not empty
271 private void init(EventsIdentification inEventsId
) {
273 this.id
= inEventsId
;
275 if (this.id
!= null) {
276 this.jComboBoxGuidC_Name
.setSelectedItem(id
.getName());
277 this.jComboBoxEventsType
.setSelectedItem(id
.getType());
278 this.jComboBoxUsage
.setSelectedItem(id
.getUsage());
279 this.jTextFieldHelpText
.setText(id
.getHelp());
281 jTextFieldFeatureFlag
.setText(id
.getFeatureFlag());
282 this.jArchCheckBox
.setSelectedItems(id
.getSupArchList());
283 this.jComboBoxEventGroup
.setSelectedItem(id
.getGroup());
288 This is the override edit constructor
290 @param inEventsIdentification
294 public EventsDlg(EventsIdentification inEventsIdentification
, IFrame iFrame
) {
296 init(inEventsIdentification
);
300 Disable all components when the mode is view
302 @param isView true - The view mode; false - The non-view mode
305 public void setViewMode(boolean isView
) {
307 this.jComboBoxGuidC_Name
.setEnabled(!isView
);
308 this.jComboBoxUsage
.setEnabled(!isView
);
313 This method initializes jContentPane
315 @return javax.swing.JPanel jContentPane
318 private JPanel
getJContentPane() {
319 if (jContentPane
== null) {
320 jArchCheckBox
= new ArchCheckBox();
321 jArchCheckBox
.setBounds(new java
.awt
.Rectangle(160, 160, 320, 20));
322 jArchCheckBox
.setPreferredSize(new java
.awt
.Dimension(320, 20));
323 jLabelFeatureFlag
= new JLabel();
324 jLabelFeatureFlag
.setBounds(new java
.awt
.Rectangle(15, 135, 140, 20));
325 jLabelFeatureFlag
.setText("Feature Flag");
326 jLabelArch
= new JLabel();
327 jLabelArch
.setBounds(new java
.awt
.Rectangle(15, 160, 140, 20));
328 jLabelArch
.setText("Arch");
329 jLabelUsage
= new JLabel();
330 jLabelUsage
.setText("Usage");
331 jLabelUsage
.setBounds(new java
.awt
.Rectangle(15, 85, 140, 20));
332 jLabelC_Name
= new JLabel();
333 jLabelC_Name
.setText("Guid C Name");
334 jLabelC_Name
.setBounds(new java
.awt
.Rectangle(15, 35, 140, 20));
335 jLabelGroup
= new JLabel();
336 jLabelGroup
.setText("Event Type");
337 jLabelGroup
.setBounds(new java
.awt
.Rectangle(15, 60, 140, 20));
338 jLabelEventType
= new JLabel();
339 jLabelEventType
.setText("Type");
340 jLabelEventType
.setBounds(new java
.awt
.Rectangle(15, 10, 140, 20));
341 jLabelHelpText
= new JLabel();
342 jLabelHelpText
.setBounds(new java
.awt
.Rectangle(14, 110, 140, 20));
343 jLabelHelpText
.setText("Help Text");
345 jContentPane
= new JPanel();
346 jContentPane
.setLayout(null);
347 jContentPane
.setPreferredSize(new java
.awt
.Dimension(490, 220));
349 jContentPane
.add(jLabelEventType
, null);
350 jContentPane
.add(jLabelGroup
, null);
351 jContentPane
.add(jLabelC_Name
, null);
352 jContentPane
.add(getJComboBoxGuidC_Name(), null);
353 jContentPane
.add(jLabelUsage
, null);
354 jContentPane
.add(getJComboBoxUsage(), null);
355 jStarLabel1
= new StarLabel();
356 jStarLabel1
.setBounds(new java
.awt
.Rectangle(0, 10, 10, 20));
357 jStarLabel2
= new StarLabel();
358 jStarLabel2
.setBounds(new java
.awt
.Rectangle(0, 35, 10, 20));
359 jStarLabel3
= new StarLabel();
360 jStarLabel3
.setBounds(new java
.awt
.Rectangle(0, 60, 10, 20));
362 jContentPane
.add(jStarLabel1
, null);
363 jContentPane
.add(jStarLabel2
, null);
364 jContentPane
.add(jStarLabel3
, null);
365 jContentPane
.add(getJComboBoxEventsType(), null);
367 jContentPane
.add(jLabelArch
, null);
368 jContentPane
.add(jLabelFeatureFlag
, null);
369 jContentPane
.add(getJTextFieldFeatureFlag(), null);
370 jContentPane
.add(jLabelHelpText
, null);
371 jContentPane
.add(getJTextFieldHelpText(), null);
372 jContentPane
.add(jArchCheckBox
, null);
373 jContentPane
.add(getJButtonOk(), null);
374 jContentPane
.add(getJButtonCancel(), null);
375 jContentPane
.add(getJComboBoxEventGroup(), null);
381 This method initializes events groups and usage type
384 private void initFrame() {
385 Tools
.generateComboBoxByVector(jComboBoxEventsType
, ed
.getVEventType());
386 Tools
.generateComboBoxByVector(jComboBoxEventGroup
, ed
.getVEventGroup());
387 Tools
.generateComboBoxByVector(jComboBoxUsage
, ed
.getVEventUsage());
388 Tools
.generateComboBoxByVector(jComboBoxGuidC_Name
, wt
.getAllGuidDeclarationsFromWorkspace());
392 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
394 * Override actionPerformed to listen all actions
397 public void actionPerformed(ActionEvent arg0
) {
398 if (arg0
.getSource() == jButtonOk
) {
401 this.returnType
= DataType
.RETURN_TYPE_OK
;
402 this.setVisible(false);
406 if (arg0
.getSource() == jButtonCancel
) {
407 this.returnType
= DataType
.RETURN_TYPE_CANCEL
;
408 this.setVisible(false);
413 Data validation for all fields
415 @retval true - All datas are valid
416 @retval false - At least one data is invalid
419 public boolean checkAdd() {
421 // Check if all fields have correct data types
427 if (isEmpty(this.jComboBoxGuidC_Name
.getSelectedItem().toString())) {
428 Log
.wrn("Update Events", "Event Name couldn't be empty");
432 if (!isEmpty(this.jComboBoxGuidC_Name
.getSelectedItem().toString())) {
433 if (!DataValidation
.isC_NameType(this.jComboBoxGuidC_Name
.getSelectedItem().toString())) {
434 Log
.wrn("Update Events", "Incorrect data type for Event Name");
442 if (!isEmpty(this.jTextFieldFeatureFlag
.getText())) {
443 if (!DataValidation
.isFeatureFlag(this.jTextFieldFeatureFlag
.getText())) {
444 Log
.wrn("Update Events", "Incorrect data type for Feature Flag");
452 private EventsIdentification
getCurrentEvents() {
453 String arg0
= this.jComboBoxGuidC_Name
.getSelectedItem().toString();
454 String arg1
= this.jComboBoxEventsType
.getSelectedItem().toString();
455 String arg2
= this.jComboBoxUsage
.getSelectedItem().toString();
457 String arg3
= this.jTextFieldFeatureFlag
.getText();
458 Vector
<String
> arg4
= this.jArchCheckBox
.getSelectedItemsVector();
459 String arg5
= this.jTextFieldHelpText
.getText();
460 String arg6
= this.jComboBoxEventGroup
.getSelectedItem().toString();
461 id
= new EventsIdentification(arg0
, arg1
, arg2
, arg3
, arg4
, arg5
, arg6
);
465 public EventsIdentification
getId() {
469 public void setId(EventsIdentification id
) {