Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'deprecated/org.eclipse.papyrus.infra.gmfdiag.xtext.glue/src/org/eclipse/papyrus/infra/gmfdiag/xtext/glue/partialEditing/HighlightingHelper.java')
-rw-r--r--deprecated/org.eclipse.papyrus.infra.gmfdiag.xtext.glue/src/org/eclipse/papyrus/infra/gmfdiag/xtext/glue/partialEditing/HighlightingHelper.java161
1 files changed, 161 insertions, 0 deletions
diff --git a/deprecated/org.eclipse.papyrus.infra.gmfdiag.xtext.glue/src/org/eclipse/papyrus/infra/gmfdiag/xtext/glue/partialEditing/HighlightingHelper.java b/deprecated/org.eclipse.papyrus.infra.gmfdiag.xtext.glue/src/org/eclipse/papyrus/infra/gmfdiag/xtext/glue/partialEditing/HighlightingHelper.java
new file mode 100644
index 00000000000..0f0e7114282
--- /dev/null
+++ b/deprecated/org.eclipse.papyrus.infra.gmfdiag.xtext.glue/src/org/eclipse/papyrus/infra/gmfdiag/xtext/glue/partialEditing/HighlightingHelper.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2010 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.xtext.glue.partialEditing;
+
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.xtext.ui.editor.XtextPresentationReconciler;
+import org.eclipse.xtext.ui.editor.XtextSourceViewer;
+import org.eclipse.xtext.ui.editor.XtextSourceViewerConfiguration;
+import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreAccess;
+import org.eclipse.xtext.ui.editor.syntaxcoloring.HighlightingPresenter;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+/**
+ * @author Sebastian Zarnekow - Initial contribution and API
+ */
+public class HighlightingHelper implements IPropertyChangeListener {
+
+ @Inject
+ private Provider<HighlightingReconciler> reconcilerProvider;
+
+ @Inject
+ private Provider<HighlightingPresenter> presenterProvider;
+
+ @Inject
+ private IPreferenceStoreAccess preferenceStoreAccessor;
+
+ /** Highlighting presenter */
+ private HighlightingPresenter fPresenter;
+ /** Highlighting reconciler */
+ private HighlightingReconciler fReconciler;
+
+ /** The source viewer */
+ private XtextSourceViewer fSourceViewer;
+ /** The source viewer configuration */
+ private XtextSourceViewerConfiguration fConfiguration;
+ /** The presentation reconciler */
+ private XtextPresentationReconciler fPresentationReconciler;
+
+ /**
+ * @param configuration
+ * @param sourceViewer
+ *
+ */
+ public void install(XtextSourceViewerConfiguration configuration, XtextSourceViewer sourceViewer) {
+ fSourceViewer= sourceViewer;
+ fConfiguration= configuration;
+ fPresentationReconciler= (XtextPresentationReconciler) fConfiguration.getPresentationReconciler(sourceViewer);
+ preferenceStoreAccessor.getPreferenceStore().addPropertyChangeListener(this);
+ enable();
+ }
+
+ /**
+ * Enable advanced highlighting.
+ */
+ private void enable() {
+ fPresenter= getPresenterProvider().get();
+ fPresenter.install(fSourceViewer, fPresentationReconciler);
+
+ if (fSourceViewer.getDocument() != null) {
+ fReconciler= reconcilerProvider.get();
+ fReconciler.install(fSourceViewer, fPresenter);
+ }
+ }
+
+ /**
+ *
+ */
+ public void uninstall() {
+ disable();
+ preferenceStoreAccessor.getPreferenceStore().removePropertyChangeListener(this);
+ fSourceViewer= null;
+ fConfiguration= null;
+ fPresentationReconciler= null;
+ }
+
+ /**
+ * Disable advanced highlighting.
+ */
+ private void disable() {
+ if (fReconciler != null) {
+ fReconciler.uninstall();
+ fReconciler= null;
+ }
+
+ if (fPresenter != null) {
+ fPresenter.uninstall();
+ fPresenter= null;
+ }
+ }
+
+ /**
+ * Returns this hightlighter's reconciler.
+ *
+ * @return the highlighter reconciler or <code>null</code> if none
+ */
+ public HighlightingReconciler getReconciler() {
+ return fReconciler;
+ }
+
+ /**
+ * @param reconcilerProvider
+ *
+ */
+ public void setReconcilerProvider(Provider<HighlightingReconciler> reconcilerProvider) {
+ this.reconcilerProvider = reconcilerProvider;
+ }
+
+ /**
+ * @return Provider<HightlightingReconciler>
+ *
+ */
+ public Provider<HighlightingReconciler> getReconcilerProvider() {
+ return reconcilerProvider;
+ }
+
+ /**
+ * @param presenterProvider
+ *
+ */
+
+ public void setPresenterProvider(Provider<HighlightingPresenter> presenterProvider) {
+ this.presenterProvider = presenterProvider;
+ }
+
+ /**
+ * @return Provider<HightlightingPresented>
+ */
+ public Provider<HighlightingPresenter> getPresenterProvider() {
+ return presenterProvider;
+ }
+
+ /**
+ * @param preferenceStoreAccessor
+ *
+ */
+ public void setPreferenceStoreAccessor(IPreferenceStoreAccess preferenceStoreAccessor) {
+ this.preferenceStoreAccessor = preferenceStoreAccessor;
+ }
+
+ /**
+ * @return IPreferenceStoreAccessor
+ *
+ */
+ public IPreferenceStoreAccess getPreferenceStoreAccessor() {
+ return preferenceStoreAccessor;
+ }
+
+ public void propertyChange(PropertyChangeEvent event) {
+ if (fReconciler != null && event.getProperty().contains(".syntaxColorer.tokenStyles"))
+ fReconciler.refresh();
+ }
+}
+

Back to the top