* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Bernd Hufmann - Initial API and implementation
- * Bernd Hufmann - Updated for support of LTTng Tools 2.1
+ * Bernd Hufmann - Initial API and implementation
+ * Bernd Hufmann - Updated for support of LTTng Tools 2.1
**********************************************************************/
package org.eclipse.linuxtools.internal.lttng2.ui.views.control.property;
import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceLogLevel;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.messages.Messages;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.BaseEventComponent;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
/**
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Bernd Hufmann - Initial API and implementation
+ * Bernd Hufmann - Initial API and implementation
**********************************************************************/
package org.eclipse.linuxtools.internal.lttng2.ui.views.control.property;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.messages.Messages;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.KernelProviderComponent;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
/**
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Bernd Hufmann - Initial API and implementation
+ * Bernd Hufmann - Initial API and implementation
**********************************************************************/
package org.eclipse.linuxtools.internal.lttng2.ui.views.control.property;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.messages.Messages;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TargetNodeComponent;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
/**
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Bernd Hufmann - Initial API and implementation
+ * Bernd Hufmann - Initial API and implementation
**********************************************************************/
package org.eclipse.linuxtools.internal.lttng2.ui.views.control.property;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.messages.Messages;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceChannelComponent;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
/**
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Bernd Hufmann - Initial API and implementation
+ * Bernd Hufmann - Initial API and implementation
**********************************************************************/
package org.eclipse.linuxtools.internal.lttng2.ui.views.control.property;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.messages.Messages;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceDomainComponent;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
/**
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Bernd Hufmann - Initial API and implementation
- * Bernd Hufmann - Updated for support of LTTng Tools 2.1
+ * Bernd Hufmann - Initial API and implementation
+ * Bernd Hufmann - Updated for support of LTTng Tools 2.1
**********************************************************************/
package org.eclipse.linuxtools.internal.lttng2.ui.views.control.property;
import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceLogLevel;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.messages.Messages;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceEventComponent;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
/**
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Bernd Hufmann - Initial API and implementation
+ * Bernd Hufmann - Initial API and implementation
**********************************************************************/
package org.eclipse.linuxtools.internal.lttng2.ui.views.control.property;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.messages.Messages;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceEventComponent;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceProbeEventComponent;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
/**
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Bernd Hufmann - Initial API and implementation
+ * Bernd Hufmann - Initial API and implementation
**********************************************************************/
package org.eclipse.linuxtools.internal.lttng2.ui.views.control.property;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.messages.Messages;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceSessionComponent;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
/**
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Bernd Hufmann - Initial API and implementation
+ * Bernd Hufmann - Initial API and implementation
**********************************************************************/
package org.eclipse.linuxtools.internal.lttng2.ui.views.control.property;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.messages.Messages;
import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.UstProviderComponent;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
/**
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources,
- org.eclipse.jface,
- org.eclipse.ui.views,
org.eclipse.linuxtools.ctf.core;bundle-version="2.0.0"
Export-Package: org.eclipse.linuxtools.internal.tmf.core;x-friends:="org.eclipse.linuxtools.tmf.core.tests",
org.eclipse.linuxtools.internal.tmf.core.component;x-friends:="org.eclipse.linuxtools.tmf.core.tests",
/*******************************************************************************
- * Copyright (c) 2011-2013 Ericsson
+ * Copyright (c) 2011, 2013 Ericsson
*
* All rights reserved. This program and the accompanying materials are made
* available under the terms of the Eclipse Public License v1.0 which
import org.eclipse.linuxtools.tmf.core.event.ITmfEventType;
import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventPropertySource;
import org.eclipse.linuxtools.tmf.core.event.lookup.ITmfModelLookup;
import org.eclipse.linuxtools.tmf.core.event.lookup.ITmfSourceLookup;
import org.eclipse.linuxtools.tmf.core.trace.ITmfContext;
-import org.eclipse.ui.views.properties.IPropertySource;
/**
* A wrapper class around CTF's Event Definition/Declaration that maps all
return getCustomAttribute(CtfConstants.MODEL_URI_KEY);
}
- /**
- * @since 2.0
- */
- @Override
- public Object getAdapter(Class adapter) {
- if (adapter == IPropertySource.class) {
- return new TmfEventPropertySource(this);
- }
- return null;
- }
}
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Francois Chouinard - Initial API and implementation
- * Francois Chouinard - Updated as per TMF Event Model 1.0
- * Alexandre Montplaisir - Made immutable
+ * Francois Chouinard - Initial API and implementation
+ * Francois Chouinard - Updated as per TMF Event Model 1.0
+ * Alexandre Montplaisir - Made immutable
*******************************************************************************/
package org.eclipse.linuxtools.tmf.core.event;
+import org.eclipse.core.runtime.PlatformObject;
import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp;
import org.eclipse.linuxtools.tmf.core.trace.ITmfContext;
import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
-import org.eclipse.ui.views.properties.IPropertySource;
/**
* A basic implementation of ITmfEvent.
* @see ITmfEventType
* @see ITmfEventField
* @see ITmfTrace
-*/
-public class TmfEvent implements ITmfEvent {
+ */
+public class TmfEvent extends PlatformObject implements ITmfEvent {
// ------------------------------------------------------------------------
// Attributes
+ "]";
}
- /**
- * @since 2.0
- */
- @Override
- public Object getAdapter(Class adapter) {
- if (adapter == IPropertySource.class) {
- return new TmfEventPropertySource(this);
- }
- return null;
- }
}
+++ /dev/null
-/*******************************************************************************
- * Copyright (c) 2012, 2013 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Patrick Tasse - Initial API and implementation
- * Bernd Hufmann - Added call site and model URI properties
- *******************************************************************************/
-
-package org.eclipse.linuxtools.tmf.core.event;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.linuxtools.tmf.core.event.lookup.ITmfModelLookup;
-import org.eclipse.linuxtools.tmf.core.event.lookup.ITmfSourceLookup;
-import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-
-/**
- * Property source for events
- *
- * @since 2.0
- */
-public class TmfEventPropertySource implements IPropertySource {
-
- private static final String ID_TIMESTAMP = "event_timestamp"; //$NON-NLS-1$
- private static final String ID_SOURCE = "event_source"; //$NON-NLS-1$
- private static final String ID_TYPE = "event_type"; //$NON-NLS-1$
- private static final String ID_REFERENCE = "event_reference"; //$NON-NLS-1$
- private static final String ID_CONTENT = "event_content"; //$NON-NLS-1$
- private static final String ID_SOURCE_LOOKUP = "event_lookup"; //$NON-NLS-1$
- private static final String ID_MODEL_URI = "model_uri"; //$NON-NLS-1$
- private static final String ID_CUSTOM_ATTRIBUTE = "custom_attribute"; //$NON-NLS-1$
-
- private static final String NAME_TIMESTAMP = "Timestamp"; //$NON-NLS-1$
- private static final String NAME_SOURCE = "Source"; //$NON-NLS-1$
- private static final String NAME_TYPE = "Type"; //$NON-NLS-1$
- private static final String NAME_REFERENCE = "Reference"; //$NON-NLS-1$
- private static final String NAME_CONTENT = "Content"; //$NON-NLS-1$
- private static final String NAME_SOURCE_LOOKUP = "Source Lookup"; //$NON-NLS-1$
- private static final String NAME_MODEL_URI = "Model URI"; //$NON-NLS-1$
- private static final String NAME_CUSTOM_ATTRIBUTES = "Custom Attributes"; //$NON-NLS-1$
-
- private static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
- private ITmfEvent fEvent;
-
- private class TimestampPropertySource implements IPropertySource {
- private static final String ID_TIMESTAMP_VALUE = "timestamp_value"; //$NON-NLS-1$
- private static final String ID_TIMESTAMP_SCALE = "timestamp_scale"; //$NON-NLS-1$
- private static final String ID_TIMESTAMP_PRECISION = "timestamp_precision"; //$NON-NLS-1$
- private static final String NAME_TIMESTAMP_VALUE = "value"; //$NON-NLS-1$
- private static final String NAME_TIMESTAMP_SCALE = "scale"; //$NON-NLS-1$
- private static final String NAME_TIMESTAMP_PRECISION = "precision"; //$NON-NLS-1$
-
- private ITmfTimestamp fTimestamp;
-
- public TimestampPropertySource(ITmfTimestamp timestamp) {
- fTimestamp = timestamp;
- }
-
- @Override
- public Object getEditableValue() {
- return fTimestamp.toString();
- }
-
- @Override
- public IPropertyDescriptor[] getPropertyDescriptors() {
- IPropertyDescriptor[] descriptors = new IPropertyDescriptor[3];
- descriptors[0] = new ReadOnlyTextPropertyDescriptor(ID_TIMESTAMP_VALUE, NAME_TIMESTAMP_VALUE);
- descriptors[1] = new ReadOnlyTextPropertyDescriptor(ID_TIMESTAMP_SCALE, NAME_TIMESTAMP_SCALE);
- descriptors[2] = new ReadOnlyTextPropertyDescriptor(ID_TIMESTAMP_PRECISION, NAME_TIMESTAMP_PRECISION);
- return descriptors;
- }
-
- @Override
- public Object getPropertyValue(Object id) {
- if (id.equals(ID_TIMESTAMP_VALUE)) {
- return Long.toString(fTimestamp.getValue());
- } else if (id.equals(ID_TIMESTAMP_SCALE)) {
- return Integer.toString(fTimestamp.getScale());
- } else if (id.equals(ID_TIMESTAMP_PRECISION)) {
- return Integer.toString(fTimestamp.getPrecision());
- }
- return null;
- }
-
- @Override
- public boolean isPropertySet(Object id) {
- return false;
- }
-
- @Override
- public void resetPropertyValue(Object id) {
- }
-
- @Override
- public void setPropertyValue(Object id, Object value) {
- }
- }
-
- private class ContentPropertySource implements IPropertySource {
- private ITmfEventField fContent;
-
- public ContentPropertySource(ITmfEventField content) {
- fContent = content;
- }
-
- @Override
- public Object getEditableValue() {
- return fContent.toString();
- }
-
- @Override
- public IPropertyDescriptor[] getPropertyDescriptors() {
- List<IPropertyDescriptor> descriptors= new ArrayList<IPropertyDescriptor>(fContent.getFields().length);
- for (ITmfEventField field : fContent.getFields()) {
- if (field != null) {
- descriptors.add(new ReadOnlyTextPropertyDescriptor(field, field.getName()));
- }
- }
- return descriptors.toArray(new IPropertyDescriptor[0]);
- }
-
- @Override
- public Object getPropertyValue(Object id) {
- ITmfEventField field = (ITmfEventField) id;
- if (field.getFields() != null && field.getFields().length > 0) {
- return new ContentPropertySource(field);
- }
- return field.getFormattedValue();
- }
-
- @Override
- public boolean isPropertySet(Object id) {
- return false;
- }
-
- @Override
- public void resetPropertyValue(Object id) {
- }
-
- @Override
- public void setPropertyValue(Object id, Object value) {
- }
- }
-
- private class SourceLookupPropertySource implements IPropertySource {
-
- private static final String ID_FILE_NAME = "callsite_file"; //$NON-NLS-1$
- private static final String ID_FUNCTION_NAME = "callsite_function"; //$NON-NLS-1$
- private static final String ID_LINE_NUMBER = "callsite_line"; //$NON-NLS-1$
-
- private static final String NAME_FILE_NAME = "File"; //$NON-NLS-1$
- private static final String NAME_FUNCTION_NAME = "Function"; //$NON-NLS-1$
- private static final String NAME_LINE_NUMBER = "Line"; //$NON-NLS-1$
-
- final private ITmfSourceLookup fSourceLookup;
-
- public SourceLookupPropertySource(ITmfSourceLookup lookup) {
- fSourceLookup = lookup;
- }
-
- @Override
- public Object getEditableValue() {
- if (fSourceLookup.getCallsite() != null) {
- return fSourceLookup.getCallsite().toString();
- }
- return null;
- }
-
- @Override
- public IPropertyDescriptor[] getPropertyDescriptors() {
- List<IPropertyDescriptor> descriptors= new ArrayList<IPropertyDescriptor>();
- if (fSourceLookup.getCallsite() != null) {
- descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_FILE_NAME, NAME_FILE_NAME));
- descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_LINE_NUMBER, NAME_LINE_NUMBER));
- // only display function if available
- if (fSourceLookup.getCallsite().getFunctionName() != null) {
- descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_FUNCTION_NAME, NAME_FUNCTION_NAME));
- }
- }
- return descriptors.toArray(new IPropertyDescriptor[0]);
- }
-
- @Override
- public Object getPropertyValue(Object id) {
- if (id.equals(ID_FILE_NAME)) {
- return fSourceLookup.getCallsite().getFileName();
- } else if (id.equals(ID_FUNCTION_NAME)) {
- return fSourceLookup.getCallsite().getFunctionName();
- } else if (id.equals(ID_LINE_NUMBER)) {
- return Long.valueOf(fSourceLookup.getCallsite().getLineNumber());
- }
- return null;
- }
-
- @Override
- public boolean isPropertySet(Object id) {
- return false;
- }
-
- @Override
- public void resetPropertyValue(Object id) {
-
- }
-
- @Override
- public void setPropertyValue(Object id, Object value) {
- }
- }
-
- private class CustomAttributePropertySource implements IPropertySource {
-
- private final ITmfCustomAttributes event;
-
- public CustomAttributePropertySource(ITmfCustomAttributes event) {
- this.event = event;
- }
-
- @Override
- public Object getEditableValue() {
- return EMPTY_STRING;
- }
-
- @Override
- public IPropertyDescriptor[] getPropertyDescriptors() {
- List<IPropertyDescriptor> descriptors = new ArrayList<IPropertyDescriptor>();
-
- for (String customAttribute : event.listCustomAttributes()) {
- descriptors.add(new ReadOnlyTextPropertyDescriptor(customAttribute, customAttribute));
- }
-
- return descriptors.toArray(new IPropertyDescriptor[0]);
- }
-
- @Override
- public Object getPropertyValue(Object id) {
- return event.getCustomAttribute((String) id);
- }
-
- @Override
- public boolean isPropertySet(Object id) {
- return false;
- }
-
- @Override
- public void resetPropertyValue(Object id) {
- }
-
- @Override
- public void setPropertyValue(Object id, Object value) {
- }
- }
-
- /**
- * Default constructor
- *
- * @param event the event
- */
- public TmfEventPropertySource(ITmfEvent event) {
- super();
- this.fEvent = event;
- }
-
- @Override
- public Object getEditableValue() {
- return null;
- }
-
- @Override
- public IPropertyDescriptor[] getPropertyDescriptors() {
- List<IPropertyDescriptor> descriptors= new ArrayList<IPropertyDescriptor>();
-
- /* Display basic event information */
- descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_TIMESTAMP, NAME_TIMESTAMP));
- descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_SOURCE, NAME_SOURCE));
- descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_TYPE, NAME_TYPE));
- descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_REFERENCE, NAME_REFERENCE));
-
- /* Display event fields */
- descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_CONTENT, NAME_CONTENT));
-
- /* Display source lookup information, if the event supplies it */
- if ((fEvent instanceof ITmfSourceLookup) && (((ITmfSourceLookup)fEvent).getCallsite() != null)) {
- descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_SOURCE_LOOKUP, NAME_SOURCE_LOOKUP));
- }
-
- /* Display Model URI information, if the event supplies it */
- if ((fEvent instanceof ITmfModelLookup) && (((ITmfModelLookup) fEvent).getModelUri() != null)) {
- descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_MODEL_URI, NAME_MODEL_URI));
- }
-
- /* Display custom attributes, if available */
- if (fEvent instanceof ITmfCustomAttributes) {
- ITmfCustomAttributes event = (ITmfCustomAttributes) fEvent;
- if (event.listCustomAttributes() != null && !event.listCustomAttributes().isEmpty()) {
- descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_CUSTOM_ATTRIBUTE, NAME_CUSTOM_ATTRIBUTES));
- }
- }
-
- return descriptors.toArray(new IPropertyDescriptor[0]);
- }
-
- @Override
- public Object getPropertyValue(Object id) {
- if (id.equals(ID_TIMESTAMP) && fEvent.getTimestamp() != null) {
- return new TimestampPropertySource(fEvent.getTimestamp());
- } else if (id.equals(ID_SOURCE) && fEvent.getSource() != null) {
- return fEvent.getSource().toString();
- } else if (id.equals(ID_TYPE) && fEvent.getType() != null) {
- return fEvent.getType().toString();
- } else if (id.equals(ID_REFERENCE) && fEvent.getReference() != null) {
- return fEvent.getReference().toString();
- } else if (id.equals(ID_MODEL_URI)) {
- return ((ITmfModelLookup)fEvent).getModelUri();
- } else if (id.equals(ID_SOURCE_LOOKUP)) {
- return new SourceLookupPropertySource(((ITmfSourceLookup)fEvent));
- } else if (id.equals(ID_CONTENT) && fEvent.getContent() != null) {
- return new ContentPropertySource(fEvent.getContent());
- } else if (id.equals(ID_CUSTOM_ATTRIBUTE)) {
- return new CustomAttributePropertySource((ITmfCustomAttributes) fEvent);
- }
- return null;
- }
-
- @Override
- public boolean isPropertySet(Object id) {
- return false;
- }
-
- @Override
- public void resetPropertyValue(Object id) {
- }
-
- @Override
- public void setPropertyValue(Object id, Object value) {
- }
-
-}
+++ /dev/null
-/*******************************************************************************
- * Copyright (c) 2013 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Alexandre Montplaisir - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.linuxtools.tmf.core.util;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * A uneditable version of a {@link TextPropertyDescriptor}.
- *
- * @author Alexandre Montplaisir
- * @since 2.0
- */
-public class ReadOnlyTextPropertyDescriptor extends PropertyDescriptor {
-
- /**
- * Creates an property descriptor with the given id and display name.
- *
- * @param id
- * The id of the property
- * @param displayName
- * The name to display for the property
- */
- public ReadOnlyTextPropertyDescriptor(Object id, String displayName) {
- super(id, displayName);
- }
-
- @Override
- public CellEditor createPropertyEditor(Composite parent) {
- CellEditor editor = new TextCellEditor(parent, SWT.READ_ONLY);
- if (getValidator() != null) {
- editor.setValidator(getValidator());
- }
- return editor;
- }
-
-}
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Francois Chouinard - Initial API and implementation
+ * Francois Chouinard - Initial API and implementation
*******************************************************************************/
package org.eclipse.linuxtools.internal.tmf.ui;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
import org.eclipse.linuxtools.tmf.ui.project.model.TmfTraceElement;
import org.eclipse.linuxtools.tmf.ui.properties.TmfTimePreferences;
+import org.eclipse.linuxtools.tmf.ui.viewers.events.TmfEventAdapterFactory;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
*/
private static Activator plugin;
+ private TmfEventAdapterFactory fTmfEventAdapterFactory;
+
// ------------------------------------------------------------------------
// Constructors
// ------------------------------------------------------------------------
TmfUiTracer.init();
TmfTraceElement.init();
TmfTimePreferences.init();
+
+ fTmfEventAdapterFactory = new TmfEventAdapterFactory();
+ Platform.getAdapterManager().registerAdapters(fTmfEventAdapterFactory, ITmfEvent.class);
}
@Override
public void stop(BundleContext context) throws Exception {
TmfUiTracer.stop();
plugin = null;
+
+ Platform.getAdapterManager().unregisterAdapters(fTmfEventAdapterFactory);
super.stop(context);
}
import org.eclipse.linuxtools.internal.tmf.ui.Activator;
import org.eclipse.linuxtools.tmf.core.TmfCommonConstants;
import org.eclipse.linuxtools.tmf.core.trace.TmfExperiment;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import java.util.Arrays;
import org.eclipse.core.resources.IFolder;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource2;
import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
import org.eclipse.linuxtools.tmf.core.trace.TmfTrace;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
import org.eclipse.linuxtools.tmf.ui.editors.TmfEventsEditor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.IActionFilter;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbench;
import java.util.List;
import org.eclipse.core.resources.IFolder;
-import org.eclipse.linuxtools.tmf.core.util.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource2;
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2013 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexandre Montplaisir - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.linuxtools.tmf.ui.properties;
+
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.views.properties.PropertyDescriptor;
+import org.eclipse.ui.views.properties.TextPropertyDescriptor;
+
+/**
+ * A uneditable version of a {@link TextPropertyDescriptor}.
+ *
+ * @author Alexandre Montplaisir
+ * @since 2.0
+ */
+public class ReadOnlyTextPropertyDescriptor extends PropertyDescriptor {
+
+ /**
+ * Creates an property descriptor with the given id and display name.
+ *
+ * @param id
+ * The id of the property
+ * @param displayName
+ * The name to display for the property
+ */
+ public ReadOnlyTextPropertyDescriptor(Object id, String displayName) {
+ super(id, displayName);
+ }
+
+ @Override
+ public CellEditor createPropertyEditor(Composite parent) {
+ CellEditor editor = new TextCellEditor(parent, SWT.READ_ONLY);
+ if (getValidator() != null) {
+ editor.setValidator(getValidator());
+ }
+ return editor;
+ }
+
+}
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2013 Ericsson
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Marc-Andre Laperle - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.tmf.ui.viewers.events;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
+import org.eclipse.ui.views.properties.IPropertySource;
+
+/**
+ * Implements basic UI support for TMF events.
+ *
+ * @since 2.0
+ */
+public class TmfEventAdapterFactory implements IAdapterFactory {
+
+ private static Class<?>[] PROPERTIES = new Class[] {
+ IPropertySource.class
+ };
+
+ @Override
+ public Class<?>[] getAdapterList() {
+ return PROPERTIES;
+ }
+
+ @Override
+ public Object getAdapter(Object element, Class key) {
+ ITmfEvent tmfEvent = (ITmfEvent) element;
+ if (IPropertySource.class.equals(key)) {
+ return new TmfEventPropertySource(tmfEvent);
+ }
+ return null;
+ }
+}
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2012, 2013 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Patrick Tasse - Initial API and implementation
+ * Bernd Hufmann - Added call site and model URI properties
+ *******************************************************************************/
+
+package org.eclipse.linuxtools.tmf.ui.viewers.events;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.linuxtools.tmf.core.event.ITmfCustomAttributes;
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
+import org.eclipse.linuxtools.tmf.core.event.lookup.ITmfModelLookup;
+import org.eclipse.linuxtools.tmf.core.event.lookup.ITmfSourceLookup;
+import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp;
+import org.eclipse.linuxtools.tmf.ui.properties.ReadOnlyTextPropertyDescriptor;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.IPropertySource;
+
+/**
+ * Property source for events
+ *
+ * @since 2.0
+ */
+public class TmfEventPropertySource implements IPropertySource {
+
+ private static final String ID_TIMESTAMP = "event_timestamp"; //$NON-NLS-1$
+ private static final String ID_SOURCE = "event_source"; //$NON-NLS-1$
+ private static final String ID_TYPE = "event_type"; //$NON-NLS-1$
+ private static final String ID_REFERENCE = "event_reference"; //$NON-NLS-1$
+ private static final String ID_CONTENT = "event_content"; //$NON-NLS-1$
+ private static final String ID_SOURCE_LOOKUP = "event_lookup"; //$NON-NLS-1$
+ private static final String ID_MODEL_URI = "model_uri"; //$NON-NLS-1$
+ private static final String ID_CUSTOM_ATTRIBUTE = "custom_attribute"; //$NON-NLS-1$
+
+ private static final String NAME_TIMESTAMP = "Timestamp"; //$NON-NLS-1$
+ private static final String NAME_SOURCE = "Source"; //$NON-NLS-1$
+ private static final String NAME_TYPE = "Type"; //$NON-NLS-1$
+ private static final String NAME_REFERENCE = "Reference"; //$NON-NLS-1$
+ private static final String NAME_CONTENT = "Content"; //$NON-NLS-1$
+ private static final String NAME_SOURCE_LOOKUP = "Source Lookup"; //$NON-NLS-1$
+ private static final String NAME_MODEL_URI = "Model URI"; //$NON-NLS-1$
+ private static final String NAME_CUSTOM_ATTRIBUTES = "Custom Attributes"; //$NON-NLS-1$
+
+ private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+
+ private ITmfEvent fEvent;
+
+ private class TimestampPropertySource implements IPropertySource {
+ private static final String ID_TIMESTAMP_VALUE = "timestamp_value"; //$NON-NLS-1$
+ private static final String ID_TIMESTAMP_SCALE = "timestamp_scale"; //$NON-NLS-1$
+ private static final String ID_TIMESTAMP_PRECISION = "timestamp_precision"; //$NON-NLS-1$
+ private static final String NAME_TIMESTAMP_VALUE = "value"; //$NON-NLS-1$
+ private static final String NAME_TIMESTAMP_SCALE = "scale"; //$NON-NLS-1$
+ private static final String NAME_TIMESTAMP_PRECISION = "precision"; //$NON-NLS-1$
+
+ private ITmfTimestamp fTimestamp;
+
+ public TimestampPropertySource(ITmfTimestamp timestamp) {
+ fTimestamp = timestamp;
+ }
+
+ @Override
+ public Object getEditableValue() {
+ return fTimestamp.toString();
+ }
+
+ @Override
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ IPropertyDescriptor[] descriptors = new IPropertyDescriptor[3];
+ descriptors[0] = new ReadOnlyTextPropertyDescriptor(ID_TIMESTAMP_VALUE, NAME_TIMESTAMP_VALUE);
+ descriptors[1] = new ReadOnlyTextPropertyDescriptor(ID_TIMESTAMP_SCALE, NAME_TIMESTAMP_SCALE);
+ descriptors[2] = new ReadOnlyTextPropertyDescriptor(ID_TIMESTAMP_PRECISION, NAME_TIMESTAMP_PRECISION);
+ return descriptors;
+ }
+
+ @Override
+ public Object getPropertyValue(Object id) {
+ if (id.equals(ID_TIMESTAMP_VALUE)) {
+ return Long.toString(fTimestamp.getValue());
+ } else if (id.equals(ID_TIMESTAMP_SCALE)) {
+ return Integer.toString(fTimestamp.getScale());
+ } else if (id.equals(ID_TIMESTAMP_PRECISION)) {
+ return Integer.toString(fTimestamp.getPrecision());
+ }
+ return null;
+ }
+
+ @Override
+ public boolean isPropertySet(Object id) {
+ return false;
+ }
+
+ @Override
+ public void resetPropertyValue(Object id) {
+ }
+
+ @Override
+ public void setPropertyValue(Object id, Object value) {
+ }
+ }
+
+ private class ContentPropertySource implements IPropertySource {
+ private ITmfEventField fContent;
+
+ public ContentPropertySource(ITmfEventField content) {
+ fContent = content;
+ }
+
+ @Override
+ public Object getEditableValue() {
+ return fContent.toString();
+ }
+
+ @Override
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ List<IPropertyDescriptor> descriptors= new ArrayList<IPropertyDescriptor>(fContent.getFields().length);
+ for (ITmfEventField field : fContent.getFields()) {
+ if (field != null) {
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(field, field.getName()));
+ }
+ }
+ return descriptors.toArray(new IPropertyDescriptor[0]);
+ }
+
+ @Override
+ public Object getPropertyValue(Object id) {
+ ITmfEventField field = (ITmfEventField) id;
+ if (field.getFields() != null && field.getFields().length > 0) {
+ return new ContentPropertySource(field);
+ }
+ return field.getFormattedValue();
+ }
+
+ @Override
+ public boolean isPropertySet(Object id) {
+ return false;
+ }
+
+ @Override
+ public void resetPropertyValue(Object id) {
+ }
+
+ @Override
+ public void setPropertyValue(Object id, Object value) {
+ }
+ }
+
+ private class SourceLookupPropertySource implements IPropertySource {
+
+ private static final String ID_FILE_NAME = "callsite_file"; //$NON-NLS-1$
+ private static final String ID_FUNCTION_NAME = "callsite_function"; //$NON-NLS-1$
+ private static final String ID_LINE_NUMBER = "callsite_line"; //$NON-NLS-1$
+
+ private static final String NAME_FILE_NAME = "File"; //$NON-NLS-1$
+ private static final String NAME_FUNCTION_NAME = "Function"; //$NON-NLS-1$
+ private static final String NAME_LINE_NUMBER = "Line"; //$NON-NLS-1$
+
+ final private ITmfSourceLookup fSourceLookup;
+
+ public SourceLookupPropertySource(ITmfSourceLookup lookup) {
+ fSourceLookup = lookup;
+ }
+
+ @Override
+ public Object getEditableValue() {
+ if (fSourceLookup.getCallsite() != null) {
+ return fSourceLookup.getCallsite().toString();
+ }
+ return null;
+ }
+
+ @Override
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ List<IPropertyDescriptor> descriptors= new ArrayList<IPropertyDescriptor>();
+ if (fSourceLookup.getCallsite() != null) {
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_FILE_NAME, NAME_FILE_NAME));
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_LINE_NUMBER, NAME_LINE_NUMBER));
+ // only display function if available
+ if (fSourceLookup.getCallsite().getFunctionName() != null) {
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_FUNCTION_NAME, NAME_FUNCTION_NAME));
+ }
+ }
+ return descriptors.toArray(new IPropertyDescriptor[0]);
+ }
+
+ @Override
+ public Object getPropertyValue(Object id) {
+ if (id.equals(ID_FILE_NAME)) {
+ return fSourceLookup.getCallsite().getFileName();
+ } else if (id.equals(ID_FUNCTION_NAME)) {
+ return fSourceLookup.getCallsite().getFunctionName();
+ } else if (id.equals(ID_LINE_NUMBER)) {
+ return Long.valueOf(fSourceLookup.getCallsite().getLineNumber());
+ }
+ return null;
+ }
+
+ @Override
+ public boolean isPropertySet(Object id) {
+ return false;
+ }
+
+ @Override
+ public void resetPropertyValue(Object id) {
+
+ }
+
+ @Override
+ public void setPropertyValue(Object id, Object value) {
+ }
+ }
+
+ private class CustomAttributePropertySource implements IPropertySource {
+
+ private final ITmfCustomAttributes event;
+
+ public CustomAttributePropertySource(ITmfCustomAttributes event) {
+ this.event = event;
+ }
+
+ @Override
+ public Object getEditableValue() {
+ return EMPTY_STRING;
+ }
+
+ @Override
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ List<IPropertyDescriptor> descriptors = new ArrayList<IPropertyDescriptor>();
+
+ for (String customAttribute : event.listCustomAttributes()) {
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(customAttribute, customAttribute));
+ }
+
+ return descriptors.toArray(new IPropertyDescriptor[0]);
+ }
+
+ @Override
+ public Object getPropertyValue(Object id) {
+ return event.getCustomAttribute((String) id);
+ }
+
+ @Override
+ public boolean isPropertySet(Object id) {
+ return false;
+ }
+
+ @Override
+ public void resetPropertyValue(Object id) {
+ }
+
+ @Override
+ public void setPropertyValue(Object id, Object value) {
+ }
+ }
+
+ /**
+ * Default constructor
+ *
+ * @param event the event
+ */
+ public TmfEventPropertySource(ITmfEvent event) {
+ super();
+ this.fEvent = event;
+ }
+
+ @Override
+ public Object getEditableValue() {
+ return null;
+ }
+
+ @Override
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ List<IPropertyDescriptor> descriptors= new ArrayList<IPropertyDescriptor>();
+
+ /* Display basic event information */
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_TIMESTAMP, NAME_TIMESTAMP));
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_SOURCE, NAME_SOURCE));
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_TYPE, NAME_TYPE));
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_REFERENCE, NAME_REFERENCE));
+
+ /* Display event fields */
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_CONTENT, NAME_CONTENT));
+
+ /* Display source lookup information, if the event supplies it */
+ if ((fEvent instanceof ITmfSourceLookup) && (((ITmfSourceLookup)fEvent).getCallsite() != null)) {
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_SOURCE_LOOKUP, NAME_SOURCE_LOOKUP));
+ }
+
+ /* Display Model URI information, if the event supplies it */
+ if ((fEvent instanceof ITmfModelLookup) && (((ITmfModelLookup) fEvent).getModelUri() != null)) {
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_MODEL_URI, NAME_MODEL_URI));
+ }
+
+ /* Display custom attributes, if available */
+ if (fEvent instanceof ITmfCustomAttributes) {
+ ITmfCustomAttributes event = (ITmfCustomAttributes) fEvent;
+ if (event.listCustomAttributes() != null && !event.listCustomAttributes().isEmpty()) {
+ descriptors.add(new ReadOnlyTextPropertyDescriptor(ID_CUSTOM_ATTRIBUTE, NAME_CUSTOM_ATTRIBUTES));
+ }
+ }
+
+ return descriptors.toArray(new IPropertyDescriptor[0]);
+ }
+
+ @Override
+ public Object getPropertyValue(Object id) {
+ if (id.equals(ID_TIMESTAMP) && fEvent.getTimestamp() != null) {
+ return new TimestampPropertySource(fEvent.getTimestamp());
+ } else if (id.equals(ID_SOURCE) && fEvent.getSource() != null) {
+ return fEvent.getSource().toString();
+ } else if (id.equals(ID_TYPE) && fEvent.getType() != null) {
+ return fEvent.getType().toString();
+ } else if (id.equals(ID_REFERENCE) && fEvent.getReference() != null) {
+ return fEvent.getReference().toString();
+ } else if (id.equals(ID_MODEL_URI)) {
+ return ((ITmfModelLookup)fEvent).getModelUri();
+ } else if (id.equals(ID_SOURCE_LOOKUP)) {
+ return new SourceLookupPropertySource(((ITmfSourceLookup)fEvent));
+ } else if (id.equals(ID_CONTENT) && fEvent.getContent() != null) {
+ return new ContentPropertySource(fEvent.getContent());
+ } else if (id.equals(ID_CUSTOM_ATTRIBUTE)) {
+ return new CustomAttributePropertySource((ITmfCustomAttributes) fEvent);
+ }
+ return null;
+ }
+
+ @Override
+ public boolean isPropertySet(Object id) {
+ return false;
+ }
+
+ @Override
+ public void resetPropertyValue(Object id) {
+ }
+
+ @Override
+ public void setPropertyValue(Object id, Object value) {
+ }
+
+}