/*
* SwingCellAppearance.java
*
* Created on 28 ������� 2006 �., 12:38
*
*/
package datechooser.view.appearance.swing;
import datechooser.view.appearance.*;
import datechooser.view.appearance.CellRenderer;
import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.ButtonUI;
import javax.swing.plaf.ComponentUI;
/**
* Swing cell appearance.<br>
* Swing - ����� �����.
* @author Androsov Vadim
* @since 1.0
*/
public class SwingCellAppearance extends CellAppearance implements SwingCellAttributes {
private boolean pressed;
private boolean enabled;
private SwingCellRenderer renderer;
private Painter painter;
private Color cursorColor;
public SwingCellAppearance(Font font, Color color, Color cursorColor,
boolean pressed, boolean enabled, Painter painter) {
renderer = new SwingCellRenderer(this, painter);
this.painter = painter;
setTextColor(color);
setFont(font);
setPressed(pressed);
setEnabled(enabled);
setCursorColor(cursorColor);
}
public Painter getPainter() {
return renderer.getPainter();
}
protected CellRenderer getRenderer() {
return renderer;
}
public Object clone() {
SwingCellAppearance newInst = new SwingCellAppearance(getFont(), getTextColor(),
getCursorColor(), isPressed(), isEnabled(), (Painter) renderer.getPainter().clone());
newInst.setSelectable(isSelectable());
return newInst;
}
public void assign(CellAppearance newAppearance) {
if (newAppearance == null) return;
SwingCellAppearance swingAppearance = (SwingCellAppearance) newAppearance;
setTextColor(swingAppearance.getTextColor());
setFont(swingAppearance.getFont());
setCursorColor(swingAppearance.getCursorColor());
setSelectable(swingAppearance.isSelectable());
}
public boolean equals(Object obj) {
if (obj == null) return false;
if (this == obj) return true;
if (this.getClass() != obj.getClass()) return false;
SwingCellAppearance value = (SwingCellAppearance) obj;
return getTextColor().equals(value.getTextColor()) &&
getCursorColor().equals(value.getCursorColor()) &&
getFont().equals(value.getFont());
}
public boolean isPressed() {
return pressed;
}
public void setPressed(boolean pressed) {
this.pressed = pressed;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public Font getFont() {
Font aFont = painter.getFont();
if (aFont == null) {
return renderer.getDefaultFont();
}
return aFont;
}
public Color getCursorColor() {
return cursorColor;
}
public void setCursorColor(Color cursorColor) {
this.cursorColor = cursorColor;
}
public Color getTextColor() {
return painter.getTextColor();
}
public void setFont(Font font) {
painter.setFont(font);
}
public void setTextColor(Color textColor) {
painter.setTextColor(textColor);
}
public Composite getComposite() {
return null;
}
}