/**
* @(#)PaletteButtonUI.java
*
* Copyright (c) 1996-2010 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.gui.plaf.palette;
import java.awt.Graphics;
import javax.swing.*;
import javax.swing.plaf.*;
import javax.swing.plaf.basic.*;
/**
* ButtonUI for palette components.
*
* @author Werner Randelshofer
* @version $Id$
*/
public class PaletteButtonUI extends BasicButtonUI {
// Shared UI object
private static final PaletteButtonUI buttonUI = new PaletteButtonUI();
// ********************************
// Create PLAF
// ********************************
public static ComponentUI createUI(JComponent c) {
return buttonUI;
}
@Override
protected void installDefaults(AbstractButton b) {
super.installDefaults(b);
// load shared instance defaults
String pp = getPropertyPrefix();
LookAndFeel.installProperty(b, "opaque", Boolean.FALSE);
if (b.getMargin() == null || (b.getMargin() instanceof UIResource)) {
b.setMargin(new InsetsUIResource(0, 0, 0, 0));
}
PaletteLookAndFeel.installColorsAndFont(b, pp + "background",
pp + "foreground", pp + "font");
PaletteLookAndFeel.installBorder(b, pp + "border");
Object rollover = UIManager.get(pp + "rollover");
if (rollover != null) {
LookAndFeel.installProperty(b, "rolloverEnabled", rollover);
}
b.setFocusable(false);
}
@Override
public void paint(Graphics g, JComponent c) {
AbstractButton button = (AbstractButton) c;
if (button.isBorderPainted() && (c.getBorder() instanceof BackdropBorder)) {
BackdropBorder bb = (BackdropBorder) c.getBorder();
bb.getBackdropBorder().paintBorder(c, g, 0, 0, c.getWidth(), c.getHeight());
}
super.paint(g, c);
}
}