2010-07-20 Francois Chouinard <fchouinard@gmail.com>
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.ui / src / org / eclipse / linuxtools / lttng / ui / views / events / EventsTable.java
CommitLineData
78c0de16
FC
1/*******************************************************************************\r
2 * Copyright (c) 2009, 2010 Ericsson\r
3 * \r
4 * All rights reserved. This program and the accompanying materials are\r
5 * made available under the terms of the Eclipse Public License v1.0 which\r
6 * accompanies this distribution, and is available at\r
7 * http://www.eclipse.org/legal/epl-v10.html\r
8 * \r
9 * Contributors:\r
10 * Francois Chouinard - Initial API and implementation\r
11 *******************************************************************************/\r
12\r
13package org.eclipse.linuxtools.lttng.ui.views.events;\r
14\r
15import org.eclipse.linuxtools.lttng.event.LttngEventContent;\r
16import org.eclipse.linuxtools.tmf.event.TmfEvent;\r
17import org.eclipse.linuxtools.tmf.ui.viewers.events.TmfEventsTable;\r
18import org.eclipse.swt.SWT;\r
19import org.eclipse.swt.events.SelectionEvent;\r
20import org.eclipse.swt.events.SelectionListener;\r
21import org.eclipse.swt.widgets.Composite;\r
22import org.eclipse.swt.widgets.Table;\r
23import org.eclipse.swt.widgets.TableColumn;\r
24\r
25public class EventsTable extends TmfEventsTable {\r
26\r
27 // ------------------------------------------------------------------------\r
28 // Table data\r
29 // ------------------------------------------------------------------------\r
30\r
31 // Table column names\r
32 static private final String TIMESTAMP_COLUMN = "Timestamp";\r
33 static private final String SOURCE_COLUMN = "Source";\r
34 static private final String TYPE_COLUMN = "Type";\r
35 static private final String REFERENCE_COLUMN = "Reference";\r
36 static private final String CONTENT_COLUMN = "Content";\r
37 static private final String[] COLUMN_NAMES = new String[] {\r
38 TIMESTAMP_COLUMN,\r
39 SOURCE_COLUMN,\r
40 TYPE_COLUMN,\r
41 REFERENCE_COLUMN,\r
42 CONTENT_COLUMN\r
43 };\r
44\r
45 // Column data\r
46 static private class ColumnData {\r
47 public final String header;\r
48 public final int width;\r
49 public final int alignment;\r
50\r
51 public ColumnData(String h, int w, int a) {\r
52 header = h;\r
53 width = w;\r
54 alignment = a;\r
55 }\r
56 };\r
57\r
58 static private final ColumnData[] COLUMN_DATA = new ColumnData[] {\r
59 new ColumnData(COLUMN_NAMES[0], 125, SWT.LEFT),\r
60 new ColumnData(COLUMN_NAMES[1], 100, SWT.LEFT),\r
61 new ColumnData(COLUMN_NAMES[2], 200, SWT.LEFT),\r
62 new ColumnData(COLUMN_NAMES[3], 200, SWT.LEFT),\r
63 new ColumnData(COLUMN_NAMES[4], 100, SWT.LEFT)\r
64 };\r
65\r
66 // ------------------------------------------------------------------------\r
67 // Constructor\r
68 // ------------------------------------------------------------------------\r
69\r
70 public EventsTable(Composite parent, int cacheSize) {\r
71 super(parent, cacheSize);\r
72 }\r
73\r
74 /**\r
75 * @param table\r
76 * \r
77 * FIXME: Add support for column selection\r
78 */\r
79 @Override\r
80 protected void createColumnHeaders(Table table) {\r
81 for (int i = 0; i < COLUMN_DATA.length; i++) {\r
82 final TableColumn column = new TableColumn(table, COLUMN_DATA[i].alignment, i);\r
83 column.setText(COLUMN_DATA[i].header);\r
84 column.setWidth(COLUMN_DATA[i].width);\r
85 // TODO: Investigate why the column resizing doesn't work by default\r
86 // Anything to do with SWT_VIRTUAL?\r
87 column.addSelectionListener(new SelectionListener() {\r
88 public void widgetDefaultSelected(SelectionEvent e) {\r
89 // TODO Auto-generated method stub\r
90 }\r
91 public void widgetSelected(SelectionEvent e) {\r
92 column.pack();\r
93 }\r
94 });\r
95 }\r
96 }\r
97\r
98 /**\r
99 * @param event\r
100 * @return\r
101 */\r
102 @Override\r
103 protected String[] extractItemFields(TmfEvent event) {\r
104 String[] fields = new String[0];\r
105 \r
106 if (event != null) {\r
107 fields = new String[] {\r
108 event.getTimestamp().toString(),\r
109 event.getSource().toString(),\r
110 event.getType().toString(),\r
111 event.getReference().toString(),\r
112 ((LttngEventContent)event.getContent()).toString() \r
113 };\r
114 }\r
115 return fields;\r
116 }\r
117\r
118}\r
This page took 0.053052 seconds and 5 git commands to generate.