import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
import javax.swing.JCheckBox;\r
+import javax.swing.event.DocumentEvent;\r
+import javax.swing.event.DocumentListener;\r
\r
/**\r
The class is used to create, update spdHeader of Spd file\r
@since PackageEditor 1.0\r
\r
**/\r
-public class SpdHeader extends IInternalFrame {\r
+public class SpdHeader extends IInternalFrame implements DocumentListener{\r
\r
private int dialogWidth = 560;\r
\r
jPackageNameTextField = new JTextField();\r
jPackageNameTextField.setBounds(new java.awt.Rectangle(valueColumn, rowOne, valueWidth, oneRowHeight));\r
jPackageNameTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
+ jPackageNameTextField.getDocument().addDocumentListener(this);\r
jPackageNameTextField.addFocusListener(new FocusAdapter() {\r
public void focusLost(FocusEvent e) {\r
if (!DataValidation.isUiNameType(jPackageNameTextField.getText())) {\r
if (jPackageNameTextField.getText().equals(sfc.getSpdHdrPkgName())) {\r
return;\r
}\r
- docConsole.setSaved(false);\r
sfc.setSpdHdrPkgName(jPackageNameTextField.getText());\r
}\r
});\r
jGuidTextField = new JTextField();\r
jGuidTextField.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, shortValueWidth, oneRowHeight));\r
jGuidTextField.setPreferredSize(new java.awt.Dimension(shortValueWidth, oneRowHeight));\r
+ jGuidTextField.getDocument().addDocumentListener(this);\r
jGuidTextField.addFocusListener(new FocusAdapter() {\r
public void focusLost(FocusEvent e) {\r
if (!DataValidation.isGuid(jGuidTextField.getText())) {\r
if (jGuidTextField.getText().equals(sfc.getSpdHdrGuidValue())) {\r
return;\r
}\r
- docConsole.setSaved(false);\r
sfc.setSpdHdrGuidValue(jGuidTextField.getText());\r
}\r
});\r
jVersionTextField = new JTextField();\r
jVersionTextField.setBounds(new java.awt.Rectangle(valueColumn, rowThree, valueWidth, oneRowHeight));\r
jVersionTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
+ jVersionTextField.getDocument().addDocumentListener(this);\r
jVersionTextField.addFocusListener(new FocusAdapter() {\r
public void focusLost(FocusEvent e) {\r
if (!DataValidation.isVersion(jVersionTextField.getText())) {\r
if (jVersionTextField.getText().equals(sfc.getSpdHdrVer())) {\r
return;\r
}\r
- docConsole.setSaved(false);\r
sfc.setSpdHdrVer(jVersionTextField.getText());\r
}\r
});\r
private JTextArea getJLicenseTextArea() {\r
if (jLicenseTextArea == null) {\r
jLicenseTextArea = new JTextArea();\r
- // jLicenseTextArea.setText("");\r
jLicenseTextArea.setLineWrap(true);\r
+ jLicenseTextArea.getDocument().addDocumentListener(this);\r
jLicenseTextArea.addFocusListener(new FocusAdapter() {\r
public void focusLost(FocusEvent e) {\r
if (jLicenseTextArea.getText().length() == 0) {\r
if (jLicenseTextArea.getText().equals(sfc.getSpdHdrLicense())) {\r
return;\r
}\r
- docConsole.setSaved(false);\r
sfc.setSpdHdrLicense(jLicenseTextArea.getText());\r
}\r
});\r
if (jDescriptionTextArea == null) {\r
jDescriptionTextArea = new JTextArea();\r
jDescriptionTextArea.setLineWrap(true);\r
+ jDescriptionTextArea.getDocument().addDocumentListener(this);\r
jDescriptionTextArea.addFocusListener(new FocusAdapter() {\r
public void focusLost(FocusEvent e) {\r
if (jDescriptionTextArea.getText().length() == 0) {\r
if (jDescriptionTextArea.getText().equals(sfc.getSpdHdrDescription())) {\r
return;\r
}\r
- docConsole.setSaved(false);\r
sfc.setSpdHdrDescription(jDescriptionTextArea.getText());\r
}\r
});\r
jAbstractTextField = new JTextField();\r
jAbstractTextField.setBounds(new java.awt.Rectangle(valueColumn, rowSeven, valueWidth, oneRowHeight));\r
jAbstractTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
+ jAbstractTextField.getDocument().addDocumentListener(this);\r
jAbstractTextField.addFocusListener(new FocusAdapter() {\r
public void focusLost(FocusEvent e) {\r
if (!DataValidation.isAbstract(jAbstractTextField.getText())) {\r
if (jAbstractTextField.getText().equals(sfc.getSpdHdrAbs())) {\r
return;\r
}\r
- docConsole.setSaved(false);\r
sfc.setSpdHdrAbs(jAbstractTextField.getText());\r
}\r
});\r
jCopyrightTextArea = new JTextArea();\r
jCopyrightTextArea.setWrapStyleWord(true);\r
jCopyrightTextArea.setLineWrap(true);\r
+ jCopyrightTextArea.getDocument().addDocumentListener(this);\r
jCopyrightTextArea.addFocusListener(new FocusAdapter() {\r
public void focusLost(FocusEvent e) {\r
if (!DataValidation.isCopyright(jCopyrightTextArea.getText())) {\r
if (jCopyrightTextArea.getText().equals(sfc.getSpdHdrCopyright())) {\r
return;\r
}\r
- docConsole.setSaved(false);\r
sfc.setSpdHdrCopyright(jCopyrightTextArea.getText());\r
}\r
});\r
jUrlTextField = new JTextField();\r
jUrlTextField.setBounds(new java.awt.Rectangle(valueColumn, rowSix, valueWidth, oneRowHeight));\r
jUrlTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
+ jUrlTextField.getDocument().addDocumentListener(this);\r
jUrlTextField.addFocusListener(new FocusAdapter() {\r
public void focusLost(FocusEvent e) {\r
if (jUrlTextField.getText().length() == 0 && sfc.getSpdHdrUrl() == null) {\r
}\r
sfc.setSpdHdrLicense(jLicenseTextArea.getText());\r
sfc.setSpdHdrUrl(jUrlTextField.getText());\r
- docConsole.setSaved(false);\r
}\r
});\r
}\r
jCheckBoxRdOnly.setText("Read Only");\r
jCheckBoxRdOnly.setLocation(new java.awt.Point(labelColumn, rowNine));\r
jCheckBoxRdOnly.setSize(new java.awt.Dimension(labelWidth, oneRowHeight));\r
- // jCheckBoxRdOnly.setPreferredSize(new java.awt.Dimension(150, oneRowHeight));\r
jCheckBoxRdOnly.addItemListener(new java.awt.event.ItemListener() {\r
public void itemStateChanged(java.awt.event.ItemEvent e) {\r
if (docConsole != null) {\r
docConsole.setSaved(false);\r
}\r
- sfc.setSpdPkgDefsRdOnly(jCheckBoxRdOnly.isSelected() + "");\r
+ sfc.setSpdPkgDefsRdOnly(jCheckBoxRdOnly.isSelected()+"");\r
+ initFrame();\r
}\r
});\r
}\r
if (docConsole != null) {\r
docConsole.setSaved(false);\r
}\r
- sfc.setSpdPkgDefsRePkg(jCheckBoxRePkg.isSelected() + "");\r
+ sfc.setSpdPkgDefsRePkg(jCheckBoxRePkg.isSelected()+"");\r
}\r
});\r
}\r
public SpdHeader(OpeningPackageType opt) {\r
this(opt.getXmlSpd());\r
docConsole = opt;\r
+ initFrame();\r
}\r
\r
/**\r
private void init() {\r
this.setContentPane(getTopScrollPane());\r
this.setTitle("Package Surface Area Header");\r
- initFrame();\r
}\r
\r
/**\r
jStarLabel7.setLocation(new java.awt.Point(2, rowEight));\r
jStarLabel8 = new StarLabel();\r
jStarLabel8.setLocation(new java.awt.Point(2, rowNine));\r
+ jStarLabel8.setVisible(false);\r
jStarLabel9 = new StarLabel();\r
jStarLabel9.setLocation(new java.awt.Point(2, rowTen));\r
\r
+ jStarLabel9.setVisible(false);\r
jPackageNameLabel = new JLabel();\r
jPackageNameLabel.setText("Package Name");\r
jPackageNameLabel.setBounds(new java.awt.Rectangle(labelColumn, rowOne, labelWidth, oneRowHeight));\r
if (arg0.getSource() == jGenerateGuidButton) {\r
//ToDo: invoke GuidValueEditor\r
jGuidTextField.setText(Tools.generateUuidString());\r
- docConsole.setSaved(false);\r
sfc.setSpdHdrGuidValue(jGuidTextField.getText());\r
}\r
}\r
\r
**/\r
private void initFrame() {\r
-\r
+ boolean editable = true;\r
+ if (sfc.getSpdPkgDefsRdOnly().equals("true")) {\r
+ editable = false;\r
+ }\r
+ jPackageNameTextField.setEditable(editable);\r
+ jGuidTextField.setEditable(editable);\r
+ jGenerateGuidButton.setEnabled(editable);\r
+ jVersionTextField.setEditable(editable);\r
+ jCopyrightTextArea.setEditable(editable);\r
+ jLicenseTextArea.setEditable(editable);\r
+ jUrlTextField.setEditable(editable);\r
+ jAbstractTextField.setEditable(editable);\r
+ jDescriptionTextArea.setEditable(editable);\r
+ jCheckBoxRePkg.setEnabled(editable);\r
}\r
\r
/* (non-Javadoc)\r
}\r
return topScrollPane;\r
}\r
+\r
+ /* (non-Javadoc)\r
+ * @see javax.swing.event.DocumentListener#changedUpdate(javax.swing.event.DocumentEvent)\r
+ */\r
+ public void changedUpdate(DocumentEvent arg0) {\r
+ // TODO Auto-generated method stub\r
+ \r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see javax.swing.event.DocumentListener#insertUpdate(javax.swing.event.DocumentEvent)\r
+ */\r
+ public void insertUpdate(DocumentEvent arg0) {\r
+ // TODO Auto-generated method stub\r
+ if (docConsole != null) {\r
+ docConsole.setSaved(false);\r
+ }\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see javax.swing.event.DocumentListener#removeUpdate(javax.swing.event.DocumentEvent)\r
+ */\r
+ public void removeUpdate(DocumentEvent arg0) {\r
+ // TODO Auto-generated method stub\r
+ if (docConsole != null) {\r
+ docConsole.setSaved(false); \r
+ }\r
+ }\r
}\r