package org.erlide.ui.prefs.plugin; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.IScopeContext; import org.eclipse.core.runtime.preferences.InstanceScope; import org.erlide.core.ErlangCore; import org.erlide.engine.util.PreferencesHelper; import org.osgi.service.prefs.BackingStoreException; public class CodeAssistPreferences { private static final String QUALIFIER = ErlangCore.PLUGIN_ID + "/codeassist"; private final PreferencesHelper helper; private boolean autoActivate; private int delayInMS; private String erlangTriggers; private String eDocTriggers; public static IEclipsePreferences getNode() { final IScopeContext context = InstanceScope.INSTANCE; final IEclipsePreferences eclipsePreferences = context.getNode(QUALIFIER); return eclipsePreferences; } public static CodeAssistPreferences get() { final CodeAssistPreferences prefs = new CodeAssistPreferences(); prefs.load(); return prefs; } public CodeAssistPreferences() { helper = PreferencesHelper.getHelper(QUALIFIER); } public boolean hasOptionsAtLowestScope() { return helper.hasAnyAtLowestScope(); } public void store() throws BackingStoreException { helper.putBoolean(CodeAssistPreferencesConstants.AUTO_ACTIVATE, autoActivate); helper.putInt(CodeAssistPreferencesConstants.DELAY_IN_MS, delayInMS); helper.putString(CodeAssistPreferencesConstants.ERLANG_TRIGGERS, erlangTriggers); helper.putString(CodeAssistPreferencesConstants.EDOC_TRIGGERS, eDocTriggers); helper.flush(); } @SuppressWarnings("boxing") public void load() { autoActivate = helper.getBoolean(CodeAssistPreferencesConstants.AUTO_ACTIVATE, true); delayInMS = helper.getInt(CodeAssistPreferencesConstants.DELAY_IN_MS, 50); erlangTriggers = helper.getString(CodeAssistPreferencesConstants.ERLANG_TRIGGERS, ":#?"); eDocTriggers = helper.getString(CodeAssistPreferencesConstants.EDOC_TRIGGERS, ""); } @Override public String toString() { return "auto " + (autoActivate ? "on" : "off") + " " + delayInMS + " " + erlangTriggers + " " + eDocTriggers; } public boolean isAutoActivate() { return autoActivate; } public void setAutoActivate(final boolean autoActivate) { this.autoActivate = autoActivate; } public int getDelayInMS() { return delayInMS; } public void setDelayInMS(final int delayInMS) { this.delayInMS = delayInMS; } public String getErlangTriggers() { return erlangTriggers; } public void setErlangTriggers(final String erlangTriggers) { this.erlangTriggers = erlangTriggers; } public String geteDocTriggers() { return eDocTriggers; } public void seteDocTriggers(final String eDocTriggers) { this.eDocTriggers = eDocTriggers; } }