All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.netbeans.editor.ext.ExtSettingsInitializer Maven / Gradle / Ivy

/*
 *                 Sun Public License Notice
 * 
 * The contents of this file are subject to the Sun Public License
 * Version 1.0 (the "License"). You may not use this file except in
 * compliance with the License. A copy of the License is available at
 * http://www.sun.com/
 * 
 * The Original Code is NetBeans. The Initial Developer of the Original
 * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun
 * Microsystems, Inc. All Rights Reserved.
 */

package org.netbeans.editor.ext;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import javax.swing.KeyStroke;
import javax.swing.text.JTextComponent;
import org.netbeans.editor.Coloring;
import org.netbeans.editor.Settings;
import org.netbeans.editor.SettingsUtil;
import org.netbeans.editor.SettingsNames;
import org.netbeans.editor.BaseKit;
import org.netbeans.editor.MultiKeyBinding;

/**
* Initializer for the extended editor settings.
*
* @author Miloslav Metelka
* @version 1.00
*/

public class ExtSettingsInitializer extends Settings.AbstractInitializer {

    public static final String NAME = "ext-settings-initializer"; // NOI18N

    public ExtSettingsInitializer() {
        super(NAME);
    }

    /** Update map filled with the settings.
    * @param kitClass kit class for which the settings are being updated.
    *   It is always non-null value.
    * @param settingsMap map holding [setting-name, setting-value] pairs.
    *   The map can be empty if this is the first initializer
    *   that updates it or if no previous initializers updated it.
    */
    public void updateSettingsMap(Class kitClass, Map settingsMap) {

        // ------------------------ BaseKit Settings --------------------------------------
        if (kitClass == BaseKit.class) {
            // Add key-bindings
            SettingsUtil.updateListSetting(settingsMap, SettingsNames.KEY_BINDING_LIST,
                                           ExtSettingsDefaults.defaultExtKeyBindings);
        }

        // ------------------------ ExtKit Settings --------------------------------------
        if (kitClass == ExtKit.class) {

            // List of the additional colorings
            SettingsUtil.updateListSetting(settingsMap, SettingsNames.COLORING_NAME_LIST,
                                           new String[] {
                                               ExtSettingsNames.HIGHLIGHT_CARET_ROW_COLORING,
                                               ExtSettingsNames.HIGHLIGHT_MATCH_BRACE_COLORING,
                                           }
                                          );

            // ExtCaret highlighting options
            settingsMap.put(ExtSettingsNames.HIGHLIGHT_CARET_ROW,
                            ExtSettingsDefaults.defaultHighlightCaretRow);
            settingsMap.put(ExtSettingsNames.HIGHLIGHT_MATCH_BRACE,
                            ExtSettingsDefaults.defaultHighlightMatchBrace);

            // ExtCaret highlighting colorings
            SettingsUtil.setColoring(settingsMap, ExtSettingsNames.HIGHLIGHT_CARET_ROW_COLORING,
                                     ExtSettingsDefaults.defaultHighlightCaretRowColoring);
            SettingsUtil.setColoring(settingsMap, ExtSettingsNames.HIGHLIGHT_MATCH_BRACE_COLORING,
                                     ExtSettingsDefaults.defaultHighlightMatchBraceColoring);

            // Popup menu default action names
            String[] popupMenuActionNames
                = new String[] {
                    BaseKit.cutAction,
                    BaseKit.copyAction,
                    BaseKit.pasteAction,
                    null,
                    BaseKit.removeSelectionAction
                };

            
            List pml = (List)settingsMap.get(ExtSettingsNames.POPUP_MENU_ACTION_NAME_LIST);
            if (pml == null || pml.indexOf(BaseKit.cutAction) == -1) {
                SettingsUtil.updateListSetting(settingsMap,
                    ExtSettingsNames.POPUP_MENU_ACTION_NAME_LIST, popupMenuActionNames);

                SettingsUtil.updateListSetting(settingsMap,
                    ExtSettingsNames.DIALOG_POPUP_MENU_ACTION_NAME_LIST, popupMenuActionNames);
            }
                                          
            settingsMap.put(ExtSettingsNames.POPUP_MENU_ENABLED, Boolean.TRUE);

            settingsMap.put(ExtSettingsNames.FAST_IMPORT_PACKAGE,
                            ExtSettingsDefaults.defaultFastImportPackage);
            
            // Completion settings
            settingsMap.put(ExtSettingsNames.COMPLETION_AUTO_POPUP,
                            ExtSettingsDefaults.defaultCompletionAutoPopup);

            settingsMap.put(ExtSettingsNames.COMPLETION_CASE_SENSITIVE,
                            ExtSettingsDefaults.defaultCompletionCaseSensitive);

            settingsMap.put(ExtSettingsNames.COMPLETION_NATURAL_SORT,
                            ExtSettingsDefaults.defaultCompletionNaturalSort);
            
            settingsMap.put(ExtSettingsNames.COMPLETION_INSTANT_SUBSTITUTION,
                            ExtSettingsDefaults.defaultCompletionInstantSubstitution);

            settingsMap.put(ExtSettingsNames.COMPLETION_AUTO_POPUP_DELAY,
                            ExtSettingsDefaults.defaultCompletionAutoPopupDelay);

            settingsMap.put(ExtSettingsNames.COMPLETION_REFRESH_DELAY,
                            ExtSettingsDefaults.defaultCompletionRefreshDelay);

            settingsMap.put(ExtSettingsNames.COMPLETION_PANE_MIN_SIZE,
                            ExtSettingsDefaults.defaultCompletionPaneMinSize);

            settingsMap.put(ExtSettingsNames.COMPLETION_PANE_MAX_SIZE,
                            ExtSettingsDefaults.defaultCompletionPaneMaxSize);

            // re-indentation settings
            settingsMap.put(ExtSettingsNames.REINDENT_WITH_TEXT_BEFORE,
                            Boolean.TRUE);
            
            settingsMap.put(ExtSettingsNames.JAVADOC_BG_COLOR,
                            ExtSettingsDefaults.defaultJavaDocBGColor);
            
            settingsMap.put(ExtSettingsNames.JAVADOC_AUTO_POPUP_DELAY,
                            ExtSettingsDefaults.defaultJavaDocAutoPopupDelay);
            
            settingsMap.put(ExtSettingsNames.JAVADOC_PREFERRED_SIZE,
                            ExtSettingsDefaults.defaultJavaDocPreferredSize);
            
            settingsMap.put(ExtSettingsNames.JAVADOC_AUTO_POPUP,
                            ExtSettingsDefaults.defaultJavaDocAutoPopup);
            
        }

    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy