Java tutorial
/** * 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()); } }