Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Schindl2016-04-19 10:18:42 +0000
committerTom Schindl2016-04-19 10:18:42 +0000
commitb279f6336e45c790c51c0823193f306ccc0c74a6 (patch)
tree279fa3bec9b1826d5ca1ee08aee3fd63923d8417 /bundles
parent9e072d52b4495c0a231acd623d68cabdff1c20ad (diff)
downloadorg.eclipse.efxclipse-b279f6336e45c790c51c0823193f306ccc0c74a6.tar.gz
org.eclipse.efxclipse-b279f6336e45c790c51c0823193f306ccc0c74a6.tar.xz
org.eclipse.efxclipse-b279f6336e45c790c51c0823193f306ccc0c74a6.zip
Bug 491983 - Add possibility to validate if a context-popup still shows valid information
Diffstat (limited to 'bundles')
-rw-r--r--bundles/code/org.eclipse.fx.code.editor.fx.e4/META-INF/MANIFEST.MF6
-rw-r--r--bundles/code/org.eclipse.fx.code.editor.fx.e4/OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.ContextInformationValidatorTypeProviderCF.xml9
-rw-r--r--bundles/code/org.eclipse.fx.code.editor.fx.e4/OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.EditorContextMenuProviderTypeProviderContextFunction.xml3
-rw-r--r--bundles/code/org.eclipse.fx.code.editor.fx.e4/src/org/eclipse/fx/code/editor/fx/e4/internal/ContextInformationValidatorTypeProviderCF.java26
-rw-r--r--bundles/code/org.eclipse.fx.code.editor.fx.e4/src/org/eclipse/fx/code/editor/fx/e4/internal/EditorContextMenuProviderTypeProviderContextFunction.java15
-rw-r--r--bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/SimpleSourceTextEditorBuilder.java2
-rw-r--r--bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/services/ContextInformationValidatorTypeProvider.java9
-rw-r--r--bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/services/internal/DefaultSourceViewerConfiguration.java8
8 files changed, 72 insertions, 6 deletions
diff --git a/bundles/code/org.eclipse.fx.code.editor.fx.e4/META-INF/MANIFEST.MF b/bundles/code/org.eclipse.fx.code.editor.fx.e4/META-INF/MANIFEST.MF
index 6f761d5f3..2110e5db2 100644
--- a/bundles/code/org.eclipse.fx.code.editor.fx.e4/META-INF/MANIFEST.MF
+++ b/bundles/code/org.eclipse.fx.code.editor.fx.e4/META-INF/MANIFEST.MF
@@ -11,7 +11,8 @@ Require-Bundle: org.eclipse.e4.core.contexts;bundle-version="1.4.0",
org.eclipse.e4.core.di;bundle-version="1.5.0",
org.eclipse.e4.core.services;bundle-version="2.0.0",
org.eclipse.text;bundle-version="3.5.400",
- org.eclipse.e4.ui.services;bundle-version="1.2.0"
+ org.eclipse.e4.ui.services;bundle-version="1.2.0",
+ org.eclipse.fx.text.ui
Import-Package: javax.inject,
org.eclipse.fx.code.editor;version="2.3.0",
org.eclipse.fx.code.editor.e4;version="2.3.0",
@@ -33,6 +34,7 @@ Service-Component: OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.S
OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.ContextInformationPresenterTypeProviderContextFunction.xml,
OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.EditorContextMenuProviderTypeProviderContextFunction.xml,
OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.SnippetEditorContextMenuService.xml,
- OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.UndoManagerCF.xml
+ OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.UndoManagerCF.xml,
+ OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.ContextInformationValidatorTypeProviderCF.xml
Bundle-Vendor: Eclipse.org
Export-Package: org.eclipse.fx.code.editor.fx.e4;version="2.3.0";x-internal:=true
diff --git a/bundles/code/org.eclipse.fx.code.editor.fx.e4/OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.ContextInformationValidatorTypeProviderCF.xml b/bundles/code/org.eclipse.fx.code.editor.fx.e4/OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.ContextInformationValidatorTypeProviderCF.xml
new file mode 100644
index 000000000..1e8c9198b
--- /dev/null
+++ b/bundles/code/org.eclipse.fx.code.editor.fx.e4/OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.ContextInformationValidatorTypeProviderCF.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.2.0" name="org.eclipse.fx.code.editor.fx.e4.internal.ContextInformationValidatorTypeProviderCF">
+ <property name="service.context.key" value="org.eclipse.fx.text.ui.contentassist.IContextInformationValidator"/>
+ <service>
+ <provide interface="org.eclipse.e4.core.contexts.IContextFunction"/>
+ </service>
+ <reference bind="registerService" cardinality="0..n" interface="org.eclipse.fx.code.editor.fx.services.ContextInformationValidatorTypeProvider" name="registerService" policy="dynamic" policy-option="greedy" unbind="unregisterService"/>
+ <implementation class="org.eclipse.fx.code.editor.fx.e4.internal.ContextInformationValidatorTypeProviderCF"/>
+</scr:component> \ No newline at end of file
diff --git a/bundles/code/org.eclipse.fx.code.editor.fx.e4/OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.EditorContextMenuProviderTypeProviderContextFunction.xml b/bundles/code/org.eclipse.fx.code.editor.fx.e4/OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.EditorContextMenuProviderTypeProviderContextFunction.xml
index db065a11f..5beadc827 100644
--- a/bundles/code/org.eclipse.fx.code.editor.fx.e4/OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.EditorContextMenuProviderTypeProviderContextFunction.xml
+++ b/bundles/code/org.eclipse.fx.code.editor.fx.e4/OSGI-INF/services/org.eclipse.fx.code.editor.fx.e4.internal.EditorContextMenuProviderTypeProviderContextFunction.xml
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.fx.code.editor.fx.e4.internal.EditorContextMenuProviderTypeProviderContextFunction">
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.2.0" name="org.eclipse.fx.code.editor.fx.e4.internal.EditorContextMenuProviderTypeProviderContextFunction">
<property name="service.context.key" type="String" value="org.eclipse.fx.code.editor.fx.services.EditorContextMenuProvider"/>
<service>
<provide interface="org.eclipse.e4.core.contexts.IContextFunction"/>
</service>
+ <reference bind="registerService" cardinality="0..n" interface="org.eclipse.fx.code.editor.fx.services.EditorContextMenuProviderTypeProvider" name="registerService" policy="dynamic" policy-option="greedy" unbind="unregisterService"/>
<implementation class="org.eclipse.fx.code.editor.fx.e4.internal.EditorContextMenuProviderTypeProviderContextFunction"/>
</scr:component> \ No newline at end of file
diff --git a/bundles/code/org.eclipse.fx.code.editor.fx.e4/src/org/eclipse/fx/code/editor/fx/e4/internal/ContextInformationValidatorTypeProviderCF.java b/bundles/code/org.eclipse.fx.code.editor.fx.e4/src/org/eclipse/fx/code/editor/fx/e4/internal/ContextInformationValidatorTypeProviderCF.java
new file mode 100644
index 000000000..8df09280b
--- /dev/null
+++ b/bundles/code/org.eclipse.fx.code.editor.fx.e4/src/org/eclipse/fx/code/editor/fx/e4/internal/ContextInformationValidatorTypeProviderCF.java
@@ -0,0 +1,26 @@
+package org.eclipse.fx.code.editor.fx.e4.internal;
+
+import java.util.Map;
+
+import org.eclipse.e4.core.contexts.IContextFunction;
+import org.eclipse.fx.code.editor.e4.InputBasedContextFunction;
+import org.eclipse.fx.code.editor.fx.services.ContextInformationValidatorTypeProvider;
+import org.eclipse.fx.text.ui.contentassist.IContextInformationValidator;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
+import org.osgi.service.component.annotations.ReferencePolicyOption;
+
+@SuppressWarnings("restriction")
+@Component(service=IContextFunction.class,property={"service.context.key=org.eclipse.fx.text.ui.contentassist.IContextInformationValidator"})
+public class ContextInformationValidatorTypeProviderCF extends InputBasedContextFunction<IContextInformationValidator, ContextInformationValidatorTypeProvider> {
+ @Reference(cardinality=ReferenceCardinality.MULTIPLE,policy=ReferencePolicy.DYNAMIC,policyOption=ReferencePolicyOption.GREEDY)
+ public void registerService(ContextInformationValidatorTypeProvider service, Map<String, Object> properties) {
+ super.registerService(service, properties);
+ }
+
+ public void unregisterService(ContextInformationValidatorTypeProvider service) {
+ super.unregisterService(service);
+ }
+}
diff --git a/bundles/code/org.eclipse.fx.code.editor.fx.e4/src/org/eclipse/fx/code/editor/fx/e4/internal/EditorContextMenuProviderTypeProviderContextFunction.java b/bundles/code/org.eclipse.fx.code.editor.fx.e4/src/org/eclipse/fx/code/editor/fx/e4/internal/EditorContextMenuProviderTypeProviderContextFunction.java
index a5fd9f303..da3c102b6 100644
--- a/bundles/code/org.eclipse.fx.code.editor.fx.e4/src/org/eclipse/fx/code/editor/fx/e4/internal/EditorContextMenuProviderTypeProviderContextFunction.java
+++ b/bundles/code/org.eclipse.fx.code.editor.fx.e4/src/org/eclipse/fx/code/editor/fx/e4/internal/EditorContextMenuProviderTypeProviderContextFunction.java
@@ -1,5 +1,7 @@
package org.eclipse.fx.code.editor.fx.e4.internal;
+import java.util.Map;
+
import javax.inject.Inject;
import org.eclipse.e4.core.contexts.ContextInjectionFactory;
@@ -10,6 +12,10 @@ import org.eclipse.fx.code.editor.e4.InputBasedContextFunction;
import org.eclipse.fx.code.editor.fx.services.EditorContextMenuProvider;
import org.eclipse.fx.code.editor.fx.services.EditorContextMenuProviderTypeProvider;
import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
+import org.osgi.service.component.annotations.ReferencePolicyOption;
import javafx.scene.control.Control;
@@ -17,6 +23,15 @@ import javafx.scene.control.Control;
@Component(service=IContextFunction.class,property="service.context.key:String=org.eclipse.fx.code.editor.fx.services.EditorContextMenuProvider")
public class EditorContextMenuProviderTypeProviderContextFunction extends InputBasedContextFunction<EditorContextMenuProvider, EditorContextMenuProviderTypeProvider> {
+ @Reference(cardinality=ReferenceCardinality.MULTIPLE,policy=ReferencePolicy.DYNAMIC,policyOption=ReferencePolicyOption.GREEDY)
+ public void registerService(EditorContextMenuProviderTypeProvider service, Map<String, Object> properties) {
+ super.registerService(service, properties);
+ }
+
+ public void unregisterService(EditorContextMenuProviderTypeProvider service) {
+ super.unregisterService(service);
+ }
+
@Override
protected EditorContextMenuProvider createDefault(IEclipseContext context) {
return ContextInjectionFactory.make(ModelEditorContextMenuProvider.class, context);
diff --git a/bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/SimpleSourceTextEditorBuilder.java b/bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/SimpleSourceTextEditorBuilder.java
index 9b5a1fff0..53e40c0ff 100644
--- a/bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/SimpleSourceTextEditorBuilder.java
+++ b/bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/SimpleSourceTextEditorBuilder.java
@@ -173,7 +173,7 @@ public class SimpleSourceTextEditorBuilder {
}
editor.setPartitioner(new FastPartitioner(new PartitionerImpl(this), contentTypes.toArray(new String[0])));
- editor.setSourceViewerConfiguration(new DefaultSourceViewerConfiguration(threadSynchronize, input, new ReconcilerImpl(this), proposalComputer, annotationModel, annotationPresenter, hoverInformationProvider, completionProposalPresenter, searchProvider, navigationProvider, editorOpener, behaviorContributor));
+ editor.setSourceViewerConfiguration(new DefaultSourceViewerConfiguration(threadSynchronize, input, new ReconcilerImpl(this), proposalComputer, annotationModel, annotationPresenter, hoverInformationProvider, completionProposalPresenter, searchProvider, navigationProvider, editorOpener, behaviorContributor, null));
return editor;
}
diff --git a/bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/services/ContextInformationValidatorTypeProvider.java b/bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/services/ContextInformationValidatorTypeProvider.java
new file mode 100644
index 000000000..ba4648af6
--- /dev/null
+++ b/bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/services/ContextInformationValidatorTypeProvider.java
@@ -0,0 +1,9 @@
+package org.eclipse.fx.code.editor.fx.services;
+
+import org.eclipse.fx.code.editor.services.InputDependentTypeProviderService;
+import org.eclipse.fx.text.ui.contentassist.IContextInformationValidator;
+
+@SuppressWarnings("restriction")
+public interface ContextInformationValidatorTypeProvider extends InputDependentTypeProviderService<IContextInformationValidator> {
+
+}
diff --git a/bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/services/internal/DefaultSourceViewerConfiguration.java b/bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/services/internal/DefaultSourceViewerConfiguration.java
index bfb9b59a4..6222aef4a 100644
--- a/bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/services/internal/DefaultSourceViewerConfiguration.java
+++ b/bundles/code/org.eclipse.fx.code.editor.fx/src/org/eclipse/fx/code/editor/fx/services/internal/DefaultSourceViewerConfiguration.java
@@ -41,6 +41,7 @@ import org.eclipse.fx.text.ui.contentassist.ContentAssistant;
import org.eclipse.fx.text.ui.contentassist.ICompletionProposal;
import org.eclipse.fx.text.ui.contentassist.IContentAssistant;
import org.eclipse.fx.text.ui.contentassist.IContextInformation;
+import org.eclipse.fx.text.ui.contentassist.IContextInformationValidator;
import org.eclipse.fx.text.ui.presentation.IPresentationReconciler;
import org.eclipse.fx.text.ui.presentation.PresentationReconciler;
import org.eclipse.fx.text.ui.source.AnnotationPresenter;
@@ -87,6 +88,7 @@ public class DefaultSourceViewerConfiguration extends SourceViewerConfiguration
private SetProperty<Feature> featureSet = new SimpleSetProperty<Feature>(this, "featureSet", FXCollections.observableSet());
private final ThreadSynchronize threadSynchronize;
+ private final IContextInformationValidator contextInformationValidator;
@Inject
public DefaultSourceViewerConfiguration(
@@ -101,9 +103,11 @@ public class DefaultSourceViewerConfiguration extends SourceViewerConfiguration
@Optional SearchProvider searchProvider,
@Optional NavigationProvider navigationProvider,
@Optional EditorOpener editorOpener,
- @Optional BehaviorContributor behaviorContributor
+ @Optional BehaviorContributor behaviorContributor,
+ @Optional IContextInformationValidator contextInformationValidator
) {
this.threadSynchronize = threadSynchronize;
+ this.contextInformationValidator = contextInformationValidator;
this.input = input;
this.hoverInformationProvider = hoverInformationProvider;
this.reconciler = reconciler;
@@ -212,7 +216,7 @@ public class DefaultSourceViewerConfiguration extends SourceViewerConfiguration
public IContentAssistant getContentAssist() {
if( proposalComputer != null ) {
if( contentAssistant == null ) {
- contentAssistant = new ContentAssistant(this.threadSynchronize, this::computeProposals);
+ contentAssistant = new ContentAssistant(this.contextInformationValidator, this.threadSynchronize, this::computeProposals);
}
return contentAssistant;

Back to the top