misc changes
[phpeclipse.git] / net.sourceforge.phpeclipse.xml.ui / src / net / sourceforge / phpeclipse / xml / ui / internal / preferences / ContentAssistPreference.java
diff --git a/net.sourceforge.phpeclipse.xml.ui/src/net/sourceforge/phpeclipse/xml/ui/internal/preferences/ContentAssistPreference.java b/net.sourceforge.phpeclipse.xml.ui/src/net/sourceforge/phpeclipse/xml/ui/internal/preferences/ContentAssistPreference.java
new file mode 100644 (file)
index 0000000..46eeace
--- /dev/null
@@ -0,0 +1,59 @@
+package net.sourceforge.phpeclipse.xml.ui.internal.preferences;
+
+import net.sourceforge.phpeclipse.ui.PreferenceConstants;
+import net.sourceforge.phpeclipse.ui.templates.template.BasicCompletionProcessor;
+import net.sourceforge.phpeclipse.xml.ui.internal.text.XMLPartitionScanner;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.text.contentassist.ContentAssistant;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+
+
+public class ContentAssistPreference {
+  /** Preference key for html content assist auto activation triggers */
+  private final static String AUTOACTIVATION_TRIGGERS_HTML = PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_HTML;
+
+  /** Preference key for alphabetic ordering of proposals */
+  private final static String ORDER_PROPOSALS = PreferenceConstants.CODEASSIST_ORDER_PROPOSALS;
+  
+  private static BasicCompletionProcessor getHTMLProcessor(ContentAssistant assistant) {
+    IContentAssistProcessor p = assistant.getContentAssistProcessor(XMLPartitionScanner.XML_TAG);
+    if (p instanceof BasicCompletionProcessor)
+      return (BasicCompletionProcessor) p;
+    return null;
+  }
+  
+  private static void configureHTMLProcessor(ContentAssistant assistant, IPreferenceStore store) {
+    BasicCompletionProcessor hcp = getHTMLProcessor(assistant);
+    if (hcp == null)
+      return;
+
+    String triggers = store.getString(AUTOACTIVATION_TRIGGERS_HTML);
+    if (triggers != null)
+      hcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
+
+    boolean enabled;
+    //    boolean enabled = store.getBoolean(CASE_SENSITIVITY);
+    //    jdcp.restrictProposalsToMatchingCases(enabled);
+
+    enabled = store.getBoolean(ORDER_PROPOSALS);
+  //  hcp.orderProposalsAlphabetically(enabled);
+  } 
+  private static void changeHTMLProcessor(ContentAssistant assistant, IPreferenceStore store, String key) {
+    BasicCompletionProcessor jdcp = getHTMLProcessor(assistant);
+    if (jdcp == null)
+      return;
+
+    if (AUTOACTIVATION_TRIGGERS_HTML.equals(key)) {
+      String triggers = store.getString(AUTOACTIVATION_TRIGGERS_HTML);
+      if (triggers != null)
+        jdcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
+      //    } else if (CASE_SENSITIVITY.equals(key)) {
+      //      boolean enabled = store.getBoolean(CASE_SENSITIVITY);
+      //      jdcp.restrictProposalsToMatchingCases(enabled);
+    } else if (ORDER_PROPOSALS.equals(key)) {
+      boolean enable = store.getBoolean(ORDER_PROPOSALS);
+   //   jdcp.orderProposalsAlphabetically(enable);
+    }
+  }
+}