package org.limewire.ui.swing.painter;
import java.awt.Graphics2D;
import java.awt.Paint;
import javax.swing.JComponent;
import org.jdesktop.swingx.painter.AbstractPainter;
import org.jdesktop.swingx.util.PaintUtils;
/**
* A painter for the standard background image of horizontal
* progress components.
*/
public class ProgressBarBackgroundPainter extends AbstractPainter<JComponent> {
private final Paint border;
private final Paint borderDisabled;
private Paint background;
private int heightCache = 0;
public ProgressBarBackgroundPainter(Paint background, Paint border, Paint borderDisabled) {
this.background = background;
this.border = border;
this.borderDisabled = borderDisabled;
this.setAntialiasing(false);
this.setCacheable(false);
}
@Override
protected void doPaint(Graphics2D g, JComponent object, int width, int height) {
if (height != this.heightCache) {
this.heightCache = height;
this.background = PaintUtils.resizeGradient(background, 0, height-1);
}
g.setPaint(this.background);
g.fillRect(0, 0, width-1, height-1);
g.setPaint(object.isEnabled() ? this.border : this.borderDisabled);
g.drawRect(0, 0, width-1, height-1);
}
}