package org.tianocore.frameworkwizard.packaging.ui;\r
\r
import java.awt.Dimension;\r
+import java.awt.FontMetrics;\r
+import java.awt.Point;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
import java.util.Vector;\r
import javax.swing.event.TableModelEvent;\r
import javax.swing.event.TableModelListener;\r
import javax.swing.table.DefaultTableModel;\r
+import javax.swing.table.TableColumn;\r
import javax.swing.table.TableModel;\r
\r
import org.tianocore.PackageSurfaceAreaDocument;\r
import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.platform.ui.ListEditor;\r
+import org.tianocore.frameworkwizard.platform.ui.LongTextEditor;\r
\r
/**\r
GUI for create library definition elements of spd file.\r
\r
protected String[][] saa = null;\r
\r
+ protected StarLabel starLabel = null;\r
+ \r
+ private final int guidNameMinWidth = 200;\r
+ private final int guidCNameMinWidth = 200;\r
+ private final int guidValueMinWidth = 300;\r
+ private final int helpTextMinWidth = 300;\r
+ private final int supArchMinWidth = 200;\r
+ private final int supModMinWidth = 200;\r
+ private final int guidTypeMinWidth = 200;\r
+ \r
+\r
/**\r
This method initializes this\r
\r
protected JTextField getJTextFieldGuid() {\r
if (jTextFieldGuid == null) {\r
jTextFieldGuid = new JTextField();\r
- jTextFieldGuid.setBounds(new java.awt.Rectangle(137,60,435,20));\r
+ jTextFieldGuid.setBounds(new java.awt.Rectangle(137,60,336,20));\r
jTextFieldGuid.setPreferredSize(new java.awt.Dimension(200,20));\r
\r
}\r
model.addColumn("Supported Architectures");\r
model.addColumn("Supported Module Types");\r
model.addColumn("GuidTypes");\r
+ \r
+ TableColumn column = jTable.getColumnModel().getColumn(0);\r
+ column.setMinWidth(this.guidNameMinWidth);\r
+ column = jTable.getColumnModel().getColumn(1);\r
+ column.setMinWidth(this.guidCNameMinWidth);\r
+ column = jTable.getColumnModel().getColumn(2);\r
+ column.setMinWidth(this.guidValueMinWidth);\r
+ column = jTable.getColumnModel().getColumn(3);\r
+ column.setMinWidth(this.helpTextMinWidth);\r
+ column = jTable.getColumnModel().getColumn(4);\r
+ column.setMinWidth(this.supArchMinWidth);\r
+ column = jTable.getColumnModel().getColumn(5);\r
+ column.setMinWidth(this.supModMinWidth);\r
+ column = jTable.getColumnModel().getColumn(6);\r
+ column.setMinWidth(this.guidTypeMinWidth);\r
+ \r
jTable.getColumnModel().getColumn(2).setCellEditor(new GuidEditor());\r
+ jTable.getColumnModel().getColumn(3).setCellEditor(new LongTextEditor());\r
\r
Vector<String> vArch = new Vector<String>();\r
vArch.add("IA32");\r
vGuid.add("HII_PACKAGE_LIST");\r
vGuid.add("HOB");\r
vGuid.add("TOKEN_SPACE_GUID");\r
- jTable.getColumnModel().getColumn(6).setCellEditor(new ListEditor(vGuid));\r
+ ListEditor le = new ListEditor(vGuid);\r
+ le.setCanNotBeEmpty(true);\r
+ jTable.getColumnModel().getColumn(6).setCellEditor(le);\r
\r
jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
if (cellData.equals(sa[column])) {\r
return;\r
}\r
+ \r
if (cellData.toString().length() == 0 && sa[column] == null) {\r
return;\r
}\r
if (jButtonRemove == null) {\r
jButtonRemove = new JButton();\r
jButtonRemove.setBounds(new java.awt.Rectangle(270,227,90,20));\r
- jButtonRemove.setText("Remove");\r
+ jButtonRemove.setText("Delete");\r
jButtonRemove.addActionListener(this);\r
}\r
return jButtonRemove;\r
public SpdGuidDecls(OpeningPackageType opt) {\r
this(opt.getXmlSpd());\r
docConsole = opt;\r
+ if (sfc.getSpdPkgDefsRdOnly().equals("true")) {\r
+ JOptionPane.showMessageDialog(frame, "This is a read-only package. You will not be able to edit contents in table.");\r
+ }\r
+ initFrame();\r
}\r
/**\r
This method initializes this\r
});\r
this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
this.setVisible(true);\r
- initFrame();\r
}\r
\r
protected void init(SpdFileContents sfc){\r
model.addRow(saa[i]);\r
i++;\r
}\r
+ \r
}\r
\r
protected JScrollPane getJContentPane(){\r
**/\r
protected JPanel getJContentPane1() {\r
if (jContentPane == null) {\r
+ \r
jLabelGuidType = new JLabel();\r
- jLabelGuidType.setBounds(new java.awt.Rectangle(400,122,103,16));\r
+ jLabelGuidType.setBounds(new java.awt.Rectangle(420,122,103,16));\r
jLabelGuidType.setText("GUID Type List");\r
jLabelGuidType.setEnabled(true);\r
+ starLabel = new StarLabel();\r
+ starLabel.setLocation(new Point(jLabelGuidType.getX() - 10, jLabelGuidType.getY()));\r
+ starLabel.setVisible(true);\r
jLabelSupArch = new JLabel();\r
jLabelSupArch.setBounds(new java.awt.Rectangle(197,122,108,16));\r
- jLabelSupArch.setText("Supported Arch");\r
+ jLabelSupArch.setText("Supported Architectures");\r
jLabelSupArch.setEnabled(true);\r
+ FontMetrics fm = jLabelSupArch.getFontMetrics(jLabelSupArch.getFont());\r
+ jLabelSupArch.setSize(fm.stringWidth(jLabelSupArch.getText()) + 10, 20);\r
jLabelSupMod = new JLabel();\r
jLabelSupMod.setBounds(new java.awt.Rectangle(14,120,110,16));\r
- jLabelSupMod.setText("Supported Module");\r
+ jLabelSupMod.setText("Supported Module Types");\r
jLabelSupMod.setEnabled(true);\r
+ fm = jLabelSupMod.getFontMetrics(jLabelSupMod.getFont());\r
+ jLabelSupMod.setSize(fm.stringWidth(jLabelSupMod.getText()) + 10, 20);\r
jLabelHelp = new JLabel();\r
jLabelHelp.setText("HelpText");\r
jLabelHelp.setSize(new java.awt.Dimension(109,20));\r
jContentPane.add(getJScrollPaneGuid(), null);\r
jContentPane.add(getJScrollPaneModule(), null);\r
jContentPane.add(jLabelGuidType, null);\r
+ jContentPane.add(starLabel, null);\r
}\r
return jContentPane;\r
}\r
protected void initFrame() {\r
\r
this.setTitle("GUID Declarations");\r
-\r
+ \r
+ boolean editable = true;\r
+ if (getSfc().getSpdPkgDefsRdOnly().equals("true")) {\r
+ editable = false;\r
+ }\r
+ \r
+ jButtonAdd.setEnabled(editable);\r
+ jButtonRemove.setEnabled(editable);\r
+ jButtonClearAll.setEnabled(editable);\r
+ jTable.setEnabled(editable);\r
}\r
\r
/* (non-Javadoc)\r
vguidType = null;\r
}\r
if (vguidType == null) {\r
- JOptionPane.showMessageDialog(this, "You must select one GUID type.");\r
+ JOptionPane.showMessageDialog(this, "You must select at least one GUID type.");\r
return -1;\r
}\r
if (docConsole != null) {\r
protected JButton getJButtonGen() {\r
if (jButtonGen == null) {\r
jButtonGen = new JButton();\r
- jButtonGen.setBounds(new java.awt.Rectangle(379,58,92,21));\r
- jButtonGen.setText("Gen GUID");\r
+ jButtonGen.setBounds(new java.awt.Rectangle(485,58,92,21));\r
+ jButtonGen.setText("Gen");\r
jButtonGen.setPreferredSize(new java.awt.Dimension(80,20));\r
jButtonGen.addActionListener(this);\r
}\r
protected JLabel getJLabelGuidType() {\r
return jLabelGuidType;\r
}\r
+\r
+ /**\r
+ * @return Returns the sfc.\r
+ */\r
+ protected SpdFileContents getSfc() {\r
+ return sfc;\r
+ }\r
}\r
\r
\r