Przeglądaj źródła

Content assist fixes for XtextStyledText.

au@andreasunger.net 14 lat temu
rodzic
commit
3432c44c2c

+ 6 - 15
de.itemis.xtext.utils/plugins/de.itemis.xtext.utils.jface/plugin.xml

@@ -7,23 +7,14 @@
             class="de.itemis.xtext.utils.jface.internal.handlers.ContentAssistHandler"
             commandId="org.eclipse.ui.edit.text.contentAssist.proposals">
          <activeWhen>
-            <iterate>
-               <test
-                     property="de.itemis.xtext.utils.jface.xtextStyledText.isFocused">
-               </test>
-            </iterate>
+            <with
+                  variable="activeFocusControlId">
+               <equals
+                     value="org.eclipse.swt.custom.StyledText">
+               </equals>
+            </with>
          </activeWhen>
       </handler>
    </extension>
-   <extension
-         point="org.eclipse.core.expressions.propertyTesters">
-      <propertyTester
-            class="de.itemis.xtext.utils.jface.internal.propertytester.XtextStyledTextPropertyTester"
-            id="de.itemis.xtext.utils.jface.xtextStyledTextPropertyTester"
-            namespace="de.itemis.xtext.utils.jface.xtextStyledText"
-            properties="isFocused"
-            type="java.lang.Object">
-      </propertyTester>
-   </extension>
 
 </plugin>

+ 0 - 16
de.itemis.xtext.utils/plugins/de.itemis.xtext.utils.jface/src/de/itemis/xtext/utils/jface/internal/propertytester/XtextStyledTextPropertyTester.java

@@ -1,16 +0,0 @@
-package de.itemis.xtext.utils.jface.internal.propertytester;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-import de.itemis.xtext.utils.jface.viewers.XtextStyledText;
-
-public class XtextStyledTextPropertyTester extends PropertyTester {
-
-	public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
-		Control control = Display.getCurrent().getFocusControl();
-		return control != null && control.getData(XtextStyledText.class.getCanonicalName()) != null;
-	}
-
-}

+ 6 - 0
de.itemis.xtext.utils/plugins/de.itemis.xtext.utils.jface/src/de/itemis/xtext/utils/jface/viewers/XtextStyledText.java

@@ -21,7 +21,9 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Listener;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.internal.editors.text.EditorsPlugin;
+import org.eclipse.ui.swt.IFocusService;
 import org.eclipse.ui.texteditor.AbstractDecoratedTextEditor;
 import org.eclipse.ui.texteditor.AnnotationPreference;
 import org.eclipse.ui.texteditor.DefaultMarkerAnnotationAccess;
@@ -260,6 +262,10 @@ public class XtextStyledText {
 				
 			});
 		}
+		
+		// Register focus tracker for evaluating the active focus control in core expression
+		IFocusService service = (IFocusService) PlatformUI.getWorkbench().getService(IFocusService.class);
+		service.addFocusTracker(styledText, StyledText.class.getCanonicalName());
 	}
 
 	private ValidationJob createValidationJob() {