]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/DataHubsDlg.java
1. Wrap text by word when showing a message box
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / module / ui / dialog / DataHubsDlg.java
CommitLineData
06a19cee 1/** @file\r
2 \r
3 The file is used to create, update DataHub 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
15\r
16package org.tianocore.frameworkwizard.module.ui.dialog;\r
17\r
18import java.awt.event.ActionEvent;\r
19import java.util.Vector;\r
20\r
21import javax.swing.JButton;\r
22import javax.swing.JComboBox;\r
23import javax.swing.JLabel;\r
24import javax.swing.JPanel;\r
25import javax.swing.JScrollPane;\r
26import javax.swing.JTextField;\r
27\r
28import org.tianocore.frameworkwizard.common.DataType;\r
29import org.tianocore.frameworkwizard.common.DataValidation;\r
30import org.tianocore.frameworkwizard.common.EnumerationData;\r
31import org.tianocore.frameworkwizard.common.Log;\r
32import org.tianocore.frameworkwizard.common.Tools;\r
33import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
34import org.tianocore.frameworkwizard.common.ui.IDialog;\r
35import org.tianocore.frameworkwizard.common.ui.IFrame;\r
36import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
37import org.tianocore.frameworkwizard.module.Identifications.DataHubs.DataHubsIdentification;\r
38\r
39/**\r
40 The class is used to create, update DataHub of MSA/MBD file\r
41 It extends IInternalFrame\r
42 \r
43\r
44\r
45 **/\r
46public class DataHubsDlg extends IDialog {\r
47\r
48 ///\r
49 /// Define class Serial Version UID\r
50 ///\r
51 private static final long serialVersionUID = -3667906991966638892L;\r
52\r
53 //\r
54 //Define class members\r
55 //\r
56 private JPanel jContentPane = null;\r
57\r
58 private JLabel jLabelUsage = null;\r
59\r
60 private JComboBox jComboBoxUsage = null;\r
61\r
62 private JLabel jLabelDataHubRecord = null;\r
63\r
64 private JTextField jTextFieldDataHubRecord = null;\r
65\r
66 private StarLabel jStarLabel1 = null;\r
67\r
68 private StarLabel jStarLabel2 = null;\r
69\r
70 private JLabel jLabelFeatureFlag = null;\r
71\r
72 private JTextField jTextFieldFeatureFlag = null;\r
73\r
74 private JLabel jLabelArch = null;\r
75\r
76 private JScrollPane jScrollPane = null;\r
77\r
78 private JLabel jLabelHelpText = null;\r
79\r
80 private JTextField jTextFieldHelpText = null;\r
81\r
82 private ArchCheckBox jArchCheckBox = null;\r
83\r
84 private JButton jButtonOk = null;\r
85\r
86 private JButton jButtonCancel = null;\r
87\r
88 //\r
89 // Not used by UI\r
90 //\r
91 private DataHubsIdentification id = null;\r
92\r
93 private EnumerationData ed = new EnumerationData();\r
94\r
95 /**\r
96 This method initializes jComboBoxUsage \r
97 \r
98 @return javax.swing.JComboBox jComboBoxUsage\r
99 \r
100 **/\r
101 private JComboBox getJComboBoxUsage() {\r
102 if (jComboBoxUsage == null) {\r
103 jComboBoxUsage = new JComboBox();\r
104 jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
105 jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
106 }\r
107 return jComboBoxUsage;\r
108 }\r
109\r
110 /**\r
111 This method initializes jTextFieldDataHubRecord \r
112 \r
113 @return javax.swing.JTextField jTextFieldDataHubRecord\r
114 \r
115 **/\r
116 private JTextField getJTextFieldDataHubRecord() {\r
117 if (jTextFieldDataHubRecord == null) {\r
118 jTextFieldDataHubRecord = new JTextField();\r
119 jTextFieldDataHubRecord.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
120 jTextFieldDataHubRecord.setPreferredSize(new java.awt.Dimension(320, 20));\r
121 jTextFieldDataHubRecord.setToolTipText("Enter the C Name of the Data Hub Record");\r
122 }\r
123 return jTextFieldDataHubRecord;\r
124 }\r
125\r
126 /**\r
127 * This method initializes jTextFieldFeatureFlag \r
128 * \r
129 * @return javax.swing.JTextField \r
130 */\r
131 private JTextField getJTextFieldFeatureFlag() {\r
132 if (jTextFieldFeatureFlag == null) {\r
133 jTextFieldFeatureFlag = new JTextField();\r
134 jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
135 jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
136 }\r
137 return jTextFieldFeatureFlag;\r
138 }\r
139\r
140 /**\r
141 This method initializes jScrollPane \r
142 \r
143 @return javax.swing.JScrollPane \r
144 */\r
145 private JScrollPane getJScrollPane() {\r
146 if (jScrollPane == null) {\r
147 jScrollPane = new JScrollPane();\r
148 jScrollPane.setViewportView(getJContentPane());\r
149 }\r
150 return jScrollPane;\r
151 }\r
152\r
153 /**\r
154 This method initializes jTextFieldHelpText \r
155 \r
156 @return javax.swing.JTextField \r
157 \r
158 **/\r
159 private JTextField getJTextFieldHelpText() {\r
160 if (jTextFieldHelpText == null) {\r
161 jTextFieldHelpText = new JTextField();\r
162 jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
163 jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
164 }\r
165 return jTextFieldHelpText;\r
166 }\r
167\r
168 /**\r
169 This method initializes jButtonOk \r
170 \r
171 @return javax.swing.JButton \r
172 \r
173 **/\r
174 private JButton getJButtonOk() {\r
175 if (jButtonOk == null) {\r
176 jButtonOk = new JButton();\r
177 jButtonOk.setBounds(new java.awt.Rectangle(290, 140, 90, 20));\r
178 jButtonOk.setText("Ok");\r
179 jButtonOk.addActionListener(this);\r
180 }\r
181 return jButtonOk;\r
182 }\r
183\r
184 /**\r
185 This method initializes jButtonCancel \r
186 \r
187 @return javax.swing.JButton \r
188 \r
189 **/\r
190 private JButton getJButtonCancel() {\r
191 if (jButtonCancel == null) {\r
192 jButtonCancel = new JButton();\r
193 jButtonCancel.setBounds(new java.awt.Rectangle(390, 140, 90, 20));\r
194 jButtonCancel.setText("Cancel");\r
195 jButtonCancel.addActionListener(this);\r
196 }\r
197 return jButtonCancel;\r
198 }\r
199\r
200 public static void main(String[] args) {\r
201\r
202 }\r
203\r
204 /**\r
205 This method initializes this\r
206 \r
207 **/\r
208 private void init() {\r
209 this.setSize(500, 200);\r
210 this.setContentPane(getJScrollPane());\r
211 this.setTitle("Data Hubs");\r
212 initFrame();\r
213 this.setViewMode(false);\r
214 this.centerWindow();\r
215 }\r
216\r
217 /**\r
218 This method initializes this\r
219 Fill values to all fields if these values are not empty\r
220 \r
221 @param inDataHubsId\r
222\r
223 **/\r
224 private void init(DataHubsIdentification inDataHubsId) {\r
225 init();\r
226 this.id = inDataHubsId;\r
227\r
228 if (this.id != null) {\r
229 this.jTextFieldDataHubRecord.setText(id.getName());\r
230 this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
231 this.jTextFieldHelpText.setText(id.getHelp());\r
232 this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
233 this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
234 }\r
235 }\r
236\r
237 /**\r
238 This is the override edit constructor\r
239 \r
240 @param inDataHubsIdentification\r
241 @param iFrame\r
242 \r
243 **/\r
244 public DataHubsDlg(DataHubsIdentification inDataHubsIdentification, IFrame iFrame) {\r
245 super(iFrame, true);\r
246 init(inDataHubsIdentification);\r
247 }\r
248\r
249 /**\r
250 Disable all components when the mode is view\r
251 \r
252 @param isView true - The view mode; false - The non-view mode\r
253 \r
254 **/\r
255 public void setViewMode(boolean isView) {\r
256 if (isView) {\r
257 this.jTextFieldDataHubRecord.setEnabled(!isView);\r
258 this.jComboBoxUsage.setEnabled(!isView);\r
259 }\r
260 }\r
261\r
262 /**\r
263 This method initializes jContentPane\r
264 \r
265 @return javax.swing.JPanel jContentPane\r
266 \r
267 **/\r
268 private JPanel getJContentPane() {\r
269 if (jContentPane == null) {\r
270 jArchCheckBox = new ArchCheckBox();\r
271 jArchCheckBox.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
272 jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
273 jLabelDataHubRecord = new JLabel();\r
274 jLabelDataHubRecord.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
275 jLabelDataHubRecord.setText("Data Hub Record");\r
276 jLabelUsage = new JLabel();\r
277 jLabelUsage.setText("Usage");\r
278 jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
279 jLabelArch = new JLabel();\r
280 jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
281 jLabelArch.setText("Arch");\r
282 jLabelFeatureFlag = new JLabel();\r
283 jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
284 jLabelFeatureFlag.setText("Feature Flag");\r
285 jLabelHelpText = new JLabel();\r
286 jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
287 jLabelHelpText.setText("Help Text");\r
288\r
289 jContentPane = new JPanel();\r
290 jContentPane.setLayout(null);\r
291 jContentPane.setPreferredSize(new java.awt.Dimension(490, 165));\r
292\r
293 jContentPane.add(jLabelDataHubRecord, null);\r
294 jContentPane.add(jLabelUsage, null);\r
295 jContentPane.add(jLabelFeatureFlag, null);\r
296 jContentPane.add(jLabelArch, null);\r
297\r
298 jContentPane.add(getJTextFieldDataHubRecord(), null);\r
299 jContentPane.add(getJComboBoxUsage(), null);\r
300 jContentPane.add(getJTextFieldFeatureFlag(), null);\r
301\r
302 jStarLabel1 = new StarLabel();\r
303 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
304 jStarLabel2 = new StarLabel();\r
305 jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
306\r
307 jContentPane.add(jStarLabel1, null);\r
308 jContentPane.add(jStarLabel2, null);\r
309\r
310 jContentPane.add(jLabelHelpText, null);\r
311 jContentPane.add(getJTextFieldHelpText(), null);\r
312 jContentPane.add(jArchCheckBox, null);\r
313 jContentPane.add(getJButtonOk(), null);\r
314 jContentPane.add(getJButtonCancel(), null);\r
315 }\r
316 return jContentPane;\r
317 }\r
318\r
319 /**\r
320 This method initializes Usage type\r
321 \r
322 **/\r
323 private void initFrame() {\r
324 Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVDataHubUsage());\r
325 }\r
326\r
327 /* (non-Javadoc)\r
328 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
329 *\r
330 * Override actionPerformed to listen all actions\r
331 * \r
332 */\r
333 public void actionPerformed(ActionEvent arg0) {\r
334 if (arg0.getSource() == jButtonOk) {\r
335 if (checkAdd()) {\r
336 getCurrentDataHubs();\r
337 this.returnType = DataType.RETURN_TYPE_OK;\r
338 this.setVisible(false);\r
339 }\r
340 }\r
341\r
342 if (arg0.getSource() == jButtonCancel) {\r
343 this.returnType = DataType.RETURN_TYPE_CANCEL;\r
344 this.setVisible(false);\r
345 }\r
346 }\r
347\r
348 /**\r
349 Data validation for all fields\r
350 \r
351 @retval true - All datas are valid\r
352 @retval false - At least one data is invalid\r
353 \r
354 **/\r
355 public boolean checkAdd() {\r
356 //\r
357 // Check if all fields have correct data types \r
358 //\r
359\r
360 //\r
361 // Check DataHubRecord \r
362 //\r
363 if (isEmpty(this.jTextFieldDataHubRecord.getText())) {\r
ed1665f2 364 Log.wrn("Update Hubs", "Data Hub Record couldn't be empty");\r
06a19cee 365 return false;\r
366 }\r
367\r
368 if (!isEmpty(this.jTextFieldDataHubRecord.getText())) {\r
369 if (!DataValidation.isC_NameType(this.jTextFieldDataHubRecord.getText())) {\r
ed1665f2 370 Log.wrn("Update Hubs", "Incorrect data type for Data Hub Record");\r
06a19cee 371 return false;\r
372 }\r
373 }\r
374\r
375 //\r
376 // Check FeatureFlag\r
377 //\r
378 if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
379 if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
ed1665f2 380 Log.wrn("Update Hubs", "Incorrect data type for Feature Flag");\r
06a19cee 381 return false;\r
382 }\r
383 }\r
384\r
385 return true;\r
386 }\r
387\r
388 private DataHubsIdentification getCurrentDataHubs() {\r
389 String arg0 = this.jTextFieldDataHubRecord.getText();\r
390 String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
391\r
392 String arg2 = this.jTextFieldFeatureFlag.getText();\r
393 Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();\r
394 String arg4 = this.jTextFieldHelpText.getText();\r
395\r
396 id = new DataHubsIdentification(arg0, arg1, arg2, arg3, arg4);\r
397 return id;\r
398 }\r
399\r
400 public DataHubsIdentification getId() {\r
401 return id;\r
402 }\r
403\r
404 public void setId(DataHubsIdentification id) {\r
405 this.id = id;\r
406 }\r
407}\r