From 77e00a243fdeb06d160d87a42d1cb93f1e8ea45e Mon Sep 17 00:00:00 2001 From: shihyun Date: Thu, 8 Aug 2013 13:53:09 +0900 Subject: [PATCH] [Title] * bug fixed ** fixed checkbox status in checkboxTreeViewer Change-Id: I239acf47bd840b9747bea79507ba2dbeef52a617 --- .../tizen/installmanager/core/InstallManager.java | 13 ---- .../org/tizen/installmanager/core/Performance.java | 2 - .../org/tizen/installmanager/ui/model/Item.java | 44 +++++-------- .../installmanager/ui/page/PackageListPage.java | 73 ++++++++++++++++++---- 4 files changed, 75 insertions(+), 57 deletions(-) diff --git a/InstallManager_java/src/org/tizen/installmanager/core/InstallManager.java b/InstallManager_java/src/org/tizen/installmanager/core/InstallManager.java index 1a91b35..09f925a 100644 --- a/InstallManager_java/src/org/tizen/installmanager/core/InstallManager.java +++ b/InstallManager_java/src/org/tizen/installmanager/core/InstallManager.java @@ -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); diff --git a/InstallManager_java/src/org/tizen/installmanager/core/Performance.java b/InstallManager_java/src/org/tizen/installmanager/core/Performance.java index 528b3c4..deb0b1d 100644 --- a/InstallManager_java/src/org/tizen/installmanager/core/Performance.java +++ b/InstallManager_java/src/org/tizen/installmanager/core/Performance.java @@ -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(); diff --git a/InstallManager_java/src/org/tizen/installmanager/ui/model/Item.java b/InstallManager_java/src/org/tizen/installmanager/ui/model/Item.java index 0de4b9b..253ccf9 100644 --- a/InstallManager_java/src/org/tizen/installmanager/ui/model/Item.java +++ b/InstallManager_java/src/org/tizen/installmanager/ui/model/Item.java @@ -42,7 +42,7 @@ import org.tizen.installmanager.pkg.model.PackageSet; public class Item implements Comparable { private Package latestPackage; private Package installedPackage; - private Item parent; + private Item parent = null; private ArrayList children; private CheckState checkState= CheckState.UNCHECKED; private InstallState installState = InstallState.INSTALL; @@ -326,6 +326,7 @@ public class Item implements Comparable { * @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 { 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 { } 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 diff --git a/InstallManager_java/src/org/tizen/installmanager/ui/page/PackageListPage.java b/InstallManager_java/src/org/tizen/installmanager/ui/page/PackageListPage.java index 29abc84..8e36756 100644 --- a/InstallManager_java/src/org/tizen/installmanager/ui/page/PackageListPage.java +++ b/InstallManager_java/src/org/tizen/installmanager/ui/page/PackageListPage.java @@ -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 getLeafItemsToCheck(Item item) { + List leafItemsToCheck = new ArrayList(); + + 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 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 treeItems) { // set relation of items. + List addedItems = new ArrayList(); 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 compareList) { + private void setRelationOfItem(Item parentItem, List compareList, List addedList) { Package packageOfParentItem = parentItem.getPackage(); Collection 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); + } } } } -- 2.7.4