Commit | Line | Data |
---|---|---|
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 | |
13 | package org.eclipse.linuxtools.lttng.ui.views.events;\r | |
14 | \r | |
15 | import org.eclipse.linuxtools.lttng.event.LttngEventContent;\r | |
16 | import org.eclipse.linuxtools.tmf.event.TmfEvent;\r | |
17 | import org.eclipse.linuxtools.tmf.ui.viewers.events.TmfEventsTable;\r | |
18 | import org.eclipse.swt.SWT;\r | |
19 | import org.eclipse.swt.events.SelectionEvent;\r | |
20 | import org.eclipse.swt.events.SelectionListener;\r | |
21 | import org.eclipse.swt.widgets.Composite;\r | |
22 | import org.eclipse.swt.widgets.Table;\r | |
23 | import org.eclipse.swt.widgets.TableColumn;\r | |
24 | \r | |
25 | public 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 |