13
13
package org.eclipse.linuxtools.internal.lttng2.kernel.ui.viewers.events;
15
import java.util.Collection;
17
import org.eclipse.jdt.annotation.NonNull;
15
18
import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
16
import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
17
import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
18
19
import org.eclipse.linuxtools.tmf.ui.viewers.events.TmfEventsTable;
19
import org.eclipse.linuxtools.tmf.ui.widgets.virtualtable.ColumnData;
20
import org.eclipse.swt.SWT;
20
import org.eclipse.linuxtools.tmf.ui.viewers.events.columns.TmfEventTableColumn;
21
21
import org.eclipse.swt.widgets.Composite;
23
import com.google.common.collect.ImmutableList;
24
26
* Events table specific for LTTng 2.0 kernel traces
26
28
public class LTTng2EventsTable extends TmfEventsTable {
28
30
// ------------------------------------------------------------------------
30
32
// ------------------------------------------------------------------------
33
static private final String TIMESTAMP_COLUMN = Messages.EventsTable_timestampColumn;
34
static private final String CHANNEL_COLUMN = Messages.EventsTable_channelColumn;
35
static private final String TYPE_COLUMN = Messages.EventsTable_typeColumn;
36
static private final String CONTENT_COLUMN = Messages.EventsTable_contentColumn;
37
static private final String[] COLUMN_NAMES = new String[] {
44
static private final ColumnData[] COLUMN_DATA = new ColumnData[] {
45
new ColumnData(COLUMN_NAMES[0], 150, SWT.LEFT),
46
new ColumnData(COLUMN_NAMES[1], 120, SWT.LEFT),
47
new ColumnData(COLUMN_NAMES[2], 200, SWT.LEFT),
48
new ColumnData(COLUMN_NAMES[3], 100, SWT.LEFT)
34
@SuppressWarnings("null")
35
private static final @NonNull String CHANNEL_HEADER = Messages.EventsTable_channelColumn;
37
private static final Collection<TmfEventTableColumn> LTTNG_COLUMNS =
38
ImmutableList.<TmfEventTableColumn> of(
39
TmfEventTableColumn.BaseColumns.TIMESTAMP,
40
new LttngChannelColumn(),
41
TmfEventTableColumn.BaseColumns.EVENT_TYPE,
42
TmfEventTableColumn.BaseColumns.CONTENTS);
44
private static class LttngChannelColumn extends TmfEventTableColumn {
46
public LttngChannelColumn() {
47
super(CHANNEL_HEADER);
51
public String getItemString(ITmfEvent event) {
52
String ret = event.getReference();
53
return (ret == null ? EMPTY_STRING : ret);
57
public String getFilterFieldId() {
58
return ITmfEvent.EVENT_FIELD_REFERENCE;
51
62
// ------------------------------------------------------------------------
61
72
* The size of the rows cache
63
74
public LTTng2EventsTable(Composite parent, int cacheSize) {
64
super(parent, cacheSize, COLUMN_DATA);
65
fTable.getColumns()[0].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_TIMESTAMP);
66
fTable.getColumns()[1].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_REFERENCE);
67
fTable.getColumns()[2].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_TYPE);
68
fTable.getColumns()[3].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_CONTENT);
72
protected ITmfEventField[] extractItemFields(ITmfEvent event) {
73
ITmfEventField[] fields = EMPTY_FIELD_ARRAY;
75
fields = new TmfEventField[] {
76
new TmfEventField(ITmfEvent.EVENT_FIELD_TIMESTAMP, event.getTimestamp().toString(), null),
77
new TmfEventField(ITmfEvent.EVENT_FIELD_REFERENCE, event.getReference(), null),
78
new TmfEventField(ITmfEvent.EVENT_FIELD_TYPE, event.getType().getName(), null),
79
new TmfEventField(ITmfEvent.EVENT_FIELD_CONTENT, event.getContent().toString(), null)
75
super(parent, cacheSize, LTTNG_COLUMNS);