1 /**********************************************************************
2 * Copyright (c) 2016 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 * Bruno Roy - Initial API and implementation
11 **********************************************************************/
12 package org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
;
14 import org
.eclipse
.swt
.graphics
.Image
;
15 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.ILoggerInfo
;
16 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.ITraceLogLevel
;
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
;
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
;
28 * Implementation of the trace Logger component.
32 public class TraceLoggerComponent
extends TraceControlComponent
{
34 // ------------------------------------------------------------------------
36 // ------------------------------------------------------------------------
38 * Path to icon file for this component (enabled state).
40 public static final String TRACE_LOGGER_ICON_FILE_ENABLED
= "icons/obj16/logger_enabled.gif"; //$NON-NLS-1$
42 * Path to icon file for this component (disabled state).
44 public static final String TRACE_LOGGER_ICON_FILE_DISABLED
= "icons/obj16/logger_disabled.gif"; //$NON-NLS-1$
46 // ------------------------------------------------------------------------
48 // ------------------------------------------------------------------------
50 * The logger information.
52 protected ILoggerInfo fLoggerInfo
= null;
54 * The image to be displayed when in disabled state.
56 private Image fDisabledImage
= null;
58 // ------------------------------------------------------------------------
60 // ------------------------------------------------------------------------
66 * the name of the component.
68 * the parent component.
70 public TraceLoggerComponent(String name
, ITraceControlComponent 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
);
78 // ------------------------------------------------------------------------
80 // ------------------------------------------------------------------------
83 public <T
> T
getAdapter(Class
<T
> adapter
) {
84 if (adapter
== IPropertySource
.class) {
85 return adapter
.cast(new TraceLoggerPropertySource(this));
91 * Sets the logger information.
94 * the logger information to set.
96 public void setLoggerInfo(ILoggerInfo loggerInfo
) {
97 fLoggerInfo
= loggerInfo
;
101 public Image
getImage() {
102 if (fLoggerInfo
.getState() == TraceEnablement
.DISABLED
) {
103 return fDisabledImage
;
105 return super.getImage();
109 * @return the logger state (enabled or disabled).
111 public TraceEnablement
getState() {
112 return fLoggerInfo
.getState();
116 * Sets the logger state (enablement) to the given value.
121 public void setState(TraceEnablement state
) {
122 fLoggerInfo
.setState(state
);
126 * Sets the logger state (enablement) to the value specified by the given
132 public void setState(String stateName
) {
133 fLoggerInfo
.setState(stateName
);
137 * @return the trace logger log level
139 public ITraceLogLevel
getLogLevel() {
140 return fLoggerInfo
.getLogLevel();
144 * Sets the trace logger log level to the given level
147 * logger log level to set
149 public void setLogLevel(ITraceLogLevel level
) {
150 fLoggerInfo
.setLogLevel(level
);
154 * Sets the trace logger log level to the level specified by the given name.
157 * logger log level name
159 public void setLogLevel(String levelName
) {
160 fLoggerInfo
.setLogLevel(levelName
);
164 * Returns the log level type
166 * @return logger log level type
168 public LogLevelType
getLogLevelType() {
169 return fLoggerInfo
.getLogLevelType();
173 * Sets the trace logger log level type to the given level type
176 * logger log level type to set
178 public void setLogLevelType(LogLevelType levelType
) {
179 fLoggerInfo
.setLogLevelType(levelType
);
183 * @return target node component.
185 public TargetNodeComponent
getTargetNode() {
186 return ((TraceDomainComponent
) getParent()).getTargetNode();
190 * @return session name from parent
192 public String
getSessionName() {
193 return ((TraceDomainComponent
) getParent()).getSessionName();
197 * @return session from parent
199 public TraceSessionComponent
getSession() {
200 return ((TraceDomainComponent
) getParent()).getSession();
204 * @return the domain type ({@link TraceDomainType})
206 public TraceDomainType
getDomain() {
207 return ((TraceDomainComponent
) getParent()).getDomain();