import java.awt.event.FocusEvent;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JFrame;\r
import javax.swing.JLabel;\r
import javax.swing.JOptionPane;\r
import javax.swing.JPanel;\r
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
//\r
//Define class members\r
//\r
- static JFrame frame;\r
+ private IInternalFrame topFrame;\r
\r
private JPanel jContentPane = null;\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
- JOptionPane.showMessageDialog(frame, "Package Name must start with a letter.");\r
+ JOptionPane.showMessageDialog(topFrame, "Package Name must start with a letter.");\r
return;\r
}\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
- JOptionPane.showMessageDialog(frame, "Guid must be in registry (8-4-4-4-12) format.");\r
+ JOptionPane.showMessageDialog(topFrame, "Guid must be in registry (8-4-4-4-12) format.");\r
return;\r
}\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
- JOptionPane.showMessageDialog(frame, "Version must start with a number.");\r
+ JOptionPane.showMessageDialog(topFrame, "Version must start with a number.");\r
return;\r
}\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
- JOptionPane.showMessageDialog(frame, "License is a required field.");\r
+ JOptionPane.showMessageDialog(topFrame, "License is a required field.");\r
return;\r
}\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
JOptionPane\r
- .showMessageDialog(frame,\r
+ .showMessageDialog(topFrame,\r
"Description is a required field, and should reflect the contents of the package.");\r
return;\r
}\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
- JOptionPane.showMessageDialog(frame, "Abstract could NOT be empty.");\r
+ JOptionPane.showMessageDialog(topFrame, "Abstract could NOT be empty.");\r
return;\r
}\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
- JOptionPane.showMessageDialog(frame, "Copyright must be entered.");\r
+ JOptionPane.showMessageDialog(topFrame, "Copyright must be entered.");\r
return;\r
}\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
this(opt.getXmlSpd());\r
docConsole = opt;\r
initFrame();\r
+ topFrame = this;\r
}\r
\r
/**\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
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