rendered paste bodypackage view;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.URL; // for resource location for the icon file
import java.util.*;
import java.awt.GridLayout;
public class DrawD {
String theMonth;
String theDay;
Frame theParentFrame;
DrawD(Frame aFrame) {
theParentFrame = aFrame;
}
//TODO: mike: make next/prev actually work
JPanel getDayFrame() {
return getDayFrame( controller.ViewC.today());
}
JPanel getDayFrame(String buildDay){ // send the day you want to build
theMonth = buildDay.substring(0, 6);
theDay = buildDay.substring(6, 8);
//the next/prev buttons for this view
String thisWeekString = "viewing the day of: "
+ theMonth.substring(0, 4) + " " + theMonth.substring(4, 6) + " " + theDay;
JLabel thisWeek = new JLabel(thisWeekString);
JPanel move = new JPanel();
move.setLayout(new FlowLayout());
JButton prevDay = new JButton("prev");
prevDay.setToolTipText("prev day");
move.add(prevDay);
move.add(new JLabel(" "));
move.add(thisWeek);
move.add(new JLabel(" "));
JButton nextDay = new JButton("next");
nextDay.setToolTipText("next day");
move.add(nextDay);
// ActionListener for the next/prev buttons
ActionEB buttonListen = new ActionEB(theParentFrame.getViewC(), theParentFrame);
prevDay.addActionListener(buttonListen);
nextDay.addActionListener(buttonListen);
move.repaint();
//parsing the events, making the main panel
//buildDay = yyyymmdd;
model.ApptMap appts = new model.ApptMap();
String output = "";
ArrayList<model.Appt> dayEvents;
int noEvents;
try {
dayEvents = appts.getAppt(buildDay);
noEvents = dayEvents.size();
model.Appt tmp;
for ( int i=0; i< noEvents; i++){
tmp = dayEvents.get(i);
output += "Event: " + tmp.getName() + ", From: " + tmp.getStartDate() + " To: " +
tmp.getEndTime() + " Details: " + tmp.getDetail();
}
} //get the appts for the day
catch (NullPointerException e){
output += "There are no events today";
noEvents = 0;
}
//if( dayEvents.isEmpty() == false){ //then there are no events for the day
JPanel dayPanel = new JPanel();
dayPanel.setVisible(true);
dayPanel.setLayout(new GridLayout(0,1));
//may be useful when making a more polished day view
/*
//the array of text areas that represents each square in the month view
JTextArea[][] apptGrid = new JTextArea[4][noEvents];
//fill each test area, add to the panel
for(int i=0; i < 4*noEvents; i++){
apptGrid[i/4][i%noEvents] = new JTextArea("[" + i/4 + ", " + i%noEvents + "]" );
DayPanel.add(apptGrid[i/4][i%noEvents]);
}*/
JTextArea apptGrid =new JTextArea(output);
dayPanel.add( apptGrid );
//putting the parts together
JPanel completePanel = new JPanel();
completePanel.setLayout(new BorderLayout());
completePanel.add(move, BorderLayout.NORTH);
completePanel.add(dayPanel, BorderLayout.CENTER);
return completePanel;
}
JPanel getNextDay() {
int year = Integer.parseInt(theMonth.substring(0, 4));
int month = Integer.parseInt(theMonth.substring(4, 6));
int day = Integer.parseInt(theDay);
String newMonth = "" + month;
String newDay = "" + day;
if (((month == 1 || month == 3 || month == 5 || month == 7
|| month == 8 || month == 10 || month == 12) && day <= 30)
|| ((month == 4 || month == 6 || month == 9 || month == 11) && day <= 29)
|| (( month == 2 && (year % 4 != 0 && (year % 100 == 0 || year % 400 != 0) ) ) && day <= 27)
|| (( month == 2 && !(year % 4 != 0 && (year % 100 == 0 || year % 400 != 0) ) ) && day <= 28)){
day += 1;
} else {
day = 1;
if (month < 12) {
month++;
} else {
month = 1;
year++;
}
}
if (month >= 10) {
newMonth = "" + month;
} else {
newMonth = "0" + month;
}
if (day >= 10) {
newDay = "" + day;
} else {
newDay = "0" + day;
}
System.out.println("moving to next day: " + year + newMonth + newDay);
return getDayFrame("" + year + newMonth + newDay);
}
JPanel getPrevDay() {
int year = Integer.parseInt(theMonth.substring(0, 4));
int month = Integer.parseInt(theMonth.substring(4, 6));
int day = Integer.parseInt(theDay);
String newMonth = "" + month;
String newDay = "" + day;
if (day > 1) {
day -= 1;
} else {
if (month > 1) {
month--;
} else {
month = 12;
year--;
}
if (month == 1 || month == 3 || month == 5 || month == 7
|| month == 8 || month == 10 || month == 12) {
day = 31;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
day = 30;
} else if (month == 2 && (year % 4 != 0 && (year % 100 == 0 || year % 400 != 0))) {
day = 28;
} else {
day = 29;
}
}
if (month >= 10) {
newMonth = "" + month;
} else {
newMonth = "0" + month;
}
if (day >= 10) {
newDay = "" + day;
} else {
newDay = "0" + day;
}
System.out.println("moving to next week: " + year + newMonth + newDay);
return getDayFrame("" + year + newMonth + newDay);
}
}