Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2012-11-15 12:13:39 +0000
committerHenrik Rentz-Reichert2012-11-15 12:13:39 +0000
commit1f4d6065eb8ab9a2454396482c8f50e66e49976f (patch)
tree4d338da230b9c94629d4995afc7afce4215b241d
parent7ac63420d6f275c0d34347b765fa6d957d1d15fc (diff)
downloadorg.eclipse.etrice-1f4d6065eb8ab9a2454396482c8f50e66e49976f.tar.gz
org.eclipse.etrice-1f4d6065eb8ab9a2454396482c8f50e66e49976f.tar.xz
org.eclipse.etrice-1f4d6065eb8ab9a2454396482c8f50e66e49976f.zip
[core.room, core.config] factored out content assist code for imports
to make it available for re-use
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.java44
-rw-r--r--plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/contentassist/ImportModelAssist.java55
-rw-r--r--plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/contentassist/RoomProposalProvider.java9
3 files changed, 65 insertions, 43 deletions
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.java b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.java
index 081d8bbf8..7aaab40bf 100644
--- a/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.java
+++ b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.java
@@ -15,14 +15,6 @@ package org.eclipse.etrice.core.ui.contentassist;
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceProxy;
-import org.eclipse.core.resources.IResourceProxyVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.etrice.core.config.ActorInstanceConfig;
import org.eclipse.etrice.core.config.AttrConfig;
@@ -39,8 +31,6 @@ import org.eclipse.etrice.core.room.DataType;
import org.eclipse.etrice.core.room.LiteralType;
import org.eclipse.etrice.core.room.PrimitiveType;
import org.eclipse.etrice.core.room.util.RoomHelpers;
-import org.eclipse.etrice.core.ui.contentassist.AbstractConfigProposalProvider;
-import org.eclipse.jface.viewers.StyledString;
import org.eclipse.xtext.Assignment;
import org.eclipse.xtext.Keyword;
import org.eclipse.xtext.RuleCall;
@@ -58,39 +48,7 @@ public class ConfigProposalProvider extends AbstractConfigProposalProvider {
public void completeImport_ImportURI(EObject model, Assignment assignment,
final ContentAssistContext context,
final ICompletionProposalAcceptor acceptor) {
- final IPath rootPath = ResourcesPlugin.getWorkspace().getRoot()
- .getFullPath();
- URI configURI = context.getRootModel().eResource().getURI();
- final IPath configPath = new Path(configURI.toPlatformString(false)
- .replace(configURI.lastSegment(), ""));
- IResourceProxyVisitor visitor = new IResourceProxyVisitor() {
-
- @Override
- public boolean visit(IResourceProxy proxy) throws CoreException {
- if (proxy.getType() != IResource.FILE)
- return true;
-
- String name = proxy.getName();
- if (name.regionMatches(true, name.length() - 4, "room", 0, 4)) {
- IPath relConfigPath = proxy.requestFullPath()
- .makeRelativeTo(configPath);
- IPath relWorkspacePath = proxy.requestFullPath()
- .makeRelativeTo(rootPath);
- String proposal = "\"" + relConfigPath.toString() + "\"";
- String displayString = relConfigPath.lastSegment() + " - "
- + relWorkspacePath;
- acceptor.accept(createCompletionProposal(proposal,
- new StyledString(displayString), null, context));
- }
- return false;
- }
- };
- try {
- ResourcesPlugin.getWorkspace().getRoot()
- .accept(visitor, IResource.NONE);
- } catch (CoreException e) {
- e.printStackTrace();
- }
+ ImportModelAssist.addPaths(this, context, acceptor, ".room");
}
@Override
diff --git a/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/contentassist/ImportModelAssist.java b/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/contentassist/ImportModelAssist.java
new file mode 100644
index 000000000..fcc0cdf90
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/contentassist/ImportModelAssist.java
@@ -0,0 +1,55 @@
+package org.eclipse.etrice.core.ui.contentassist;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceProxy;
+import org.eclipse.core.resources.IResourceProxyVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.xtext.ui.editor.contentassist.AbstractContentProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+
+public class ImportModelAssist {
+
+ public static void addPaths(final AbstractContentProposalProvider provider, final ContentAssistContext context,
+ final ICompletionProposalAcceptor acceptor, final String extension) {
+ final IPath rootPath = ResourcesPlugin.getWorkspace().getRoot()
+ .getFullPath();
+ URI configURI = context.getRootModel().eResource().getURI();
+ final IPath configPath = new Path(configURI.toPlatformString(false)
+ .replace(configURI.lastSegment(), ""));
+ IResourceProxyVisitor visitor = new IResourceProxyVisitor() {
+
+ @Override
+ public boolean visit(IResourceProxy proxy) throws CoreException {
+ if (proxy.getType() != IResource.FILE)
+ return true;
+
+ String name = proxy.getName();
+ if (name.endsWith(extension)) {
+ IPath relConfigPath = proxy.requestFullPath()
+ .makeRelativeTo(configPath);
+ IPath relWorkspacePath = proxy.requestFullPath()
+ .makeRelativeTo(rootPath);
+ String proposal = "\"" + relConfigPath.toString() + "\"";
+ String displayString = relConfigPath.lastSegment() + " - "
+ + relWorkspacePath;
+ acceptor.accept(provider.createCompletionProposal(proposal,
+ new StyledString(displayString), null, context));
+ }
+ return false;
+ }
+ };
+ try {
+ ResourcesPlugin.getWorkspace().getRoot()
+ .accept(visitor, IResource.NONE);
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/contentassist/RoomProposalProvider.java b/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/contentassist/RoomProposalProvider.java
index 10c1e5dad..7aaeb66ab 100644
--- a/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/contentassist/RoomProposalProvider.java
+++ b/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/contentassist/RoomProposalProvider.java
@@ -18,8 +18,10 @@ import org.eclipse.etrice.core.validation.ValidationUtil;
import org.eclipse.jface.text.contentassist.ICompletionProposal;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.xtext.Assignment;
import org.eclipse.xtext.resource.IEObjectDescription;
import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
import com.google.common.base.Function;
@@ -99,6 +101,13 @@ public class RoomProposalProvider extends AbstractRoomProposalProvider {
// delegate to default
return super.getProposalFactory(ruleName, contentAssistContext);
}
+
+ @Override
+ public void completeImport_ImportURI(EObject model, Assignment assignment,
+ final ContentAssistContext context,
+ final ICompletionProposalAcceptor acceptor) {
+ ImportModelAssist.addPaths(this, context, acceptor, ".room");
+ }
// public void completeActorRef_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// super.completeActorRef_Type(

Back to the top