diff options
author | Juergen Haug | 2017-06-20 17:06:24 +0000 |
---|---|---|
committer | Juergen Haug | 2017-06-20 17:30:24 +0000 |
commit | 7ca492dcdee1b6c6b98c99517d8237398079ed16 (patch) | |
tree | ebc9946eea7fe2c5584143e9b1183021de5dc750 /plugins/org.eclipse.etrice.ui.common.base | |
parent | 013ad874b40dc43eebf9620f7538df49c3bec9d1 (diff) | |
download | org.eclipse.etrice-7ca492dcdee1b6c6b98c99517d8237398079ed16.tar.gz org.eclipse.etrice-7ca492dcdee1b6c6b98c99517d8237398079ed16.tar.xz org.eclipse.etrice-7ca492dcdee1b6c6b98c99517d8237398079ed16.zip |
[ui] improved import content assist and moved RelativeFIleURIHandler
Change-Id: I90410314f38627f6822055c2f93af3ca7bb7a81e
Diffstat (limited to 'plugins/org.eclipse.etrice.ui.common.base')
4 files changed, 3 insertions, 105 deletions
diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java index 930129a7a..570db9648 100644 --- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java +++ b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java @@ -26,6 +26,7 @@ import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.transaction.RunnableWithResult; import org.eclipse.emf.transaction.util.TransactionUtil; +import org.eclipse.etrice.core.common.scoping.RelativeFileURIHandler; import org.eclipse.etrice.ui.common.base.UIBaseActivator; import org.eclipse.graphiti.mm.pictograms.Diagram; import org.eclipse.graphiti.ui.editor.DefaultPersistencyBehavior; diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomUpdateBehavior.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomUpdateBehavior.java index 4a398aee4..c75872535 100644 --- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomUpdateBehavior.java +++ b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomUpdateBehavior.java @@ -23,6 +23,7 @@ import org.eclipse.emf.edit.provider.ComposedAdapterFactory; import org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl; import org.eclipse.emf.workspace.IWorkspaceCommandStack; import org.eclipse.emf.workspace.WorkspaceEditingDomainFactory; +import org.eclipse.etrice.core.common.scoping.RelativeFileURIHandler; import org.eclipse.etrice.core.fsm.ui.FSMUiModule; import org.eclipse.graphiti.ui.editor.DefaultUpdateBehavior; import org.eclipse.graphiti.ui.editor.DiagramBehavior; diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/RelativeFileURIHandler.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/RelativeFileURIHandler.java deleted file mode 100644 index ae71b3ae8..000000000 --- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/RelativeFileURIHandler.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 protos software gmbh (http://www.protos.de). - * 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: - * Juergen Haug (initial contribution) - * - *******************************************************************************/ - -package org.eclipse.etrice.ui.common.base.editor; - -import java.util.Map; - -import org.apache.log4j.Logger; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.xmi.XMIResource; -import org.eclipse.emf.ecore.xmi.XMLResource.URIHandler; -import org.eclipse.emf.ecore.xmi.impl.URIHandlerImpl; -import org.eclipse.etrice.core.common.ui.linking.GlobalNonPlatformURIEditorOpener; - -/** - * {@linkplain URIHandler} which deresolves to relative file uri and resolves to absolute file uri. <br> - * Used to persist portable model references. <br> - * <br> - * TODO serialize room includes path <=> deresolve in StandardModelLocator - */ -public class RelativeFileURIHandler extends URIHandlerImpl { - - private final static Logger LOG = Logger.getLogger(RelativeFileURIHandler.class); - - public static Map<Object, Object> addToOptions(Map<Object, Object> options) { - options.put(XMIResource.OPTION_URI_HANDLER, new RelativeFileURIHandler((URIHandler) options.get(XMIResource.OPTION_URI_HANDLER))); - return options; - } - - final protected URIHandler fallback; - - public RelativeFileURIHandler(URIHandler fallback) { - this.fallback = fallback; - } - - /** - * @return absolute file uri - */ - @Override - public URI resolve(URI uri) { - if (resolve && baseURI != null && uri.isFile() && uri.hasRelativePath()) { - URI baseFileURI = toFileURI(baseURI); - URI fileURI = toFileURI(uri); - - URI resolvedFileURI = fileURI.resolve(baseFileURI, true); - // System.out.println("resolve: " + fileURI + " -> " + baseFileURI + " = " + resolvedFileURI); - URI platURI = GlobalNonPlatformURIEditorOpener.getPlatformURI(resolvedFileURI); - - return (platURI != null) ? platURI : resolvedFileURI; - } - - return (fallback != null) ? fallback.resolve(uri) : uri; - } - - /** - * @return shorter relative file path - */ - @Override - public URI deresolve(URI uri) { - if (resolve && baseURI != null) { - URI baseFileURI = toFileURI(baseURI); - URI fileURI = toFileURI(uri); - - URI relativeFileURI = fileURI.deresolve(baseFileURI, true, true, true); - if(relativeFileURI.isFile() && relativeFileURI.hasRelativePath()) { - // System.out.println("deresolve: " + fileURI + " -> " + baseFileURI + " = " + relativeFileURI); - return relativeFileURI; - } - } - - return (fallback != null) ? fallback.deresolve(uri) : uri; - } - - private static URI toFileURI(URI uri) { - if (uri.isFile()) { - return uri; - } else if (uri.isPlatform()) { - IPath path = null; - if(uri.segmentCount() == 2){ - path = ResourcesPlugin.getWorkspace().getRoot().getProject(uri.lastSegment()).getLocation(); - } else if(uri.segmentCount() > 2){ - path = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(uri.toPlatformString(false))).getLocation(); - } - if(path != null) { - return URI.createFileURI(path.toOSString()).appendQuery(uri.query()).appendFragment(uri.fragment()); - } - } - - LOG.error("unhandled uri " + uri); - return uri; - } -} diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/DiagramAccessBase.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/DiagramAccessBase.java index 771dc0d9a..0cbde7990 100644 --- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/DiagramAccessBase.java +++ b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/DiagramAccessBase.java @@ -30,10 +30,10 @@ import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.transaction.TransactionalEditingDomain; import org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl; import org.eclipse.emf.transaction.util.TransactionUtil; +import org.eclipse.etrice.core.common.scoping.RelativeFileURIHandler; import org.eclipse.etrice.core.common.ui.linking.GlobalNonPlatformURIEditorOpener; import org.eclipse.etrice.ui.common.base.UIBaseActivator; import org.eclipse.etrice.ui.common.base.editor.DiagramEditorBase; -import org.eclipse.etrice.ui.common.base.editor.RelativeFileURIHandler; import org.eclipse.etrice.ui.common.base.preferences.UIBasePreferenceConstants; import org.eclipse.graphiti.mm.pictograms.Diagram; import org.eclipse.graphiti.services.Graphiti; |