Update internal packages export in LTTng 2.0 control + update java doc
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.ui / src / org / eclipse / linuxtools / internal / lttng2 / ui / views / control / preferences / ControlPreferences.java
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 **********************************************************************/
12 package org.eclipse.linuxtools.internal.lttng2.ui.views.control.preferences;
13
14 import java.io.File;
15
16 import org.eclipse.jface.preference.IPreferenceStore;
17 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.logging.ControlCommandLogger;
18
19 /**
20 * <p>
21 * Singleton class to access LTTng tracer control preferences.
22 * </p>
23 *
24 * @author Bernd Hufmann
25 */
26 public class ControlPreferences {
27
28 // ------------------------------------------------------------------------
29 // Constants
30 // ------------------------------------------------------------------------
31 /**
32 * Trace control log file
33 */
34 public static final String TRACE_CONTROL_LOG_FILENAME = "lttng_tracer_control.log"; //$NON-NLS-1$
35
36 // Preference strings
37 /**
38 * The tracing group preference
39 */
40 public static final String TRACE_CONTROL_TRACING_GROUP_PREF = "trace.control.tracing.group"; //$NON-NLS-1$
41 /**
42 * The log commands preference
43 */
44 public static final String TRACE_CONTROL_LOG_COMMANDS_PREF = "trace.control.log.commands"; //$NON-NLS-1$
45 /**
46 * The log append preference
47 */
48 public static final String TRACE_CONTROL_LOG_APPEND_PREF = "trace.control.log.append"; //$NON-NLS-1$
49 /**
50 * The log file path preference
51 */
52 public static final String TRACE_CONTROL_LOG_FILE_PATH_PREF = "trace.control.log.path"; //$NON-NLS-1$
53 /**
54 * The verbose level preference
55 */
56 public static final String TRACE_CONTROL_VERBOSE_LEVEL_PREF = "trace.control.verbose.level"; //$NON-NLS-1$
57 /**
58 * The verbose level value for none
59 */
60 public static final String TRACE_CONTROL_VERBOSE_LEVEL_NONE = "trace.control.verbose.level.none"; //$NON-NLS-1$
61 /**
62 * The verbose level value for level 1 (-v)
63 */
64 public static final String TRACE_CONTROL_VERBOSE_LEVEL_VERBOSE = "trace.control.verbose.level.v"; //$NON-NLS-1$
65 /**
66 * The verbose level value for level 2 (-vv)
67 */
68 public static final String TRACE_CONTROL_VERBOSE_LEVEL_V_VERBOSE = "trace.control.verbose.level.vv"; //$NON-NLS-1$
69 /**
70 * The verbose level value for level 3 (-vvv)
71 */
72 public static final String TRACE_CONTROL_VERBOSE_LEVEL_V_V_VERBOSE = "trace.control.verbose.level.vvv"; //$NON-NLS-1$
73 /**
74 * The default tracing group
75 */
76 public static final String TRACE_CONTROL_DEFAULT_TRACING_GROUP = "tracing"; //$NON-NLS-1$
77 /**
78 * The default tracing log file name with absolute path
79 */
80 public static final String TRACE_CONTROL_DEFAULT_LOG_PATH = System.getProperty("user.home") + File.separator + TRACE_CONTROL_LOG_FILENAME; //$NON-NLS-1$
81
82 // ------------------------------------------------------------------------
83 // Attributes
84 // ------------------------------------------------------------------------
85 /**
86 * The trace control preferences singleton instance.
87 */
88 private static ControlPreferences fInstance = null;
89 /**
90 * The preference store reference
91 */
92 private IPreferenceStore fPreferenceStore = null;
93
94 // ------------------------------------------------------------------------
95 // Constructor
96 // ------------------------------------------------------------------------
97 /**
98 * Private constructor
99 */
100 private ControlPreferences() {
101 }
102
103 // ------------------------------------------------------------------------
104 // Accessors
105 // ------------------------------------------------------------------------
106 /**
107 * Returns the trace control preferences singleton instance
108 *
109 * @return the trace control preferences singleton instance
110 */
111 public synchronized static ControlPreferences getInstance() {
112 if (fInstance == null) {
113 fInstance = new ControlPreferences();
114 }
115 return fInstance;
116 }
117
118 /**
119 * @return the preference store
120 */
121 public IPreferenceStore getPreferenceStore() {
122 return fPreferenceStore;
123 }
124
125 /**
126 * @return true if tracing group is set to default
127 */
128 public boolean isDefaultTracingGroup() {
129 return fPreferenceStore.getString(TRACE_CONTROL_TRACING_GROUP_PREF).equals(fPreferenceStore.getDefaultString(TRACE_CONTROL_TRACING_GROUP_PREF));
130 }
131
132 /**
133 * @return value of tracing group preference
134 */
135 public String getTracingGroup() {
136 return fPreferenceStore.getString(TRACE_CONTROL_TRACING_GROUP_PREF);
137 }
138
139 /**
140 * @return whether is logging is enabled
141 */
142 public boolean isLoggingEnabled() {
143 return fPreferenceStore.getBoolean(TRACE_CONTROL_LOG_COMMANDS_PREF);
144 }
145
146 /**
147 * @return whether an existing log file will appended or not
148 */
149 public boolean isAppend() {
150 return fPreferenceStore.getBoolean(ControlPreferences.TRACE_CONTROL_LOG_APPEND_PREF);
151 }
152
153 /**
154 * @return verbose level preference
155 */
156 public String getVerboseLevel() {
157 return fPreferenceStore.getString(TRACE_CONTROL_VERBOSE_LEVEL_PREF);
158 }
159
160 /**
161 * @return absolute log file path
162 */
163 public String getLogfilePath() {
164 return fPreferenceStore.getString(TRACE_CONTROL_LOG_FILE_PATH_PREF);
165 }
166
167 // ------------------------------------------------------------------------
168 // Operations
169 // ------------------------------------------------------------------------
170 /**
171 * Initializes the control preferences (e.g. enable open log file)
172 */
173 public void init(IPreferenceStore preferenceStore) {
174 fPreferenceStore = preferenceStore;
175
176 if (fPreferenceStore.getBoolean(ControlPreferences.TRACE_CONTROL_LOG_COMMANDS_PREF)) {
177 ControlCommandLogger.init(getLogfilePath(), isAppend());
178 }
179 }
180
181 /**
182 * Disposes any resource (e.g. close log file).
183 */
184 public void dispose() {
185 ControlCommandLogger.close();
186 }
187 }
This page took 0.035012 seconds and 5 git commands to generate.