/******************************************************************************* * Copyright (c) 2009 STMicroelectronics. * 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: * Marzia Maugeri <marzia.maugeri@st.com> - initial API and implementation *******************************************************************************/ package org.eclipse.linuxtools.dataviewers.abstractviewers; import org.eclipse.linuxtools.dataviewers.listeners.ISpecialDrawerListener; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; /** * This class defines how the data is displayed for a given column. This renderer is on charge of providing several * things: * <ul> * <li>the name of the column header * <li>the tooltip of the column header * <li>It computes the label to display for each object given by the {@link org.eclipse.jface.viewers.ITreeContentProvider} * <li>It computes the tooltip to display for each object given by the {@link org.eclipse.jface.viewers.ITreeContentProvider} * <li>It computes the background and foreground color to display for each object given by the * {@link org.eclipse.jface.viewers.ITreeContentProvider} * <li>It computes the image to display for each object given by the {@link org.eclipse.jface.viewers.ITreeContentProvider} * <li>It provides a comparator, used to compare objects given by the {@link org.eclipse.jface.viewers.ITreeContentProvider} * <li>It allows a "custom rendering", for example if you want to display percentages as progress bars or to display * hyperlink as underlined text * </ul> */ public interface ISTDataViewersField { /** * @return String the description of the field. */ String getDescription(); /** * @return the image associated with the description of the field or <code>null</code>. */ Image getDescriptionImage(); /** * @return The text to be displayed in the column header for this field. */ String getColumnHeaderText(); /** * @return The tooltip to be displayed in the column header for this field. */ String getColumnHeaderTooltip(); /** * @return The image to be displayed in the column header for this field or <code>null</code>. */ Image getColumnHeaderImage(); /** * @param obj The object whose image is asked for. * @return The String value of the object for this particular field displayed to the user. */ String getValue(Object obj); /** * @param obj The object whose image is asked for. * @return The image value of the object for this particular field displayed to the user or <code>null</code>. */ Image getImage(Object obj); /** * Compares the given objects. * * Returns a negative number if the value of obj1 is less than the value of obj2 for this field, * <code>0</code> if the value of obj1 and the value of obj2 are equal for this field or a positive number * if the value of obj1 is greater than the value of obj2 for this field. * * @param obj1 The first object to compare. * @param obj2 The second object to compare. * @return The result of the comparison. */ int compare(Object obj1, Object obj2); /** * Get the default direction for the receiver. Return either {@link STDataViewersComparator#ASCENDING } or * {@link STDataViewersComparator#DESCENDING } * @return int */ int getDefaultDirection(); /** * Get the preferred width of the receiver. * @return int */ int getPreferredWidth(); /** * Return whether the receiver is showing or not by default. * @return boolean * @since 5.0 */ boolean isShowingByDefault(); /** * Returns special drawer, typically used paint percentages paint hyperlink. * * @param element The element whose special drawer is needed. * @return A special drawer. */ ISpecialDrawerListener getSpecialDrawer(Object element); /** * @param element The element whose tooltip is needed. * @return the tooltip to display this particular element. */ String getToolTipText(Object element); /** * @param element The element whose background is needed. * @return the background color for the given element */ Color getBackground(Object element); /** * @param element The element whose foreground is needed. * @return the foreground color for the given element */ Color getForeground(Object element); /** * Customize the horizontal alignment of the columns. * @return one of: SWT.LEFT, SWT.RIGHT, SWT.CENTER, SWT.NONE. Note that SWT.NONE is equivalent to SWT.LEFT */ int getAlignment(); }