jh: fix sorting of plugin dep list & package dep list
diff --git a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/forms/ContentPackageDescriptionPage.java b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/forms/ContentPackageDescriptionPage.java index 4267c75..605ba11 100644 --- a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/forms/ContentPackageDescriptionPage.java +++ b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/forms/ContentPackageDescriptionPage.java
@@ -14,10 +14,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.Hashtable; import java.util.Iterator; import java.util.List; -import java.util.Map; import org.eclipse.epf.authoring.ui.AuthoringUIHelpContexts; import org.eclipse.epf.authoring.ui.AuthoringUIPlugin; @@ -37,12 +35,14 @@ import org.eclipse.epf.uma.Task; import org.eclipse.epf.uma.UmaPackage; import org.eclipse.epf.uma.WorkProduct; -import org.eclipse.epf.uma.util.AssociationHelper; import org.eclipse.jface.viewers.CheckStateChangedEvent; import org.eclipse.jface.viewers.CheckboxTableViewer; import org.eclipse.jface.viewers.ICheckStateListener; import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerSorter; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.SWT; import org.eclipse.swt.events.FocusAdapter; @@ -91,7 +91,6 @@ private ContentPackage contentPackage; - private Hashtable aPackageMap = new Hashtable(); private org.eclipse.epf.authoring.ui.editors.MethodElementEditor.ModifyListener modelModifyListener; /** @@ -209,20 +208,33 @@ ILabelProvider labelProvider = new LabelProvider() { public String getText(Object element) { - return element.toString(); + if (element instanceof ContentPackage) { + return TngUtil.getLabelWithPath((ContentPackage)element); + } else { + return element.toString(); + } } }; ctrl_dependency.setLabelProvider(labelProvider); - - Hashtable aMap = getDependenciesPackages(contentPackage); - - if (aMap != null) { - Iterator it = aMap.keySet().iterator(); - while (it.hasNext()) { - String key = (String) it.next(); - ctrl_dependency.add(key); + ctrl_dependency.setContentProvider(new IStructuredContentProvider() { + public void dispose() { } - } + + public void inputChanged(Viewer viewer, Object oldInput, + Object newInput) { + } + + public Object[] getElements(Object inputElement) { + if (inputElement instanceof ContentPackage) { + return getDependenciesPackages(contentPackage).toArray(); + } else { + return Collections.EMPTY_LIST.toArray(); + } + } + }); + ctrl_dependency.setSorter(new ViewerSorter()); + ctrl_dependency.setInput(contentPackage); + ctrl_dependency.setAllChecked(true); ctrl_dependency.setAllGrayed(true); @@ -257,15 +269,6 @@ public void handleEvent(Event e) { // refreshViewers(); ctrl_dependency.refresh(); - Hashtable aMap = getDependenciesPackages(contentPackage); - - if (aMap != null) { - Iterator it = aMap.keySet().iterator(); - while (it.hasNext()) { - String key = (String) it.next(); - ctrl_dependency.add(key); - } - } ctrl_dependency.setAllChecked(true); ctrl_dependency.setAllGrayed(true); if (TngUtil.isLocked(contentPackage)) { @@ -380,21 +383,10 @@ String name = contentPackage.getName(); String desc = contentPackage.getBriefDescription(); - List dependencies = contentPackage.getReusedPackages(); ctrl_name.setText(name == null ? "" : name); //$NON-NLS-1$ ctrl_name.selectAll(); ctrl_brief_desc.setText(desc == null ? "" : desc); //$NON-NLS-1$ - - for (int i = 0; i < dependencies.size(); i++) { - Iterator it = aPackageMap.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry entry = (Map.Entry) it.next(); - if (dependencies.get(i) == entry.getValue()) { - ctrl_dependency.setChecked(entry.getKey(), true); - } - } - } } /** @@ -402,7 +394,7 @@ * @return * List of dependency packages */ - public Hashtable getDependenciesPackages(ContentPackage contentPackage) { + public Collection<ContentPackage> getDependenciesPackages(ContentPackage contentPackage) { List elements = new ArrayList(); for (Iterator iter = contentPackage.getContentElements().iterator(); iter @@ -474,20 +466,18 @@ } + List<ContentPackage> cpList = new ArrayList<ContentPackage>(); for (int i = 0; i < elements.size(); i++) { Object object = ((ContentElement) elements.get(i)).eContainer(); - // Object object = elements.get(i); - // System.out.println("Type - // "+((ContentPackage)object).getType().getName()); if (object instanceof ContentPackage) { if (!contentPackage.equals(object)) { - aPackageMap.put(TngUtil.getLabelWithPath((ContentPackage) object), - (ContentPackage) object); + if (!cpList.contains((ContentPackage)object)) { + cpList.add((ContentPackage)object); + } } } - } - return aPackageMap; + return cpList; } /**
diff --git a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/forms/MethodPluginDescriptionPage.java b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/forms/MethodPluginDescriptionPage.java index 35829f0..e01ae54 100644 --- a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/forms/MethodPluginDescriptionPage.java +++ b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/forms/MethodPluginDescriptionPage.java
@@ -15,10 +15,8 @@ import java.util.Collection; import java.util.Collections; import java.util.Date; -import java.util.HashMap; import java.util.Iterator; import java.util.List; -import java.util.Map; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; @@ -49,6 +47,7 @@ import org.eclipse.epf.library.edit.command.IActionManager; import org.eclipse.epf.library.edit.command.RemoveReferencesCommand; import org.eclipse.epf.library.edit.itemsfilter.FilterConstants; +import org.eclipse.epf.library.edit.util.Comparators; import org.eclipse.epf.library.edit.util.Misc; import org.eclipse.epf.library.edit.util.TngUtil; import org.eclipse.epf.library.ui.LibraryUIText; @@ -372,6 +371,7 @@ List allowableList = PluginReferenceChecker .getApplicableBasePlugins(plugin); + Collections.<Object>sort(allowableList, Comparators.PLUGINPACKAGE_COMPARATOR); ctrl_refModel.add(allowableList.toArray()); List currentBaseList = plugin.getBases();