+++ /dev/null
-/** @file\r
- Java class GuiPkgUninstall is GUI for package installation.\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 javax.swing.JPanel;\r
-import javax.swing.JFrame;\r
-import java.awt.FlowLayout;\r
-//import java.awt.GridLayout;\r
-import javax.swing.JLabel;\r
-import javax.swing.JTextField;\r
-import java.awt.Dimension;\r
-import javax.swing.JButton;\r
-import java.awt.ComponentOrientation;\r
-import java.awt.Font;\r
-import java.awt.Toolkit;\r
-import java.io.File;\r
-\r
-import javax.swing.JFileChooser;\r
-import javax.swing.JOptionPane;\r
-import javax.swing.SwingConstants;\r
-import javax.swing.JList;\r
-import javax.swing.JTextPane;\r
-import javax.swing.JScrollPane;\r
-import javax.swing.JTable;\r
-import javax.swing.table.DefaultTableModel;\r
-\r
-/**\r
- GUI for package uninstallation.\r
- \r
- @since PackageEditor 1.0\r
-**/\r
-public class GuiPkgUninstall extends JFrame {\r
-\r
- final static long serialVersionUID = 0;\r
- \r
- static JFrame frame;\r
-\r
- private JPanel jPanel = null;\r
-\r
- private JLabel jLabel = null;\r
-\r
- private JTextField jTextField = null;\r
-\r
- private JButton jButton = null;\r
-\r
- private JLabel jLabel1 = null;\r
-\r
- private JPanel jPanel1 = null;\r
-\r
- private JButton jButton1 = null;\r
-\r
- private JButton jButton2 = null;\r
-\r
- private JScrollPane jScrollPane = null;\r
-\r
- private JTable jTable = null;\r
-\r
- private JButton jButton3 = null;\r
- \r
- private PkgRemoveTableModel model = null;\r
- \r
- private DbFileContents dfc = null;\r
- \r
- private JFrame pThis = null;\r
-\r
- \r
- public GuiPkgUninstall() {\r
- super();\r
- initialize();\r
- }\r
-\r
- \r
- private void initialize() {\r
- this.setSize(481, 404);\r
- this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
- this.setContentPane(getJPanel());\r
- this.setTitle("Package Uninstallation");\r
- this.centerWindow();\r
- pThis = this;\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
- /**\r
- initialize table contents from db file\r
- \r
- @param f FrameworkDatabase.db file under workspace\r
- **/\r
- protected void loadDB(File f) {\r
- if (!f.exists()) {\r
- JOptionPane.showMessageDialog(frame,\r
- "No FrameworkDatabase.db File!");\r
- return;\r
- }\r
- dfc = new DbFileContents(f);\r
- if (dfc.getPackageCount() == 0) {\r
- return;\r
- }\r
- //\r
- // Get package list info. and add them one by one into table\r
- //\r
- String[][] saa = new String[dfc.getPackageCount()][5];\r
- dfc.getPackageList(saa);\r
- int i = 0;\r
- while (i < saa.length) {\r
- model.addRow(saa[i]);\r
- i++;\r
- }\r
- \r
- }\r
- /**\r
- save package info. from table to db file\r
- **/\r
- protected void save() {\r
- dfc.removePackageList();\r
- int rowCount = jTable.getRowCount();\r
- int i = 0;\r
- while (i < rowCount) {\r
- \r
- dfc.genPackage(jTable.getValueAt(i, 0).toString(), jTable.getValueAt(i, 1).toString(),\r
- jTable.getValueAt(i, 2).toString(), jTable.getValueAt(i, 3).toString(),\r
- jTable.getValueAt(i, 4).toString());\r
- i++;\r
- }\r
- dfc.saveAs();\r
- }\r
- \r
- private JPanel getJPanel() {\r
- if (jPanel == null) {\r
- jLabel1 = new JLabel();\r
- jLabel1.setBounds(new java.awt.Rectangle(20, 83, 141, 16));\r
- jLabel1.setText(" Packages Installed");\r
- jLabel = new JLabel();\r
- jLabel.setBounds(new java.awt.Rectangle(17, 16, 171, 16));\r
- jLabel.setText(" Enter Workspace Location");\r
- jPanel = new JPanel();\r
- jPanel.setLayout(null);\r
- jPanel.add(jLabel, null);\r
- jPanel.add(getJTextField(), null);\r
- jPanel.add(getJButton(), null);\r
- jPanel.add(jLabel1, null);\r
- jPanel.add(getJPanel1(), null);\r
- jPanel.add(getJScrollPane(), null);\r
- }\r
- return jPanel;\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.setBounds(new java.awt.Rectangle(16, 41, 350, 20));\r
- jTextField.setHorizontalAlignment(JTextField.LEFT);\r
- jTextField.setEditable(false);\r
- jTextField.setText(System.getenv("WORKSPACE"));\r
- jTextField.setPreferredSize(new Dimension(350, 20));\r
- }\r
- return jTextField;\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.setBounds(new java.awt.Rectangle(372,40,78,20));\r
- jButton.setFont(new Font("Dialog", Font.BOLD, 12));\r
- jButton.setPreferredSize(new Dimension(80, 20));\r
- jButton.setToolTipText("Where is the package?");\r
- jButton.setHorizontalAlignment(SwingConstants.LEFT);\r
- jButton.setHorizontalTextPosition(SwingConstants.CENTER);\r
- jButton.setText("Browse");\r
- jButton.addMouseListener(new java.awt.event.MouseAdapter() {\r
- public void mouseClicked(java.awt.event.MouseEvent e) {\r
- //\r
- // user can select another workspace directory\r
- //\r
- JFileChooser chooser = new JFileChooser();\r
- chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);\r
- chooser.setMultiSelectionEnabled(false);\r
- int retval = chooser.showOpenDialog(frame);\r
- if (retval == JFileChooser.APPROVE_OPTION) {\r
- //\r
- // update table when user selects a new workspace directory\r
- //\r
- jTextField.setText(chooser.getSelectedFile().getPath());\r
- File f = new File(chooser.getSelectedFile(), FrameworkPkg.dbConfigFile);\r
- loadDB(f);\r
- }\r
- }\r
- });\r
- }\r
- return jButton;\r
- }\r
-\r
- /**\r
- This method initializes jPanel1 \r
- \r
- @return javax.swing.JPanel \r
- **/\r
- private JPanel getJPanel1() {\r
- if (jPanel1 == null) {\r
- FlowLayout flowLayout = new FlowLayout();\r
- flowLayout.setAlignment(java.awt.FlowLayout.LEFT);\r
- flowLayout.setHgap(20);\r
- jPanel1 = new JPanel();\r
- jPanel1.setLayout(flowLayout);\r
- jPanel1.setBounds(new java.awt.Rectangle(133,310,318,53));\r
- jPanel1.add(getJButton3(), null);\r
- jPanel1.add(getJButton1(), null);\r
- jPanel1.add(getJButton2(), null);\r
- }\r
- return jPanel1;\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(85, 20));\r
- jButton1.setText("Ok");\r
- jButton1.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);\r
- jButton1.setEnabled(true);\r
- jButton1.addMouseListener(new java.awt.event.MouseAdapter() {\r
- public void mouseClicked(java.awt.event.MouseEvent e) {\r
- if (dfc != null) {\r
- //\r
- // save package info. to file before exit\r
- //\r
- save();\r
- }\r
- pThis.dispose();\r
- }\r
- });\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(85, 20));\r
- jButton2.setText("Cancel");\r
- jButton2.addMouseListener(new java.awt.event.MouseAdapter() {\r
- public void mouseClicked(java.awt.event.MouseEvent e) {\r
- pThis.dispose();\r
- }\r
- });\r
- }\r
- return jButton2;\r
- }\r
-\r
- /**\r
- This method initializes jScrollPane \r
- \r
- @return javax.swing.JScrollPane \r
- **/\r
- private JScrollPane getJScrollPane() {\r
- if (jScrollPane == null) {\r
- jScrollPane = new JScrollPane();\r
- jScrollPane.setBounds(new java.awt.Rectangle(20,108,431,194));\r
- jScrollPane.setViewportView(getJTable());\r
- }\r
- return jScrollPane;\r
- }\r
-\r
- /**\r
- This method initializes jTable \r
- \r
- @return javax.swing.JTable \r
- **/\r
- private JTable getJTable() {\r
- if (jTable == null) {\r
- model = new PkgRemoveTableModel();\r
- jTable = new JTable(model);\r
- jTable.setRowHeight(20);\r
- jTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);\r
- jTable.setRowSelectionAllowed(true);\r
- model.addColumn("PackageName");\r
- model.addColumn("Version");\r
- model.addColumn("GUID");\r
- model.addColumn("Path");\r
- model.addColumn("InstallDate");\r
- File f = new File(jTextField.getText(), FrameworkPkg.dbConfigFile);\r
- loadDB(f);\r
- }\r
- return jTable;\r
- }\r
-\r
- /**\r
- This method initializes jButton3 \r
- \r
- @return javax.swing.JButton \r
- **/\r
- private JButton getJButton3() {\r
- if (jButton3 == null) {\r
- jButton3 = new JButton();\r
- jButton3.setText("Remove");\r
- jButton3.setPreferredSize(new java.awt.Dimension(85,20));\r
- jButton3.addMouseListener(new java.awt.event.MouseAdapter() {\r
- public void mouseClicked(java.awt.event.MouseEvent e) {\r
- if (model != null){\r
- int index = jTable.getSelectedRow();\r
- if (index > -1) {\r
- model.removeRow(index);\r
- }\r
- }\r
- }\r
- });\r
- }\r
- return jButton3;\r
- }\r
-\r
-} // @jve:decl-index=0:visual-constraint="10,10"\r
-\r
-/**\r
- Derived table model which disables table edit\r
- \r
- @since PackageEditor 1.0\r
-**/\r
-class PkgRemoveTableModel extends DefaultTableModel {\r
- PkgRemoveTableModel() {\r
- super();\r
- }\r
- \r
- public boolean isCellEditable (int row, int col) {\r
- return false;\r
- }\r
-}\r