Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Schindl2015-02-06 08:28:04 +0000
committerTom Schindl2015-02-06 08:28:04 +0000
commit7232dafcf353e89efb9a4c313aa2929dde3bbf10 (patch)
treeb559855e9414f3d4180bb72e10116975749da538 /experimental
parent5bbe5988821162dca01acebfd7d95eac8296a5c8 (diff)
downloadorg.eclipse.efxclipse-7232dafcf353e89efb9a4c313aa2929dde3bbf10.tar.gz
org.eclipse.efxclipse-7232dafcf353e89efb9a4c313aa2929dde3bbf10.tar.xz
org.eclipse.efxclipse-7232dafcf353e89efb9a4c313aa2929dde3bbf10.zip
switched input creation to DI
Diffstat (limited to 'experimental')
-rw-r--r--experimental/compensator/org.eclipse.fx.code.compensator.editor.contrib/src/org/eclipse/fx/code/compensator/editor/contrib/InputContextFunction.java5
-rw-r--r--experimental/compensator/org.eclipse.fx.code.compensator.editor.contrib/src/org/eclipse/fx/code/compensator/editor/contrib/ServiceCollector.java4
-rw-r--r--experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTAnnotationPresenter.java2
-rw-r--r--experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTInstanceProject.java17
-rw-r--r--experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTServerInput.java41
-rw-r--r--experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTServerInputFactory.java29
-rw-r--r--experimental/compensator/org.eclipse.fx.code.compensator.project.vcs.git/src/org/eclipse/fx/code/compensator/project/vcs/git/GitVCSRepositoryInstance.java3
-rw-r--r--experimental/compensator/org.eclipse.fx.code.compensator.project/css/dark.css3
-rw-r--r--experimental/compensator/org.eclipse.fx.code.compensator.project/css/default.css1
-rw-r--r--experimental/compensator/org.eclipse.fx.code.compensator.project/src/org/eclipse/fx/code/compensator/project/EditorNavigation.java60
-rw-r--r--experimental/compensator/org.eclipse.fx.code.compensator.project/src/org/eclipse/fx/code/compensator/project/InstanceProject.java13
11 files changed, 118 insertions, 60 deletions
diff --git a/experimental/compensator/org.eclipse.fx.code.compensator.editor.contrib/src/org/eclipse/fx/code/compensator/editor/contrib/InputContextFunction.java b/experimental/compensator/org.eclipse.fx.code.compensator.editor.contrib/src/org/eclipse/fx/code/compensator/editor/contrib/InputContextFunction.java
index b27859ba2..a6f814024 100644
--- a/experimental/compensator/org.eclipse.fx.code.compensator.editor.contrib/src/org/eclipse/fx/code/compensator/editor/contrib/InputContextFunction.java
+++ b/experimental/compensator/org.eclipse.fx.code.compensator.editor.contrib/src/org/eclipse/fx/code/compensator/editor/contrib/InputContextFunction.java
@@ -11,6 +11,7 @@
package org.eclipse.fx.code.compensator.editor.contrib;
import org.eclipse.e4.core.contexts.ContextFunction;
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.fx.code.compensator.editor.Input;
@@ -26,7 +27,9 @@ public class InputContextFunction extends ContextFunction {
if( url != null ) {
ServiceCollector collector = context.get(ServiceCollector.class);
- input = collector.createInput(url);
+ context.set(TextEditor.DOCUMENT_URL, url);
+ context.set(TextEditor.VCS_URL, part.getPersistedState().get(TextEditor.VCS_URL));
+ input = ContextInjectionFactory.make(collector.createInput(url),context);
context.set("localInput", input);
}
}
diff --git a/experimental/compensator/org.eclipse.fx.code.compensator.editor.contrib/src/org/eclipse/fx/code/compensator/editor/contrib/ServiceCollector.java b/experimental/compensator/org.eclipse.fx.code.compensator.editor.contrib/src/org/eclipse/fx/code/compensator/editor/contrib/ServiceCollector.java
index 0aa70a2d0..56684e701 100644
--- a/experimental/compensator/org.eclipse.fx.code.compensator.editor.contrib/src/org/eclipse/fx/code/compensator/editor/contrib/ServiceCollector.java
+++ b/experimental/compensator/org.eclipse.fx.code.compensator.editor.contrib/src/org/eclipse/fx/code/compensator/editor/contrib/ServiceCollector.java
@@ -109,8 +109,8 @@ public class ServiceCollector implements DocumentPersitenceService, FileIconLook
fileIconProvider.add(provider);
}
- public <O> Input<O> createInput(String url) {
- Optional<Input<O>> map = inputProviderList.stream().filter((p) -> p.applies(url)).findFirst().map((p) -> p.createInput(url));
+ public Class<Input<?>> createInput(String url) {
+ Optional<Class<Input<?>>> map = inputProviderList.stream().filter((p) -> p.applies(url)).findFirst().map((p) -> p.createInput(url));
if( map.isPresent() ) {
return map.get();
}
diff --git a/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTAnnotationPresenter.java b/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTAnnotationPresenter.java
index 383cdc05c..a471d1ead 100644
--- a/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTAnnotationPresenter.java
+++ b/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTAnnotationPresenter.java
@@ -31,7 +31,7 @@ public class JDTAnnotationPresenter implements AnnotationPresenter {
if( ja.getMarker().getType() == Type.PROBLEM ) {
switch (ja.getMarker().getSeverity()) {
case ERROR:
- n = loader.getGraphicsNode(URI.createPlatformPluginURI("org.eclipse.fx.code.compensator.project", "css/icons/16/message_error.png"));
+ n = loader.getGraphicsNode(URI.createPlatformPluginURI("org.eclipse.fx.code.compensator.project", "css/icons/16/window-close.png"));
break;
case INFO:
n = loader.getGraphicsNode(URI.createPlatformPluginURI("org.eclipse.fx.code.compensator.project", "css/icons/16/message_info.png"));
diff --git a/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTInstanceProject.java b/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTInstanceProject.java
index 52477d416..bc98bfd9e 100644
--- a/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTInstanceProject.java
+++ b/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTInstanceProject.java
@@ -85,22 +85,7 @@ public class JDTInstanceProject extends InstanceProject {
MPart p = modelService.createModelElement(MPart.class);
p.setContributionURI("bundleclass://org.eclipse.fx.code.compensator.editor/org.eclipse.fx.code.compensator.editor.TextEditor");
p.getPersistedState().put(TextEditor.DOCUMENT_URL, url);
-
- Path repoRelativePath = null;
- Path vcsPathRoot = null;
-
- for( VCSRepository r : ((LocalProject)getProject()).getVcsRepositoryList() ) {
- Path vcsPath = Paths.get(java.net.URI.create(r.getLocalURI()));
- if( jdtItem.getDomainObject().startsWith(vcsPath) ) {
- repoRelativePath = vcsPath.relativize(jdtItem.getDomainObject());
- vcsPathRoot = vcsPath;
- break;
- }
- }
-
- if( vcsPathRoot != null ) {
- p.getPersistedState().put(TextEditor.VCS_URL, "vcs:git:"+vcsPathRoot.toUri()+"?"+repoRelativePath.getFileName().toString());
- }
+ p.getPersistedState().put(TextEditor.VCS_URL, jdtItem.getDomainObject().toUri().toString());
p.setLabel(URI.createURI(url).lastSegment());
p.setIconURI(fileLookup.getFileIcon(url).toString());
diff --git a/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTServerInput.java b/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTServerInput.java
index bb922f1b7..bfb381eb1 100644
--- a/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTServerInput.java
+++ b/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTServerInput.java
@@ -1,30 +1,63 @@
package org.eclipse.fx.code.compensator.project.jdt.internal;
import java.nio.ByteBuffer;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Collections;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
+import javax.inject.Inject;
+import javax.inject.Named;
+
import org.eclipse.fx.code.compensator.editor.ContentTypeProvider;
import org.eclipse.fx.code.compensator.editor.Input;
+import org.eclipse.fx.code.compensator.editor.TextEditor;
import org.eclipse.fx.code.compensator.editor.URIProvider;
import org.eclipse.fx.code.compensator.editor.VCSInput;
+import org.eclipse.fx.code.compensator.project.InstanceProject;
import org.eclipse.fx.code.compensator.project.vcs.VCSRepositoryInstance;
import org.eclipse.fx.code.server.jdt.JDTServer;
+import org.eclipse.fx.code.server.jdt.JDTServerFactory;
import org.eclipse.fx.core.URI;
public class JDTServerInput implements Input<String>, ContentTypeProvider, URIProvider, VCSInput<String> {
public final JDTServer server;
public final Future<String> openFile;
private final String uri;
-
- public JDTServerInput(JDTServer server, VCSRepositoryInstance repository, String uri, String module, String path) {
+ private VCSRepositoryInstance repositoryInstance;
+ private Path filePath;
+
+
+ @Inject
+ public JDTServerInput(@Named(TextEditor.DOCUMENT_URL) String url, @Named(TextEditor.VCS_URL) String vcsUrl, InstanceProject project, JDTServerFactory factory) {
+ org.eclipse.emf.common.util.URI uri = org.eclipse.emf.common.util.URI.createURI(url);
+ JDTServer server = factory.getOrCreateServer(uri.segment(0));
+ String module = uri.segment(1);
+ StringBuilder b = new StringBuilder();
+
+ for( int i = 2; i < uri.segmentCount(); i++ ) {
+ if( b.length() > 0 ) {
+ b.append('/');
+ }
+ b.append(uri.segment(i));
+ }
this.server = server;
- this.uri = uri;
- this.openFile = this.server.openFile(module, path);
+ this.uri = url;
+ this.openFile = this.server.openFile(module, b.toString());
+
+ filePath = Paths.get(java.net.URI.create(vcsUrl));
+ for( VCSRepositoryInstance i : project.getRepositoryInstanceList() ) {
+ if( filePath.startsWith(i.getRootPath()) ) {
+ repositoryInstance = i;
+ break;
+ }
+ }
}
@Override
public Future<Boolean> commit() {
+ repositoryInstance.commit(Collections.singleton(filePath));
return null;
}
diff --git a/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTServerInputFactory.java b/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTServerInputFactory.java
index 598bdbad8..699779c8c 100644
--- a/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTServerInputFactory.java
+++ b/experimental/compensator/org.eclipse.fx.code.compensator.project.jdt/src/org/eclipse/fx/code/compensator/project/jdt/internal/JDTServerInputFactory.java
@@ -7,7 +7,7 @@ import org.eclipse.fx.code.compensator.editor.services.InputFactory;
import org.eclipse.fx.code.server.jdt.JDTServer;
import org.eclipse.fx.code.server.jdt.JDTServerFactory;
-public class JDTServerInputFactory implements InputFactory {
+public class JDTServerInputFactory implements InputFactory<JDTServerInput> {
private JDTServerFactory factory;
public void registerJDTServerFactory(JDTServerFactory factory) {
@@ -20,19 +20,20 @@ public class JDTServerInputFactory implements InputFactory {
}
@Override
- public <O> Input<O> createInput(String url) {
- URI uri = URI.createURI(url);
- JDTServer server = factory.getOrCreateServer(uri.segment(0));
- String module = uri.segment(1);
- StringBuilder b = new StringBuilder();
-
- for( int i = 2; i < uri.segmentCount(); i++ ) {
- if( b.length() > 0 ) {
- b.append('/');
- }
- b.append(uri.segment(i));
- }
- return (Input<O>) new JDTServerInput(server,null,url,module,b.toString());
+ public Class<JDTServerInput> createInput(String url) {
+// URI uri = URI.createURI(url);
+// JDTServer server = factory.getOrCreateServer(uri.segment(0));
+// String module = uri.segment(1);
+// StringBuilder b = new StringBuilder();
+//
+// for( int i = 2; i < uri.segmentCount(); i++ ) {
+// if( b.length() > 0 ) {
+// b.append('/');
+// }
+// b.append(uri.segment(i));
+// }
+// return (Input<O>) new JDTServerInput(server,null,url,module,b.toString());
+ return JDTServerInput.class;
}
}
diff --git a/experimental/compensator/org.eclipse.fx.code.compensator.project.vcs.git/src/org/eclipse/fx/code/compensator/project/vcs/git/GitVCSRepositoryInstance.java b/experimental/compensator/org.eclipse.fx.code.compensator.project.vcs.git/src/org/eclipse/fx/code/compensator/project/vcs/git/GitVCSRepositoryInstance.java
index b343d2214..6a2877cae 100644
--- a/experimental/compensator/org.eclipse.fx.code.compensator.project.vcs.git/src/org/eclipse/fx/code/compensator/project/vcs/git/GitVCSRepositoryInstance.java
+++ b/experimental/compensator/org.eclipse.fx.code.compensator.project.vcs.git/src/org/eclipse/fx/code/compensator/project/vcs/git/GitVCSRepositoryInstance.java
@@ -55,8 +55,7 @@ public class GitVCSRepositoryInstance implements VCSRepositoryInstance {
@Override
public void commit(Collection<Path> pathList) {
- // TODO Auto-generated method stub
-
+ System.err.println("COMMIT: " + pathList);
}
}
diff --git a/experimental/compensator/org.eclipse.fx.code.compensator.project/css/dark.css b/experimental/compensator/org.eclipse.fx.code.compensator.project/css/dark.css
index 25d568b3a..252defa61 100644
--- a/experimental/compensator/org.eclipse.fx.code.compensator.project/css/dark.css
+++ b/experimental/compensator/org.eclipse.fx.code.compensator.project/css/dark.css
@@ -8,4 +8,5 @@
.open_project_dialog {
-fx-graphic: url(icons/64/prj_obj.png);
-} \ No newline at end of file
+}
+
diff --git a/experimental/compensator/org.eclipse.fx.code.compensator.project/css/default.css b/experimental/compensator/org.eclipse.fx.code.compensator.project/css/default.css
index c4c7de458..252defa61 100644
--- a/experimental/compensator/org.eclipse.fx.code.compensator.project/css/default.css
+++ b/experimental/compensator/org.eclipse.fx.code.compensator.project/css/default.css
@@ -9,3 +9,4 @@
.open_project_dialog {
-fx-graphic: url(icons/64/prj_obj.png);
}
+
diff --git a/experimental/compensator/org.eclipse.fx.code.compensator.project/src/org/eclipse/fx/code/compensator/project/EditorNavigation.java b/experimental/compensator/org.eclipse.fx.code.compensator.project/src/org/eclipse/fx/code/compensator/project/EditorNavigation.java
index b87900cc3..f761dc93d 100644
--- a/experimental/compensator/org.eclipse.fx.code.compensator.project/src/org/eclipse/fx/code/compensator/project/EditorNavigation.java
+++ b/experimental/compensator/org.eclipse.fx.code.compensator.project/src/org/eclipse/fx/code/compensator/project/EditorNavigation.java
@@ -1,8 +1,19 @@
package org.eclipse.fx.code.compensator.project;
+import javafx.geometry.Insets;
+import javafx.geometry.Orientation;
import javafx.scene.control.Label;
+import javafx.scene.control.Separator;
+import javafx.scene.control.ToolBar;
+import javafx.scene.control.Tooltip;
+import javafx.scene.layout.Background;
+import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.BorderPane;
+import javafx.scene.layout.CornerRadii;
import javafx.scene.layout.HBox;
+import javafx.scene.layout.Pane;
+import javafx.scene.layout.Priority;
+import javafx.scene.paint.Color;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
@@ -12,7 +23,7 @@ import org.eclipse.fx.ui.services.resources.GraphicsLoader;
public class EditorNavigation {
private final GraphicsLoader provider;
-
+
@Inject
public EditorNavigation(GraphicsLoader provider) {
this.provider = provider;
@@ -28,24 +39,35 @@ public class EditorNavigation {
.createPlatformPluginURI(
"org.eclipse.fx.code.compensator.project",
"css/icons/16/main_tab.png"))));
-// Pane spacer = new Pane();
-// HBox.setHgrow(spacer, Priority.ALWAYS);
-// box.getChildren().add(spacer);
-// box.getChildren().add(
-// new Label(null, provider.getGraphicsNode(URI
-// .createPlatformPluginURI(
-// "org.eclipse.fx.code.compensator.project",
-// "css/icons/16/message_error.png"))));
-// box.getChildren().add(
-// new Label(null, provider.getGraphicsNode(URI
-// .createPlatformPluginURI(
-// "org.eclipse.fx.code.compensator.project",
-// "css/icons/16/message_warning.png"))));
-// box.getChildren().add(
-// new Label(null, provider.getGraphicsNode(URI
-// .createPlatformPluginURI(
-// "org.eclipse.fx.code.compensator.project",
-// "css/icons/16/message_info.png"))));
+ Pane spacer = new Pane();
+ HBox.setHgrow(spacer, Priority.ALWAYS);
+ box.getChildren().add(spacer);
+
+// {
+// Label e = new Label("1", provider.getGraphicsNode(URI.createPlatformPluginURI(
+// "org.eclipse.fx.code.compensator.project", "css/icons/16/window-close.png")));
+// box.getChildren().add(
+// e);
+// }
+//
+// {
+// Label e = new Label("1", provider.getGraphicsNode(URI.createPlatformPluginURI(
+// "org.eclipse.fx.code.compensator.project", "css/icons/16/message_warning.png")));
+// box.getChildren().add(
+// e);
+// }
+
+ box.getChildren().add(new Separator(Orientation.VERTICAL));
+
+ {
+ Label label = new Label(null, provider.getGraphicsNode(URI
+ .createPlatformPluginURI(
+ "org.eclipse.fx.code.compensator.project",
+ "css/icons/16/commit.png")));
+ label.setTooltip(new Tooltip("Commit"));
+ box.getChildren().add(label);
+ }
+
p.setTop(box);
}
}
diff --git a/experimental/compensator/org.eclipse.fx.code.compensator.project/src/org/eclipse/fx/code/compensator/project/InstanceProject.java b/experimental/compensator/org.eclipse.fx.code.compensator.project/src/org/eclipse/fx/code/compensator/project/InstanceProject.java
index d197b974e..d69593fb9 100644
--- a/experimental/compensator/org.eclipse.fx.code.compensator.project/src/org/eclipse/fx/code/compensator/project/InstanceProject.java
+++ b/experimental/compensator/org.eclipse.fx.code.compensator.project/src/org/eclipse/fx/code/compensator/project/InstanceProject.java
@@ -3,6 +3,7 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.ArrayList;
import java.util.List;
import org.eclipse.e4.core.services.events.IEventBroker;
@@ -10,12 +11,14 @@ import org.eclipse.fx.code.compensator.model.workbench.LocalProject;
import org.eclipse.fx.code.compensator.model.workbench.Module;
import org.eclipse.fx.code.compensator.model.workbench.Project;
import org.eclipse.fx.code.compensator.model.workbench.VCSRepository;
+import org.eclipse.fx.code.compensator.project.vcs.VCSRepositoryInstance;
import org.eclipse.fx.code.compensator.project.vcs.VersionControlService;
public abstract class InstanceProject {
private final Project project;
private final List<VersionControlService> versionControlServiceList;
private final IEventBroker eventBroker;
+ private final List<VCSRepositoryInstance> repositoryInstanceList = new ArrayList<>();
public InstanceProject(
IEventBroker eventBroker,
@@ -37,11 +40,21 @@ public abstract class InstanceProject {
.filter(v -> v.getId().equals(repository.getRepoType()))
.findFirst().ifPresent(v -> v.cloneRepository(path, repository.getRepoURI(), repository.getRepoUsername(), repository.getRepoPassword(), null));
}
+
+ repositoryInstanceList.add(getVersionControlServiceList()
+ .stream()
+ .filter(v -> v.getId().equals(repository.getRepoType()))
+ .findFirst()
+ .map(v -> v.getOrCreateRepository(repository.getLocalURI())).get());
}
public final Project getProject() {
return project;
}
+
+ public List<VCSRepositoryInstance> getRepositoryInstanceList() {
+ return repositoryInstanceList;
+ }
public final List<VersionControlService> getVersionControlServiceList() {
return versionControlServiceList;

Back to the top