Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-06-27 08:48:30 +0000
committerEike Stepper2012-06-27 08:48:30 +0000
commit3d3c30d0c463a0028e94811244581976ed692a84 (patch)
tree7ce71f2b4a0dea76798497a8ad8a9cbf4c75d309
parentbdb71e4a8e3b518233aafa855f9b0cace10e1ba8 (diff)
downloadcdo-3d3c30d0c463a0028e94811244581976ed692a84.tar.gz
cdo-3d3c30d0c463a0028e94811244581976ed692a84.tar.xz
cdo-3d3c30d0c463a0028e94811244581976ed692a84.zip
Add ResourceOpener mechanism
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF28
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDOSessionsView.java40
2 files changed, 53 insertions, 15 deletions
diff --git a/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF
index 88ee26d525..ce1cedac9b 100644
--- a/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.emf.cdo.ui;singleton:=true
-Bundle-Version: 4.1.0.qualifier
+Bundle-Version: 4.1.100.qualifier
Bundle-Activator: org.eclipse.emf.cdo.internal.ui.bundle.OM$Activator
Bundle-Vendor: %providerName
Bundle-ClassPath: .
@@ -21,70 +21,70 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
org.eclipse.emf.cdo;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
org.eclipse.emf.cdo.edit;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
org.eclipse.emf.cdo.ui.shared;bundle-version="[4.0.0,5.0.0)"
-Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.1.0";
+Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
org.eclipse.emf.cdo.explorer",
- org.eclipse.emf.cdo.internal.ui.actions;version="4.1.0";
+ org.eclipse.emf.cdo.internal.ui.actions;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
org.eclipse.emf.cdo.explorer",
- org.eclipse.emf.cdo.internal.ui.bundle;version="4.1.0";x-internal:=true,
- org.eclipse.emf.cdo.internal.ui.dialogs;version="4.1.0";
+ org.eclipse.emf.cdo.internal.ui.bundle;version="4.1.100";x-internal:=true,
+ org.eclipse.emf.cdo.internal.ui.dialogs;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
org.eclipse.emf.cdo.explorer",
- org.eclipse.emf.cdo.internal.ui.dnd;version="4.1.0";
+ org.eclipse.emf.cdo.internal.ui.dnd;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
org.eclipse.emf.cdo.explorer",
- org.eclipse.emf.cdo.internal.ui.editor;version="4.1.0";
+ org.eclipse.emf.cdo.internal.ui.editor;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
org.eclipse.emf.cdo.explorer",
- org.eclipse.emf.cdo.internal.ui.filters;version="4.1.0";
+ org.eclipse.emf.cdo.internal.ui.filters;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
org.eclipse.emf.cdo.explorer",
- org.eclipse.emf.cdo.internal.ui.messages;version="4.1.0";x-friends:="org.eclipse.emf.cdo.tests.ui",
- org.eclipse.emf.cdo.internal.ui.perspectives;version="4.1.0";
+ org.eclipse.emf.cdo.internal.ui.messages;version="4.1.100";x-friends:="org.eclipse.emf.cdo.tests.ui",
+ org.eclipse.emf.cdo.internal.ui.perspectives;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
org.eclipse.emf.cdo.explorer",
- org.eclipse.emf.cdo.internal.ui.preferences;version="4.1.0";
+ org.eclipse.emf.cdo.internal.ui.preferences;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
org.eclipse.emf.cdo.explorer",
- org.eclipse.emf.cdo.internal.ui.views;version="4.1.0";
+ org.eclipse.emf.cdo.internal.ui.views;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
org.eclipse.emf.cdo.explorer",
- org.eclipse.emf.cdo.ui;version="4.1.0",
- org.eclipse.emf.cdo.ui.widgets;version="4.1.0"
+ org.eclipse.emf.cdo.ui;version="4.1.100",
+ org.eclipse.emf.cdo.ui.widgets;version="4.1.100"
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDOSessionsView.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDOSessionsView.java
index a2ee08160d..68fe6d885e 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDOSessionsView.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDOSessionsView.java
@@ -23,9 +23,15 @@ import org.eclipse.net4j.util.ui.views.ContainerItemProvider;
import org.eclipse.net4j.util.ui.views.ContainerView;
import org.eclipse.net4j.util.ui.views.IElementFilter;
+import org.eclipse.core.runtime.Path;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IWorkbenchPage;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
/**
* @author Eike Stepper
@@ -34,6 +40,9 @@ public class CDOSessionsView extends ContainerView
{
public final static String ID = "org.eclipse.emf.cdo.ui.CDOSessionsView"; //$NON-NLS-1$
+ private static Map<String, ResourceOpener> resourceOpeners = Collections
+ .synchronizedMap(new HashMap<String, ResourceOpener>());
+
private OpenSessionAction openSessionAction;
public CDOSessionsView()
@@ -78,11 +87,40 @@ public class CDOSessionsView extends ContainerView
if (object instanceof CDOResource)
{
CDOResource resource = (CDOResource)object;
- CDOEditorUtil.openEditor(getSite().getPage(), resource.cdoView(), resource.getPath());
+ String path = resource.getPath();
+
+ String extension = new Path(path).getFileExtension();
+ ResourceOpener opener = resourceOpeners.get(extension);
+ if (opener != null)
+ {
+ opener.openResource(getSite().getPage(), resource);
+ }
+ else
+ {
+ CDOEditorUtil.openEditor(getSite().getPage(), resource.cdoView(), path);
+ }
}
else
{
super.doubleClicked(object);
}
}
+
+ public static ResourceOpener registerResourceOpener(String resourceExtension, ResourceOpener opener)
+ {
+ return resourceOpeners.put(resourceExtension, opener);
+ }
+
+ public static ResourceOpener unregisterResourceOpener(String resourceExtension)
+ {
+ return resourceOpeners.remove(resourceExtension);
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ public interface ResourceOpener
+ {
+ public void openResource(IWorkbenchPage page, CDOResource resource);
+ }
}

Back to the top