1 /*******************************************************************************
2 * Copyright (c) 2011, 2014 Ericsson
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
10 * Mathieu Denis <mathieu.denis@polymtl.ca> - Initial Implementation
11 * Bernd Hufmann - Added Annotations
12 *******************************************************************************/
14 package org
.eclipse
.tracecompass
.tmf
.ui
.viewers
.statistics
.model
;
16 import org
.eclipse
.jdt
.annotation
.Nullable
;
17 import org
.eclipse
.jface
.viewers
.ColumnLabelProvider
;
18 import org
.eclipse
.jface
.viewers
.ViewerComparator
;
21 * Contains all the information necessary to build a column of the table.
23 * @author Mathieu Denis
26 public class TmfBaseColumnData
{
31 private final String fHeader
;
34 * Width of the column.
36 private final int fWidth
;
39 * Alignment of the column.
41 private final int fAlignment
;
44 * Tooltip of the column.
46 private final String fTooltip
;
49 * Adapts a StatisticsTreeNode into the content of it's corresponding cell
52 private final ColumnLabelProvider fLabelProvider
;
55 * Used to sort elements of this column. Can be null.
57 private final @Nullable ViewerComparator fComparator
;
60 * Used to draw bar charts in this column. Can be null.
62 private final @Nullable ITmfColumnPercentageProvider fPercentageProvider
;
65 * Used to draw bar charts in columns.
67 public interface ITmfColumnPercentageProvider
{
73 * The statistics tree node
74 * @return The value as a percentage
76 public double getPercentage(TmfStatisticsTreeNode node
);
80 * Constructor with parameters
83 * header of the column. The name will be shown at the top of the
86 * width of the column.
88 * alignment of the text
90 * text to shown as a tooltip when the cursor comes over the
93 * provide all the column element
95 * used to compare element between them to be able to classify
96 * the content of the columns
98 * provide the percentage of a specific element
100 public TmfBaseColumnData(String h
, int w
, int a
, String t
,
101 ColumnLabelProvider l
, ViewerComparator c
,
102 ITmfColumnPercentageProvider p
) {
109 fPercentageProvider
= p
;
113 * Return the column name.
115 * @return the name of the column.
117 public String
getHeader() {
122 * Return the width of the column at the creation.
124 * @return the width of the column.
126 public int getWidth() {
131 * Return the alignment of the column.
133 * @see org.eclipse.swt.SWT
134 * @return an integer representing the alignment inside the column.
136 public int getAlignment() {
141 * Provide the text to show in the tooltip when the cursor comes over the
144 * @return text to show in the tooltip
146 public String
getTooltip() {
151 * Return the labelProvider which provides the information to put in column
154 * @return a ColumnLabelProvider.
156 public ColumnLabelProvider
getLabelProvider() {
157 return fLabelProvider
;
161 * Return a ViewerComparator used to sort viewer's contents.
163 * @return the comparator.
165 public ViewerComparator
getComparator() {
170 * Return the provider of the percentage. Used to draw bar charts in
173 * @return the percentageProvider.
175 public ITmfColumnPercentageProvider
getPercentageProvider() {
176 return fPercentageProvider
;