package de.dal33t.powerfolder.ui.widget;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import javax.swing.JPanel;
import javax.swing.UIManager;
import com.jgoodies.forms.builder.PanelBuilder;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
public class GradientPanel extends JPanel {
public static final Color VERY_VERY_LIGHT_GRAY = new Color(255, 255, 255);
public static final Color VERY_LIGHT_GRAY = new Color(255, 255, 255);
private GradientPanel(Color background) {
setBackground(background);
}
public static JPanel create(JPanel panel) {
return create(panel, VERY_VERY_LIGHT_GRAY);
}
public static JPanel create(JPanel panel, Color color) {
panel.setOpaque(false);
JPanel p = new GradientPanel(color);
// JPanel p = new GradientPanel(new Color(240, 240, 240));
p.setOpaque(false);
FormLayout layout = new FormLayout("fill:pref:grow", "fill:pref:grow");
PanelBuilder builder = new PanelBuilder(layout, p);
CellConstraints cc = new CellConstraints();
builder.setBorder(null);
builder.add(panel, cc.xy(1, 1));
builder.getPanel().setOpaque(false);
return builder.getPanel();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (isOpaque()) {
return;
}
Color control = UIManager.getColor("control");
int width = getWidth();
int height = getHeight();
Graphics2D g2 = (Graphics2D) g;
Paint storedPaint = g2.getPaint();
g2.setPaint(new GradientPaint(width, height, getBackground(),
(int) (width / 1.7f), 0, control));
g2.fillRect(0, 0, width, height);
g2.setPaint(storedPaint);
}
}