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
.property
;
14 import java
.util
.ArrayList
;
15 import java
.util
.List
;
17 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.LogLevelType
;
18 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.TraceJulLogLevel
;
19 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.TraceLog4jLogLevel
;
20 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.messages
.Messages
;
21 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
.TraceLoggerComponent
;
22 import org
.eclipse
.tracecompass
.tmf
.ui
.properties
.ReadOnlyTextPropertyDescriptor
;
23 import org
.eclipse
.ui
.views
.properties
.IPropertyDescriptor
;
26 * Property source implementation for the trace logger component.
30 public class TraceLoggerPropertySource
extends BasePropertySource
{
32 // ------------------------------------------------------------------------
34 // ------------------------------------------------------------------------
36 * The trace logger 'name' property ID.
38 public static final String TRACE_LOGGER_NAME_PROPERTY_ID
= "trace.logger.name"; //$NON-NLS-1$
40 * The trace logger 'log level' property ID.
42 public static final String TRACE_LOGGER_LOGLEVEL_PROPERTY_ID
= "trace.logger.loglevel"; //$NON-NLS-1$
44 * The trace logger 'state' property ID.
46 public static final String TRACE_LOGGER_STATE_PROPERTY_ID
= "trace.logger.state"; //$NON-NLS-1$
49 * The trace logger 'name' property name.
51 public static final String TRACE_LOGGER_NAME_PROPERTY_NAME
= Messages
.TraceControl_LoggerNamePropertyName
;
53 * The trace logger 'log level' property name.
55 public static final String TRACE_LOGGER_LOGLEVEL_PROPERTY_NAME
= Messages
.TraceControl_LogLevelPropertyName
;
57 * The trace logger 'state' property name.
59 public static final String TRACE_LOGGER_STATE_PROPERTY_NAME
= Messages
.TraceControl_StatePropertyName
;
61 // ------------------------------------------------------------------------
63 // ------------------------------------------------------------------------
66 * The logger component which this property source is for.
68 protected final TraceLoggerComponent fLogger
;
70 // ------------------------------------------------------------------------
72 // ------------------------------------------------------------------------
78 * the base logger component
80 public TraceLoggerPropertySource(TraceLoggerComponent component
) {
84 // ------------------------------------------------------------------------
86 // ------------------------------------------------------------------------
89 public IPropertyDescriptor
[] getPropertyDescriptors() {
90 List
<IPropertyDescriptor
> list
= new ArrayList
<>();
91 list
.add(new ReadOnlyTextPropertyDescriptor(TRACE_LOGGER_NAME_PROPERTY_ID
, TRACE_LOGGER_NAME_PROPERTY_NAME
));
92 list
.add(new ReadOnlyTextPropertyDescriptor(TRACE_LOGGER_STATE_PROPERTY_ID
, TRACE_LOGGER_STATE_PROPERTY_NAME
));
93 if (!fLogger
.getLogLevel().equals(TraceJulLogLevel
.LEVEL_UNKNOWN
) || !fLogger
.getLogLevel().equals(TraceLog4jLogLevel
.LEVEL_UNKNOWN
)) {
94 list
.add(new ReadOnlyTextPropertyDescriptor(TRACE_LOGGER_LOGLEVEL_PROPERTY_ID
, TRACE_LOGGER_LOGLEVEL_PROPERTY_NAME
));
96 return list
.toArray(new IPropertyDescriptor
[list
.size()]);
100 public Object
getPropertyValue(Object id
) {
101 if (TRACE_LOGGER_NAME_PROPERTY_ID
.equals(id
)) {
102 return fLogger
.getName();
103 } else if (TRACE_LOGGER_LOGLEVEL_PROPERTY_ID
.equals(id
)) {
104 StringBuffer buffer
= new StringBuffer();
105 if (!fLogger
.getLogLevelType().equals(LogLevelType
.LOGLEVEL_NONE
) &&
106 !fLogger
.getLogLevelType().equals(LogLevelType
.LOGLEVEL_ALL
)) {
107 buffer
.append(fLogger
.getLogLevelType().getShortName()).append(" "); //$NON-NLS-1$
109 buffer
.append(fLogger
.getLogLevel().getInName());
110 return buffer
.toString();
111 } else if (TRACE_LOGGER_STATE_PROPERTY_ID
.equals(id
)) {
112 return fLogger
.getState().name();