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