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