blob: bb48a43378e620d889cb70349b61e96944d76bfa [file] [log] [blame]
/*******************************************************************************
* Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC,
* Canada. 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: The Chisel Group, University of Victoria
******************************************************************************/
package org.eclipse.zest.core.viewers;
import org.eclipse.draw2d.IFigure;
import org.eclipse.swt.graphics.Color;
import org.eclipse.ui.services.IDisposable;
/**
* An extension to Label providers for graphs. Gets specific details about the
* style of an entity before it is created. This style provider offers:
*
* -Background and forground colours -Hilighted and unhighlighted colours
* (colours defined by selections). -Border color. -Highlighted and
* unhighlighted colours for borders. -Border width -Font for text inside the
* entity.
*
* Any method may return null if the Zest defaults are preferred.
*
* NOTE: It is up to the implementors of this interface to dispose of any Colors
* or Fonts that are created by this class. The dispose() method will be called
* at the end of the entity's life-cycle so that this class may dispose of its
* resources.
*
* @author Del Myers
* @see org.eclipse.jface.viewers.IColorProvider
* @tag bug(151327-Styles) : created to solve this bug
*/
public interface IEntityStyleProvider extends IDisposable {
/**
* Returns the forground colour of this entity. May return null for
* defaults. Any resources created by this class must be disposed by this
* class.
*
* @param entity
* the entity to be styled.
* @return the forground colour of this entity.
* @see #dispose()
*/
public Color getNodeHighlightColor(Object entity);
/**
* Returns the background colour for this entity. May return null for
* defaults. Any resources created by this class must be disposed by this
* class.
*
* @param entity
* the entity to be styled.
* @return the background colour for this entity.
* @see #dispose()
*/
public Color getBorderColor(Object entity);
/**
* Returns the border highlight colour for this entity. May return null for
* defaults. Any resources created by this class must be disposed by this
* class.
*
* @param entity
* the entity to be styled.
* @return the border highlight colour for this entity.
* @see #dispose()
*/
public Color getBorderHighlightColor(Object entity);
/**
* Returns the border width for this entity. May return -1 for defaults.
*
* @param entity
* the entity to be styled.
* @return the border width, or -1 for defaults.
*/
public int getBorderWidth(Object entity);
/**
* Returns true iff the adjacent entities should be highlighted when this
* node is selected. Zest's default action is true.
*
* @return true iff the adjacent entities should be highlighted when this
* node is selected.
*/
// @tag ADJACENT : Removed highlight adjacent
//public boolean highlightAdjacentEntities(Object entity);
/**
* Returns the color that adjacent entities will be drawn when this entity
* is selected. Will be ignored if HighlightAdjacentEntities() returns
* false. May return null for defaults. Any resources created by this class
* must be disposed by this class.
*
* @param entity
* the entity to be styled.
* @return the color for adjacent entities.
* @see #highlightAdjacentEntities(Object entity)
* @see #dispose()
*/
// @tag ADJACENT : Removed highlight adjacent
//public Color getAdjacentEntityHighlightColor(Object entity);
/**
* Returns the colour that this node should be coloured. This will be
* ignored if getNodeColour returns null. Any resources created by this
* class must be diposed by this class.
*
* @param entity
* The entity to be styled
* @return The colour for the node
* @see #dispose()
*/
public Color getBackgroundColour(Object entity);
public Color getForegroundColour(Object entity);
/**
* Returns the tooltop for this node. If null is returned Zest will simply
* use the default tooltip.
*
* @param entity
* @return
*/
public IFigure getTooltip(Object entity);
public boolean fisheyeNode(Object entity);
}