From 06502580122a8894f738940e9a2faddf906c7cfe Mon Sep 17 00:00:00 2001 From: Florian Hoelzl <hoelzl@fortiss.org> Date: Tue, 24 May 2011 16:03:20 +0000 Subject: [PATCH] Fixed navigator refresh on resource changes. --- .../kernel/internal/NavigatorService.java | 23 ++++++++++++++++++- .../internal/navigator/NavigatorViewPart.java | 15 +++--------- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/NavigatorService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/NavigatorService.java index 44e58a433..df0d6f12a 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/NavigatorService.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/NavigatorService.java @@ -17,10 +17,13 @@ $Id$ +--------------------------------------------------------------------------*/ package org.fortiss.tooling.kernel.internal; +import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.part.ViewPart; +import org.fortiss.tooling.kernel.interfaces.ITopLevelElementChangeListener; import org.fortiss.tooling.kernel.internal.navigator.NavigatorViewPart; import org.fortiss.tooling.kernel.services.INavigatorService; +import org.fortiss.tooling.kernel.services.IPersistencyService; /** * This class implements the {@link INavigatorService} interface. @@ -30,11 +33,17 @@ import org.fortiss.tooling.kernel.services.INavigatorService; * @version $Rev$ * @levd.rating RED Rev: */ -public class NavigatorService implements INavigatorService { +public class NavigatorService implements INavigatorService, + ITopLevelElementChangeListener { /** Stores the navigator view. */ private NavigatorViewPart navigatorViewPart; + /** Constructor. */ + public NavigatorService() { + IPersistencyService.INSTANCE.addTopLevelElementListener(this); + } + /** Sets the navigator view. */ public void setNavigatorViewPart(NavigatorViewPart part) { this.navigatorViewPart = part; @@ -52,4 +61,16 @@ public class NavigatorService implements INavigatorService { return navigatorViewPart.getSite().getSelectionProvider() .getSelection(); } + + /** {@inheritDoc} */ + @Override + public void topLevelElementAdded(EObject topLevelElement) { + navigatorViewPart.refresh(); + } + + /** {@inheritDoc} */ + @Override + public void topLevelElementRemoved(EObject topLevelElement) { + navigatorViewPart.refresh(); + } } diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorViewPart.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorViewPart.java index 77998a6ee..9c9a1f01b 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorViewPart.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorViewPart.java @@ -47,7 +47,6 @@ import org.eclipse.ui.views.properties.IPropertySheetPage; import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor; import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; import org.fortiss.tooling.kernel.interfaces.ICustomMenuContributor; -import org.fortiss.tooling.kernel.interfaces.ITopLevelElementChangeListener; import org.fortiss.tooling.kernel.internal.NavigatorService; import org.fortiss.tooling.kernel.services.IActionService; import org.fortiss.tooling.kernel.services.IContextMenuService; @@ -67,8 +66,7 @@ import org.fortiss.tooling.kernel.util.EObjectSelectionUtils; */ public final class NavigatorViewPart extends ViewPart implements ISelectionListener, ISelectionChangedListener, IDoubleClickListener, - ITabbedPropertySheetPageContributor, ICustomMenuContributor, - ITopLevelElementChangeListener { + ITabbedPropertySheetPageContributor, ICustomMenuContributor { /** Stores the TreeViewer. */ private TreeViewer viewer; @@ -212,15 +210,8 @@ public final class NavigatorViewPart extends ViewPart implements return result; } - /** {@inheritDoc} */ - @Override - public void topLevelElementAdded(EObject topLevelElement) { - updateUI.schedule(); - } - - /** {@inheritDoc} */ - @Override - public void topLevelElementRemoved(EObject topLevelElement) { + /** Refreshes the navigator view. */ + public void refresh() { updateUI.schedule(); } } -- GitLab