+++ /dev/null
-/** @file\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
- **/\r
-\r
-package org.tianocore.frameworkwizard.far.deleteui;\r
-\r
-import java.awt.Color;\r
-import java.awt.Dimension;\r
-import java.awt.Toolkit;\r
-import java.awt.event.ActionEvent;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-import java.util.Vector;\r
-\r
-import javax.swing.ImageIcon;\r
-import javax.swing.JButton;\r
-import javax.swing.JLabel;\r
-import javax.swing.JList;\r
-import javax.swing.JPanel;\r
-import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.event.ListSelectionEvent;\r
-import javax.swing.event.ListSelectionListener;\r
-\r
-import org.tianocore.frameworkwizard.common.ui.IDialog;\r
-import org.tianocore.frameworkwizard.common.ui.IFrame;\r
-import org.tianocore.frameworkwizard.far.AggregationOperation;\r
-import org.tianocore.frameworkwizard.far.FarIdentification;\r
-import org.tianocore.frameworkwizard.far.FarStringDefinition;\r
-import org.tianocore.frameworkwizard.far.PackageQuery;\r
-import org.tianocore.frameworkwizard.far.PackageQueryInterface;\r
-import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
-import org.tianocore.frameworkwizard.platform.PlatformIdentification;\r
-import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
-\r
-public class DeleteStepOne extends IDialog implements ListSelectionListener {\r
-\r
- /**\r
- * \r
- */\r
- private static final long serialVersionUID = 636773964435618476L;\r
-\r
- private JPanel jContentPane = null;\r
-\r
- private JButton jButtonCancel = null;\r
-\r
- private JButton jButtonNext = null;\r
-\r
- private JTextArea jTextAreaInstruction = null;\r
-\r
- private JLabel jLabel = null;\r
-\r
- private JScrollPane jScrollPane = null;\r
-\r
- private JLabel jLabel2 = null;\r
-\r
- private JLabel jLabel3 = null;\r
-\r
- private JScrollPane jScrollPane1 = null;\r
-\r
- private JScrollPane jScrollPane2 = null;\r
-\r
- private JList jListPlatform = null;\r
-\r
- private JList jListPackage = null;\r
-\r
- private JLabel jLabel4 = null;\r
-\r
- private JButton jButtonDetail = null;\r
-\r
- private JList jListFar = null;\r
-\r
- private JLabel jLabelImage = null;\r
-\r
- private Vector<FarIdentification> farVector = null;\r
-\r
- Vector<PackageIdentification> removePackages = null;\r
-\r
- Vector<PlatformIdentification> removePlatforms = null;\r
-\r
- private DeleteStepTwo stepTwo = null;\r
-\r
- /**\r
- * This method initializes jButtonCancel\r
- * \r
- * @return javax.swing.JButton\r
- */\r
- private JButton getJButtonCancel() {\r
- if (jButtonCancel == null) {\r
- jButtonCancel = new JButton();\r
- jButtonCancel.setBounds(new java.awt.Rectangle(570, 330, 90, 20));\r
- jButtonCancel.setText("Cancel");\r
- jButtonCancel.addActionListener(this);\r
- }\r
- return jButtonCancel;\r
- }\r
-\r
- /**\r
- * This method initializes jButtonFinish\r
- * \r
- * @return javax.swing.JButton\r
- */\r
- private JButton getJButtonNext() {\r
- if (jButtonNext == null) {\r
- jButtonNext = new JButton();\r
- jButtonNext.setBounds(new java.awt.Rectangle(470, 330, 90, 20));\r
- jButtonNext.setText("Next");\r
- jButtonNext.setEnabled(false);\r
- jButtonNext.addActionListener(this);\r
- }\r
- return jButtonNext;\r
- }\r
-\r
- /**\r
- * This method initializes jTextArea1\r
- * \r
- * @return javax.swing.JTextArea\r
- */\r
- private JTextArea getJTextArea1() {\r
- if (jTextAreaInstruction == null) {\r
- jTextAreaInstruction = new JTextArea();\r
- jTextAreaInstruction.setBounds(new java.awt.Rectangle(30, 7, 662, 50));\r
- jTextAreaInstruction.setText("Step 1: Select FAR to remove.\n");\r
- jTextAreaInstruction.setCaretColor(Color.RED);\r
- jTextAreaInstruction\r
- .append("After choosing the FAR, the packages and/or platforms that belong to the FAR will displayed.\n");\r
- jTextAreaInstruction.append("Icon \"OK\" or \"NO\" indicates whether the FAR can be safely removed.");\r
- jTextAreaInstruction.setEditable(false);\r
- }\r
- return jTextAreaInstruction;\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(140, 65, 530, 100));\r
- jScrollPane.setViewportView(getJListFar());\r
- }\r
- return jScrollPane;\r
- }\r
-\r
- /**\r
- * This method initializes jScrollPane1\r
- * \r
- * @return javax.swing.JScrollPane\r
- */\r
- private JScrollPane getJScrollPane1() {\r
- if (jScrollPane1 == null) {\r
- jScrollPane1 = new JScrollPane();\r
- jScrollPane1.setBounds(new java.awt.Rectangle(30, 195, 300, 115));\r
- jScrollPane1.setViewportView(getJListPackage());\r
- }\r
- return jScrollPane1;\r
- }\r
-\r
- /**\r
- * This method initializes jScrollPane2\r
- * \r
- * @return javax.swing.JScrollPane\r
- */\r
- private JScrollPane getJScrollPane2() {\r
- if (jScrollPane2 == null) {\r
- jScrollPane2 = new JScrollPane();\r
- jScrollPane2.setBounds(new java.awt.Rectangle(360, 195, 310, 115));\r
- jScrollPane2.setViewportView(getJListPlatform());\r
- }\r
- return jScrollPane2;\r
- }\r
-\r
- /**\r
- * This method initializes jList\r
- * \r
- * @return javax.swing.JList\r
- */\r
- private JList getJListPlatform() {\r
- if (jListPlatform == null) {\r
- jListPlatform = new JList();\r
- jListPlatform.setEnabled(false);\r
- }\r
- return jListPlatform;\r
- }\r
-\r
- /**\r
- * This method initializes jList1\r
- * \r
- * @return javax.swing.JList\r
- */\r
- private JList getJListPackage() {\r
- if (jListPackage == null) {\r
- jListPackage = new JList();\r
- jListPackage.setEnabled(false);\r
- }\r
- return jListPackage;\r
- }\r
-\r
- /**\r
- * This method initializes jButtonDetail\r
- * \r
- * @return javax.swing.JButton\r
- */\r
- private JButton getJButtonDetail() {\r
- if (jButtonDetail == null) {\r
- jButtonDetail = new JButton();\r
- jButtonDetail.setBounds(new java.awt.Rectangle(367, 325, 69, 20));\r
- jButtonDetail.setText("Detail");\r
- jButtonDetail.setVisible(false);\r
- }\r
- return jButtonDetail;\r
- }\r
-\r
- /**\r
- * This method initializes jListFar\r
- * \r
- * @return javax.swing.JList\r
- */\r
- private JList getJListFar() {\r
- if (jListFar == null) {\r
- jListFar = new JList();\r
- WorkspaceTools wt = new WorkspaceTools();\r
- farVector = wt.getAllFars();\r
- jListFar.setListData(farVector);\r
- jListFar.addListSelectionListener(this);\r
- }\r
- return jListFar;\r
- }\r
-\r
- /**\r
- * This is the default constructor\r
- */\r
- public DeleteStepOne(IFrame iFrame, boolean modal) {\r
- super(iFrame, modal);\r
- initialize();\r
- }\r
-\r
- /**\r
- * This method initializes this\r
- * \r
- * @return void\r
- */\r
- private void initialize() {\r
- this.setSize(700, 400);\r
- this.setContentPane(getJContentPane());\r
- this.setTitle(FarStringDefinition.DELETE_STEP_ONE_TITLE);\r
- Dimension d = Toolkit.getDefaultToolkit().getScreenSize();\r
- this.setLocation((d.width - this.getSize().width) / 2, (d.height - this.getSize().height) / 2);\r
- }\r
-\r
- /**\r
- * This method initializes jContentPane\r
- * \r
- * @return javax.swing.JPanel\r
- */\r
- private JPanel getJContentPane() {\r
- if (jContentPane == null) {\r
- jLabelImage = new JLabel();\r
- jLabelImage.setBounds(new java.awt.Rectangle(30, 319, 36, 36));\r
- jLabel4 = new JLabel();\r
- jLabel4.setBounds(new java.awt.Rectangle(71, 325, 320, 20));\r
- jLabel3 = new JLabel();\r
- jLabel3.setBounds(new java.awt.Rectangle(360, 170, 113, 20));\r
- jLabel3.setText("FAR's Platforms");\r
- jLabel2 = new JLabel();\r
- jLabel2.setBounds(new java.awt.Rectangle(30, 170, 113, 20));\r
- jLabel2.setText("FAR's Packages");\r
- jLabel = new JLabel();\r
- jLabel.setBounds(new java.awt.Rectangle(30, 65, 100, 20));\r
- jLabel.setText("Select one FAR: ");\r
- jContentPane = new JPanel();\r
- jContentPane.setLayout(null);\r
- jContentPane.add(getJButtonCancel(), null);\r
- jContentPane.add(getJButtonNext(), null);\r
- jContentPane.add(getJTextArea1(), null);\r
- jContentPane.add(jLabel, null);\r
- jContentPane.add(getJScrollPane(), null);\r
- jContentPane.add(jLabel2, null);\r
- jContentPane.add(jLabel3, null);\r
- jContentPane.add(getJScrollPane1(), null);\r
- jContentPane.add(getJScrollPane2(), null);\r
- jContentPane.add(jLabel4, null);\r
- jContentPane.add(getJButtonDetail(), null);\r
- jContentPane.add(jLabelImage, null);\r
- }\r
- return jContentPane;\r
- }\r
-\r
- public void valueChanged(ListSelectionEvent e) {\r
- //\r
- // Add logic for FAR list value changed\r
- //\r
- if (e.getSource() == jListFar) {\r
- boolean flag = true;\r
- FarIdentification far = (FarIdentification) jListFar.getSelectedValue();\r
- WorkspaceTools wt = new WorkspaceTools();\r
-\r
- removePackages = wt.getPackagesByFar(far);\r
- jListPackage.setListData(removePackages);\r
- removePlatforms = wt.getPlatformsByFar(far);\r
- jListPlatform.setListData(removePlatforms);\r
-\r
- //\r
- // Get Dependencies Info for current FAR\r
- //\r
- List<PackageIdentification> allPackages = wt.getAllPackages();\r
-\r
- //\r
- // Remain packages\r
- //\r
- allPackages.removeAll(removePackages);\r
-\r
- Iterator<PackageIdentification> iter = allPackages.iterator();\r
-\r
- PackageQueryInterface pq = new PackageQuery();\r
- while (iter.hasNext()) {\r
- PackageIdentification item = iter.next();\r
- List<PackageIdentification> list = pq.getPackageDependencies(item.getSpdFile());\r
- List<PackageIdentification> result = AggregationOperation.minus(list, allPackages);\r
- if (result.size() > 0) {\r
- if (AggregationOperation.intersection(result, removePackages).size() > 0) {\r
- flag = false;\r
- break;\r
- }\r
- }\r
- }\r
-\r
- if (flag) {\r
- jLabelImage.setIcon(new ImageIcon(getClass().getResource("/resources/images/Yes.JPG")));\r
- jLabel4.setText("None of the remaining packages depend on this FAR. ");\r
- jButtonDetail.setVisible(false);\r
- jButtonNext.setEnabled(true);\r
- } else {\r
- jLabelImage.setIcon(new ImageIcon(getClass().getResource("/resources/images/No.JPG")));\r
- jLabel4.setText("Some of the remaining packages still depend on this FAR. ");\r
- // jButtonDetail.setVisible(true);\r
- jButtonNext.setEnabled(false);\r
- }\r
- }\r
- }\r
- \r
- public void actionPerformed(ActionEvent e) {\r
- if (e.getSource() == jButtonCancel) {\r
- this.setVisible(false);\r
- } else if (e.getSource() == jButtonNext) {\r
- //\r
- // Add some logic process here\r
- //\r
-\r
- if (stepTwo == null) {\r
- stepTwo = new DeleteStepTwo(this, true, this);\r
- }\r
- this.setVisible(false);\r
- stepTwo.setVisible(true);\r
- }\r
-\r
- }\r
-\r
- public FarIdentification getSelecedFar() {\r
- return (FarIdentification) jListFar.getSelectedValue();\r
- }\r
-\r
-}\r