]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/updateui/UpdateStepTwo.java
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / far / updateui / UpdateStepTwo.java
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/updateui/UpdateStepTwo.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/updateui/UpdateStepTwo.java
deleted file mode 100644 (file)
index 6785803..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-/** @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.updateui;\r
-\r
-import java.awt.Dimension;\r
-import java.awt.Toolkit;\r
-import java.awt.event.MouseEvent;\r
-import java.awt.event.MouseListener;\r
-import java.io.File;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-import java.util.LinkedHashSet;\r
-import java.util.List;\r
-import java.util.Set;\r
-import java.util.Vector;\r
-\r
-import javax.swing.JPanel;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JButton;\r
-import javax.swing.JScrollPane;\r
-import javax.swing.JLabel;\r
-import javax.swing.JTable;\r
-import javax.swing.ListSelectionModel;\r
-import javax.swing.table.DefaultTableModel;\r
-\r
-import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.Log;\r
-import org.tianocore.frameworkwizard.common.Tools;\r
-import org.tianocore.frameworkwizard.common.ui.IDialog;\r
-import org.tianocore.frameworkwizard.far.AggregationOperation;\r
-import org.tianocore.frameworkwizard.far.DistributeRule;\r
-import org.tianocore.frameworkwizard.far.Far;\r
-import org.tianocore.frameworkwizard.far.FarStringDefinition;\r
-import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
-import org.tianocore.frameworkwizard.platform.PlatformIdentification;\r
-import org.tianocore.frameworkwizard.workspace.Workspace;\r
-import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
-\r
-public class UpdateStepTwo extends IDialog implements MouseListener {\r
-\r
-    /**\r
-     * \r
-     */\r
-    private static final long serialVersionUID = -4400145363721213110L;\r
-\r
-    private JPanel jContentPane = null;\r
-\r
-    private JTextArea jTextArea = null;\r
-\r
-    private UpdateStepOne stepOne = null;\r
-\r
-    private JButton jButtonCancel = null;\r
-\r
-    private JButton jButtonFinish = null;\r
-\r
-    private JButton jButtonPrevious = null;\r
-\r
-    private JScrollPane jScrollPane = null;\r
-\r
-    private JLabel jLabel = null;\r
-\r
-    private JTable jTablePackage = null;\r
-\r
-    private PartialTableModel model = null;\r
-\r
-    List<PackageIdentification> updatPkgList = new ArrayList<PackageIdentification>();\r
-\r
-    public UpdateStepTwo(IDialog iDialog, boolean modal, UpdateStepOne stepOne) {\r
-        this(iDialog, modal);\r
-        this.stepOne = stepOne;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jTextArea       \r
-     *         \r
-     * @return javax.swing.JTextArea   \r
-     */\r
-    private JTextArea getJTextArea() {\r
-        if (jTextArea == null) {\r
-            jTextArea = new JTextArea();\r
-            jTextArea.setBounds(new java.awt.Rectangle(30, 7, 642, 50));\r
-            jTextArea.setText("Step 2: Summary. \n");\r
-            jTextArea.setEditable(false);\r
-        }\r
-        return jTextArea;\r
-    }\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.addMouseListener(this);\r
-        }\r
-        return jButtonCancel;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jButtonFinish   \r
-     *         \r
-     * @return javax.swing.JButton     \r
-     */\r
-    private JButton getJButtonFinish() {\r
-        if (jButtonFinish == null) {\r
-            jButtonFinish = new JButton();\r
-            jButtonFinish.setBounds(new java.awt.Rectangle(470, 330, 90, 20));\r
-            jButtonFinish.setText("Finish");\r
-            jButtonFinish.addMouseListener(this);\r
-        }\r
-        return jButtonFinish;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jButtonPrevious \r
-     *         \r
-     * @return javax.swing.JButton     \r
-     */\r
-    private JButton getJButtonPrevious() {\r
-        if (jButtonPrevious == null) {\r
-            jButtonPrevious = new JButton();\r
-            jButtonPrevious.setBounds(new java.awt.Rectangle(370, 330, 90, 20));\r
-            jButtonPrevious.setText("Previous");\r
-            jButtonPrevious.addMouseListener(this);\r
-        }\r
-        return jButtonPrevious;\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(30, 100, 642, 170));\r
-            jScrollPane.setViewportView(getJTablePackage());\r
-        }\r
-        return jScrollPane;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jTablePackage   \r
-     *         \r
-     * @return javax.swing.JTable      \r
-     */\r
-    private JTable getJTablePackage() {\r
-        if (jTablePackage == null) {\r
-            jTablePackage = new JTable();\r
-            model = new PartialTableModel();\r
-            jTablePackage = new JTable(model);\r
-            jTablePackage.setRowHeight(20);\r
-            jTablePackage.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);\r
-            model.addColumn("Name");\r
-            model.addColumn("Version");\r
-            model.addColumn("Guid");\r
-            model.addColumn("Path");\r
-\r
-            jTablePackage.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
-        }\r
-        return jTablePackage;\r
-    }\r
-\r
-    public void prepareTable() {\r
-        model.setRowCount(0);\r
-        try {\r
-            Far far = stepOne.getFar();\r
-            List<PackageIdentification> packagesInFar = far.manifest.getPackageList();\r
-\r
-            WorkspaceTools wt = new WorkspaceTools();\r
-            List<PackageIdentification> packagesInDb = wt.getAllPackages();\r
-\r
-            updatPkgList = AggregationOperation.intersection(packagesInDb, packagesInFar);\r
-            //\r
-            // Change here to get packages and platforms from FAR\r
-            //\r
-            Iterator<PackageIdentification> iter = updatPkgList.iterator();//packageList.iterator();\r
-            while (iter.hasNext()) {\r
-                String[] str = new String[4];\r
-                PackageIdentification item = iter.next();\r
-                str[0] = item.getName();\r
-                str[1] = item.getVersion();\r
-                str[2] = item.getGuid();\r
-                str[3] = Tools.getFilePathOnly(Tools.getRelativePath(item.getPath(), Workspace.getCurrentWorkspace()));\r
-                model.addRow(str);\r
-            }\r
-        } catch (Exception ex) {\r
-            ex.printStackTrace();\r
-        }\r
-    }\r
-\r
-    /**\r
-     * This is the default constructor\r
-     */\r
-    public UpdateStepTwo(IDialog iDialog, boolean modal) {\r
-        super(iDialog, 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.UPDATE_STEP_TWO_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
-            jLabel = new JLabel();\r
-            jLabel.setBounds(new java.awt.Rectangle(30, 70, 281, 20));\r
-            jLabel.setText("Following packages will be updated: ");\r
-            jContentPane = new JPanel();\r
-            jContentPane.setLayout(null);\r
-            jContentPane.add(getJTextArea(), null);\r
-            jContentPane.add(getJButtonCancel(), null);\r
-            jContentPane.add(getJButtonFinish(), null);\r
-            jContentPane.add(getJButtonPrevious(), null);\r
-            jContentPane.add(getJScrollPane(), null);\r
-            jContentPane.add(jLabel, null);\r
-        }\r
-        return jContentPane;\r
-    }\r
-\r
-    public void mouseClicked(MouseEvent e) {\r
-        if (e.getSource() == jButtonCancel) {\r
-            this.setVisible(false);\r
-        } else if (e.getSource() == jButtonFinish) {\r
-            //\r
-            // Check depedency ?\r
-            //\r
-            WorkspaceTools wsTools = new WorkspaceTools();\r
-\r
-            Iterator<PackageIdentification> iter = updatPkgList.iterator();\r
-            List<PackageIdentification> depResultList = new ArrayList<PackageIdentification>();\r
-            while (iter.hasNext()) {\r
-                List<PackageIdentification> depPkgList = stepOne.getFar().getPackageDependencies(iter.next());\r
-                depResultList = AggregationOperation.union(depResultList, depPkgList);\r
-            }\r
-\r
-            List<PackageIdentification> dbPkgList = DistributeRule.vectorToList(wsTools.getAllPackages());\r
-            List<PackageIdentification> resultList = AggregationOperation\r
-                                                                         .minus(\r
-                                                                                depResultList,\r
-                                                                                AggregationOperation\r
-                                                                                                    .union(\r
-                                                                                                           this.updatPkgList,\r
-                                                                                                           dbPkgList));\r
-            Iterator resultIter = resultList.iterator();\r
-            while (resultIter.hasNext()) {\r
-                Log.wrn("Update far", "Missing dependency package " + ((PackageIdentification) resultIter.next()).toString()\r
-                        + " in workspace!");\r
-                return;\r
-            }\r
-\r
-            //\r
-            // Remove all update packages\r
-            //\r
-            //\r
-            // For all packages, remove all files. \r
-            // Exception FPD file still in DB\r
-            //\r
-            Vector<PlatformIdentification> allPlatforms = wsTools.getAllPlatforms();\r
-            Set<File> allPlatformFiles = new LinkedHashSet<File>();\r
-\r
-            Iterator<PlatformIdentification> allPlfIter = allPlatforms.iterator();\r
-            while (iter.hasNext()) {\r
-                allPlatformFiles.add(allPlfIter.next().getFpdFile());\r
-            }\r
-\r
-            Iterator<PackageIdentification> packageIter = this.updatPkgList.iterator();\r
-            while (packageIter.hasNext()) {\r
-                PackageIdentification item = packageIter.next();\r
-                Set<File> deleteFiles = new LinkedHashSet<File>();\r
-                recursiveDir(deleteFiles, item.getSpdFile().getParentFile(), allPlatformFiles);\r
-                Iterator<File> iterDeleteFile = deleteFiles.iterator();\r
-                while (iterDeleteFile.hasNext()) {\r
-                    deleteFiles(iterDeleteFile.next());\r
-                }\r
-                //\r
-                // Remove all empty parent dir\r
-                //\r
-                File parentDir = item.getSpdFile().getParentFile();\r
-                while (parentDir.listFiles().length == 0) {\r
-                    File tempFile = parentDir;\r
-                    parentDir = parentDir.getParentFile();\r
-                    tempFile.delete();\r
-                }\r
-            }\r
-\r
-            //\r
-            // Install all update packages\r
-            //\r
-            Iterator<PackageIdentification> updataIter = this.updatPkgList.iterator();\r
-            while (updataIter.hasNext()) {\r
-                PackageIdentification pkgId = updataIter.next();\r
-                try {\r
-                    stepOne.getFar().installPackage(pkgId, new File(pkgId.getSpdFile().getParent()));\r
-                } catch (Exception ex) {\r
-                    Log.wrn("Install " + pkgId.toString(), ex.getMessage());\r
-                    Log.err("Install " + pkgId.toString(), ex.getMessage());\r
-                }\r
-\r
-            }\r
-            this.stepOne.returnType = DataType.RETURN_TYPE_OK;\r
-\r
-            this.setVisible(false);\r
-            this.dispose();\r
-        } else if (e.getSource() == jButtonPrevious) {\r
-            this.setVisible(false);\r
-            stepOne.setVisible(true);\r
-        }\r
-    }\r
-\r
-    public void mousePressed(MouseEvent e) {\r
-        // TODO Auto-generated method stub\r
-\r
-    }\r
-\r
-    public void mouseReleased(MouseEvent e) {\r
-        // TODO Auto-generated method stub\r
-\r
-    }\r
-\r
-    public void mouseEntered(MouseEvent e) {\r
-        // TODO Auto-generated method stub\r
-\r
-    }\r
-\r
-    public void mouseExited(MouseEvent e) {\r
-        // TODO Auto-generated method stub\r
-\r
-    }\r
-\r
-    private void recursiveDir(Set<File> files, File dir, Set<File> platformFiles) {\r
-        File[] fileList = dir.listFiles();\r
-        for (int i = 0; i < fileList.length; i++) {\r
-            if (fileList[i].isFile()) {\r
-                if (!platformFiles.contains(fileList[i])) {\r
-                    files.add(fileList[i]);\r
-                }\r
-            } else {\r
-                if (isContain(fileList[i], platformFiles)) {\r
-                    recursiveDir(files, fileList[i], platformFiles);\r
-                } else {\r
-                    files.add(fileList[i]);\r
-                }\r
-            }\r
-        }\r
-    }\r
-\r
-    private void deleteFiles(File file) {\r
-        if (file.isDirectory()) {\r
-            File[] files = file.listFiles();\r
-            for (int i = 0; i < files.length; i++) {\r
-                deleteFiles(files[i]);\r
-            }\r
-        }\r
-        file.delete();\r
-    }\r
-\r
-    private boolean isContain(File dir, Set<File> platformFiles) {\r
-        Iterator<File> iter = platformFiles.iterator();\r
-        while (iter.hasNext()) {\r
-            File file = iter.next();\r
-            if (file.getPath().startsWith(dir.getPath())) {\r
-                //\r
-                // continue this FPD file\r
-                //\r
-                return true;\r
-            }\r
-        }\r
-        return false;\r
-    }\r
-}\r
-\r
-class PartialTableModel extends DefaultTableModel {\r
-    /**\r
-     * \r
-     */\r
-    private static final long serialVersionUID = 1L;\r
-\r
-    public boolean isCellEditable(int row, int col) {\r
-        switch (col) {\r
-        case 3:\r
-            return false;\r
-        default:\r
-            return false;\r
-        }\r
-    }\r
-}\r