+/** @file\r
+ Java class GenGuidDialog.\r
+ \r
+Copyright (c) 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+**/\r
+package org.tianocore.packaging;\r
+\r
+import java.awt.BorderLayout;\r
+import java.awt.Dimension;\r
+import java.awt.Toolkit;\r
+\r
+import javax.swing.JPanel;\r
+import javax.swing.JDialog;\r
+import java.awt.GridLayout;\r
+\r
+import javax.swing.JFrame;\r
+import javax.swing.JOptionPane;\r
+import javax.swing.JTextField;\r
+import javax.swing.JLabel;\r
+import javax.swing.JRadioButton;\r
+import javax.swing.ButtonGroup;\r
+import javax.swing.JButton;\r
+\r
+import org.tianocore.common.Tools;\r
+\r
+import java.awt.FlowLayout;\r
+import java.awt.event.ActionEvent;\r
+import java.awt.event.ActionListener;\r
+import java.awt.event.WindowAdapter;\r
+import java.awt.event.WindowEvent;\r
+\r
+/**\r
+ Dialog for GUID generation. \r
+ @since PackageEditor 1.0\r
+**/\r
+public class GenGuidDialog extends JDialog implements ActionListener{\r
+\r
+ static private JFrame frame;\r
+ private JPanel jContentPane = null;\r
+ private JPanel jPanel = null;\r
+ private JPanel jPanel1 = null;\r
+ private JPanel jPanel2 = null;\r
+ private JPanel jPanel3 = null;\r
+ private JPanel jPanel4 = null;\r
+ private JTextField jTextField = null;\r
+ private JLabel jLabel = null;\r
+ private JRadioButton jRadioButton = null;\r
+ private JRadioButton jRadioButton1 = null;\r
+ private JButton jButton = null;\r
+ private JButton jButton1 = null;\r
+ private JButton jButton2 = null;\r
+ \r
+// private String guid = null;\r
+\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ // TODO Auto-generated method stub\r
+ if (arg0.getSource() == jButton1){\r
+ String uuid = Tools.generateUuidString();\r
+ if (jRadioButton1.isSelected()) {\r
+ jTextField.setText(uuid);\r
+ }\r
+ else {\r
+ //ToDo: transform to comma-sep guid\r
+ String s = Tools.formatGuidString(uuid);\r
+ if (s.equals("0")) {\r
+ JOptionPane.showMessageDialog(frame, "Check GUID Value, it don't conform to the schema.");\r
+ return;\r
+ }\r
+ jTextField.setText(s);\r
+ }\r
+ }\r
+ \r
+ if (arg0.getSource() == jRadioButton1){\r
+ \r
+ //ToDo: check text field value against RegExp and transform if needed\r
+ if (jTextField.getText().matches(Tools.guidRegistryPat)){\r
+ return;\r
+ }\r
+ if (jTextField.getText().matches(Tools.guidArrayPat)) {\r
+ jTextField.setText(Tools.formatGuidString(jTextField.getText()));\r
+ return;\r
+ }\r
+ \r
+ JOptionPane.showMessageDialog(frame, "Check GUID Value, it don't conform to the schema.");\r
+ \r
+ }\r
+ \r
+ if (arg0.getSource() == jRadioButton){\r
+ \r
+ //ToDo: check text field value against RegExp and transform if needed\r
+ if (jTextField.getText().matches(Tools.guidArrayPat)){\r
+ return;\r
+ }\r
+ if (jTextField.getText().matches(Tools.guidRegistryPat)) {\r
+ jTextField.setText(Tools.formatGuidString(jTextField.getText()));\r
+ return;\r
+ }\r
+ \r
+ JOptionPane.showMessageDialog(frame, "Check GUID Value, it don't conform to the schema.");\r
+ \r
+ }\r
+ \r
+ if (arg0.getSource() == jButton2){\r
+// if (jTextField.getText().matches(Tools.guidArrayPat) \r
+// || jTextField.getText().matches(Tools.guidRegistryPat)){\r
+// this.setVisible(false);\r
+// }\r
+// else {\r
+// JOptionPane.showMessageDialog(frame, "Incorrect GUID Value Format.");\r
+// }\r
+ this.dispose();\r
+ }\r
+ \r
+ if (arg0.getSource() == jButton){\r
+ this.dispose();\r
+ }\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanel \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanel() {\r
+ if (jPanel == null) {\r
+ FlowLayout flowLayout = new FlowLayout();\r
+ flowLayout.setVgap(10);\r
+ jPanel = new JPanel();\r
+ jPanel.setLayout(flowLayout);\r
+ jPanel.setPreferredSize(new java.awt.Dimension(100,30));\r
+ jPanel.add(getJButton1(), null);\r
+ jPanel.add(getJButton2(), null);\r
+ jPanel.add(getJButton(), null);\r
+ }\r
+ return jPanel;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanel1 \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanel1() {\r
+ if (jPanel1 == null) {\r
+ jPanel1 = new JPanel();\r
+ }\r
+ return jPanel1;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanel2 \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanel2() {\r
+ if (jPanel2 == null) {\r
+ jPanel2 = new JPanel();\r
+ }\r
+ return jPanel2;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanel3 \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanel3() {\r
+ if (jPanel3 == null) {\r
+ jPanel3 = new JPanel();\r
+ }\r
+ return jPanel3;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanel4 \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanel4() {\r
+ if (jPanel4 == null) {\r
+ jLabel = new JLabel();\r
+ jLabel.setText("GUID Value");\r
+ GridLayout gridLayout = new GridLayout();\r
+ gridLayout.setRows(4);\r
+ jPanel4 = new JPanel();\r
+ jPanel4.setLayout(gridLayout);\r
+ jPanel4.add(getJRadioButton1(), null);\r
+ jPanel4.add(getJRadioButton(), null);\r
+ jPanel4.add(jLabel, null);\r
+ jPanel4.add(getJTextField(), null);\r
+ ButtonGroup bg = new ButtonGroup();\r
+ bg.add(jRadioButton1);\r
+ bg.add(jRadioButton);\r
+ }\r
+ return jPanel4;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextField \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextField() {\r
+ if (jTextField == null) {\r
+ jTextField = new JTextField();\r
+ jTextField.setHorizontalAlignment(JTextField.LEADING);\r
+ jTextField.setPreferredSize(new java.awt.Dimension(100,20));\r
+ }\r
+ return jTextField;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jRadioButton \r
+ * \r
+ * @return javax.swing.JRadioButton \r
+ */\r
+ private JRadioButton getJRadioButton() {\r
+ if (jRadioButton == null) {\r
+ jRadioButton = new JRadioButton();\r
+ jRadioButton.setText("Comma-Seperated Format");\r
+ jRadioButton.addActionListener(this);\r
+ }\r
+ return jRadioButton;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jRadioButton1 \r
+ * \r
+ * @return javax.swing.JRadioButton \r
+ */\r
+ private JRadioButton getJRadioButton1() {\r
+ if (jRadioButton1 == null) {\r
+ jRadioButton1 = new JRadioButton();\r
+ jRadioButton1.setText("Registry Format");\r
+ jRadioButton1.setSelected(true);\r
+ jRadioButton1.addActionListener(this);\r
+ }\r
+ return jRadioButton1;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButton \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButton() {\r
+ if (jButton == null) {\r
+ jButton = new JButton();\r
+ jButton.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButton.setText("Cancel");\r
+ jButton.addActionListener(this);\r
+ }\r
+ return jButton;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButton1 \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButton1() {\r
+ if (jButton1 == null) {\r
+ jButton1 = new JButton();\r
+ jButton1.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButton1.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);\r
+ jButton1.setText("New");\r
+ jButton1.addActionListener(this);\r
+ }\r
+ return jButton1;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButton2 \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButton2() {\r
+ if (jButton2 == null) {\r
+ jButton2 = new JButton();\r
+ jButton2.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButton2.setText("Ok");\r
+ jButton2.addActionListener(this);\r
+ }\r
+ return jButton2;\r
+ }\r
+\r
+ /**\r
+ \r
+ @param args\r
+ **/\r
+ public static void main(String[] args) {\r
+ // TODO Auto-generated method stub\r
+ new GenGuidDialog().setVisible(true);\r
+ }\r
+\r
+ public String getGuid(){\r
+ return jTextField.getText();\r
+ }\r
+ \r
+ public void setGuid(String s){\r
+ jTextField.setText(s);\r
+ }\r
+ /**\r
+ * This is the default constructor\r
+ */\r
+ public GenGuidDialog() {\r
+ super();\r
+ initialize();\r
+ }\r
+ \r
+ public GenGuidDialog(ActionListener i){\r
+ super();\r
+ initialize();\r
+ jButton2.addActionListener(i);\r
+ this.addWindowListener(new WindowAdapter(){\r
+\r
+ @Override\r
+ public void windowActivated(WindowEvent arg0) {\r
+ // TODO Auto-generated method stub\r
+ super.windowActivated(arg0);\r
+ if ((jRadioButton1.isSelected() && jTextField.getText().matches(Tools.guidArrayPat))\r
+ || (jRadioButton.isSelected() && jTextField.getText().matches(Tools.guidRegistryPat))) {\r
+ jTextField.setText(Tools.formatGuidString(jTextField.getText()));\r
+ }\r
+ \r
+// if (!jTextField.getText().matches(Tools.guidArrayPat) || !jTextField.getText().matches(Tools.guidRegistryPat)) {\r
+// JOptionPane.showMessageDialog(frame, "InitVal: Incorrect GUID Value Format.");\r
+// return;\r
+// }\r
+ }\r
+ \r
+ });\r
+ }\r
+\r
+ /**\r
+ * This method initializes this\r
+ * \r
+ * @return void\r
+ */\r
+ private void initialize() {\r
+ this.setSize(466, 157);\r
+ this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
+ this.setModal(true);\r
+ this.setTitle("Editing GUID Value");\r
+ this.setContentPane(getJContentPane());\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ * This method initializes jContentPane\r
+ * \r
+ * @return javax.swing.JPanel\r
+ */\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(new BorderLayout());\r
+ jContentPane.add(getJPanel(), java.awt.BorderLayout.EAST);\r
+ jContentPane.add(getJPanel1(), java.awt.BorderLayout.WEST);\r
+ jContentPane.add(getJPanel2(), java.awt.BorderLayout.NORTH);\r
+ jContentPane.add(getJPanel3(), java.awt.BorderLayout.SOUTH);\r
+ jContentPane.add(getJPanel4(), java.awt.BorderLayout.CENTER);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ Start the window at the center of screen\r
+ \r
+ **/\r
+ protected void centerWindow(int intWidth, int intHeight) {\r
+ Dimension d = Toolkit.getDefaultToolkit().getScreenSize();\r
+ this.setLocation((d.width - intWidth) / 2, (d.height - intHeight) / 2);\r
+ }\r
+\r
+ /**\r
+ Start the window at the center of screen\r
+ \r
+ **/\r
+ protected void centerWindow() {\r
+ centerWindow(this.getSize().width, this.getSize().height);\r
+ }\r
+ \r
+} // @jve:decl-index=0:visual-constraint="10,10"\r