[Title]
authorshihyun <shihyun@shihyun-Samsung-Desktop-System.(none)>
Thu, 8 Aug 2013 04:53:09 +0000 (13:53 +0900)
committershihyun <shihyun@shihyun-Samsung-Desktop-System.(none)>
Thu, 8 Aug 2013 04:53:09 +0000 (13:53 +0900)
* bug fixed
** fixed checkbox status in checkboxTreeViewer

Change-Id: I239acf47bd840b9747bea79507ba2dbeef52a617

InstallManager_java/src/org/tizen/installmanager/core/InstallManager.java
InstallManager_java/src/org/tizen/installmanager/core/Performance.java
InstallManager_java/src/org/tizen/installmanager/ui/model/Item.java
InstallManager_java/src/org/tizen/installmanager/ui/page/PackageListPage.java

index 1a91b35..09f925a 100644 (file)
@@ -712,19 +712,6 @@ public class InstallManager {
                        InstallProgressMonitor monitor) throws IMExitException, IMNetworkException{
                Log.log("InstallManager.install() installable packages : " + installablePackages);
                
-//             for (final Package pkg : installablePackages) {
-//                     String fileName = pkg.getFileName();
-//                     boolean downloadResult = downloadPackage(pkg, PathUtil.addURLPath(mConfig.getDownloadPkgPath(), fileName), monitor);
-//                     
-//                     if (downloadPackage(pkg, monitor)) {
-//                             new Thread() {
-//                                     public void run() {
-//                                             install(pkg, targetDir, null);
-//                                     }
-//                             }.run();
-//                     }
-//             }
-               
                //performance measurement
                Performance.sdkPackageSize = packageManager.getTotalSizeOfInstallablePackages(installablePackages, true);
                
index 528b3c4..deb0b1d 100644 (file)
@@ -128,8 +128,6 @@ public class Performance {
                        out.newLine();
                        out.write("The install-manager end time\t: " + imEndTime);
                        out.newLine();
-                       out.write("Total package size\t: " + sdkPackageSize);
-                       out.newLine();
                        out.newLine();
                        
                        long progressSecond = getTotalTime();
index 0de4b9b..253ccf9 100644 (file)
@@ -42,7 +42,7 @@ import org.tizen.installmanager.pkg.model.PackageSet;
 public class Item implements Comparable<Item> {
        private Package latestPackage;
        private Package installedPackage;
-       private Item parent;
+       private Item parent = null;
        private ArrayList<Item> children;
        private CheckState  checkState= CheckState.UNCHECKED;
        private InstallState installState = InstallState.INSTALL;
@@ -326,6 +326,7 @@ public class Item implements Comparable<Item> {
         * @param CHECKED is true, this package is selected by tree view.
         */
        public void setCheckState(CheckState state) {
+               
                this.checkState = state;
        }
        
@@ -426,33 +427,6 @@ public class Item implements Comparable<Item> {
                return true;
        }
        
-       private boolean isChildrenAllInstallState() {
-               for (Item item : getChildren()) {
-                       if (item.getInstallState() != InstallState.INSTALL) {
-                               return false;
-                       }
-               }
-               return true;
-       }
-       
-       private boolean isChildrenAllUpdateState() {
-               for (Item item : getChildren()) {
-                       if (item.getInstallState() != InstallState.UPDATE) {
-                               return false;
-                       }
-               }
-               return true;
-       }
-       
-       private boolean isChildrenAllUninstallState() {
-               for (Item item : getChildren()) {
-                       if (item.getInstallState() != InstallState.UNINSTALL) {
-                               return false;
-                       }
-               }
-               return true;
-       }
-       
        public String getInstallStateMessage() {
                if (hasChildren() || getParent() == null) {
                        return "";
@@ -572,7 +546,19 @@ public class Item implements Comparable<Item> {
        }
        
        public String toString() {
-               return getPackageName();
+               if (getParent() == null) {
+                       return getPackageName();
+               } else {
+                       return getParent() + "/" + getPackageName();
+               }
+       }
+       
+       public int hashCode() {
+               if (getParent() == null) {
+                       return getPackageName().hashCode();
+               } else {
+                       return (getParent() + "/" + getPackageName()).hashCode();
+               }
        }
 
        @Override
index 29abc84..8e36756 100644 (file)
@@ -199,6 +199,7 @@ public abstract class PackageListPage extends PageTemplate {
                                if (e.getElement() instanceof Item) {
 
                                        Item item = (Item) e.getElement();
+                                       
                                        if (item.getPackageName().equals(Config.SDK_NAME)) {
                                                checkboxTreeViewer.setSubtreeChecked(item, !e.getChecked());
                                                setCheckbox(item, e.getChecked());
@@ -380,16 +381,45 @@ public abstract class PackageListPage extends PageTemplate {
                        }
                }
        }
+       
+       protected List<Item> getLeafItemsToCheck(Item item) {
+               List<Item> leafItemsToCheck = new ArrayList<Item>();
+               
+               if (item.hasChildren()) {
+                       for (Item childItem : item.getChildren()) {
+                               leafItemsToCheck.addAll(getLeafItemsToCheck(childItem));
+                       }
+               } else {
+                       for (Item i : getItems()) {
+                               if (item.getPackageName().equals(i.getPackageName())) {
+                                       leafItemsToCheck.add(i);
+                               }
+                       }
+               }
+               
+               return leafItemsToCheck;
+       }
 
        protected void setCheckbox(Item item, boolean checked) {
                if (item == null) {
                        return;
                } else {
-                       setChildCheckbox(checkboxTreeViewer, item, checked);
+                       List<Item> leafItemsToCheck = getLeafItemsToCheck(item);
                        
-                       if (item.getParent() != null) {
-                               setParentCheckbox(item.getParent());
+                       for (Item i : leafItemsToCheck) {
+                               setCheckState(i, checked);
+                               setParentCheckbox(i.getParent());
                        }
+
+//                     setChildCheckbox(checkboxTreeViewer, item, checked);
+//                     
+//                     if (item.getParent() != null) {
+//                             for (Item i : getItems()) {
+//                                     if (i.getPackageName().equalsIgnoreCase(item.getPackageName())) {
+//                                             setParentCheckbox(i.getParent());
+//                                     }
+//                             }
+//                     }
                        
                        changeCheckboxStatus(items);
                }
@@ -398,13 +428,21 @@ public abstract class PackageListPage extends PageTemplate {
        private void setChildCheckbox(CheckboxTreeViewer checkboxTreeViewer,
                        Item selectedItem, boolean checked) {
                if (!selectedItem.hasChildren()) {
-                       setCheckState(selectedItem, checked);
+                       for (Item i : getItems()) {
+                               if (i.getPackageName().equalsIgnoreCase(selectedItem.getPackageName())) {
+                                       setCheckState(i, checked);
+                               }
+                       }
                } else {
                        for (Item item : selectedItem.getChildren()) {
                                setChildCheckbox(checkboxTreeViewer, item, checked);
                        }
                        
-                       setCheckStateByChildren(selectedItem);
+                       for (Item i : getItems()) {
+                               if (i.getPackageName().equalsIgnoreCase(selectedItem.getPackageName())) {
+                                       setCheckStateByChildren(i);
+                               }
+                       }
                }
        }
        
@@ -455,7 +493,6 @@ public abstract class PackageListPage extends PageTemplate {
                if (parentItem == null) {
                        return;
                }
-               
                setCheckStateByChildren(parentItem);
                
                if (parentItem.getParent() != null) {
@@ -593,10 +630,12 @@ public abstract class PackageListPage extends PageTemplate {
 
        private void makeRelation(List<Item> treeItems) {
                // set relation of items.
+               List<Item> addedItems = new ArrayList<Item>();
                for (Item item : treeItems) {
-                       setRelationOfItem(item, treeItems);
+                       setRelationOfItem(item, treeItems, addedItems);
                }
-
+               treeItems.addAll(addedItems);
+               
                Collections.sort(treeItems);
        }
 
@@ -606,7 +645,7 @@ public abstract class PackageListPage extends PageTemplate {
                }
        }
 
-       private void setRelationOfItem(Item parentItem, List<Item> compareList) {
+       private void setRelationOfItem(Item parentItem, List<Item> compareList, List<Item> addedList) {
                Package packageOfParentItem = parentItem.getPackage();
                Collection<String> theChildPackage = packageOfParentItem.getDependentPackageNames();
                
@@ -614,10 +653,18 @@ public abstract class PackageListPage extends PageTemplate {
                        for (Item treeItem : compareList) {
                                String packageNameOfTreeItem = treeItem.getPackageName();
                                
-                               if (packageNameOfTreeItem.equalsIgnoreCase(childPackage)) {
-                                       parentItem.addChildItem(treeItem);
-                                       treeItem.setParent(parentItem);
-                                       break;
+                               if (packageNameOfTreeItem.equalsIgnoreCase(childPackage)) {                                     
+                                       if (treeItem.getParent() != null) {
+                                               Item childItem = new Item(treeItem.getLatestPackage(), treeItem.getInstalledPackage(), treeItem.getInstallState());
+                                               
+                                               parentItem.addChildItem(childItem);
+                                               childItem.setParent(parentItem);
+                                               
+                                               addedList.add(childItem);
+                                       } else {
+                                               parentItem.addChildItem(treeItem);
+                                               treeItem.setParent(parentItem);
+                                       }
                                }
                        }
                }