/******************************************************************************* * Copyright (c) 2010, 2014 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 *******************************************************************************/ package fr.inria.linuxtools.internal.tmf.ui.parsers.custom; import java.util.LinkedList; import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import fr.inria.linuxtools.tmf.core.event.ITmfEvent; import fr.inria.linuxtools.tmf.core.parsers.custom.CustomEvent; import fr.inria.linuxtools.tmf.core.parsers.custom.CustomTraceDefinition; import fr.inria.linuxtools.tmf.core.parsers.custom.CustomTraceDefinition.OutputColumn; import fr.inria.linuxtools.tmf.ui.viewers.events.TmfEventsTable; import fr.inria.linuxtools.tmf.ui.widgets.virtualtable.ColumnData; /** * Events table for custom text parsers. * * @author Patrick Tassé */ public class CustomEventsTable extends TmfEventsTable { private final CustomTraceDefinition fDefinition; /** * Constructor. * * @param definition * Trace definition object * @param parent * Parent composite of the view * @param cacheSize * How many events to keep in cache */ public CustomEventsTable(CustomTraceDefinition definition, Composite parent, int cacheSize) { super(parent, cacheSize, new ColumnData[0]); fDefinition = definition; createColumnHeaders(); } /** * Create the table's headers. */ protected void createColumnHeaders() { if (fDefinition == null) { return; } List<ColumnData> columnData = new LinkedList<>(); for (OutputColumn outputColumn : fDefinition.outputs) { ColumnData column = new ColumnData(outputColumn.name, 0, SWT.LEFT); columnData.add(column); } setColumnHeaders(columnData.toArray(new ColumnData[0])); } @Override public String[] getItemStrings(ITmfEvent event) { if (event instanceof CustomEvent) { return ((CustomEvent) event).getEventStrings(); } return EMPTY_STRING_ARRAY; } }