From eddb19fa0136b59d339e28630b88efa75b433357 Mon Sep 17 00:00:00 2001 From: Eike Stepper Date: Thu, 30 Oct 2008 17:19:35 +0000 Subject: [252821] [UI] Hide missing local packages from "New Root" menu https://bugs.eclipse.org/bugs/show_bug.cgi?id=252821 --- .../org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java index 60ff7aac99..e204332fad 100644 --- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java +++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java @@ -11,6 +11,7 @@ package org.eclipse.emf.cdo.internal.ui.editor; import org.eclipse.emf.cdo.CDOObject; +import org.eclipse.emf.cdo.CDOSessionPackageManager; import org.eclipse.emf.cdo.CDOTransaction; import org.eclipse.emf.cdo.CDOView; import org.eclipse.emf.cdo.common.model.CDOClass; @@ -1985,13 +1986,23 @@ public class CDOEditor extends MultiPageEditorPart implements IEditingDomainProv protected boolean populateNewRoot(MenuManager menuManager) { boolean populated = false; - List cdoPackages = Arrays.asList(view.getSession().getPackageManager().getPackages()); + CDOSessionPackageManager packageManager = view.getSession().getPackageManager(); + List cdoPackages = Arrays.asList(packageManager.getPackages()); Collections.sort(cdoPackages); for (CDOPackage cdoPackage : cdoPackages) { if (!cdoPackage.isSystem()) { + try + { + packageManager.convert(cdoPackage); + } + catch (Exception ex) + { + continue; + } + List cdoClasses = Arrays.asList(cdoPackage.getConcreteClasses()); Collections.sort(cdoClasses); // TODO Sorting by class name may not have the desired effect if the labels are computed by an ItemProvider! @@ -1999,6 +2010,7 @@ public class CDOEditor extends MultiPageEditorPart implements IEditingDomainProv if (!cdoClasses.isEmpty()) { MenuManager submenuManager = new MenuManager(cdoPackage.getPackageURI()); + for (CDOClass cdoClass : cdoClasses) { // TODO Optimize/cache this? -- cgit v1.2.3