]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPpiDecls.java
Fix the bug of leaving empty GuidTypeList, SupArchList attributes in xml file.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdPpiDecls.java
CommitLineData
a13899c5 1/** @file\r
2 Java class SpdProtocolDecls is GUI for create library definition elements of spd file.\r
3 \r
4Copyright (c) 2006, Intel Corporation\r
5All rights reserved. This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12**/\r
13package org.tianocore.frameworkwizard.packaging.ui;\r
14\r
a13899c5 15import javax.swing.table.DefaultTableModel;\r
16import javax.swing.table.TableModel;\r
17\r
18import org.tianocore.PackageSurfaceAreaDocument;\r
d6d24759 19import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r
a13899c5 20\r
21/**\r
22GUI for create library definition elements of spd file.\r
23 \r
24@since PackageEditor 1.0\r
25**/\r
26public class SpdPpiDecls extends SpdGuidDecls {\r
27\r
ce73a791 28 /**\r
29 * \r
30 */\r
31 private static final long serialVersionUID = 1L;\r
a13899c5 32 private SpdFileContents sfc = null;\r
d6d24759 33 private OpeningPackageType docConsole = null; \r
a13899c5 34 \r
35 public SpdPpiDecls() {\r
36 super();\r
37 // TODO Auto-generated constructor stub\r
38 }\r
39\r
40 public SpdPpiDecls(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa) {\r
41 this();\r
42 sfc = new SpdFileContents(inPsa);\r
43 init(sfc);\r
44 }\r
45 \r
d6d24759 46 public SpdPpiDecls(OpeningPackageType opt) {\r
47 this(opt.getXmlSpd());\r
48 docConsole = opt;\r
49 }\r
50 \r
a13899c5 51 protected void initFrame() {\r
52 \r
53 this.setTitle("PPI Declarations");\r
54 getJScrollPaneGuid().setVisible(false);\r
55 getJLabel3().setVisible(false);\r
56 \r
57 getJTable().getColumn("GuidTypes").setPreferredWidth(0);\r
58 getJTable().getColumn("GuidTypes").setWidth(0);\r
59 getJTable().getColumn("GuidTypes").setHeaderValue(" ");\r
60 }\r
61 \r
62 protected void init(SpdFileContents sfc){\r
63 //\r
64 // initialize table using SpdFileContents object\r
65 //\r
66 DefaultTableModel model = getModel();\r
67 if (sfc.getSpdPpiDeclarationCount() == 0) {\r
68 return ;\r
69 }\r
70 String[][] saa = new String[sfc.getSpdPpiDeclarationCount()][6];\r
71 sfc.getSpdPpiDeclarations(saa);\r
72 int i = 0;\r
73 while (i < saa.length) {\r
74 model.addRow(saa[i]);\r
75 i++;\r
76 }\r
77 }\r
78 \r
79 protected void updateRow(int row, TableModel m){\r
80 String name = m.getValueAt(row, 0) + "";\r
81 String cName = m.getValueAt(row, 1) + "";\r
82 String guid = m.getValueAt(row, 2) + "";\r
83 String help = m.getValueAt(row, 3) + "";\r
84 String archList = null;\r
85 if (m.getValueAt(row, 4) != null) {\r
86 archList = m.getValueAt(row, 4).toString();\r
87 }\r
88 String modTypeList = null;\r
89 if (m.getValueAt(row, 5) != null) {\r
90 modTypeList = m.getValueAt(row, 5).toString();\r
91 }\r
ce73a791 92 String[] rowData = {name, cName, guid, help};\r
93 if (!dataValidation(rowData)){\r
94 return;\r
95 }\r
d6d24759 96 docConsole.setSaved(false);\r
a13899c5 97 sfc.updateSpdPpiDecl(row, name, cName, guid, help, archList, modTypeList);\r
98 }\r
99 \r
100 protected void addRow(String[] row) {\r
ce73a791 101 \r
102 if (!dataValidation(row)){\r
103 return;\r
104 }\r
d6d24759 105 docConsole.setSaved(false);\r
a13899c5 106 sfc.genSpdPpiDeclarations(row[0], row[1], row[2], row[3], stringToVector(row[4]), stringToVector(row[5]));\r
107 }\r
108 \r
109 protected void removeRow(int i){\r
110 sfc.removeSpdPpiDeclaration(i);\r
2c85fbc8 111 docConsole.setSaved(false);\r
a13899c5 112 }\r
113 \r
114 protected void clearAllRow(){\r
115 sfc.removeSpdPpiDeclaration();\r
2c85fbc8 116 docConsole.setSaved(false);\r
a13899c5 117 }\r
118}\r