/**
* @(#)HarmonicColorModel.java
*
* Copyright (c) 2008 The authors and contributors of JHotDraw.
* You may not use, copy or modify this file, except in compliance with the
* accompanying license terms.
*/
package org.jhotdraw.color;
import javax.annotation.Nullable;
import java.awt.Color;
import java.awt.color.ColorSpace;
import java.beans.PropertyChangeListener;
import javax.swing.ListModel;
/**
* HarmonicColorModel.
*
* @author Werner Randelshofer
* @version $Id$
*/
public interface HarmonicColorModel extends ListModel {
public static final String COLOR_SPACE_PROPERTY = "colorSpace";
public void setBase(int newValue);
public int getBase();
public void addRule(HarmonicRule rule);
public void removeAllRules();
public void applyRules();
public ColorSpace getColorSpace();
public void setColorSpace(ColorSpace newValue);
public void setSize(int newValue);
public int size();
public boolean isAdjusting();
public boolean add(Color c);
public void set(int index, @Nullable Color color);
@Nullable public Color get(int index);
public float[] RGBtoComponent(int rgb, float[] hsb);
public int componentToRGB(float h, float s, float b);
public void addPropertyChangeListener(PropertyChangeListener listener);
public void removePropertyChangeListener(PropertyChangeListener listener);
}