/*******************************************************************************
* Copyright (c) 2014 Mirko Paturzo (Exeura srl).
* 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:
* Mirko Paturzo - initial API and implementation
*******************************************************************************/
package org.eclipse.nebula.widgets.grid;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
/**
* Manages the visual data of the {@link GridItem}s. With this interface it is
* possible to create your own data visualization manager. With an instance of
* this class it is much easier to avoid memory leaks by using background colors
* and fonts.
*
* @author Mirko Paturzo <mirko.paturzo@exeura.eu>
*
*/
public interface DataVisualizer {
/**
* Inserts a column on DataVisualizer
*
* @param columnIndex
*/
void addColumn(int columnIndex);
/**
* Clear all data on {@link DataVisualizer}
*/
void clearAll();
/**
* Clear column dataVisualizer values
*
* @param columnIndex
*/
void clearColumn(int columnIndex);
/**
* Clear rows dataVisualizer values
*
* @param gridItem
*/
void clearRow(GridItem gridItem);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @return {@link Color}
* @see GridItem#getBackground(int)
*/
Color getBackground(GridItem gridItem, int columnIndex);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @return boolean
* @see GridItem#getCheckable(int)
*/
boolean getCheckable(GridItem gridItem, int columnIndex);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @return boolean
* @see GridItem#getChecked(int)
*/
boolean getChecked(GridItem gridItem, int columnIndex);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @return int
* @see GridItem#getColumnSpan(int)
*/
int getColumnSpan(GridItem gridItem, int columnIndex);
/**
* @return default background
*/
Color getDefaultBackground();
/**
* @return default font
*/
Font getDefaultFont();
/**
* @return default foreground
*/
Color getDefaultForeground();
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @return {@link Font}
* @see GridItem#getFont(int)
*/
Font getFont(GridItem gridItem, int columnIndex);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @return {@link Color}
* @see GridItem#getForeground(int)
*/
Color getForeground(GridItem gridItem, int columnIndex);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @return boolean
* @see GridItem#getGrayed(int)
*/
boolean getGrayed(GridItem gridItem, int columnIndex);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @return {@link Image}
* @see GridItem#getImage(int)
*/
Image getImage(GridItem gridItem, int columnIndex);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @return int
* @see GridItem#getRowSpan(int)
*/
int getRowSpan(GridItem gridItem, int columnIndex);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @return {@link String}
* @see GridItem#getText(int)
*/
String getText(GridItem gridItem, int columnIndex);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @return String
* @see GridItem#getToolTipText(int)
*/
String getToolTipText(GridItem gridItem, int columnIndex);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @param color
* @see GridItem#setBackground(int, Color)
*/
void setBackground(GridItem gridItem, int columnIndex, Color color);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @param checked
* @see GridItem#setCheckable(int, boolean)
*/
void setCheckable(GridItem gridItem, int columnIndex, boolean checked);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @param checked
* @see GridItem#setChecked(int, boolean)
*/
void setChecked(GridItem gridItem, int columnIndex, boolean checked);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @param span
* @see GridItem#setColumnSpan(int, int)
*/
void setColumnSpan(GridItem gridItem, int columnIndex, int span);
/**
* set default background
*
* @param defaultBackground
*/
void setDefaultBackground(Color defaultBackground);
/**
* set default font
*
* @param defaultFont
*/
void setDefaultFont(Font defaultFont);
/**
* set default foreground
*
* @param defaultForeground
*/
void setDefaultForeground(Color defaultForeground);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @param font
* @see GridItem#setFont(int, Font)
*/
void setFont(GridItem gridItem, int columnIndex, Font font);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @param foreground
* @see GridItem#setForeground(int, Color)
*/
void setForeground(GridItem gridItem, int columnIndex, Color foreground);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @param grayed
* @see GridItem#setGrayed(int, boolean)
*/
void setGrayed(GridItem gridItem, int columnIndex, boolean grayed);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @param image
* @see GridItem#setImage(int, Image)
*/
void setImage(GridItem gridItem, int columnIndex, Image image);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @param span
* @see GridItem#setRowSpan(int, int)
*/
void setRowSpan(GridItem gridItem, int columnIndex, int span);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @param text
* @see GridItem#setText(int, String)
*/
void setText(GridItem gridItem, int columnIndex, String text);
/**
* Method substitute GridItem method
*
* @param gridItem
* @param columnIndex
* @param tooltip
* @see GridItem#setToolTipText(int, String)
*/
void setToolTipText(GridItem gridItem, int columnIndex, String tooltip);
}