aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.ddms/src/com/android/ide/eclipse/ddms/preferences/LogCatPreferencePage.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.ddms/src/com/android/ide/eclipse/ddms/preferences/LogCatPreferencePage.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.ddms/src/com/android/ide/eclipse/ddms/preferences/LogCatPreferencePage.java159
1 files changed, 159 insertions, 0 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.ddms/src/com/android/ide/eclipse/ddms/preferences/LogCatPreferencePage.java b/eclipse/plugins/com.android.ide.eclipse.ddms/src/com/android/ide/eclipse/ddms/preferences/LogCatPreferencePage.java
new file mode 100644
index 000000000..aa88eecb7
--- /dev/null
+++ b/eclipse/plugins/com.android.ide.eclipse.ddms/src/com/android/ide/eclipse/ddms/preferences/LogCatPreferencePage.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.ide.eclipse.ddms.preferences;
+
+import com.android.ddmlib.Log.LogLevel;
+import com.android.ddmuilib.logcat.LogCatMessageList;
+import com.android.ddmuilib.logcat.LogCatPanel;
+import com.android.ide.eclipse.base.InstallDetails;
+import com.android.ide.eclipse.ddms.DdmsPlugin;
+import com.android.ide.eclipse.ddms.LogCatMonitor;
+import com.android.ide.eclipse.ddms.i18n.Messages;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.FontFieldEditor;
+import org.eclipse.jface.preference.IntegerFieldEditor;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IPerspectiveDescriptor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * Preference Pane for LogCat.
+ */
+public class LogCatPreferencePage extends FieldEditorPreferencePage implements
+ IWorkbenchPreferencePage {
+ private BooleanFieldEditor mSwitchPerspective;
+ private ComboFieldEditor mWhichPerspective;
+ private IntegerFieldEditor mMaxMessages;
+ private BooleanFieldEditor mAutoMonitorLogcat;
+ private ComboFieldEditor mAutoMonitorLogcatLevel;
+ private BooleanFieldEditor mAutoScrollLock;
+
+ public LogCatPreferencePage() {
+ super(GRID);
+ setPreferenceStore(DdmsPlugin.getDefault().getPreferenceStore());
+ }
+
+ @Override
+ protected void createFieldEditors() {
+ FontFieldEditor ffe = new FontFieldEditor(LogCatPanel.LOGCAT_VIEW_FONT_PREFKEY,
+ Messages.LogCatPreferencePage_Display_Font, getFieldEditorParent());
+ addField(ffe);
+
+ mMaxMessages = new IntegerFieldEditor(
+ LogCatMessageList.MAX_MESSAGES_PREFKEY,
+ Messages.LogCatPreferencePage_MaxMessages, getFieldEditorParent());
+ addField(mMaxMessages);
+
+ mAutoScrollLock = new BooleanFieldEditor(LogCatPanel.AUTO_SCROLL_LOCK_PREFKEY,
+ "Automatically enable/disable scroll lock based on the scrollbar position",
+ getFieldEditorParent());
+ addField(mAutoScrollLock);
+
+ createHorizontalSeparator();
+
+ if (InstallDetails.isAdtInstalled()) {
+ createAdtSpecificFieldEditors();
+ }
+ }
+
+ private void createHorizontalSeparator() {
+ Label l = new Label(getFieldEditorParent(), SWT.SEPARATOR | SWT.HORIZONTAL);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ l.setLayoutData(gd);
+ }
+
+ private void createAdtSpecificFieldEditors() {
+ mSwitchPerspective = new BooleanFieldEditor(PreferenceInitializer.ATTR_SWITCH_PERSPECTIVE,
+ Messages.LogCatPreferencePage_Switch_Perspective, getFieldEditorParent());
+ addField(mSwitchPerspective);
+ IPerspectiveDescriptor[] perspectiveDescriptors =
+ PlatformUI.getWorkbench().getPerspectiveRegistry().getPerspectives();
+ String[][] perspectives = new String[0][0];
+ if (perspectiveDescriptors.length > 0) {
+ perspectives = new String[perspectiveDescriptors.length][2];
+ for (int i = 0; i < perspectiveDescriptors.length; i++) {
+ IPerspectiveDescriptor perspective = perspectiveDescriptors[i];
+ perspectives[i][0] = perspective.getLabel();
+ perspectives[i][1] = perspective.getId();
+ }
+ }
+ mWhichPerspective = new ComboFieldEditor(PreferenceInitializer.ATTR_PERSPECTIVE_ID,
+ Messages.LogCatPreferencePage_Switch_To, perspectives, getFieldEditorParent());
+ mWhichPerspective.setEnabled(getPreferenceStore()
+ .getBoolean(PreferenceInitializer.ATTR_SWITCH_PERSPECTIVE), getFieldEditorParent());
+ addField(mWhichPerspective);
+
+ createHorizontalSeparator();
+
+ mAutoMonitorLogcat = new BooleanFieldEditor(LogCatMonitor.AUTO_MONITOR_PREFKEY,
+ Messages.LogCatPreferencePage_AutoMonitorLogcat,
+ getFieldEditorParent());
+ addField(mAutoMonitorLogcat);
+
+ mAutoMonitorLogcatLevel = new ComboFieldEditor(LogCatMonitor.AUTO_MONITOR_LOGLEVEL,
+ Messages.LogCatPreferencePage_SessionFilterLogLevel,
+ new String[][] {
+ { LogLevel.VERBOSE.toString(), LogLevel.VERBOSE.getStringValue() },
+ { LogLevel.DEBUG.toString(), LogLevel.DEBUG.getStringValue() },
+ { LogLevel.INFO.toString(), LogLevel.INFO.getStringValue() },
+ { LogLevel.WARN.toString(), LogLevel.WARN.getStringValue() },
+ { LogLevel.ERROR.toString(), LogLevel.ERROR.getStringValue() },
+ { LogLevel.ASSERT.toString(), LogLevel.ASSERT.getStringValue() },
+ },
+ getFieldEditorParent());
+ mAutoMonitorLogcatLevel.setEnabled(
+ getPreferenceStore().getBoolean(LogCatMonitor.AUTO_MONITOR_PREFKEY),
+ getFieldEditorParent());
+ addField(mAutoMonitorLogcatLevel);
+ }
+
+ @Override
+ public void init(IWorkbench workbench) {
+ }
+
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ if (event.getSource().equals(mSwitchPerspective)) {
+ mWhichPerspective.setEnabled(mSwitchPerspective.getBooleanValue(),
+ getFieldEditorParent());
+ } else if (event.getSource().equals(mAutoMonitorLogcat)) {
+ mAutoMonitorLogcatLevel.setEnabled(mAutoMonitorLogcat.getBooleanValue(),
+ getFieldEditorParent());
+ }
+ }
+
+ @Override
+ protected void performDefaults() {
+ super.performDefaults();
+ mWhichPerspective.setEnabled(mSwitchPerspective.getBooleanValue(), getFieldEditorParent());
+
+ mMaxMessages.setStringValue(
+ Integer.toString(LogCatMessageList.MAX_MESSAGES_DEFAULT));
+
+ mAutoMonitorLogcatLevel.setEnabled(mAutoMonitorLogcat.getBooleanValue(),
+ getFieldEditorParent());
+ }
+}