Home | History | Annotate | Download | only in preferences
      1 /*
      2  * Copyright (C) 2007 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.ide.eclipse.ddms.preferences;
     18 
     19 import com.android.ddmlib.DdmPreferences;
     20 import com.android.ddmlib.Log.LogLevel;
     21 import com.android.ddmuilib.DdmUiPreferences;
     22 import com.android.ide.eclipse.ddms.DdmsPlugin;
     23 import com.android.ide.eclipse.ddms.LogCatMonitor;
     24 import com.android.ide.eclipse.ddms.views.DeviceView.HProfHandler;
     25 import com.android.ide.eclipse.ddms.views.LogCatView;
     26 
     27 import org.eclipse.core.runtime.Platform;
     28 import org.eclipse.core.runtime.content.IContentType;
     29 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
     30 import org.eclipse.jface.preference.IPreferenceStore;
     31 import org.eclipse.swt.SWT;
     32 import org.eclipse.swt.graphics.FontData;
     33 
     34 /**
     35  * Class used to initialize default preference values.
     36  */
     37 public class PreferenceInitializer extends AbstractPreferenceInitializer {
     38 
     39     public final static String ATTR_LOG_LEVEL =
     40         DdmsPlugin.PLUGIN_ID + ".logLevel"; //$NON-NLS-1$
     41 
     42     public final static String ATTR_DEBUG_PORT_BASE =
     43         DdmsPlugin.PLUGIN_ID + ".adbDebugBasePort"; //$NON-NLS-1$
     44 
     45     public final static String ATTR_SELECTED_DEBUG_PORT =
     46         DdmsPlugin.PLUGIN_ID + ".debugSelectedPort"; //$NON-NLS-1$
     47 
     48     public final static String ATTR_DEFAULT_THREAD_UPDATE =
     49         DdmsPlugin.PLUGIN_ID + ".defaultThreadUpdateEnabled"; //$NON-NLS-1$
     50 
     51     public final static String ATTR_DEFAULT_HEAP_UPDATE =
     52         DdmsPlugin.PLUGIN_ID + ".defaultHeapUpdateEnabled"; //$NON-NLS-1$
     53 
     54     public final static String ATTR_THREAD_INTERVAL =
     55         DdmsPlugin.PLUGIN_ID + ".threadStatusInterval"; //$NON-NLS-1$
     56 
     57     public final static String ATTR_IMAGE_SAVE_DIR =
     58         DdmsPlugin.PLUGIN_ID + ".imageSaveDir"; //$NON-NLS-1$
     59 
     60     public final static String ATTR_LAST_IMAGE_SAVE_DIR =
     61         DdmsPlugin.PLUGIN_ID + ".lastImageSaveDir"; //$NON-NLS-1$
     62 
     63     public final static String ATTR_LOGCAT_FONT =
     64         DdmsPlugin.PLUGIN_ID + ".logcatFont"; //$NON-NLS-1$
     65 
     66     public final static String ATTR_HPROF_ACTION =
     67         DdmsPlugin.PLUGIN_ID + ".hprofAction"; //$NON-NLS-1$
     68 
     69     public final static String ATTR_TIME_OUT =
     70         DdmsPlugin.PLUGIN_ID + ".timeOut"; //$NON-NLS-1$
     71 
     72     public final static String ATTR_USE_ADBHOST =
     73         DdmsPlugin.PLUGIN_ID + ".useAdbHost"; //$NON-NLS-1$
     74 
     75     public final static String ATTR_ADBHOST_VALUE =
     76         DdmsPlugin.PLUGIN_ID + ".adbHostValue"; //$NON-NLS-1$
     77 
     78     public final static String ATTR_SWITCH_PERSPECTIVE =
     79         DdmsPlugin.PLUGIN_ID + ".switchPerspective"; //$NON-NLS-1$
     80 
     81     public final static String ATTR_PERSPECTIVE_ID =
     82         DdmsPlugin.PLUGIN_ID + ".perspectiveId"; //$NON-NLS-1$
     83 
     84     public static final String ATTR_PROFILER_BUFSIZE_MB =
     85         DdmsPlugin.PLUGIN_ID + ".profilerBufferSizeMb"; //$NON-NLS-1$
     86 
     87     /*
     88      * (non-Javadoc)
     89      *
     90      * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer
     91      * #initializeDefaultPreferences()
     92      */
     93     @Override
     94     public void initializeDefaultPreferences() {
     95         IPreferenceStore store = DdmsPlugin.getDefault().getPreferenceStore();
     96 
     97         store.setDefault(ATTR_DEBUG_PORT_BASE, DdmPreferences.DEFAULT_DEBUG_PORT_BASE);
     98 
     99         store.setDefault(ATTR_SELECTED_DEBUG_PORT, DdmPreferences.DEFAULT_SELECTED_DEBUG_PORT);
    100 
    101         store.setDefault(ATTR_DEFAULT_THREAD_UPDATE, DdmPreferences.DEFAULT_INITIAL_THREAD_UPDATE);
    102         store.setDefault(ATTR_DEFAULT_HEAP_UPDATE,
    103                 DdmPreferences.DEFAULT_INITIAL_HEAP_UPDATE);
    104 
    105         store.setDefault(ATTR_PROFILER_BUFSIZE_MB, DdmPreferences.DEFAULT_PROFILER_BUFFER_SIZE_MB);
    106 
    107         store.setDefault(ATTR_THREAD_INTERVAL, DdmUiPreferences.DEFAULT_THREAD_REFRESH_INTERVAL);
    108 
    109         String homeDir = System.getProperty("user.home"); //$NON-NLS-1$
    110         store.setDefault(ATTR_IMAGE_SAVE_DIR, homeDir);
    111 
    112         store.setDefault(ATTR_LOG_LEVEL, DdmPreferences.DEFAULT_LOG_LEVEL.getStringValue());
    113 
    114         store.setDefault(ATTR_LOGCAT_FONT,
    115                 new FontData("Courier", 10, SWT.NORMAL).toString()); //$NON-NLS-1$
    116 
    117         // When obtaining hprof files from the device, default to opening the file
    118         // only if there is a registered content type for the hprof extension.
    119         store.setDefault(ATTR_HPROF_ACTION, HProfHandler.ACTION_SAVE);
    120         for (IContentType contentType: Platform.getContentTypeManager().getAllContentTypes()) {
    121             if (contentType.isAssociatedWith(HProfHandler.DOT_HPROF)) {
    122                 store.setDefault(ATTR_HPROF_ACTION, HProfHandler.ACTION_OPEN);
    123                 break;
    124             }
    125         }
    126 
    127         store.setDefault(ATTR_TIME_OUT, DdmPreferences.DEFAULT_TIMEOUT);
    128 
    129         store.setDefault(ATTR_USE_ADBHOST, DdmPreferences.DEFAULT_USE_ADBHOST);
    130         store.setDefault(ATTR_ADBHOST_VALUE, DdmPreferences.DEFAULT_ADBHOST_VALUE);
    131         store.setDefault(ATTR_SWITCH_PERSPECTIVE, LogCatView.DEFAULT_SWITCH_PERSPECTIVE);
    132         store.setDefault(ATTR_PERSPECTIVE_ID, LogCatView.DEFAULT_PERSPECTIVE_ID);
    133 
    134         store.setDefault(LogCatMonitor.AUTO_MONITOR_PREFKEY, true);
    135         store.setDefault(LogCatMonitor.AUTO_MONITOR_LOGLEVEL, LogLevel.VERBOSE.getStringValue());
    136     }
    137 
    138     /**
    139      * Initializes the preferences of ddmlib and ddmuilib with values from the eclipse store.
    140      */
    141     public synchronized static void setupPreferences() {
    142         IPreferenceStore store = DdmsPlugin.getDefault().getPreferenceStore();
    143 
    144         DdmPreferences.setDebugPortBase(store.getInt(ATTR_DEBUG_PORT_BASE));
    145         DdmPreferences.setSelectedDebugPort(store.getInt(ATTR_SELECTED_DEBUG_PORT));
    146         DdmPreferences.setLogLevel(store.getString(ATTR_LOG_LEVEL));
    147         DdmPreferences.setInitialThreadUpdate(store.getBoolean(ATTR_DEFAULT_THREAD_UPDATE));
    148         DdmPreferences.setInitialHeapUpdate(store.getBoolean(ATTR_DEFAULT_HEAP_UPDATE));
    149         DdmPreferences.setProfilerBufferSizeMb(store.getInt(ATTR_PROFILER_BUFSIZE_MB));
    150         DdmUiPreferences.setThreadRefreshInterval(store.getInt(ATTR_THREAD_INTERVAL));
    151         DdmPreferences.setTimeOut(store.getInt(ATTR_TIME_OUT));
    152         DdmPreferences.setUseAdbHost(store.getBoolean(ATTR_USE_ADBHOST));
    153         DdmPreferences.setAdbHostValue(store.getString(ATTR_ADBHOST_VALUE));
    154     }
    155 }
    156