package com.github.pfichtner.jrunalyser.ui.cal.swing;
import java.util.Calendar;
import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.UIManager;
public class DateComponent extends JComponent {
private static final long serialVersionUID = 4027097258180321575L;
private static final String uiClassID = "DateComponentUI"; //$NON-NLS-1$
private final Calendar calendar = Calendar.getInstance();
private final int num;
private int dayOfMonth;
private Icon icon;
private Icon disabledIcon;
private boolean isToday, isSelected, isSelectedMonth;
private long date;
public DateComponent(int num) {
this.num = num;
updateUI();
}
public int getDayOfMonth() {
return this.dayOfMonth;
}
public long getDate() {
return this.date;
}
public Icon getDisabledIcon() {
return this.disabledIcon;
}
public Icon getIcon() {
return this.icon;
}
public int getNum() {
return this.num;
}
public DateComponentUI getUI() {
return (DateComponentUI) this.ui;
}
public String getUIClassID() {
return uiClassID;
}
public boolean isSelected() {
return this.isSelected;
}
public boolean isSelectedMonth() {
return this.isSelectedMonth;
}
public boolean isToday() {
return this.isToday;
}
public void setDate(long date) {
this.date = date;
// Swing is SingleThreaded so no need to synchronize
this.calendar.setTimeInMillis(date);
this.dayOfMonth = this.calendar.get(Calendar.DAY_OF_MONTH);
revalidate();
repaint();
}
public void setDisabledIcon(Icon disabledIcon) {
this.disabledIcon = disabledIcon;
revalidate();
repaint();
}
public void setIcon(Icon icon) {
this.icon = icon;
revalidate();
repaint();
}
public void setSelected(boolean isSelected) {
this.isSelected = isSelected;
revalidate();
repaint();
}
public void setSelectedMonth(boolean isSelectedMonth) {
this.isSelectedMonth = isSelectedMonth;
revalidate();
repaint();
}
public void setToday(boolean isToday) {
this.isToday = isToday;
revalidate();
repaint();
}
public void setUI(DateComponentUI ui) {
super.setUI(ui);
}
public void updateUI() {
if (UIManager.get(getUIClassID()) != null) {
setUI((DateComponentUI) UIManager.getUI(this));
} else {
setUI(new BasicDateComponentUI());
}
}
}