refactory: added UI removed from core plugin.
[phpeclipse.git] / net.sourceforge.phpeclipse.ui / src / net / sourceforge / phpeclipse / xml / ui / internal / preferences / ContentAssistPreference.java
diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/xml/ui/internal/preferences/ContentAssistPreference.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/xml/ui/internal/preferences/ContentAssistPreference.java
new file mode 100644 (file)
index 0000000..25b27d1
--- /dev/null
@@ -0,0 +1,65 @@
+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);
+               }
+       }
+}