package com.revivius.nb.darcula.ui; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Paint; import javax.swing.JComponent; import javax.swing.JToggleButton; import javax.swing.plaf.ComponentUI; /** * A minor re-write of DarculaButtonUI to prevent painting background when * content area filled property is set to false on button and painting a * noticable background if button is selected. * * Adapted from modified DarculaButtonUI. * * @author Revivius */ public class ContentAreaAwareToggleButtonUI extends ContentAreaAwareButtonUI { public static ComponentUI createUI(JComponent c) { return new ContentAreaAwareToggleButtonUI(); } @Override protected Paint getBackgroundPaint(JComponent c) { JToggleButton b = (JToggleButton) c; if (b.isSelected()) { return new GradientPaint( 0.0F, 0.0F, getButtonColor1().brighter(), 0.0F, c.getHeight(), getButtonColor2().brighter() ); } return new GradientPaint( 0.0F, 0.0F, getButtonColor1(), 0.0F, c.getHeight(), getButtonColor2() ); } @Override public void update(Graphics g, JComponent c) { super.update(g, c); } }