Commit | Line | Data |
---|---|---|
a20452b1 BR |
1 | /********************************************************************** |
2 | * Copyright (c) 2016 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 | * Bruno Roy - Initial API and implementation | |
11 | **********************************************************************/ | |
12 | package org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl; | |
13 | ||
14 | import org.eclipse.swt.graphics.Image; | |
15 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.ILoggerInfo; | |
74fe9bdd | 16 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.ITraceLogLevel; |
a20452b1 BR |
17 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.LogLevelType; |
18 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceDomainType; | |
19 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEnablement; | |
a20452b1 BR |
20 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.LoggerInfo; |
21 | import org.eclipse.tracecompass.internal.lttng2.control.ui.Activator; | |
22 | import org.eclipse.tracecompass.internal.lttng2.control.ui.views.messages.Messages; | |
23 | import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.ITraceControlComponent; | |
24 | import org.eclipse.tracecompass.internal.lttng2.control.ui.views.property.TraceLoggerPropertySource; | |
25 | import org.eclipse.ui.views.properties.IPropertySource; | |
26 | ||
27 | /** | |
28 | * Implementation of the trace Logger component. | |
29 | * | |
30 | * @author Bruno Roy | |
31 | */ | |
32 | public class TraceLoggerComponent extends TraceControlComponent { | |
33 | ||
34 | // ------------------------------------------------------------------------ | |
35 | // Constants | |
36 | // ------------------------------------------------------------------------ | |
37 | /** | |
38 | * Path to icon file for this component (enabled state). | |
39 | */ | |
40 | public static final String TRACE_LOGGER_ICON_FILE_ENABLED = "icons/obj16/logger_enabled.gif"; //$NON-NLS-1$ | |
41 | /** | |
42 | * Path to icon file for this component (disabled state). | |
43 | */ | |
44 | public static final String TRACE_LOGGER_ICON_FILE_DISABLED = "icons/obj16/logger_disabled.gif"; //$NON-NLS-1$ | |
45 | ||
46 | // ------------------------------------------------------------------------ | |
47 | // Attributes | |
48 | // ------------------------------------------------------------------------ | |
49 | /** | |
50 | * The logger information. | |
51 | */ | |
52 | protected ILoggerInfo fLoggerInfo = null; | |
53 | /** | |
54 | * The image to be displayed when in disabled state. | |
55 | */ | |
56 | private Image fDisabledImage = null; | |
57 | ||
58 | // ------------------------------------------------------------------------ | |
59 | // Constructors | |
60 | // ------------------------------------------------------------------------ | |
61 | ||
62 | /** | |
63 | * Constructor | |
64 | * | |
65 | * @param name | |
66 | * the name of the component. | |
67 | * @param parent | |
68 | * the parent component. | |
69 | */ | |
70 | public TraceLoggerComponent(String name, ITraceControlComponent parent) { | |
71 | super(name, parent); | |
72 | setImage(TRACE_LOGGER_ICON_FILE_ENABLED); | |
73 | setToolTip(Messages.TraceControl_LoggerDisplayName); | |
74 | fLoggerInfo = new LoggerInfo(name); | |
75 | fDisabledImage = Activator.getDefault().loadIcon(TRACE_LOGGER_ICON_FILE_DISABLED); | |
76 | } | |
77 | ||
78 | // ------------------------------------------------------------------------ | |
79 | // Accessors | |
80 | // ------------------------------------------------------------------------ | |
81 | ||
82 | @Override | |
83 | public <T> T getAdapter(Class<T> adapter) { | |
84 | if (adapter == IPropertySource.class) { | |
85 | return adapter.cast(new TraceLoggerPropertySource(this)); | |
86 | } | |
87 | return null; | |
88 | } | |
89 | ||
90 | /** | |
91 | * Sets the logger information. | |
92 | * | |
93 | * @param loggerInfo | |
94 | * the logger information to set. | |
95 | */ | |
96 | public void setLoggerInfo(ILoggerInfo loggerInfo) { | |
97 | fLoggerInfo = loggerInfo; | |
98 | } | |
99 | ||
100 | @Override | |
101 | public Image getImage() { | |
102 | if (fLoggerInfo.getState() == TraceEnablement.DISABLED) { | |
103 | return fDisabledImage; | |
104 | } | |
105 | return super.getImage(); | |
106 | } | |
107 | ||
108 | /** | |
109 | * @return the logger state (enabled or disabled). | |
110 | */ | |
111 | public TraceEnablement getState() { | |
112 | return fLoggerInfo.getState(); | |
113 | } | |
114 | ||
115 | /** | |
116 | * Sets the logger state (enablement) to the given value. | |
117 | * | |
118 | * @param state | |
119 | * state to set. | |
120 | */ | |
121 | public void setState(TraceEnablement state) { | |
122 | fLoggerInfo.setState(state); | |
123 | } | |
124 | ||
125 | /** | |
126 | * Sets the logger state (enablement) to the value specified by the given | |
127 | * name. | |
128 | * | |
129 | * @param stateName | |
130 | * state to set. | |
131 | */ | |
132 | public void setState(String stateName) { | |
133 | fLoggerInfo.setState(stateName); | |
134 | } | |
135 | ||
136 | /** | |
137 | * @return the trace logger log level | |
138 | */ | |
74fe9bdd | 139 | public ITraceLogLevel getLogLevel() { |
a20452b1 BR |
140 | return fLoggerInfo.getLogLevel(); |
141 | } | |
142 | ||
143 | /** | |
144 | * Sets the trace logger log level to the given level | |
145 | * | |
146 | * @param level | |
147 | * logger log level to set | |
148 | */ | |
74fe9bdd | 149 | public void setLogLevel(ITraceLogLevel level) { |
a20452b1 BR |
150 | fLoggerInfo.setLogLevel(level); |
151 | } | |
152 | ||
153 | /** | |
154 | * Sets the trace logger log level to the level specified by the given name. | |
155 | * | |
156 | * @param levelName | |
157 | * logger log level name | |
158 | */ | |
159 | public void setLogLevel(String levelName) { | |
160 | fLoggerInfo.setLogLevel(levelName); | |
161 | } | |
162 | ||
163 | /** | |
164 | * Returns the log level type | |
165 | * | |
166 | * @return logger log level type | |
167 | */ | |
168 | public LogLevelType getLogLevelType() { | |
169 | return fLoggerInfo.getLogLevelType(); | |
170 | } | |
171 | ||
172 | /** | |
173 | * Sets the trace logger log level type to the given level type | |
174 | * | |
175 | * @param levelType | |
176 | * logger log level type to set | |
177 | */ | |
178 | public void setLogLevelType(LogLevelType levelType) { | |
179 | fLoggerInfo.setLogLevelType(levelType); | |
180 | } | |
181 | ||
182 | /** | |
183 | * @return target node component. | |
184 | */ | |
185 | public TargetNodeComponent getTargetNode() { | |
186 | return ((TraceDomainComponent) getParent()).getTargetNode(); | |
187 | } | |
188 | ||
189 | /** | |
190 | * @return session name from parent | |
191 | */ | |
192 | public String getSessionName() { | |
193 | return ((TraceDomainComponent) getParent()).getSessionName(); | |
194 | } | |
195 | ||
196 | /** | |
197 | * @return session from parent | |
198 | */ | |
199 | public TraceSessionComponent getSession() { | |
200 | return ((TraceDomainComponent) getParent()).getSession(); | |
201 | } | |
202 | ||
203 | /** | |
204 | * @return the domain type ({@link TraceDomainType}) | |
205 | */ | |
206 | public TraceDomainType getDomain() { | |
207 | return ((TraceDomainComponent) getParent()).getDomain(); | |
208 | } | |
209 | } |