package com.kenai.redminenb.util;
import java.awt.Color;
import java.awt.Component;
import java.awt.GradientPaint;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JPanel;
import javax.swing.UIManager;
import org.jdesktop.swingx.JXDatePicker;
import org.jdesktop.swingx.JXHyperlink;
import org.jdesktop.swingx.JXPanel;
import org.jdesktop.swingx.painter.MattePainter;
public class DatePicker extends JXDatePicker {
private static final Logger LOG = Logger.getLogger(DatePicker.class.getName());
public DatePicker() {
super();
setLinkDay(new Date());
}
@Override
public void setLinkPanel(JPanel linkPanel) {
// Fucking ugly hack!
Boolean dark = (Boolean) UIManager.get("nb.dark.theme");
if(dark != null && dark) {
// Jay - someone decided hardcoding colors was a good idea *arg*
if(! (linkPanel instanceof JXPanel)) {
LOG.log(Level.INFO,
"Failed to modify LinkPanel for JXDatePicker - expected JXPanel but got: {0}",
linkPanel.getClass());
}
JXPanel jXPanel = (JXPanel) linkPanel;
jXPanel.setBackgroundPainter(new MattePainter(new GradientPaint(0, 0, new Color(17, 17, 17), 0, 1, Color.BLACK)));
Component c = jXPanel.getComponent(0);
if(! (c instanceof JXHyperlink)) {
LOG.log(Level.INFO,
"Failed to modify LinkPanel for JXDatePicker - expected JXHyperLink but got: {0}",
c.getClass());
}
JXHyperlink linkButton = (JXHyperlink) c;
linkButton.setClickedColor(new Color(170, 170, 170));
linkButton.setUnclickedColor(new Color(170, 170, 170));
}
super.setLinkPanel(linkPanel);
}
}