Improve package tangle index for LTTng 2.0 control design
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.ui / src / org / eclipse / linuxtools / internal / lttng2 / ui / views / control / preferences / ControlPreferencePage.java
CommitLineData
afe13e7a
BH
1/**********************************************************************
2 * Copyright (c) 2012 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Bernd Hufmann - Initial API and implementation
11 **********************************************************************/
12package org.eclipse.linuxtools.internal.lttng2.ui.views.control.preferences;
13
14import org.eclipse.jface.preference.BooleanFieldEditor;
15import org.eclipse.jface.preference.FieldEditor;
16import org.eclipse.jface.preference.FieldEditorPreferencePage;
17import org.eclipse.jface.preference.IPreferenceStore;
18import org.eclipse.jface.preference.RadioGroupFieldEditor;
19import org.eclipse.jface.preference.StringFieldEditor;
20import org.eclipse.jface.util.PropertyChangeEvent;
afe13e7a 21import org.eclipse.linuxtools.internal.lttng2.ui.views.control.logging.ControlCommandLogger;
9315aeee 22import org.eclipse.linuxtools.internal.lttng2.ui.views.control.messages.Messages;
afe13e7a
BH
23import org.eclipse.ui.IWorkbench;
24import org.eclipse.ui.IWorkbenchPreferencePage;
25
26/**
27 * <b><u>ControlPreferencePage</u></b>
28 * <p>
29 * Preference page implementation for configuring LTTng tracer control preferences.
30 * </p>
31 */
32public class ControlPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
33
34 // ------------------------------------------------------------------------
35 // Attributes
36 // ------------------------------------------------------------------------
37 RadioGroupFieldEditor fVerboseLevel;
38 BooleanFieldEditor fIsAppend;
39
40 // ------------------------------------------------------------------------
41 // Constructors
42 // ------------------------------------------------------------------------
43 public ControlPreferencePage() {
44 super(FieldEditorPreferencePage.GRID);
45
46 // Set the preference store for the preference page.
9315aeee 47 IPreferenceStore store = ControlPreferences.getInstance().getPreferenceStore();
afe13e7a
BH
48 setPreferenceStore(store);
49 }
50
51 // ------------------------------------------------------------------------
52 // Operations
53 // ------------------------------------------------------------------------
54 /*
55 * (non-Javadoc)
56 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
57 */
58 @Override
59 public void init(IWorkbench workbench) {
60 }
61
62 /*
63 * (non-Javadoc)
64 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
65 */
66 @Override
67 protected void createFieldEditors() {
68
69 StringFieldEditor tracingGroup = new StringFieldEditor(ControlPreferences.TRACE_CONTROL_TRACING_GROUP_PREF, Messages.TraceControl_TracingGroupPreference, getFieldEditorParent());
70 addField(tracingGroup);
71
72 BooleanFieldEditor logCommand = new BooleanFieldEditor(ControlPreferences.TRACE_CONTROL_LOG_COMMANDS_PREF, Messages.TraceControl_LoggingPreference, getFieldEditorParent());
73 addField(logCommand);
74
75 StringFieldEditor logfile = new StringFieldEditor(ControlPreferences.TRACE_CONTROL_LOG_FILE_PATH_PREF, Messages.TraceControl_LogfilePath, getFieldEditorParent());
76 addField(logfile);
77
78 fIsAppend = new BooleanFieldEditor(ControlPreferences.TRACE_CONTROL_LOG_APPEND_PREF, Messages.TraceControl_AppendLogfilePreference, getFieldEditorParent());
79 addField(fIsAppend);
80
81 fVerboseLevel = new RadioGroupFieldEditor (
82 ControlPreferences.TRACE_CONTROL_VERBOSE_LEVEL_PREF,
83 Messages.TraceControl_VerboseLevelsPreference,
84 4,
85 new String[][] {
86 {
87 Messages.TraceControl_VerboseLevelNonePreference,
88 ControlPreferences.TRACE_CONTROL_VERBOSE_LEVEL_NONE,
89 },
90 {
91 Messages.TraceControl_VerboseLevelVerbosePreference,
92 ControlPreferences.TRACE_CONTROL_VERBOSE_LEVEL_VERBOSE
93 },
94 {
95 Messages.TraceControl_VerboseLevelVeryVerbosePreference,
96 ControlPreferences.TRACE_CONTROL_VERBOSE_LEVEL_V_VERBOSE
97 },
98 {
99 Messages.TraceControl_VerboseLevelVeryVeryVerbosePreference,
100 ControlPreferences.TRACE_CONTROL_VERBOSE_LEVEL_V_V_VERBOSE
101 }
102 },
103 getFieldEditorParent(),
104 true);
105
106 addField(fVerboseLevel);
107
108 Boolean enabled = ControlPreferences.getInstance().isLoggingEnabled();
109 fVerboseLevel.setEnabled(enabled, getFieldEditorParent());
110 fIsAppend.setEnabled(enabled, getFieldEditorParent());
111 logfile.setEnabled(false, getFieldEditorParent());
112 }
113
114 /*
115 * (non-Javadoc)
116 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
117 */
118 @Override
119 public void propertyChange(PropertyChangeEvent event) {
120
121 if (event.getProperty().equals(FieldEditor.VALUE)) {
122 if (event.getSource() instanceof FieldEditor) {
123 FieldEditor editor = (FieldEditor) event.getSource();
124 if (editor.getPreferenceName().equals(ControlPreferences.TRACE_CONTROL_LOG_COMMANDS_PREF)) {
125 Boolean enabled = (Boolean)event.getNewValue();
126 fVerboseLevel.setEnabled(enabled, getFieldEditorParent());
127 fIsAppend.setEnabled(enabled, getFieldEditorParent());
128 }
129 }
130 }
131 super.propertyChange(event);
132 }
133
134 /*
135 * (non-Javadoc)
136 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performDefaults()
137 */
138 @Override
139 protected void performDefaults() {
140 super.performDefaults();
141 fVerboseLevel.setEnabled(false, getFieldEditorParent());
142 fIsAppend.setEnabled(false, getFieldEditorParent());
143 }
144
145 /*
146 * (non-Javadoc)
147 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
148 */
149 @Override
150 public boolean performOk() {
151 boolean ret = super.performOk();
152 // open or close log file
153 if (ControlPreferences.getInstance().isLoggingEnabled()) {
0886cf00 154 ControlCommandLogger.init(ControlPreferences.getInstance().getLogfilePath(), ControlPreferences.getInstance().isAppend());
afe13e7a
BH
155 } else {
156 ControlCommandLogger.close();
157 }
158 return ret;
159 }
160}
This page took 0.035236 seconds and 5 git commands to generate.