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