001: /*
002: * Sun Public License Notice
003: *
004: * The contents of this file are subject to the Sun Public License
005: * Version 1.0 (the "License"). You may not use this file except in
006: * compliance with the License. A copy of the License is available at
007: * http://www.sun.com/
008: *
009: * The Original Code is NetBeans. The Initial Developer of the Original
010: * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun
011: * Microsystems, Inc. All Rights Reserved.
012: */
013:
014: package org.netbeans.editor.ext;
015:
016: import java.util.Map;
017:
018: import org.netbeans.editor.BaseKit;
019: import org.netbeans.editor.Settings;
020: import org.netbeans.editor.SettingsNames;
021: import org.netbeans.editor.SettingsUtil;
022:
023: /**
024: * Initializer for the extended editor settings.
025: *
026: * @author Miloslav Metelka
027: * @version 1.00
028: */
029:
030: public class ExtSettingsInitializer extends
031: Settings.AbstractInitializer {
032:
033: public static final String NAME = "ext-settings-initializer";
034:
035: public ExtSettingsInitializer() {
036: super (NAME);
037: }
038:
039: /**
040: * Update map filled with the settings.
041: *
042: * @param kitClass
043: * kit class for which the settings are being updated. It is
044: * always non-null value.
045: * @param settingsMap
046: * map holding [setting-name, setting-value] pairs. The map can
047: * be empty if this is the first initializer that updates it or
048: * if no previous initializers updated it.
049: */
050: public void updateSettingsMap(Class kitClass, Map settingsMap) {
051:
052: // ------------------------ BaseKit Settings
053: // --------------------------------------
054: if (kitClass == BaseKit.class) {
055: // Add key-bindings
056: SettingsUtil.updateListSetting(settingsMap,
057: SettingsNames.KEY_BINDING_LIST,
058: ExtSettingsDefaults.defaultExtKeyBindings);
059: }
060:
061: // ------------------------ ExtKit Settings
062: // --------------------------------------
063: if (kitClass == ExtKit.class) {
064:
065: // List of the additional colorings
066: SettingsUtil
067: .updateListSetting(
068: settingsMap,
069: SettingsNames.COLORING_NAME_LIST,
070: new String[] {
071: ExtSettingsNames.HIGHLIGHT_CARET_ROW_COLORING,
072: ExtSettingsNames.HIGHLIGHT_MATCH_BRACE_COLORING, });
073:
074: // ExtCaret highlighting options
075: settingsMap.put(ExtSettingsNames.HIGHLIGHT_CARET_ROW,
076: ExtSettingsDefaults.defaultHighlightCaretRow);
077: settingsMap.put(ExtSettingsNames.HIGHLIGHT_MATCH_BRACE,
078: ExtSettingsDefaults.defaultHighlightMatchBrace);
079:
080: // ExtCaret highlighting colorings
081: SettingsUtil
082: .setColoring(
083: settingsMap,
084: ExtSettingsNames.HIGHLIGHT_CARET_ROW_COLORING,
085: ExtSettingsDefaults.defaultHighlightCaretRowColoring);
086: SettingsUtil
087: .setColoring(
088: settingsMap,
089: ExtSettingsNames.HIGHLIGHT_MATCH_BRACE_COLORING,
090: ExtSettingsDefaults.defaultHighlightMatchBraceColoring);
091:
092: // Popup menu default action names
093: String[] popupMenuActionNames = new String[] {
094: BaseKit.cutAction, BaseKit.copyAction,
095: BaseKit.pasteAction, null,
096: BaseKit.removeSelectionAction };
097:
098: SettingsUtil.updateListSetting(settingsMap,
099: ExtSettingsNames.POPUP_MENU_ACTION_NAME_LIST,
100: popupMenuActionNames);
101:
102: SettingsUtil
103: .updateListSetting(
104: settingsMap,
105: ExtSettingsNames.DIALOG_POPUP_MENU_ACTION_NAME_LIST,
106: popupMenuActionNames);
107:
108: settingsMap.put(ExtSettingsNames.POPUP_MENU_ENABLED,
109: Boolean.TRUE);
110:
111: // Completion settings
112: settingsMap.put(ExtSettingsNames.COMPLETION_AUTO_POPUP,
113: ExtSettingsDefaults.defaultCompletionAutoPopup);
114:
115: settingsMap
116: .put(
117: ExtSettingsNames.COMPLETION_AUTO_POPUP_DELAY,
118: ExtSettingsDefaults.defaultCompletionAutoPopupDelay);
119:
120: settingsMap.put(ExtSettingsNames.COMPLETION_REFRESH_DELAY,
121: ExtSettingsDefaults.defaultCompletionRefreshDelay);
122:
123: settingsMap.put(ExtSettingsNames.COMPLETION_PANE_MIN_SIZE,
124: ExtSettingsDefaults.defaultCompletionPaneMinSize);
125:
126: settingsMap.put(ExtSettingsNames.COMPLETION_PANE_MAX_SIZE,
127: ExtSettingsDefaults.defaultCompletionPaneMaxSize);
128:
129: // re-indentation settings
130: settingsMap.put(ExtSettingsNames.REINDENT_WITH_TEXT_BEFORE,
131: Boolean.TRUE);
132: }
133:
134: }
135:
136: }
|