]>
Commit | Line | Data |
---|---|---|
a13899c5 | 1 | /** @file\r |
2 | Java class SpdProtocolDecls is GUI for create library definition elements of spd file.\r | |
3 | \r | |
4 | Copyright (c) 2006, Intel Corporation\r | |
5 | All rights reserved. This program and the accompanying materials\r | |
6 | are licensed and made available under the terms and conditions of the BSD License\r | |
7 | which accompanies this distribution. The full text of the license may be found at\r | |
8 | http://opensource.org/licenses/bsd-license.php\r | |
9 | \r | |
10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r | |
11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r | |
12 | **/\r | |
13 | package org.tianocore.frameworkwizard.packaging.ui;\r | |
14 | \r | |
62df8efa | 15 | import javax.swing.JOptionPane;\r |
a13899c5 | 16 | import javax.swing.table.DefaultTableModel;\r |
17 | import javax.swing.table.TableModel;\r | |
18 | \r | |
19 | import org.tianocore.PackageSurfaceAreaDocument;\r | |
d6d24759 | 20 | import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r |
fbf730ff | 21 | import org.tianocore.frameworkwizard.platform.ui.ListEditor;\r |
a13899c5 | 22 | \r |
23 | /**\r | |
24 | GUI for create library definition elements of spd file.\r | |
25 | \r | |
26 | @since PackageEditor 1.0\r | |
27 | **/\r | |
28 | public class SpdPpiDecls extends SpdGuidDecls {\r | |
29 | \r | |
ce73a791 | 30 | /**\r |
31 | * \r | |
32 | */\r | |
33 | private static final long serialVersionUID = 1L;\r | |
a13899c5 | 34 | private SpdFileContents sfc = null;\r |
d6d24759 | 35 | private OpeningPackageType docConsole = null; \r |
a13899c5 | 36 | \r |
37 | public SpdPpiDecls() {\r | |
38 | super();\r | |
39 | // TODO Auto-generated constructor stub\r | |
40 | }\r | |
41 | \r | |
42 | public SpdPpiDecls(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa) {\r | |
43 | this();\r | |
44 | sfc = new SpdFileContents(inPsa);\r | |
45 | init(sfc);\r | |
46 | }\r | |
47 | \r | |
d6d24759 | 48 | public SpdPpiDecls(OpeningPackageType opt) {\r |
49 | this(opt.getXmlSpd());\r | |
50 | docConsole = opt;\r | |
62df8efa | 51 | if (sfc.getSpdPkgDefsRdOnly().equals("true")) {\r |
52 | JOptionPane.showMessageDialog(frame, "This is a read-only package. You will not be able to edit contents in table.");\r | |
53 | }\r | |
54 | initFrame();\r | |
d6d24759 | 55 | }\r |
56 | \r | |
a13899c5 | 57 | protected void initFrame() {\r |
62df8efa | 58 | super.initFrame();\r |
a13899c5 | 59 | this.setTitle("PPI Declarations");\r |
fbf730ff | 60 | starLabel.setVisible(false);\r |
61 | ((ListEditor)getJTable().getColumnModel().getColumn(6).getCellEditor()).setCanNotBeEmpty(false);\r | |
a13899c5 | 62 | }\r |
63 | \r | |
64 | protected void init(SpdFileContents sfc){\r | |
65 | //\r | |
66 | // initialize table using SpdFileContents object\r | |
67 | //\r | |
68 | DefaultTableModel model = getModel();\r | |
69 | if (sfc.getSpdPpiDeclarationCount() == 0) {\r | |
70 | return ;\r | |
71 | }\r | |
a490bca8 | 72 | saa = new String[sfc.getSpdPpiDeclarationCount()][7];\r |
a13899c5 | 73 | sfc.getSpdPpiDeclarations(saa);\r |
74 | int i = 0;\r | |
75 | while (i < saa.length) {\r | |
76 | model.addRow(saa[i]);\r | |
77 | i++;\r | |
78 | }\r | |
62df8efa | 79 | \r |
a13899c5 | 80 | }\r |
81 | \r | |
a490bca8 | 82 | protected void updateRow(int row, int column, TableModel m){\r |
83 | String[] sa = new String[7];\r | |
84 | sfc.getSpdPpiDeclaration(sa, row);\r | |
85 | Object cellData = m.getValueAt(row, column);\r | |
86 | if (cellData == null) {\r | |
87 | cellData = "";\r | |
88 | }\r | |
89 | if (cellData.equals(sa[column])) {\r | |
90 | return;\r | |
91 | }\r | |
92 | if (cellData.toString().length() == 0 && sa[column] == null) {\r | |
93 | return;\r | |
94 | }\r | |
95 | \r | |
a13899c5 | 96 | String name = m.getValueAt(row, 0) + "";\r |
97 | String cName = m.getValueAt(row, 1) + "";\r | |
98 | String guid = m.getValueAt(row, 2) + "";\r | |
99 | String help = m.getValueAt(row, 3) + "";\r | |
100 | String archList = null;\r | |
101 | if (m.getValueAt(row, 4) != null) {\r | |
102 | archList = m.getValueAt(row, 4).toString();\r | |
103 | }\r | |
104 | String modTypeList = null;\r | |
105 | if (m.getValueAt(row, 5) != null) {\r | |
106 | modTypeList = m.getValueAt(row, 5).toString();\r | |
107 | }\r | |
1be13d3f | 108 | String guidTypeList = null;\r |
109 | if (m.getValueAt(row, 6) != null) {\r | |
110 | guidTypeList = m.getValueAt(row, 6).toString();\r | |
111 | }\r | |
ce73a791 | 112 | String[] rowData = {name, cName, guid, help};\r |
113 | if (!dataValidation(rowData)){\r | |
114 | return;\r | |
115 | }\r | |
d6d24759 | 116 | docConsole.setSaved(false);\r |
1be13d3f | 117 | sfc.updateSpdPpiDecl(row, name, cName, guid, help, archList, modTypeList, guidTypeList);\r |
a13899c5 | 118 | }\r |
119 | \r | |
5f97c029 | 120 | protected int addRow(String[] row) {\r |
ce73a791 | 121 | \r |
122 | if (!dataValidation(row)){\r | |
5f97c029 | 123 | return -1;\r |
ce73a791 | 124 | }\r |
d6d24759 | 125 | docConsole.setSaved(false);\r |
1be13d3f | 126 | sfc.genSpdPpiDeclarations(row[0], row[1], row[2], row[3], stringToVector(row[4]), stringToVector(row[5]), stringToVector(row[6]));\r |
5f97c029 | 127 | return 0;\r |
a13899c5 | 128 | }\r |
129 | \r | |
130 | protected void removeRow(int i){\r | |
131 | sfc.removeSpdPpiDeclaration(i);\r | |
2c85fbc8 | 132 | docConsole.setSaved(false);\r |
a13899c5 | 133 | }\r |
134 | \r | |
135 | protected void clearAllRow(){\r | |
136 | sfc.removeSpdPpiDeclaration();\r | |
2c85fbc8 | 137 | docConsole.setSaved(false);\r |
a13899c5 | 138 | }\r |
62df8efa | 139 | \r |
140 | /**\r | |
141 | * @return Returns the sfc.\r | |
142 | */\r | |
143 | protected SpdFileContents getSfc() {\r | |
144 | return sfc;\r | |
145 | }\r | |
a13899c5 | 146 | }\r |