package org.rubypeople.rdt.internal.core; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; import org.eclipse.core.runtime.preferences.DefaultScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.rubypeople.rdt.core.RubyCore; import org.rubypeople.rdt.core.formatter.DefaultCodeFormatterConstants; import org.rubypeople.rdt.internal.compiler.CompilerOptions; public class RubyCorePreferenceInitializer extends AbstractPreferenceInitializer { public void initializeDefaultPreferences() { // Get options names set HashSet optionNames = RubyModelManager.getRubyModelManager().optionNames; // Compiler settings Map defaultOptionsMap = new CompilerOptions().getMap(); // compiler defaults // Override some compiler defaults defaultOptionsMap.put(RubyCore.COMPILER_TASK_TAGS, RubyCore.DEFAULT_TASK_TAGS); defaultOptionsMap.put(RubyCore.COMPILER_TASK_PRIORITIES, RubyCore.DEFAULT_TASK_PRIORITIES); defaultOptionsMap.put(RubyCore.COMPILER_TASK_CASE_SENSITIVE, RubyCore.ENABLED); // encoding setting comes from resource plug-in optionNames.add(RubyCore.CORE_ENCODING); // Formatter settings Map codeFormatterOptionsMap = DefaultCodeFormatterConstants.getEclipseDefaultSettings(); // code // formatter // defaults for (Iterator iter = codeFormatterOptionsMap.entrySet().iterator(); iter.hasNext();) { Map.Entry entry = (Map.Entry) iter.next(); String optionName = (String) entry.getKey(); defaultOptionsMap.put(optionName, entry.getValue()); optionNames.add(optionName); } // Store default values to default preferences IEclipsePreferences defaultPreferences = new DefaultScope().getNode(RubyCore.PLUGIN_ID); for (Iterator iter = defaultOptionsMap.entrySet().iterator(); iter.hasNext();) { Map.Entry entry = (Map.Entry) iter.next(); String optionName = (String) entry.getKey(); defaultPreferences.put(optionName, (String) entry.getValue()); optionNames.add(optionName); } } }