/**
* Copyright (c) 2008 IBM Corporation and others.
* 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:
* IBM - Initial API and implementation
*/
package org.eclipse.emf.edit.provider;
import org.eclipse.emf.common.util.URI;
/**
* This is the interface implemented to provide a color for an item;
* it receives delegated calls from IColorProvider.
* Colors are expressed in a platform independent way as URIs in one of two forms:
*<pre>
* color://rgb/<red>/<green>/<blue>
* color://hsb/<hue>/<saturation>/<brightness>
*</pre>
* The "rgb" form specifies the values for red, green, and blue as integral values in the range of 0-255.
* The "hsb" form specifies the values for hue, saturation, and brightness as decimal values in the range of 0-360, 0-1, and 0-1 respectively.
* The hue, saturation, or brightness can be specified as "foreground" or "background,
* or can even be omitted as a shorthand to specify "foreground",
* to indicate that the value of the current viewer's foreground or background color should be used as the specified value.
* <p>
* Other schemes may be supported.
* In particular, it's expected that forms that specify color based on named user preference will be supported.
* </p>
*/
public interface IItemColorProvider
{
/**
* An instance object used to specify a grayed out version of the viewer's current foreground color.
*<pre>
* color://hsb///0.5
*</pre>
*
*/
URI GRAYED_OUT_COLOR = URI.createURI("color://hsb///0.5");
/**
* This does the same thing as IColorProvider.getForeground,
* it fetches the foreground color specific to this object instance.
*/
public Object getForeground(Object object);
/**
* This does the same thing as IColorProvider.getBackground,
* it fetches the background color specific to this object instance.
*/
public Object getBackground(Object object);
}