diff options
author | Eike Stepper | 2015-05-17 07:08:12 +0000 |
---|---|---|
committer | Eike Stepper | 2015-05-17 07:08:12 +0000 |
commit | e993693885652bc67ae69ea1a4d9202123172f35 (patch) | |
tree | c1e00ff9d72fba78a1f9db9c9d18da55d564992a /plugins/org.eclipse.emf.cdo.explorer.ui | |
parent | 95d2be88f607c6b94bfaab37e988366e729b25c8 (diff) | |
download | cdo-e993693885652bc67ae69ea1a4d9202123172f35.tar.gz cdo-e993693885652bc67ae69ea1a4d9202123172f35.tar.xz cdo-e993693885652bc67ae69ea1a4d9202123172f35.zip |
[467442] Add Interactive Transaction Conflict Resolution
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=467442
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.explorer.ui')
7 files changed, 159 insertions, 671 deletions
diff --git a/plugins/org.eclipse.emf.cdo.explorer.ui/commands.txt b/plugins/org.eclipse.emf.cdo.explorer.ui/commands.txt deleted file mode 100644 index c8490dace5..0000000000 --- a/plugins/org.eclipse.emf.cdo.explorer.ui/commands.txt +++ /dev/null @@ -1,76 +0,0 @@ -CDORepository (connected/disconnected) --------------------------------------------- - Connect - ---------------------- - New --> Branch... - Tag... - ---------------------- - Show In --> History - CDO Administration - ---------------------- - Checkout - Checkout As... - ---------------------- - Delete... - Disconnect - ---------------------- - Properties... - - -CDOBranch | CDOTag --------------------------------------------- - New --> Branch... - Tag... - ---------------------- - Show In --> History - ---------------------- - Checkout - Checkout As... - ---------------------- - Rename... - Delete... - ---------------------- - Properties... - - -CDOCheckout (open/closed) --------------------------------------------- - Open Checkout - ---------------------- - New --> [allowed children...] - ---------------------- - Open - Open With --> [applicable editors...] - Show In --> History - ---------------------- - Compare With --> Each Other - ... - Switch To --> New Branch... - [branch history] - Other... - Merge... - ---------------------- - Delete Checkout... - Close Checkout - ---------------------- - Properties... - - -EObject (including CDOResourceNodes) --------------------------------------------- - New --> [allowed children...] - ---------------------- - Open - Open With --> [applicable editors...] - Show In --> History - ---------------------- - Compare With --> Each Other - ... - Switch To --> New Branch... - [branch history] - Other... - Merge... - ---------------------- - Delete... - ---------------------- - Properties... diff --git a/plugins/org.eclipse.emf.cdo.explorer.ui/plugin.xml b/plugins/org.eclipse.emf.cdo.explorer.ui/plugin.xml index 04ed49ae7a..3b818e6f18 100644 --- a/plugins/org.eclipse.emf.cdo.explorer.ui/plugin.xml +++ b/plugins/org.eclipse.emf.cdo.explorer.ui/plugin.xml @@ -751,4 +751,16 @@ </objectContribution> </extension> + <extension + point="org.eclipse.emf.cdo.ui.editorOpeners"> + <editorOpener + class="org.eclipse.emf.cdo.explorer.ui.checkouts.CDOModelEditorOpener" + icon="icons/cdo_editor.gif" + id="org.eclipse.papyrus.cdo.ui.editors.PapyrusCDOEditorOpener" + name="CDO Editor" + priority="100" + regex="cdo\.checkout://.*"> + </editorOpener> + </extension> + </plugin> diff --git a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/bundle/OM.java b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/bundle/OM.java index 9166c66fd0..7c31debabd 100644 --- a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/bundle/OM.java +++ b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/bundle/OM.java @@ -11,7 +11,6 @@ */ package org.eclipse.emf.cdo.explorer.ui.bundle; -import org.eclipse.emf.cdo.explorer.ui.checkouts.CDOCheckoutEditorOpenerRegistry; import org.eclipse.emf.cdo.ui.OverlayImage; import org.eclipse.net4j.util.om.OMBundle; @@ -88,17 +87,5 @@ public abstract class OM super(BUNDLE); INSTANCE = this; } - - @Override - protected void doStart() throws Exception - { - CDOCheckoutEditorOpenerRegistry.INSTANCE.activate(); - } - - @Override - protected void doStop() throws Exception - { - CDOCheckoutEditorOpenerRegistry.INSTANCE.deactivate(); - } } } diff --git a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/CDOCheckoutEditorOpener.java b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/CDOCheckoutEditorOpener.java index ef1af4ece2..ce302b4a8b 100644 --- a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/CDOCheckoutEditorOpener.java +++ b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/CDOCheckoutEditorOpener.java @@ -10,189 +10,12 @@ */ package org.eclipse.emf.cdo.explorer.ui.checkouts; -import org.eclipse.emf.cdo.explorer.ui.bundle.OM; - -import org.eclipse.net4j.util.ReflectUtil.ExcludeFromDump; - -import org.eclipse.emf.common.util.URI; - -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IPartListener; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.IWorkbenchPart; - -import java.util.HashSet; -import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; +import org.eclipse.emf.cdo.ui.CDOEditorOpener; /** * @author Eike Stepper */ -public interface CDOCheckoutEditorOpener +@Deprecated +public interface CDOCheckoutEditorOpener extends CDOEditorOpener { - public static final int DEFAULT_PRIORITY = 500; - - public String getID(); - - public String getName(); - - public ImageDescriptor getIcon(); - - /** - * Returns the priority of this editor opener. Usually used to choose between several editor openers that - * match the same repository URI. - */ - public int getPriority(); - - /** - * Returns the regular expression that determines if the editor opener can open a certain URI. - */ - public String getRegex(); - - /** - * Checks if the URI matches the regular expression of this editor opener. - */ - public boolean matchesRegex(URI uri); - - public IEditorPart openEditor(IWorkbenchPage page, URI uri); - - /** - * @author Eike Stepper - */ - public static abstract class Default implements CDOCheckoutEditorOpener - { - private String id; - - private String name; - - private ImageDescriptor icon; - - private String regex; - - private int priority = DEFAULT_PRIORITY; - - @ExcludeFromDump - private transient Pattern pattern; - - public Default() - { - } - - public Default(String id, String name, ImageDescriptor icon, String regex, int priority) - { - this.id = id; - this.name = name; - this.icon = icon; - this.regex = regex; - this.priority = priority; - } - - public String getID() - { - return id; - } - - public String getName() - { - return name; - } - - public ImageDescriptor getIcon() - { - return icon; - } - - public final int getPriority() - { - return priority; - } - - public final String getRegex() - { - return regex; - } - - public final boolean matchesRegex(URI uri) - { - synchronized (regex) - { - if (pattern == null) - { - pattern = Pattern.compile(regex); - } - } - - Matcher matcher = pattern.matcher(uri.toString()); - return matcher.matches(); - } - - public IEditorPart openEditor(final IWorkbenchPage page, URI uri) - { - final Set<IEditorPart> editors = new HashSet<IEditorPart>(); - final IEditorPart[] editor = { null }; - - IPartListener partListener = new IPartListener() - { - public void partClosed(IWorkbenchPart part) - { - if (part == editor[0]) - { - try - { - // view.close(); - } - catch (Exception ex) - { - OM.LOG.error(ex); - } - finally - { - page.removePartListener(this); - } - } - } - - public void partOpened(IWorkbenchPart part) - { - // Do nothing. - } - - public void partDeactivated(IWorkbenchPart part) - { - // Do nothing. - } - - public void partBroughtToTop(IWorkbenchPart part) - { - // Do nothing. - } - - public void partActivated(IWorkbenchPart part) - { - // Do nothing. - } - }; - - page.addPartListener(partListener); - editor[0] = doOpenEditor(page, uri); - - if (!editors.contains(editor)) - { - // The editor must have been open already and someone else will handle close. - page.removePartListener(partListener); - } - - return editor[0]; - } - - protected abstract IEditorPart doOpenEditor(IWorkbenchPage page, URI uri); - - @Override - public String toString() - { - return id + "[" + regex + "]"; - } - } } diff --git a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/CDOCheckoutEditorOpenerRegistry.java b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/CDOCheckoutEditorOpenerRegistry.java index 1ba75653d7..b406e01253 100644 --- a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/CDOCheckoutEditorOpenerRegistry.java +++ b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/CDOCheckoutEditorOpenerRegistry.java @@ -10,402 +10,12 @@ */ package org.eclipse.emf.cdo.explorer.ui.checkouts; -import org.eclipse.emf.cdo.explorer.CDOExplorerUtil; -import org.eclipse.emf.cdo.explorer.checkouts.CDOCheckout; -import org.eclipse.emf.cdo.explorer.ui.bundle.OM; -import org.eclipse.emf.cdo.internal.ui.InteractiveConflictHandlerSelector; -import org.eclipse.emf.cdo.transaction.CDOTransaction; -import org.eclipse.emf.cdo.ui.CDOEditorUtil; -import org.eclipse.emf.cdo.util.CDOURIUtil; -import org.eclipse.emf.cdo.view.CDOView; - -import org.eclipse.emf.internal.cdo.transaction.CDOHandlingConflictResolver; - -import org.eclipse.net4j.util.StringUtil; -import org.eclipse.net4j.util.WrappedException; -import org.eclipse.net4j.util.container.Container; -import org.eclipse.net4j.util.om.OMPlatform; - -import org.eclipse.emf.common.util.URI; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExtensionRegistry; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IEditorReference; -import org.eclipse.ui.IPartListener; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.plugin.AbstractUIPlugin; - -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import org.eclipse.emf.cdo.ui.CDOEditorOpener; /** * @author Eike Stepper */ -@SuppressWarnings("restriction") -public class CDOCheckoutEditorOpenerRegistry extends Container<CDOCheckoutEditorOpener> +@Deprecated +public class CDOCheckoutEditorOpenerRegistry extends CDOEditorOpener.Registry { - public static final CDOCheckoutEditorOpenerRegistry INSTANCE = new CDOCheckoutEditorOpenerRegistry(); - - private static final String EXT_POINT = "editorOpeners"; //$NON-NLS-1$ - - private final Map<String, CDOCheckoutEditorOpener> editorOpeners = new HashMap<String, CDOCheckoutEditorOpener>(); - - public CDOCheckoutEditorOpenerRegistry() - { - addEditorOpener(new CDOModelEditorOpener()); - } - - public IEditorPart openEditor(IWorkbenchPage page, URI uri) - { - if (uri == null) - { - return null; - } - - for (CDOCheckoutEditorOpener editorOpener : getEditorOpeners(uri)) - { - IEditorPart editor = editorOpener.openEditor(page, uri); - if (editor != null) - { - return editor; - } - } - - return null; - } - - public CDOCheckoutEditorOpener getEditorOpener(String id) - { - synchronized (editorOpeners) - { - return editorOpeners.get(id); - } - } - - public CDOCheckoutEditorOpener[] getEditorOpeners(URI uri) - { - List<CDOCheckoutEditorOpener> result = new ArrayList<CDOCheckoutEditorOpener>(); - - synchronized (editorOpeners) - { - for (CDOCheckoutEditorOpener editorOpener : editorOpeners.values()) - { - if (editorOpener.matchesRegex(uri)) - { - result.add(editorOpener); - } - } - } - - // Sort highest priority first - Collections.sort(result, new Comparator<CDOCheckoutEditorOpener>() - { - public int compare(CDOCheckoutEditorOpener o1, CDOCheckoutEditorOpener o2) - { - return -Integer.valueOf(o1.getPriority()).compareTo(o2.getPriority()); - } - }); - - return result.toArray(new CDOCheckoutEditorOpener[result.size()]); - } - - public void addEditorOpener(CDOCheckoutEditorOpener editorOpener) - { - boolean added; - synchronized (editorOpeners) - { - String id = editorOpener.getID(); - added = !editorOpeners.containsKey(id); - if (added) - { - editorOpeners.put(id, editorOpener); - } - } - - if (added) - { - fireElementAddedEvent(editorOpener); - } - } - - public void removeEditorOpener(CDOCheckoutEditorOpener editorOpener) - { - boolean removed; - synchronized (editorOpeners) - { - String id = editorOpener.getID(); - removed = editorOpeners.remove(id) != null; - } - - if (removed) - { - fireElementRemovedEvent(editorOpener); - } - } - - public CDOCheckoutEditorOpener[] getElements() - { - synchronized (editorOpeners) - { - return editorOpeners.values().toArray(new CDOCheckoutEditorOpener[editorOpeners.size()]); - } - } - - @Override - public boolean isEmpty() - { - synchronized (editorOpeners) - { - return editorOpeners.isEmpty(); - } - } - - @Override - protected void doActivate() throws Exception - { - super.doActivate(); - if (OMPlatform.INSTANCE.isOSGiRunning()) - { - try - { - readExtensions(); - } - catch (Throwable t) - { - OM.LOG.error(t); - } - } - } - - public void readExtensions() - { - IExtensionRegistry registry = Platform.getExtensionRegistry(); - IConfigurationElement[] configurationElements = registry.getConfigurationElementsFor(OM.BUNDLE_ID, EXT_POINT); - for (IConfigurationElement element : configurationElements) - { - try - { - EditorOpenerDescriptor descriptor = new EditorOpenerDescriptor(element); - addEditorOpener(descriptor); - } - catch (Exception ex) - { - OM.LOG.error(ex); - } - } - } - - /** - * @author Eike Stepper - */ - private static final class CDOModelEditorOpener extends CDOCheckoutEditorOpener.Default - { - private static final String REGEX = "cdo\\.checkout://.*"; - - public CDOModelEditorOpener() - { - super(CDOEditorUtil.EDITOR_ID, "CDO Editor", OM.getImageDescriptor("icons/cdo_editor.gif"), REGEX, 100); - } - - @Override - protected IEditorPart doOpenEditor(final IWorkbenchPage page, URI uri) - { - CDOCheckout checkout = CDOExplorerUtil.getCheckout(uri); - final CDOView view = checkout.openView(); - - if (view instanceof CDOTransaction) - { - CDOHandlingConflictResolver conflictResolver = new CDOHandlingConflictResolver(); - conflictResolver.setConflictHandlerSelector(new InteractiveConflictHandlerSelector()); - - CDOTransaction transaction = (CDOTransaction)view; - transaction.options().addConflictResolver(conflictResolver); - } - - final IEditorPart editor = openEditor(page, view, CDOURIUtil.extractResourcePath(uri)); - page.addPartListener(new IPartListener() - { - public void partClosed(IWorkbenchPart part) - { - if (part == editor) - { - try - { - view.close(); - } - catch (Exception ex) - { - OM.LOG.error(ex); - } - finally - { - page.removePartListener(this); - } - } - } - - public void partOpened(IWorkbenchPart part) - { - // Do nothing. - } - - public void partDeactivated(IWorkbenchPart part) - { - // Do nothing. - } - - public void partBroughtToTop(IWorkbenchPart part) - { - // Do nothing. - } - - public void partActivated(IWorkbenchPart part) - { - // Do nothing. - } - }); - - return editor; - } - - private IEditorPart openEditor(IWorkbenchPage page, CDOView view, String resourcePath) - { - try - { - String editorID = CDOEditorUtil.getEditorID(); - - IEditorReference[] references = CDOEditorUtil.findEditor(page, view, resourcePath); - for (IEditorReference reference : references) - { - if (editorID.equals(reference.getId())) - { - IEditorPart editor = references[0].getEditor(true); - page.activate(editor); - return editor; - } - } - - IEditorInput input = CDOEditorUtil.createCDOEditorInput(view, resourcePath, false); - return page.openEditor(input, editorID); - } - catch (Exception ex) - { - OM.LOG.error(ex); - } - - return null; - } - } - - /** - * @author Eike Stepper - */ - public static final class EditorOpenerDescriptor extends CDOCheckoutEditorOpener.Default - { - private IConfigurationElement element; - - public EditorOpenerDescriptor(IConfigurationElement element) - { - super(getID(element), getName(element), getIcon(element), getRegex(element), getPriority(element)); - this.element = element; - - if (StringUtil.isEmpty(element.getAttribute("class"))) //$NON-NLS-1$ - { - throw new IllegalArgumentException(MessageFormat.format("Class not defined for extension {0}", element)); //$NON-NLS-1$ - } - } - - @Override - protected IEditorPart doOpenEditor(IWorkbenchPage page, URI uri) - { - return getEditorOpener().openEditor(page, uri); - } - - private CDOCheckoutEditorOpener getEditorOpener() - { - try - { - return (CDOCheckoutEditorOpener)element.createExecutableExtension("class"); //$NON-NLS-1$ - } - catch (CoreException ex) - { - throw WrappedException.wrap(ex); - } - } - - private static String getID(IConfigurationElement element) - { - String value = element.getAttribute("id"); //$NON-NLS-1$ - if (StringUtil.isEmpty(value)) - { - throw new IllegalArgumentException(MessageFormat.format("ID not defined for extension {0}", element)); //$NON-NLS-1$ - } - - return value; - } - - private static String getName(IConfigurationElement element) - { - String value = element.getAttribute("name"); //$NON-NLS-1$ - if (StringUtil.isEmpty(value)) - { - throw new IllegalArgumentException(MessageFormat.format("Name not defined for extension {0}", element)); //$NON-NLS-1$ - } - - return value; - } - - private static ImageDescriptor getIcon(IConfigurationElement element) - { - String icon = element.getAttribute("icon"); //$NON-NLS-1$ - if (icon != null) - { - try - { - return AbstractUIPlugin.imageDescriptorFromPlugin(element.getNamespaceIdentifier(), icon); - } - catch (Exception ex) - { - //$FALL-THROUGH$ - } - } - - return null; - } - - private static String getRegex(IConfigurationElement element) - { - String value = element.getAttribute("regex"); //$NON-NLS-1$ - if (StringUtil.isEmpty(value)) - { - throw new IllegalArgumentException(MessageFormat.format("Regex not defined for extension {0}", element)); //$NON-NLS-1$ - } - - return value; - } - - private static int getPriority(IConfigurationElement element) - { - try - { - String value = element.getAttribute("priority"); //$NON-NLS-1$ - return Integer.parseInt(value); - } - catch (Exception ex) - { - return DEFAULT_PRIORITY; - } - } - } } diff --git a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/CDOModelEditorOpener.java b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/CDOModelEditorOpener.java new file mode 100644 index 0000000000..8301ff4105 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/CDOModelEditorOpener.java @@ -0,0 +1,134 @@ +/* + * Copyright (c) 2009-2013 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.explorer.ui.checkouts; + +import org.eclipse.emf.cdo.explorer.CDOExplorerUtil; +import org.eclipse.emf.cdo.explorer.checkouts.CDOCheckout; +import org.eclipse.emf.cdo.explorer.ui.bundle.OM; +import org.eclipse.emf.cdo.internal.ui.InteractiveConflictHandlerSelector; +import org.eclipse.emf.cdo.transaction.CDOTransaction; +import org.eclipse.emf.cdo.ui.CDOEditorOpener; +import org.eclipse.emf.cdo.ui.CDOEditorUtil; +import org.eclipse.emf.cdo.util.CDOURIUtil; +import org.eclipse.emf.cdo.view.CDOView; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorReference; +import org.eclipse.ui.IPartListener; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; + +/** + * @author Eike Stepper + */ +public class CDOModelEditorOpener extends CDOEditorOpener.Default +{ + public CDOModelEditorOpener() + { + } + + @Override + protected IEditorPart doOpenEditor(final IWorkbenchPage page, URI uri) + { + CDOCheckout checkout = CDOExplorerUtil.getCheckout(uri); + final CDOView view = checkout.openView(); + + if (view instanceof CDOTransaction) + { + configureTransaction((CDOTransaction)view); + } + + final IEditorPart editor = openEditor(page, view, CDOURIUtil.extractResourcePath(uri)); + page.addPartListener(new IPartListener() + { + public void partClosed(IWorkbenchPart part) + { + if (part == editor) + { + try + { + view.close(); + } + catch (Exception ex) + { + OM.LOG.error(ex); + } + finally + { + page.removePartListener(this); + } + } + } + + public void partOpened(IWorkbenchPart part) + { + // Do nothing. + } + + public void partDeactivated(IWorkbenchPart part) + { + // Do nothing. + } + + public void partBroughtToTop(IWorkbenchPart part) + { + // Do nothing. + } + + public void partActivated(IWorkbenchPart part) + { + // Do nothing. + } + }); + + return editor; + } + + @SuppressWarnings("restriction") + protected void configureTransaction(CDOTransaction transaction) + { + org.eclipse.emf.internal.cdo.transaction.CDOHandlingConflictResolver conflictResolver = new org.eclipse.emf.internal.cdo.transaction.CDOHandlingConflictResolver(); + conflictResolver.setConflictHandlerSelector(new InteractiveConflictHandlerSelector()); + + transaction.options().addConflictResolver(conflictResolver); + } + + private IEditorPart openEditor(IWorkbenchPage page, CDOView view, String resourcePath) + { + try + { + String editorID = CDOEditorUtil.getEditorID(); + + IEditorReference[] references = CDOEditorUtil.findEditor(page, view, resourcePath); + for (IEditorReference reference : references) + { + if (editorID.equals(reference.getId())) + { + IEditorPart editor = references[0].getEditor(true); + page.activate(editor); + return editor; + } + } + + IEditorInput input = CDOEditorUtil.createCDOEditorInput(view, resourcePath, false); + return page.openEditor(input, editorID); + } + catch (Exception ex) + { + OM.LOG.error(ex); + } + + return null; + } +} diff --git a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/actions/OpenWithActionProvider.java b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/actions/OpenWithActionProvider.java index 61d1a7d96a..e1f334e6cd 100644 --- a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/actions/OpenWithActionProvider.java +++ b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/actions/OpenWithActionProvider.java @@ -19,10 +19,9 @@ import org.eclipse.emf.cdo.eresource.CDOResourceNode; import org.eclipse.emf.cdo.explorer.CDOExplorerUtil; import org.eclipse.emf.cdo.explorer.checkouts.CDOCheckout; import org.eclipse.emf.cdo.explorer.ui.bundle.OM; -import org.eclipse.emf.cdo.explorer.ui.checkouts.CDOCheckoutEditorOpener; -import org.eclipse.emf.cdo.explorer.ui.checkouts.CDOCheckoutEditorOpenerRegistry; import org.eclipse.emf.cdo.internal.ui.dialogs.EditObjectDialog; import org.eclipse.emf.cdo.transaction.CDOTransaction; +import org.eclipse.emf.cdo.ui.CDOEditorOpener; import org.eclipse.emf.cdo.util.CDOUtil; import org.eclipse.net4j.util.ObjectUtil; @@ -155,13 +154,13 @@ public class OpenWithActionProvider extends CommonActionProvider CDOCheckout checkout = CDOExplorerUtil.getCheckout(cdoObject); if (checkout != null) { - CDOCheckoutEditorOpener[] editorOpeners = CDOCheckoutEditorOpenerRegistry.INSTANCE.getEditorOpeners(uri); + CDOEditorOpener[] editorOpeners = CDOEditorOpener.Registry.INSTANCE.getEditorOpeners(uri); if (editorOpeners.length != 0) { IMenuManager submenu = new MenuManager("Open With", ICommonMenuConstants.GROUP_OPEN_WITH); submenu.add(new GroupMarker(ICommonMenuConstants.GROUP_TOP)); - for (CDOCheckoutEditorOpener editorOpener : editorOpeners) + for (CDOEditorOpener editorOpener : editorOpeners) { OpenWithAction action = new OpenWithAction(viewSite.getPage(), cdoObject, editorOpener); submenu.add(action); @@ -309,7 +308,7 @@ public class OpenWithActionProvider extends CommonActionProvider CDOCheckout checkout = CDOExplorerUtil.getCheckout(cdoObject); if (checkout != null) { - CDOCheckoutEditorOpener[] editorOpeners = CDOCheckoutEditorOpenerRegistry.INSTANCE.getEditorOpeners(uri); + CDOEditorOpener[] editorOpeners = CDOEditorOpener.Registry.INSTANCE.getEditorOpeners(uri); String defaultEditorOpenerID = editorOpeners.length != 0 ? editorOpeners[0].getID() : null; CDOID objectID = cdoObject.cdoID(); @@ -327,8 +326,7 @@ public class OpenWithActionProvider extends CommonActionProvider if (editorOpenerID != null) { - CDOCheckoutEditorOpener editorOpener = CDOCheckoutEditorOpenerRegistry.INSTANCE - .getEditorOpener(editorOpenerID); + CDOEditorOpener editorOpener = CDOEditorOpener.Registry.INSTANCE.getEditorOpener(editorOpenerID); if (editorOpener != null) { if (!ObjectUtil.equals(editorOpenerID, lastEditorOpenerID)) @@ -574,9 +572,9 @@ public class OpenWithActionProvider extends CommonActionProvider private EObject openableElement; - private CDOCheckoutEditorOpener editorOpener; + private CDOEditorOpener editorOpener; - public OpenWithAction(IWorkbenchPage page, EObject openableElement, CDOCheckoutEditorOpener editorOpener) + public OpenWithAction(IWorkbenchPage page, EObject openableElement, CDOEditorOpener editorOpener) { setId(ID); setText(editorOpener.getName()); |