• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.ide.eclipse.base.InstallDetails;
22 import com.android.ide.eclipse.ddms.DdmsPlugin;
23 import com.android.ide.eclipse.ddms.i18n.Messages;
24 import com.android.ide.eclipse.ddms.views.DeviceView.HProfHandler;
25 
26 import org.eclipse.jface.preference.BooleanFieldEditor;
27 import org.eclipse.jface.preference.ComboFieldEditor;
28 import org.eclipse.jface.preference.FieldEditorPreferencePage;
29 import org.eclipse.jface.preference.IntegerFieldEditor;
30 import org.eclipse.jface.preference.RadioGroupFieldEditor;
31 import org.eclipse.jface.preference.StringFieldEditor;
32 import org.eclipse.jface.util.PropertyChangeEvent;
33 import org.eclipse.ui.IWorkbench;
34 import org.eclipse.ui.IWorkbenchPreferencePage;
35 
36 public class PreferencePage extends FieldEditorPreferencePage implements
37         IWorkbenchPreferencePage {
38 
39     private BooleanFieldEditor mUseAdbHost;
40     private StringFieldEditor mAdbHostValue;
41     private IntegerFieldEditor mProfilerBufsize;
42 
PreferencePage()43     public PreferencePage() {
44         super(GRID);
45         setPreferenceStore(DdmsPlugin.getDefault().getPreferenceStore());
46     }
47 
48     /**
49      * Creates the field editors. Field editors are abstractions of the common
50      * GUI blocks needed to manipulate various types of preferences. Each field
51      * editor knows how to save and restore itself.
52      */
53     @Override
createFieldEditors()54     public void createFieldEditors() {
55         IntegerFieldEditor ife;
56 
57         ife = new IntegerFieldEditor(PreferenceInitializer.ATTR_DEBUG_PORT_BASE,
58                 Messages.PreferencePage_Base_Local_Debugger_Port, getFieldEditorParent());
59         ife.setValidRange(1024, 32767);
60         addField(ife);
61 
62         BooleanFieldEditor bfe;
63 
64         bfe = new BooleanFieldEditor(PreferenceInitializer.ATTR_DEFAULT_THREAD_UPDATE,
65                 Messages.PreferencePage_Thread_Updates_Enabled_By_Default, getFieldEditorParent());
66         addField(bfe);
67 
68         bfe = new BooleanFieldEditor(PreferenceInitializer.ATTR_DEFAULT_HEAP_UPDATE,
69                 Messages.PreferencePage_Heap_Updates_Enabled_Default, getFieldEditorParent());
70         addField(bfe);
71 
72         ife = new IntegerFieldEditor(PreferenceInitializer.ATTR_THREAD_INTERVAL,
73                 Messages.PreferencePage_Thread_Status_Refresh_Interval, getFieldEditorParent());
74         ife.setValidRange(1, 60);
75         addField(ife);
76 
77         if (InstallDetails.isAdtInstalled()) {
78             ComboFieldEditor cfe = new ComboFieldEditor(PreferenceInitializer.ATTR_HPROF_ACTION,
79                     Messages.PreferencePage_HPROF_Action, new String[][] {
80                     {
81                         Messages.PreferencePage_Save_Disk, HProfHandler.ACTION_SAVE
82                     },
83                     {
84                         Messages.PreferencePage_Open_Eclipse, HProfHandler.ACTION_OPEN
85                     },
86             }, getFieldEditorParent());
87             addField(cfe);
88         }
89 
90         mProfilerBufsize = new IntegerFieldEditor(PreferenceInitializer.ATTR_PROFILER_BUFSIZE_MB,
91                 "Method Profiler buffer size (MB):",
92                 getFieldEditorParent());
93         addField(mProfilerBufsize);
94 
95         ife = new IntegerFieldEditor(PreferenceInitializer.ATTR_TIME_OUT,
96                 Messages.PreferencePage_ADB_Connection_Time_Out, getFieldEditorParent());
97         addField(ife);
98 
99         RadioGroupFieldEditor rgfe = new RadioGroupFieldEditor(
100                 PreferenceInitializer.ATTR_LOG_LEVEL,
101                 Messages.PreferencePage_Logging_Level, 1, new String[][] {
102                         {
103                                 Messages.PreferencePage_Verbose, LogLevel.VERBOSE.getStringValue()
104                         },
105                         {
106                                 Messages.PreferencePage_Debug, LogLevel.DEBUG.getStringValue()
107                         },
108                         {
109                                 Messages.PreferencePage_Info, LogLevel.INFO.getStringValue()
110                         },
111                         {
112                                 Messages.PreferencePage_Warning, LogLevel.WARN.getStringValue()
113                         },
114                         {
115                                 Messages.PreferencePage_Error, LogLevel.ERROR.getStringValue()
116                         },
117                         {
118                                 Messages.PreferencePage_Assert, LogLevel.ASSERT.getStringValue()
119                         }
120                     },
121                 getFieldEditorParent(), true);
122         addField(rgfe);
123         mUseAdbHost = new BooleanFieldEditor(PreferenceInitializer.ATTR_USE_ADBHOST,
124                 Messages.PreferencePage_Use_Adbhost, getFieldEditorParent());
125         addField(mUseAdbHost);
126         mAdbHostValue = new StringFieldEditor(PreferenceInitializer.ATTR_ADBHOST_VALUE,
127                 Messages.PreferencePage_Adbhost_value, getFieldEditorParent());
128         mAdbHostValue.setEnabled(getPreferenceStore()
129                 .getBoolean(PreferenceInitializer.ATTR_USE_ADBHOST), getFieldEditorParent());
130         addField(mAdbHostValue);
131     }
132 
133     @Override
init(IWorkbench workbench)134     public void init(IWorkbench workbench) {
135     }
136 
137     @Override
propertyChange(PropertyChangeEvent event)138     public void propertyChange(PropertyChangeEvent event) {
139         if (event.getSource().equals(mUseAdbHost)) {
140             mAdbHostValue.setEnabled(mUseAdbHost.getBooleanValue(), getFieldEditorParent());
141         } else if (event.getSource().equals(mProfilerBufsize)) {
142             DdmPreferences.setProfilerBufferSizeMb(mProfilerBufsize.getIntValue());
143         }
144         super.propertyChange(event);
145     }
146 
147     @Override
performDefaults()148     protected void performDefaults() {
149         super.performDefaults();
150         mAdbHostValue.setEnabled(mUseAdbHost.getBooleanValue(), getFieldEditorParent());
151     }
152 }
153