/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Tiny Look and Feel *
* *
* (C) Copyright 2003 - 2007 Hans Bickel *
* *
* For licensing information and credits, please refer to the *
* comment in file de.muntjak.tinylookandfeel.TinyLookAndFeel *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
package de.muntjak.tinylookandfeel;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.JSeparator;
import javax.swing.LookAndFeel;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicSeparatorUI;
/**
* TinySeparatorUI
*
* @version 1.0
* @author Hans Bickel
*/
public class TinySeparatorUI extends BasicSeparatorUI {
protected static final Dimension vertDimension = new Dimension(0, 2);
protected static final Dimension horzDimension = new Dimension(2, 0);
public static ComponentUI createUI(JComponent c) {
return new TinySeparatorUI();
}
protected void installDefaults(JSeparator s) {
LookAndFeel.installColors(s, "Separator.background", "Separator.foreground");
}
public void paint(Graphics g, JComponent c) {
switch(Theme.derivedStyle[Theme.style]) {
case Theme.TINY_STYLE:
drawTinySeparator(g, c);
break;
case Theme.W99_STYLE:
drawWinSeparator(g, c);
break;
case Theme.YQ_STYLE:
drawXpSeparator(g, c);
break;
}
}
protected void drawTinySeparator(Graphics g, JComponent c) {
}
protected void drawWinSeparator(Graphics g, JComponent c) {
Dimension s = c.getSize();
if (((JSeparator)c).getOrientation() == JSeparator.VERTICAL) {
g.setColor(Theme.sepDarkColor[Theme.style].getColor());
g.drawLine(0, 0, 0, s.height);
g.setColor(Theme.sepLightColor[Theme.style].getColor());
g.drawLine(1, 0, 1, s.height);
}
else { // HORIZONTAL
g.setColor(Theme.sepDarkColor[Theme.style].getColor());
g.drawLine(0, 0, s.width, 0);
g.setColor(Theme.sepLightColor[Theme.style].getColor());
g.drawLine(0, 1, s.width, 1);
}
}
protected void drawXpSeparator(Graphics g, JComponent c) {
Dimension s = c.getSize();
g.setColor(c.getBackground());
if (((JSeparator)c).getOrientation() == JSeparator.VERTICAL) {
g.drawLine(0, 0, 0, s.height);
}
else { // HORIZONTAL
g.drawLine(0, 0, s.width, 0);
}
}
public Dimension getPreferredSize(JComponent c) {
if (((JSeparator)c).getOrientation() == JSeparator.VERTICAL) {
return horzDimension;
}
else {
return vertDimension;
}
}
public Dimension getMinimumSize(JComponent c) {
return getPreferredSize(c);
}
}