-\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
-\r
- //\r
- // Remove all update packages\r
- //\r
-\r
- //\r
- // Install all update packages\r
- //\r
-\r
- this.setVisible(false);\r
- } else if (e.getSource() == jButtonPrevious) {\r
- this.setVisible(false);\r
- stepOne.setVisible(true);\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
+ //\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