com.mulgasoft.emacsplus.preferences.EmacsPlusPreferenceInitializer.java Source code

Java tutorial

Introduction

Here is the source code for com.mulgasoft.emacsplus.preferences.EmacsPlusPreferenceInitializer.java

Source

/**
 * Copyright (c) 2009-2012 Mark Feber, MulgaSoft
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 */
package com.mulgasoft.emacsplus.preferences;

import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.jface.preference.IPreferenceStore;

import com.mulgasoft.emacsplus.EmacsPlusActivator;
import com.mulgasoft.emacsplus.EmacsPlusUtils;
import com.mulgasoft.emacsplus.YankRotate;
import com.mulgasoft.emacsplus.commands.BlockHandler;
import com.mulgasoft.emacsplus.execute.KbdMacroSupport.LoadState;

import static com.mulgasoft.emacsplus.preferences.PrefVars.KILL_RING_MAX;
import static com.mulgasoft.emacsplus.preferences.PrefVars.KILL_WHOLE_LINE;
import static com.mulgasoft.emacsplus.preferences.PrefVars.ENABLE_GNU_SEXP;
import static com.mulgasoft.emacsplus.preferences.PrefVars.ENABLE_DOT_SEXP;
import static com.mulgasoft.emacsplus.preferences.PrefVars.ENABLE_UNDER_SEXP;
import static com.mulgasoft.emacsplus.preferences.PrefVars.REPLACE_TEXT_TO_KILLRING;
import static com.mulgasoft.emacsplus.preferences.PrefVars.DELETE_WORD_TO_CLIPBOARD;
import static com.mulgasoft.emacsplus.preferences.PrefVars.DELETE_SEXP_TO_CLIPBOARD;
import static com.mulgasoft.emacsplus.preferences.PrefVars.ENABLE_SPLIT_SELF;

/**
 * Class used to initialize default preference values.
 * 
 * @author Mark Feber - initial API and implementation
 */
public class EmacsPlusPreferenceInitializer extends AbstractPreferenceInitializer {

    // Edit,File,Navigate,Refactor,Run/Search,Source,Text Editing,Window,Kbd Macros
    private static final String defaultCategories = "org.eclipse.ui.category.edit," //$NON-NLS-1$  
            + "org.eclipse.ui.category.file," //$NON-NLS-1$  
            + "org.eclipse.ui.category.navigate," //$NON-NLS-1$  
            + "org.eclipse.jdt.ui.category.refactoring," //$NON-NLS-1$ 
            + "org.eclipse.debug.ui.category.run," //$NON-NLS-1$
            + "org.eclipse.search.ui.category.search," //$NON-NLS-1$  
            + "org.eclipse.jdt.ui.category.source," //$NON-NLS-1$  
            + "org.eclipse.ui.category.textEditor," //$NON-NLS-1$  
            + "org.eclipse.ui.category.window," //$NON-NLS-1$  
            + "emacsplus.keyboard.macros"; //$NON-NLS-1$  

    private static final String defaultBrowseHighlight = "237,237,252"; //$NON-NLS-1$ 

    /**
     * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
     */
    public void initializeDefaultPreferences() {
        IPreferenceStore store = EmacsPlusActivator.getDefault().getPreferenceStore();
        store.setDefault(EmacsPlusPreferenceConstants.P_ROTATE_DIR, YankRotate.BACKWARD.id());
        store.setDefault(EmacsPlusPreferenceConstants.P_GNU_YANK, true);
        store.setDefault(EmacsPlusPreferenceConstants.P_EMACS_UNDO, true);
        store.setDefault(EmacsPlusPreferenceConstants.P_AUTO_BROWSE_KR, false);
        store.setDefault(EmacsPlusPreferenceConstants.P_AUTO_BROWSE_HIGHLIGHT, defaultBrowseHighlight);
        store.setDefault(EmacsPlusPreferenceConstants.P_BLOCK_MOVE_SIZE, Integer.toString(BlockHandler.BLOCK_SIZE));
        store.setDefault(EmacsPlusPreferenceConstants.P_COMMAND_CATEGORIES, defaultCategories);
        store.setDefault(EmacsPlusPreferenceConstants.P_CTRL_DIGIT_ARGUMENT, false);
        store.setDefault(EmacsPlusPreferenceConstants.P_DISABLE_INLINE_EDIT, false);
        store.setDefault(EmacsPlusPreferenceConstants.P_KBD_MACRO_DIRECTORY, EmacsPlusUtils.EMPTY_STR);
        store.setDefault(EmacsPlusPreferenceConstants.P_KBD_MACRO_NAME_LOAD, EmacsPlusUtils.EMPTY_STR);
        store.setDefault(EmacsPlusPreferenceConstants.P_KBD_MACRO_AUTO_LOAD, LoadState.NONE.toString());
        // new definition style
        store.setDefault(ENABLE_SPLIT_SELF.getPref(), (Boolean) ENABLE_SPLIT_SELF.getDefault());
        store.setDefault(DELETE_WORD_TO_CLIPBOARD.getPref(), (Boolean) DELETE_WORD_TO_CLIPBOARD.getDefault());
        store.setDefault(DELETE_SEXP_TO_CLIPBOARD.getPref(), (Boolean) DELETE_SEXP_TO_CLIPBOARD.getDefault());
        store.setDefault(KILL_RING_MAX.getPref(), Integer.toString((Integer) KILL_RING_MAX.getDefault()));
        store.setDefault(REPLACE_TEXT_TO_KILLRING.getPref(), (Boolean) REPLACE_TEXT_TO_KILLRING.getDefault());
        store.setDefault(ENABLE_GNU_SEXP.getPref(), (Boolean) ENABLE_GNU_SEXP.getDefault());
        store.setDefault(ENABLE_DOT_SEXP.getPref(), (Boolean) ENABLE_DOT_SEXP.getDefault());
        store.setDefault(ENABLE_UNDER_SEXP.getPref(), (Boolean) ENABLE_UNDER_SEXP.getDefault());
        // preferences that are only set by toggle commands and have no preference UI manifestation
        store.setDefault(KILL_WHOLE_LINE.getPref(), (Boolean) KILL_WHOLE_LINE.getDefault());
    }
}