]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/updateui/UpdateStepTwo.java
1. Update release note to use jdk1.5.0_06 to take place of jdk1.5.0_04
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / far / updateui / UpdateStepTwo.java
index 77c8d370ce00f7c73a5e3cd48ba3542e83b8093a..34c5a42d96778a6cab83b755dfddfd2c8c405a05 100644 (file)
@@ -34,6 +34,7 @@ import javax.swing.JTable;
 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
@@ -71,7 +72,8 @@ public class UpdateStepTwo extends IDialog implements MouseListener {
     private JTable jTablePackage = null;\r
 \r
     private PartialTableModel model = null;\r
-  List<PackageIdentification> updatPkgList = new ArrayList<PackageIdentification>();\r
+\r
+    List<PackageIdentification> updatPkgList = new ArrayList<PackageIdentification>();\r
 \r
     public UpdateStepTwo(IDialog iDialog, boolean modal, UpdateStepOne stepOne) {\r
         this(iDialog, modal);\r
@@ -183,25 +185,24 @@ public class UpdateStepTwo extends IDialog implements MouseListener {
             WorkspaceTools wt = new WorkspaceTools();\r
             List<PackageIdentification> packagesInDb = wt.getAllPackages();\r
 \r
-      updatPkgList = AggregationOperation.intersection(packagesInDb, packagesInFar);\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
-    }\r
-    catch (Exception ex) {\r
-      ex.printStackTrace();\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
     /**\r
      * This is the default constructor\r
@@ -224,184 +225,191 @@ public class UpdateStepTwo extends IDialog implements MouseListener {
         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
-  public void mouseClicked(MouseEvent e) {\r
-    if (e.getSource() == jButtonCancel) {\r
-      this.setVisible(false);\r
-    }\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.minus(depResultList, AggregationOperation.union(\r
-              this.updatPkgList, dbPkgList));\r
-      Iterator resultIter = resultList.iterator();\r
-      while (resultIter.hasNext()){\r
-          Log.err("Missing dependency package " + ((PackageIdentification)resultIter.next()).toString() + "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
+     * 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
-        //\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
+        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.err("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.err("Can install " + pkgId.toString() + " pakcage, please check it!");\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
-      //\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, pkgId.getSpdFile());\r
-          }catch (Exception ex){\r
-              Log.err("Can install " + pkgId.toString() + " pakcage, please check it!");\r
-          }\r
-          \r
-      }\r
-      \r
-      \r
-      this.setVisible(false);\r
     }\r
-    else if (e.getSource() == jButtonPrevious) {\r
-      this.setVisible(false);\r
-      stepOne.setVisible(true);\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 mousePressed(MouseEvent e) {\r
-    // TODO Auto-generated method stub\r
-    \r
-  }\r
-  public void mouseReleased(MouseEvent e) {\r
-    // TODO Auto-generated method stub\r
-    \r
-  }\r
-  public void mouseEntered(MouseEvent e) {\r
-    // TODO Auto-generated method stub\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
-        }\r
-        else {\r
-          if (isContain(fileList[i], platformFiles)) {\r
-            recursiveDir(files, fileList[i], platformFiles);\r
-          }\r
-          else {\r
-            files.add(fileList[i]);\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
-    \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
+        if (file.isDirectory()) {\r
+            File[] files = file.listFiles();\r
+            for (int i = 0; i < files.length; i++) {\r
+                deleteFiles(files[i]);\r
+            }\r
         }\r
-      }\r
-      file.delete();\r
+        file.delete();\r
     }\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
+        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
-      }\r
-      return false;\r
+        return false;\r
     }\r
-  }\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
+     \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