package calendar;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Locale;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
@SuppressWarnings({ "serial", "unused" })
ArrayList<Event> m_events;
public DayPanel(
final Calendar date,
final int showing_month,
final int showing_year, ActionListener CalListener) {
super();
final int day = date.get(Calendar.DAY_OF_MONTH);
final int month = date.get(Calendar.MONTH);
final int year = date.get(Calendar.YEAR);
String print_day = new Integer(day).toString();
if(day == 1)
print_day += " "+date.getDisplayName(Calendar.MONTH,Calendar.SHORT,
new Locale(Data.GetSettings().Get("locale")));
print_day = " "+print_day+" ";
m_events = Data.GetEvents().GetEventsByDay(date);
EtchedBorder temp_border;
if(Data.GetCurrentDay() == date.get(Calendar.DAY_OF_MONTH)
&& Data.GetCurrentMonth() == date.get(Calendar.MONTH) &&
Data.GetCurrentYear() == date.get(Calendar.YEAR)){
temp_border = new EtchedBorder(EtchedBorder.LOWERED, Color.black,
Color.black);
} else {
temp_border = new EtchedBorder(EtchedBorder.LOWERED);
}
final TitledBorder border = new TitledBorder(temp_border, print_day);
if(month == showing_month && year == showing_year)
border.setTitleColor(Color.black);
else
border.setTitleColor(Color.GRAY);
setBackground(Color.WHITE);
setBorder(border);
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
sortEvents();
for(int i = 0; i < m_events.size(); i++) {
add(new EventPanel(m_events.get(i),CalListener));
}
}
boolean found;
do {
found = false;
for(int i = 0; i < m_events.size() - 1; i++) {
if(m_events.get(i).GetStart_date()
.compareTo(m_events.get(i+1).GetStart_date()) > 0) {
final Event temp = m_events.get(i);
m_events.set(i, m_events.get(i+1));
m_events.set(i+1, temp);
found = true;
}
}
}while(found);
return true;
}
}