/*
* CellAppearance.java
*
* Created on 25 ������� 2006 �., 8:46
*
*/
package datechooser.view.appearance;
import datechooser.view.appearance.CellRenderer;
import datechooser.view.appearance.custom.CustomCellRenderer;
import java.awt.*;
import java.io.Serializable;
/**
* Abstract class for views.<br>
* ������� ����� ��� �������� �������� ����.
* @author Androsov Vadim
* @see AppearancesList
* @since 1.0
*/
public abstract class CellAppearance extends CellRenderer
implements Serializable, Cloneable, CellAttributes {
private boolean selectable;
/**
* @see CellRenderer
* @since 1.0
*/
protected abstract CellRenderer getRenderer();
/**
* <b>Deep</b> clone.<br>
* �������� ������������.
* @since 1.0
*/
public abstract Object clone();
public CellAppearance() {
setSelectable(true);
}
public boolean isSelectable() {
return selectable;
}
public void setSelectable(boolean selectable) {
this.selectable = selectable;
}
public void render(Graphics2D g, Component c, String text, int width, int height, boolean isCursor) {
Composite composite = getComposite();
if (composite != null) g.setComposite(composite);
getRenderer().render(g, c, text, width, height, isCursor);
}
/**
* Get composite stile for graphical output.<br>
* ���������� ����� ���������� ��� ���������.
* @since 1.0
*/
public abstract Composite getComposite();
/**
* Cursor color.<br>
* ���� �������.
* @since 1.0
*/
public abstract Color getCursorColor() ;
/**
* Set cursor color.<br>
* ���������� ���� �������.
* @since 1.0
*/
public abstract void setCursorColor(Color color) ;
}