Skip to content
Snippets Groups Projects
Commit becb0a89 authored by Florian Hölzl's avatar Florian Hölzl
Browse files

fixed navigator listening, some rework to clean up

parent 987956b8
No related branches found
No related tags found
No related merge requests found
......@@ -17,6 +17,8 @@ $Id$
+--------------------------------------------------------------------------*/
package org.fortiss.tooling.kernel.internal;
import org.eclipse.ui.part.ViewPart;
import org.fortiss.tooling.kernel.internal.navigator.NavigatorViewPart;
import org.fortiss.tooling.kernel.services.INavigatorService;
/**
......@@ -29,4 +31,17 @@ import org.fortiss.tooling.kernel.services.INavigatorService;
*/
public class NavigatorService implements INavigatorService {
/** Stores the navigator view. */
private NavigatorViewPart navigatorViewPart;
/** Sets the navigator view. */
public void setNavigatorViewPart(NavigatorViewPart part) {
this.navigatorViewPart = part;
}
/** {@inheritDoc} */
@Override
public ViewPart getNavigatorView() {
return navigatorViewPart;
}
}
......@@ -46,7 +46,9 @@ import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.ui.progress.UIJob;
import org.fortiss.tooling.kernel.ToolingKernelActivator;
import org.fortiss.tooling.kernel.internal.NavigatorService;
import org.fortiss.tooling.kernel.services.IEditorService;
import org.fortiss.tooling.kernel.services.INavigatorService;
import org.fortiss.tooling.kernel.util.EObjectSelectionUtils;
import org.unicase.ecp.model.ECPWorkspaceManager;
import org.unicase.ecp.model.NoWorkspaceException;
......@@ -81,6 +83,15 @@ public final class NavigatorViewPart extends ViewPart implements
/** Stores the menu manager. */
private MenuManager menuManager;
/** Stores the UI update job. */
private final UIJob updateUI = new UIJob("Update Model Navigator") {
@Override
public IStatus runInUIThread(IProgressMonitor monitor) {
viewer.refresh();
return Status.OK_STATUS;
}
};
/** Constructor. */
public NavigatorViewPart() {
try {
......@@ -98,6 +109,9 @@ public final class NavigatorViewPart extends ViewPart implements
createWorkspaceListener();
workspace.eAdapters().add(workspaceListener);
((NavigatorService) INavigatorService.INSTANCE)
.setNavigatorViewPart(this);
}
/**
......@@ -124,6 +138,7 @@ public final class NavigatorViewPart extends ViewPart implements
.getOldValue();
projectSpace.removeECPProjectListener(projectListener);
}
updateUI.schedule();
}
super.notifyChanged(msg);
}
......@@ -143,14 +158,7 @@ public final class NavigatorViewPart extends ViewPart implements
@Override
public void projectChanged() {
new UIJob("Update Model Navigator") {
@Override
public IStatus runInUIThread(IProgressMonitor monitor) {
viewer.refresh();
return Status.OK_STATUS;
}
}.schedule();
updateUI.schedule();
}
@Override
......@@ -252,6 +260,9 @@ public final class NavigatorViewPart extends ViewPart implements
/** {@inheritDoc} */
@Override
public void dispose() {
((NavigatorService) INavigatorService.INSTANCE)
.setNavigatorViewPart(null);
PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getSelectionService().removeSelectionListener(this);
getSite().setSelectionProvider(null);
......
......@@ -17,6 +17,7 @@ $Id$
+--------------------------------------------------------------------------*/
package org.fortiss.tooling.kernel.services;
import org.eclipse.ui.part.ViewPart;
import org.fortiss.tooling.kernel.internal.NavigatorService;
/**
......@@ -35,5 +36,9 @@ public interface INavigatorService {
/** Returns view id of the navigator view. */
public static final String NAVIGATOR_VIEW = "org.fortiss.tooling.kernel.model.navigator";
// TODO (FH): define
/**
* Returns the navigator view part. May return <code>null</code> if
* navigator has not yet been created or has already been disposed.
*/
ViewPart getNavigatorView();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment