ss: Move plugins to Trace Compass namespace
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / viewers / statistics / model / TmfBaseColumnData.java
1 /*******************************************************************************
2 * Copyright (c) 2011, 2013 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Mathieu Denis <mathieu.denis@polymtl.ca> - Initial Implementation
11 * Bernd Hufmann - Added Annotations
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.tmf.ui.viewers.statistics.model;
15
16 import org.eclipse.jdt.annotation.Nullable;
17 import org.eclipse.jface.viewers.ColumnLabelProvider;
18 import org.eclipse.jface.viewers.ViewerComparator;
19
20 /**
21 * Contains all the information necessary to build a column of the table.
22 *
23 * @author Mathieu Denis
24 * @since 2.0
25 */
26 public class TmfBaseColumnData {
27
28 /**
29 * Name of the column.
30 */
31 private final String fHeader;
32
33 /**
34 * Width of the column.
35 */
36 private final int fWidth;
37
38 /**
39 * Alignment of the column.
40 */
41 private final int fAlignment;
42
43 /**
44 * Tooltip of the column.
45 */
46 private final String fTooltip;
47
48 /**
49 * Adapts a StatisticsTreeNode into the content of it's corresponding cell
50 * for that column.
51 */
52 private final ColumnLabelProvider fLabelProvider;
53
54 /**
55 * Used to sort elements of this column. Can be null.
56 */
57 private final @Nullable ViewerComparator fComparator;
58
59 /**
60 * Used to draw bar charts in this column. Can be null.
61 */
62 private final @Nullable ITmfColumnPercentageProvider fPercentageProvider;
63
64 /**
65 * Used to draw bar charts in columns.
66 */
67 public interface ITmfColumnPercentageProvider {
68
69 /**
70 * Percentage provider
71 *
72 * @param node
73 * The statistics tree node
74 * @return The value as a percentage
75 */
76 public double getPercentage(TmfStatisticsTreeNode node);
77 }
78
79 /**
80 * Constructor with parameters
81 *
82 * @param h
83 * header of the column. The name will be shown at the top of the
84 * column.
85 * @param w
86 * width of the column.
87 * @param a
88 * alignment of the text
89 * @param t
90 * text to shown as a tooltip when the cursor comes over the
91 * header
92 * @param l
93 * provide all the column element
94 * @param c
95 * used to compare element between them to be able to classify
96 * the content of the columns
97 * @param p
98 * provide the percentage of a specific element
99 */
100 public TmfBaseColumnData(String h, int w, int a, String t,
101 ColumnLabelProvider l, ViewerComparator c,
102 ITmfColumnPercentageProvider p) {
103 fHeader = h;
104 fWidth = w;
105 fAlignment = a;
106 fTooltip = t;
107 fLabelProvider = l;
108 fComparator = c;
109 fPercentageProvider = p;
110 }
111
112 /**
113 * Return the column name.
114 *
115 * @return the name of the column.
116 */
117 public String getHeader() {
118 return fHeader;
119 }
120
121 /**
122 * Return the width of the column at the creation.
123 *
124 * @return the width of the column.
125 */
126 public int getWidth() {
127 return fWidth;
128 }
129
130 /**
131 * Return the alignment of the column.
132 *
133 * @see org.eclipse.swt.SWT
134 * @return an integer representing the alignment inside the column.
135 */
136 public int getAlignment() {
137 return fAlignment;
138 }
139
140 /**
141 * Provide the text to show in the tooltip when the cursor comes over the
142 * column header.
143 *
144 * @return text to show in the tooltip
145 */
146 public String getTooltip() {
147 return fTooltip;
148 }
149
150 /**
151 * Return the labelProvider which provides the information to put in column
152 * cells.
153 *
154 * @return a ColumnLabelProvider.
155 */
156 public ColumnLabelProvider getLabelProvider() {
157 return fLabelProvider;
158 }
159
160 /**
161 * Return a ViewerComparator used to sort viewer's contents.
162 *
163 * @return the comparator.
164 */
165 public ViewerComparator getComparator() {
166 return fComparator;
167 }
168
169 /**
170 * Return the provider of the percentage. Used to draw bar charts in
171 * columns.
172 *
173 * @return the percentageProvider.
174 */
175 public ITmfColumnPercentageProvider getPercentageProvider() {
176 return fPercentageProvider;
177 }
178 }
This page took 0.043742 seconds and 5 git commands to generate.