*/
public void remove(String name, String packageRepo) {
uninstallExtraPackages(packageRepo);
+ removeExtensionPackagesInRepoPackages(packageRepo);
if (contains(packageRepo)) {
userExtensionRepositories.remove(packageRepo);
}
}
/**
+ * Remove extension packages in repository packages by extension repository
+ * which is selected for removing on 'Add Extras' dialog.
+ * @param repo specific extension repository for removing.
+ */
+ private void removeExtensionPackagesInRepoPackages(String repo) {
+ PackageManager pm = InstallManager.getInstance().getPackageManager();
+ PackageSet repoPkgs = pm.getRepoPackages();
+ PackageSet clone = (PackageSet) repoPkgs.clone();
+
+ for (Package pkg : repoPkgs) {
+ if (pkg.getExtensionServer().equalsIgnoreCase(repo)) {
+ clone.remove(pkg);
+ }
+ }
+
+ pm.setRepoPackages(clone);
+ }
+
+ /**
* Uninstall extra packages which belong to selected extra repository.
* @param repo Selected extra repository for removing.
*/
}
/**
+ * Set repository packages.
+ * @param packageSet
+ */
+ public void setRepoPackages(PackageSet packageSet) {
+ repoPackages = packageSet;
+ }
+
+ /**
* @return root meta packages of repository
*/
public PackageSet getRootMetaPackagesOfRepository() {
+ PackageSet clone = (PackageSet) repoPackages.clone();
+
+ // Repository packages should not have extension packages.
+ for (Package pkg : repoPackages) {
+ if (pkg.isExtensionPackage()) {
+ clone.remove(pkg);
+ }
+ }
+
+ repoPackages = clone;
+
return rootMeta(repoPackages);
}
PackageSet packageList = repoPackages;
packageList.addAll(extensionPackages);
- if(packageList.hasPackageByName(pkgName)) {
+ if (packageList.hasPackageByName(pkgName)) {
return packageList.getPackageByName(pkgName);
} else {
return null;
// return null;
// }
}
+
+ public void removePackageFromPackageManager(String pkgName) {
+ PackageSet clone = (PackageSet) repoPackages.clone();
+ Package pkg = clone.getPackageByName(pkgName);
+
+ if (clone.hasPackage(pkg)) {
+ clone.remove(pkg);
+ }
+
+ repoPackages = clone;
+ }
/**
* @param packageNames
* @return packages collected by the given package names
extraDialog.open();
if (sl_composite.topControl == compositeInstallablePage) {
- compositeInstallablePage.addExtensionPackagesToExtra(extraDialog.getPackagesFromExtraRepository());
+ compositeInstallablePage.loadPage(controller);
} else if (sl_composite.topControl == compositeUpdatableListPage) {
- compositeUpdatableListPage.addExtensionPackagesToExtra(extraDialog.getPackagesFromExtraRepository());
+ compositeUpdatableListPage.loadPage(controller);
}
}
});
for (Item childItem : getChildren()) {
childItem.getTerminalPackages(installList, checked);
}
- }
+ }
- if (getChildren().size() <= 0) {
- if (getCheckState() == CheckState.CHECKED) {
- installList.add(getPackageName());
- }
+ if (getCheckState() == CheckState.CHECKED) {
+ installList.add(getPackageName());
}
}
} else {
installType = InstallType.CUSTOM;
}
-
+
setCheckedByType(iType);
checkboxTreeViewer.refresh();
checkboxTreeViewer.getTree().setEnabled(false);
+ convertToVolumeSize(getCheckedPackageSize(false)));
lblUncompressedSize.setText("Install size : "
+ convertToVolumeSize(getCheckedPackageSize(true)));
-
- setNextBtnEnabledAboutCheckedPackageCount();
+ setNextBtnEnabledAboutCheckedPackageCount();
}
/**
if (installType == null || installType.isEmpty()) {
Log.err("Install type is empty. check install type or package server is old.");
}
+
Package pkg = InstallManager.getInstance().getPackageManager().getPackageByName(installType);
if (pkg == null) {
//get all meta packages (installable packages)
//TODO : show all packages. (installable, installed)
- PackageSet metaPackageSet = packageManager.getRootMetaPackagesOfRepository();
+ PackageSet metaPackageSet = packageManager.getRootMetaPackagesOfRepository();
return makeTreeItem(metaPackageSet);
}