/******************************************************************************* * 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); }