import java.awt.BorderLayout;\r
\r
import javax.swing.ButtonGroup;\r
+import javax.swing.JOptionPane;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
import javax.swing.JTable;\r
import javax.swing.table.DefaultTableModel;\r
\r
import org.tianocore.PlatformSurfaceAreaDocument;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
import javax.swing.JCheckBox;\r
import javax.swing.JButton;\r
import javax.swing.JLabel;\r
import javax.swing.JTextField;\r
+import java.awt.GridLayout;\r
\r
public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {\r
\r
*/\r
private static final long serialVersionUID = 1L;\r
private JPanel jContentPane = null;\r
- private JPanel jPanelContentNorth = null;\r
- private JPanel jPanelContentCenter = null;\r
- private JPanel jPanelContentSouth = null;\r
private JScrollPane jScrollPaneDynPcd = null;\r
private JTable jTableDynPcd = null;\r
private DynPcdTableModel modelPcd = null; \r
private JRadioButton jRadioButtonDefaultValue = null;\r
private ButtonGroup bg = new ButtonGroup();\r
private JLabel jLabelPadd = null;\r
+ private JLabel jLabelPad1 = null;\r
/**\r
* This is the default constructor\r
*/\r
if (jContentPane == null) {\r
jContentPane = new JPanel();\r
jContentPane.setLayout(new BorderLayout());\r
- jContentPane.add(getJPanelContentNorth(), java.awt.BorderLayout.NORTH);\r
- jContentPane.add(getJPanelContentCenter(), java.awt.BorderLayout.CENTER);\r
- jContentPane.add(getJPanelContentSouth(), java.awt.BorderLayout.SOUTH);\r
+ jContentPane.add(getJScrollPaneDynPcd(), java.awt.BorderLayout.NORTH);\r
+ jContentPane.add(getJPanelSkuInfo(), java.awt.BorderLayout.CENTER);\r
+ jContentPane.add(getJPanelDynPcdValue(), java.awt.BorderLayout.SOUTH);\r
}\r
return jContentPane;\r
}\r
\r
- /**\r
- * This method initializes jPanel \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelContentNorth() {\r
- if (jPanelContentNorth == null) {\r
- jPanelContentNorth = new JPanel();\r
- }\r
- return jPanelContentNorth;\r
- }\r
-\r
- /**\r
- * This method initializes jPanel1 \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelContentCenter() {\r
- if (jPanelContentCenter == null) {\r
- jPanelContentCenter = new JPanel();\r
- jPanelContentCenter.add(getJScrollPaneDynPcd(), null);\r
- jPanelContentCenter.add(getJPanelSkuInfo(), null);\r
- jPanelContentCenter.add(getJPanelDynPcdValue(), null);\r
- }\r
- return jPanelContentCenter;\r
- }\r
-\r
- /**\r
- * This method initializes jPanel2 \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelContentSouth() {\r
- if (jPanelContentSouth == null) {\r
- jPanelContentSouth = new JPanel();\r
- }\r
- return jPanelContentSouth;\r
- }\r
-\r
/**\r
* This method initializes jScrollPane \r
* \r
private JScrollPane getJScrollPaneDynPcd() {\r
if (jScrollPaneDynPcd == null) {\r
jScrollPaneDynPcd = new JScrollPane();\r
- jScrollPaneDynPcd.setPreferredSize(new java.awt.Dimension(600,200));\r
+ jScrollPaneDynPcd.setPreferredSize(new java.awt.Dimension(100,300));\r
jScrollPaneDynPcd.setViewportView(getJTableDynPcd());\r
}\r
return jScrollPaneDynPcd;\r
}\r
else{\r
int selectedRow = lsm.getMinSelectionIndex();\r
- \r
+ jTextFieldDefaultValue.setText("");\r
+ jTextFieldVpdOffset.setText("");\r
+ jTextFieldVarName.setText("");\r
+ jTextFieldVarGuid.setText("");\r
+ jTextFieldVarOffset.setText("");\r
+ jTextFieldHiiDefaultValue.setText("");\r
displayDetails(selectedRow);\r
}\r
}\r
jRadioButtonHii.setSelected(true);\r
String[][] saa = new String[ffc.getDynamicPcdSkuInfoCount(i)][7];\r
ffc.getDynamicPcdSkuInfos(i, saa);\r
- jTextFieldVarName.setText(saa[0][1]);\r
+ \r
+ String varDisplayName = Tools.convertUnicodeHexStringToString(saa[0][1]);\r
+ jTextFieldVarName.setText(varDisplayName);\r
+ \r
jTextFieldVarGuid.setText(saa[0][2]);\r
jTextFieldVarOffset.setText(saa[0][3]);\r
jTextFieldHiiDefaultValue.setText(saa[0][4]);\r
\r
else if (saa[i][1] != null) {\r
jRadioButtonHii.setSelected(true);\r
- jTextFieldVarName.setText(saa[i][1]);\r
+ String varDisplayName = Tools.convertUnicodeHexStringToString(saa[i][1]);\r
+ jTextFieldVarName.setText(varDisplayName);\r
jTextFieldVarGuid.setText(saa[i][2]);\r
jTextFieldVarOffset.setText(saa[i][3]);\r
jTextFieldHiiDefaultValue.setText(saa[i][4]);\r
*/\r
private JPanel getJPanelDynPcdValue() {\r
if (jPanelDynPcdValue == null) {\r
+ jLabelPad1 = new JLabel();\r
+ jLabelPad1.setText(" ");\r
+ GridLayout gridLayout = new GridLayout();\r
+ gridLayout.setColumns(5);\r
+ gridLayout.setRows(4);\r
+ gridLayout.setHgap(5);\r
+ gridLayout.setVgap(5);\r
+ \r
jLabelVpdOffset = new JLabel();\r
jLabelVpdOffset.setPreferredSize(new java.awt.Dimension(80,20));\r
jLabelVpdOffset.setText("VPD Offset");\r
jLabelVarName.setText("Variable Name");\r
jLabelVarName.setToolTipText("");\r
jLabelVarName.setPreferredSize(new java.awt.Dimension(90,20));\r
- FlowLayout flowLayout1 = new FlowLayout();\r
- flowLayout1.setAlignment(java.awt.FlowLayout.LEFT);\r
jPanelDynPcdValue = new JPanel();\r
jPanelDynPcdValue.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
- jPanelDynPcdValue.setLayout(flowLayout1);\r
+ jPanelDynPcdValue.setLayout(gridLayout);\r
jPanelDynPcdValue.setPreferredSize(new java.awt.Dimension(600,120));\r
jPanelDynPcdValue.add(getJRadioButtonHii(), null);\r
jPanelDynPcdValue.add(jLabelVarName, null);\r
jPanelDynPcdValue.add(getJTextFieldHiiDefaultValue(), null);\r
jPanelDynPcdValue.add(getJRadioButtonVpd(), null);\r
jPanelDynPcdValue.add(jLabelVpdOffset, null);\r
- jPanelDynPcdValue.add(getJTextFieldVpdOffset(), null);\r
jLabelPadd = new JLabel();\r
jLabelPadd.setText(" ");\r
- jPanelDynPcdValue.add(jLabelPadd, null);\r
+ jPanelDynPcdValue.add(getJTextFieldVpdOffset(), null);\r
jLabelVarName.setEnabled(false);\r
jLabelVarGuid.setEnabled(false);\r
jLabelHiiDefaultValue.setEnabled(false);\r
jLabelVarOffset.setEnabled(false);\r
jLabelVpdOffset.setEnabled(false);\r
+ jPanelDynPcdValue.add(jLabelPadd, null);\r
+ jPanelDynPcdValue.add(jLabelPad1, null);\r
jPanelDynPcdValue.add(getJRadioButtonDefaultValue(), null);\r
jPanelDynPcdValue.add(getJTextFieldDefaultValue(), null);\r
bg.add(jRadioButtonHii);\r
return;\r
}\r
else{\r
+ jTextFieldDefaultValue.setText("");\r
+ jTextFieldVpdOffset.setText("");\r
+ jTextFieldVarName.setText("");\r
+ jTextFieldVarGuid.setText("");\r
+ jTextFieldVarOffset.setText("");\r
+ jTextFieldHiiDefaultValue.setText("");\r
int selected = lsm.getMinSelectionIndex();\r
displaySkuInfoDetails(selected);\r
}\r
}\r
return jButtonSkuInfoUpdate;\r
}\r
-\r
+ \r
private void updateSkuInfo (int pcdSelected) {\r
int skuCount = ffc.getDynamicPcdSkuInfoCount(pcdSelected);\r
\r
String value = null;\r
String vpdOffset = null;\r
if (jRadioButtonHii.isSelected()) {\r
- varName = jTextFieldVarName.getText();\r
+ varName = Tools.convertStringToUnicodeHexString(jTextFieldVarName.getText());\r
+ if (varName.length() == 0) {\r
+ JOptionPane.showMessageDialog(this, "Variable Name is Empty.");\r
+ return;\r
+ }\r
varGuid = jTextFieldVarGuid.getText();\r
+ if (varGuid.length() == 0) {\r
+ JOptionPane.showMessageDialog(this, "Variable GUID is Empty.");\r
+ return;\r
+ }\r
varOffset = jTextFieldVarOffset.getText();\r
+ if (!DataValidation.isHex64BitDataType(varOffset)) {\r
+ JOptionPane.showMessageDialog(this, "Variable Offset is NOT Hex64BitDataType.");\r
+ return;\r
+ }\r
hiiDefault = jTextFieldHiiDefaultValue.getText();\r
+ if (!DataValidation.isDefaultValueType(hiiDefault)) {\r
+ JOptionPane.showMessageDialog(this, "Default Value is NOT DefaultValueType.");\r
+ return;\r
+ }\r
}\r
if (jRadioButtonVpd.isSelected()) {\r
vpdOffset = jTextFieldVpdOffset.getText();\r
+ if (!DataValidation.isHex64BitDataType(vpdOffset)) {\r
+ JOptionPane.showMessageDialog(this, "VPD Offset is NOT Hex64BitDataType.");\r
+ return;\r
+ }\r
}\r
if (jRadioButtonDefaultValue.isSelected()) {\r
value = jTextFieldDefaultValue.getText();\r
+ if (!DataValidation.isDefaultValueType(value)) {\r
+ JOptionPane.showMessageDialog(this, "Value is NOT DefaultValueType.");\r
+ return;\r
+ }\r
}\r
//\r
// SKU disabled. only modify data for default SKU.\r