/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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.borders; import java.awt.*; import javax.swing.border.AbstractBorder; import javax.swing.plaf.UIResource; import de.muntjak.tinylookandfeel.*; import de.muntjak.tinylookandfeel.controlpanel.*; /** * TinyTextFieldBorder * * @version 1.0 * @author Hans Bickel */ public class TinyTextFieldBorder extends AbstractBorder implements UIResource { private Insets insets; public TinyTextFieldBorder() { insets = Theme.textInsets[Theme.style]; } public TinyTextFieldBorder(Insets insets) { this.insets = insets; } /** * Gets the border insets for a given component. * * @param mainColor The component to get its border insets. * @return Always returns the same insets as defined in <code>insets</code>. */ public Insets getBorderInsets(Component c) { return insets; } /** * Use the skin to paint the border * @see javax.swing.border.Border#paintBorder(Component, Graphics, int, int, int, int) */ public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { switch(Theme.derivedStyle[Theme.style]) { case Theme.TINY_STYLE: drawTinyBorder(c, g, x, y, w, h); break; case Theme.W99_STYLE: drawWinBorder(c, g, x, y, w, h); break; case Theme.YQ_STYLE: drawXpBorder(c, g, x, y, w, h); break; } } private void drawTinyBorder(Component c, Graphics g, int x, int y, int w, int h) { } private void drawWinBorder(Component c, Graphics g, int x, int y, int w, int h) { if (!c.isEnabled()) { g.setColor(Theme.textBorderDisabledColor[Theme.style].getColor()); } else { g.setColor(Theme.textBorderColor[Theme.style].getColor()); } g.drawLine(x + 1, y + 1, x + w - 3, y + 1); g.drawLine(x + 1, y + 2, x + 1, y + h - 3); if (!c.isEnabled()) { g.setColor(Theme.textBorderDarkDisabledColor[Theme.style].getColor()); } else { g.setColor(Theme.textBorderDarkColor[Theme.style].getColor()); } g.drawLine(x, y, x + w - 2, y); g.drawLine(x, y + 1, x, y + h - 2); g.setColor(Theme.backColor[Theme.style].getColor()); g.drawLine(x + 1, y + h - 2, x + w - 2, y + h - 2); g.drawLine(x + w - 2, y + 1, x + w - 2, y + h - 2); if (!c.isEnabled()) { g.setColor(Theme.textBorderLightDisabledColor[Theme.style].getColor()); } else { g.setColor(Theme.textBorderLightColor[Theme.style].getColor()); } g.drawLine(x, y + h - 1, x + w - 1, y + h - 1); g.drawLine(x + w - 1, y, x + w - 1, y + h - 1); } private void drawXpBorder(Component c, Graphics g, int x, int y, int w, int h) { if (!c.isEnabled()) { DrawRoutines.drawBorder( g, Theme.textBorderDisabledColor[Theme.style].getColor(), x, y, w, h); } else { DrawRoutines.drawBorder( g, Theme.textBorderColor[Theme.style].getColor(), x, y, w, h); } } }