1 /**********************************************************************
2 * Copyright (c) 2012, 2014 Ericsson
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
10 * Bernd Hufmann - Initial API and implementation
11 * Bernd Hufmann - Updated for support of LTTng Tools 2.1
12 **********************************************************************/
13 package org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
;
15 import java
.util
.List
;
17 import org
.eclipse
.core
.commands
.ExecutionException
;
18 import org
.eclipse
.core
.runtime
.IProgressMonitor
;
19 import org
.eclipse
.swt
.graphics
.Image
;
20 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.TraceDomainType
;
21 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.IEventInfo
;
22 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.LogLevelType
;
23 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.TraceEnablement
;
24 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.TraceEventType
;
25 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.TraceLogLevel
;
26 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.impl
.EventInfo
;
27 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.Activator
;
28 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.messages
.Messages
;
29 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.ITraceControlComponent
;
30 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.property
.TraceEventPropertySource
;
31 import org
.eclipse
.ui
.views
.properties
.IPropertySource
;
36 * Implementation of the trace channel component.
39 * @author Bernd Hufmann
41 public class TraceEventComponent
extends TraceControlComponent
{
42 // ------------------------------------------------------------------------
44 // ------------------------------------------------------------------------
46 * Path to icon file for this component (enabled state).
48 public static final String TRACE_EVENT_ICON_FILE_ENABLED
= "icons/obj16/event_enabled.gif"; //$NON-NLS-1$
50 * Path to icon file for this component (disabled state).
52 public static final String TRACE_EVENT_ICON_FILE_DISABLED
= "icons/obj16/event_disabled.gif"; //$NON-NLS-1$
54 // ------------------------------------------------------------------------
56 // ------------------------------------------------------------------------
58 * The event information.
60 protected IEventInfo fEventInfo
= null;
62 * The image to be displayed when in disabled state.
64 private Image fDisabledImage
= null;
66 // ------------------------------------------------------------------------
68 // ------------------------------------------------------------------------
71 * @param name - the name of the component.
72 * @param parent - the parent of this component.
74 public TraceEventComponent(String name
, ITraceControlComponent parent
) {
76 setImage(TRACE_EVENT_ICON_FILE_ENABLED
);
77 setToolTip(Messages
.TraceControl_EventDisplayName
);
78 fEventInfo
= new EventInfo(name
);
79 fDisabledImage
= Activator
.getDefault().loadIcon(TRACE_EVENT_ICON_FILE_DISABLED
);
82 // ------------------------------------------------------------------------
84 // ------------------------------------------------------------------------
87 public Image
getImage() {
88 if (fEventInfo
.getState() == TraceEnablement
.DISABLED
) {
89 return fDisabledImage
;
91 return super.getImage();
95 * Sets the event information.
96 * @param eventInfo - the event information to set.
98 public void setEventInfo(IEventInfo eventInfo
) {
99 fEventInfo
= eventInfo
;
103 * @return the trace event type
105 public TraceEventType
getEventType() {
106 return fEventInfo
.getEventType();
110 * Sets the trace event type to the given type
111 * @param type - type to set
113 public void setEventType(TraceEventType type
) {
114 fEventInfo
.setEventType(type
);
118 * Sets the trace event type to the type specified by the given name.
119 * @param typeName - event type name
121 public void setEventType(String typeName
) {
122 fEventInfo
.setEventType(typeName
);
126 * @return the event state (enabled or disabled).
128 public TraceEnablement
getState() {
129 return fEventInfo
.getState();
133 * Sets the event state (enablement) to the given value.
134 * @param state - state to set.
136 public void setState(TraceEnablement state
) {
137 fEventInfo
.setState(state
);
141 * Sets the event state (enablement) to the value specified by the given name.
142 * @param stateName - state to set.
144 public void setState(String stateName
) {
145 fEventInfo
.setState(stateName
);
149 * @return the trace event log level
151 public TraceLogLevel
getLogLevel() {
152 return fEventInfo
.getLogLevel();
156 * Sets the trace event log level to the given level
157 * @param level - event log level to set
159 public void setLogLevel(TraceLogLevel level
) {
160 fEventInfo
.setLogLevel(level
);
164 * Sets the trace event log level to the level specified by the given name.
165 * @param levelName - event log level name
167 public void setLogLevel(String levelName
) {
168 fEventInfo
.setLogLevel(levelName
);
172 * Returns filter expression.
173 * @return filter expression
175 public String
getFilterExpression() {
176 return fEventInfo
.getFilterExpression();
180 * Sets the filter expression.
181 * @param filter The filter expression to set
183 public void setFilterExpression(String filter
) {
184 fEventInfo
.setFilterExpression(filter
);
188 * Returns excluded events.
189 * @return excluded events
191 public String
getExcludedEvents() {
192 return fEventInfo
.getExcludedEvents();
196 * Sets the excluded events.
197 * @param events The excluded events to set
199 public void setExcludedEvents(String events
) {
200 fEventInfo
.setExcludedEvents(events
);
204 * Returns the log level type
205 * @return event log level type
207 public LogLevelType
getLogLevelType() {
208 return fEventInfo
.getLogLevelType();
212 * Sets the trace event log level type to the given level type
213 * @param levelType - event log level type to set
215 public void setLogLevelType(LogLevelType levelType
) {
216 fEventInfo
.setLogLevelType(levelType
);
220 public <T
> T
getAdapter(Class
<T
> adapter
) {
221 if (adapter
== IPropertySource
.class) {
222 return adapter
.cast(new TraceEventPropertySource(this));
228 * @return target node component.
230 public TargetNodeComponent
getTargetNode() {
231 return ((TraceChannelComponent
)getParent()).getTargetNode();
235 * @return session name from parent
237 public String
getSessionName() {
238 return ((TraceChannelComponent
)getParent()).getSessionName();
242 * @return session from parent
244 public TraceSessionComponent
getSession() {
245 return ((TraceChannelComponent
)getParent()).getSession();
249 * @return channel name from parent
251 public String
getChannelName() {
252 return getParent().getName();
256 * @return the domain type ({@link TraceDomainType})
258 public TraceDomainType
getDomain() {
259 return ((TraceChannelComponent
)getParent()).getDomain();
262 // ------------------------------------------------------------------------
264 // ------------------------------------------------------------------------
267 * Add contexts to given channels and or events
270 * - a list of contexts to add
272 * - a progress monitor
273 * @throws ExecutionException
274 * If the command fails
276 public void addContexts(List
<String
> contexts
, IProgressMonitor monitor
)
277 throws ExecutionException
{
278 getControlService().addContexts(getSessionName(), getChannelName(),
279 getName(), getDomain(), contexts
, monitor
);