package org.limewire.ui.swing.painter.factories;
import java.awt.Color;
import java.awt.GradientPaint;
import org.jdesktop.application.Resource;
import org.jdesktop.swingx.JXPanel;
import org.limewire.inject.LazySingleton;
import org.limewire.ui.swing.painter.GenericBarPainter;
import org.limewire.ui.swing.util.GuiUtils;
import org.limewire.ui.swing.util.PainterUtils;
import com.google.inject.Inject;
/**
* Creates the various background painters to be used to paint the gradients and borders
* of the various on screen panels.
*
* Each painter can have up to six colours. Two for the gradient endpoints,
* two for the two horizontal border lines on the top edge, and two for
* another two horizontal border lines on the bottom edge.
*/
@LazySingleton
public class BarPainterFactory {
@Resource private Color headerBarGradientTop = PainterUtils.TRANSPARENT;
@Resource private Color headerBarGradientBottom = PainterUtils.TRANSPARENT;
@Resource private Color headerBarBorderTop1 = PainterUtils.TRANSPARENT;
@Resource private Color headerBarBorderTop2 = PainterUtils.TRANSPARENT;
@Resource private Color headerBarBorderBottom1 = PainterUtils.TRANSPARENT;
@Resource private Color headerBarBorderBottom2 = PainterUtils.TRANSPARENT;
@Resource private Color specialHeaderBarGradientTop = PainterUtils.TRANSPARENT;
@Resource private Color specialHeaderBarGradientBottom = PainterUtils.TRANSPARENT;
@Resource private Color specialHeaderBarBorderTop1 = PainterUtils.TRANSPARENT;
@Resource private Color specialHeaderBarBorderTop2 = PainterUtils.TRANSPARENT;
@Resource private Color specialHeaderBarBorderBottom1 = PainterUtils.TRANSPARENT;
@Resource private Color specialHeaderBarBorderBottom2 = PainterUtils.TRANSPARENT;
@Resource private Color topBarGradientTop = PainterUtils.TRANSPARENT;
@Resource private Color topBarGradientBottom = PainterUtils.TRANSPARENT;
@Resource private Color topBarBorderTop1 = PainterUtils.TRANSPARENT;
@Resource private Color topBarBorderTop2 = PainterUtils.TRANSPARENT;
@Resource private Color topBarBorderBottom1 = PainterUtils.TRANSPARENT;
@Resource private Color topBarBorderBottom2 = PainterUtils.TRANSPARENT;
@Resource private Color statusBarGradientTop = PainterUtils.TRANSPARENT;
@Resource private Color statusBarGradientBottom = PainterUtils.TRANSPARENT;
@Resource private Color statusBarBorderTop1 = PainterUtils.TRANSPARENT;
@Resource private Color statusBarBorderTop2 = PainterUtils.TRANSPARENT;
@Resource private Color statusBarBorderBottom1 = PainterUtils.TRANSPARENT;
@Resource private Color statusBarBorderBottom2 = PainterUtils.TRANSPARENT;
@Resource private Color downloadSummaryBarGradientTop = PainterUtils.TRANSPARENT;
@Resource private Color downloadSummaryBarGradientBottom = PainterUtils.TRANSPARENT;
@Resource private Color downloadSummaryBarBorderTop1 = PainterUtils.TRANSPARENT;
@Resource private Color downloadSummaryBarBorderTop2 = PainterUtils.TRANSPARENT;
@Resource private Color downloadSummaryBarBorderBottom1 = PainterUtils.TRANSPARENT;
@Resource private Color downloadSummaryBarBorderBottom2 = PainterUtils.TRANSPARENT;
@Resource private Color popUpBarGradientTop = PainterUtils.TRANSPARENT;
@Resource private Color popUpBarGradientBottom = PainterUtils.TRANSPARENT;
@Resource private Color popUpBarBorderTop1 = PainterUtils.TRANSPARENT;
@Resource private Color popUpBarBorderTop2 = PainterUtils.TRANSPARENT;
@Resource private Color popUpBarBorderBottom1 = PainterUtils.TRANSPARENT;
@Resource private Color popUpBarBorderBottom2 = PainterUtils.TRANSPARENT;
@Inject
BarPainterFactory() {
GuiUtils.assignResources(this);
}
public GenericBarPainter<JXPanel> createHeaderBarPainter() {
return new GenericBarPainter<JXPanel>(
new GradientPaint(0,0,headerBarGradientTop,0,1,headerBarGradientBottom),
headerBarBorderTop1, headerBarBorderTop2,
headerBarBorderBottom1, headerBarBorderBottom2);
}
public GenericBarPainter<JXPanel> createSpecialHeaderBarPainter() {
return new GenericBarPainter<JXPanel>(
new GradientPaint(0,0, specialHeaderBarGradientTop,0,1, specialHeaderBarGradientBottom),
specialHeaderBarBorderTop1, specialHeaderBarBorderTop2,
specialHeaderBarBorderBottom1, specialHeaderBarBorderBottom2);
}
public GenericBarPainter<JXPanel> createTopBarPainter() {
return new GenericBarPainter<JXPanel>(
new GradientPaint(0,0,topBarGradientTop,0,1,topBarGradientBottom),
topBarBorderTop1, topBarBorderTop2,
topBarBorderBottom1, topBarBorderBottom2);
}
public GenericBarPainter<JXPanel> createStatusBarPainter() {
return new GenericBarPainter<JXPanel>(
new GradientPaint(0,0,statusBarGradientTop,0,1,statusBarGradientBottom),
statusBarBorderTop1, statusBarBorderTop2,
statusBarBorderBottom1, statusBarBorderBottom2);
}
public GenericBarPainter<JXPanel> createDownloadSummaryBarPainter() {
return new GenericBarPainter<JXPanel>(
new GradientPaint(0,0,downloadSummaryBarGradientTop,0,1,downloadSummaryBarGradientBottom),
downloadSummaryBarBorderTop1, downloadSummaryBarBorderTop2,
downloadSummaryBarBorderBottom1, downloadSummaryBarBorderBottom2);
}
public GenericBarPainter<JXPanel> createPopUpBarPainter() {
return new GenericBarPainter<JXPanel>(
new GradientPaint(0,0,popUpBarGradientTop,0,1,popUpBarGradientBottom),
popUpBarBorderTop1, popUpBarBorderTop2,
popUpBarBorderBottom1, popUpBarBorderBottom2);
}
}