diff --git a/Order Processor/.classpath b/Order Processor/.classpath
index 10d15a7..f62240b 100644
--- a/Order Processor/.classpath
+++ b/Order Processor/.classpath
@@ -3,5 +3,6 @@
+
diff --git a/Order Processor/lib/jcalendar-1.3.3.jar b/Order Processor/lib/jcalendar-1.3.3.jar
new file mode 100644
index 0000000..2e13b77
Binary files /dev/null and b/Order Processor/lib/jcalendar-1.3.3.jar differ
diff --git a/Order Processor/src/com/TwentyCodes/java/OrderProcessor/Date.java b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/Date.java
index 52c3bbf..757ca12 100644
--- a/Order Processor/src/com/TwentyCodes/java/OrderProcessor/Date.java
+++ b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/Date.java
@@ -110,7 +110,7 @@ public class Date implements Comparable, Serializable{
* @return seconds
* @author ricky barrette
*/
- private byte getSecond() {
+ public byte getSecond() {
return this.mSecond;
}
@@ -119,7 +119,7 @@ public class Date implements Comparable, Serializable{
* @return minutes
* @author ricky barrette
*/
- private byte getMinute() {
+ public byte getMinute() {
return this.mMinute;
}
@@ -128,7 +128,7 @@ public class Date implements Comparable, Serializable{
* @return hours
* @author ricky barrette
*/
- private byte getHour() {
+ public byte getHour() {
return this.mHour;
}
@@ -137,7 +137,7 @@ public class Date implements Comparable, Serializable{
* @return day
* @author ricky barrette
*/
- private byte getDay() {
+ public byte getDay() {
return this.mDay;
}
@@ -146,7 +146,7 @@ public class Date implements Comparable, Serializable{
* @return month
* @author ricky barrette
*/
- private byte getMonth() {
+ public byte getMonth() {
return this.mMonth;
}
@@ -155,7 +155,7 @@ public class Date implements Comparable, Serializable{
* @return year
* @author ricky barrette
*/
- private int getYear() {
+ public int getYear() {
return this.mYear;
}
}
\ No newline at end of file
diff --git a/Order Processor/src/com/TwentyCodes/java/OrderProcessor/DatePickerListener.java b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/DatePickerListener.java
new file mode 100644
index 0000000..38651cf
--- /dev/null
+++ b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/DatePickerListener.java
@@ -0,0 +1,17 @@
+/**
+ * DatePickerInterface.java
+ * @date Jan 10, 2011
+ * @author ricky barrette
+ * @author Twenty Codes, LLC
+ */
+package com.TwentyCodes.java.OrderProcessor;
+
+
+/**
+ * the interface for the DatePicker
+ * @author ricky barrette
+ */
+public interface DatePickerListener {
+
+ public void onDatePicked(int resultCode, Date date);
+}
diff --git a/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/DatePicker.java b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/DatePicker.java
new file mode 100644
index 0000000..1cbcc94
--- /dev/null
+++ b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/DatePicker.java
@@ -0,0 +1,102 @@
+/**
+ * Test.java
+ * @date Jan 10, 2011
+ * @author ricky barrette
+ * @author Twenty Codes, LLC
+ */
+package com.TwentyCodes.java.OrderProcessor.UI;
+
+import java.awt.BorderLayout;
+import java.awt.HeadlessException;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import com.TwentyCodes.java.OrderProcessor.Date;
+import com.TwentyCodes.java.OrderProcessor.DatePickerListener;
+import com.TwentyCodes.java.OrderProcessor.InvalidDateFormatException;
+import com.toedter.calendar.JCalendar;
+
+/**
+ * a simple date picker window that allows the user to easily pick a date
+ * @author ricky barrette
+ */
+public class DatePicker extends JFrame implements ActionListener {
+
+ private static final long serialVersionUID = -8460535573336456875L;
+ private JCalendar mCalendar;
+ private JButton mOkButton;
+ private JTextField mHours;
+ private JTextField mSeconds;
+ private JTextField mMinutes;
+ private DatePickerListener mListener;
+ private JLabel mFailLabel;
+ private int mResultCode;
+
+ /**
+ * Creates a new Test
+ * @throws HeadlessException
+ * @author ricky barrette
+ */
+ public DatePicker(int resultCode, DatePickerListener listener) {
+ mResultCode = resultCode;
+ mListener = listener;
+
+ //Time fields
+ JPanel p = new JPanel();
+ p.add(new JLabel("Hours:"));
+ mHours = new JTextField();
+ mHours.setColumns(10);
+ p.add(mHours);
+ p.add(new JLabel("Minutes:"));
+ mMinutes = new JTextField();
+ mMinutes.setColumns(10);
+ p.add(mMinutes);
+ p.add(new JLabel("Seconds:"));
+ mSeconds = new JTextField();
+ mSeconds.setColumns(10);
+ p.add(mSeconds);
+ this.getContentPane().add(p, BorderLayout.NORTH);
+
+ //Calender
+ mCalendar = new JCalendar();
+ this.getContentPane().add(mCalendar, BorderLayout.CENTER);
+
+ //ok button
+ mOkButton = new JButton("Ok");
+ mOkButton.addActionListener(this);
+ this.getContentPane().add(mOkButton, BorderLayout.SOUTH);
+
+ //fail label
+ mFailLabel = new JLabel("Invalid entry");
+ mFailLabel.setVisible(false);
+ p.add(mFailLabel);
+
+ pack();
+ this.setVisible(true);
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ try {
+ mListener.onDatePicked(mResultCode, new Date("\""+
+ mCalendar.getYearChooser().getYear()+"-"+ (mCalendar.getMonthChooser().getMonth()+1) +"-"+ mCalendar.getDayChooser().getDay() +
+ " "+ Integer.parseInt(mHours.getText())+":"+ Integer.parseInt(mMinutes.getText())+":"+ Integer.parseInt(mSeconds.getText())+"\""));
+ this.setVisible(false);
+ } catch (NumberFormatException e1) {
+ e1.printStackTrace();
+ mFailLabel.setVisible(true);
+ pack();
+ } catch (InvalidDateFormatException e1) {
+ e1.printStackTrace();
+ mFailLabel.setVisible(true);
+ pack();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/SearchDialog.java b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/SearchDialog.java
index e802995..bb4bf87 100644
--- a/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/SearchDialog.java
+++ b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/SearchDialog.java
@@ -9,6 +9,8 @@ package com.TwentyCodes.java.OrderProcessor.UI;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
@@ -21,6 +23,7 @@ import javax.swing.JProgressBar;
import javax.swing.JTextField;
import com.TwentyCodes.java.OrderProcessor.Date;
+import com.TwentyCodes.java.OrderProcessor.DatePickerListener;
import com.TwentyCodes.java.OrderProcessor.InvalidDateFormatException;
import com.TwentyCodes.java.OrderProcessor.Main;
import com.TwentyCodes.java.OrderProcessor.Order;
@@ -30,9 +33,11 @@ import com.TwentyCodes.java.OrderProcessor.ProgressListener;
* This class will be the dialog that will ask the user for a specific make to show
* @author ricky barrette
*/
-public class SearchDialog extends JFrame implements ActionListener, ProgressListener {
+public class SearchDialog extends JFrame implements ActionListener, ProgressListener, MouseListener, DatePickerListener {
private static final long serialVersionUID = 1750326106927701404L;
+ private static final int END_DATE_RESULT = 1;
+ private static final int START_DATE_RESULT = 0;
private JButton mOkButton;
private JTextField mTextField;
private JProgressBar mProgressBar;
@@ -68,12 +73,14 @@ public class SearchDialog extends JFrame implements ActionListener, ProgressList
mStartDateField = new JTextField();
panel.add(mStartDateField);
mStartDateField.setColumns(12);
+ mStartDateField.addMouseListener(this);
//end date
panel.add(new JLabel("End Date:"));
mEndDateField = new JTextField();
panel.add(mEndDateField);
mEndDateField.setColumns(12);
+ mEndDateField.addMouseListener(this);
//ok button
mOkButton = new JButton("Ok");
@@ -181,5 +188,59 @@ public class SearchDialog extends JFrame implements ActionListener, ProgressList
} else
mProgressBar.setValue(progress);
}
+
+
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ if(e.getSource() == mEndDateField){
+ new DatePicker(END_DATE_RESULT, this);
+ }
+
+ if(e.getSource() == mStartDateField){
+ new DatePicker(START_DATE_RESULT, this);
+ }
+ }
+
+
+ @Override
+ public void mousePressed(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void mouseReleased(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void mouseEntered(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void mouseExited(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ public void onDatePicked(int resultCode, Date date) {
+ switch(resultCode){
+ case START_DATE_RESULT:
+ mStartDateField.setText(date.getYear()+"-"+date.getMonth()+"-"+date.getDay()+" "+date.getHour()+":"+date.getMinute()+":"+date.getSecond());
+ break;
+ case END_DATE_RESULT:
+ mEndDateField.setText(date.getYear()+"-"+date.getMonth()+"-"+date.getDay()+" "+date.getHour()+":"+date.getMinute()+":"+date.getSecond());
+ break;
+ }
+
+ }
}
diff --git a/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/ShowAllDialog.java b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/ShowAllDialog.java
index 3aa896b..d3b8ff0 100644
--- a/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/ShowAllDialog.java
+++ b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/ShowAllDialog.java
@@ -27,6 +27,7 @@ public class ShowAllDialog extends JFrame implements ActionListener, ProgressLis
private static final long serialVersionUID = -8416144493079733535L;
private JProgressBar mProgressBar;
+ private OrderPane mOutput;
/**
* Creates a new ShowAllDialog
@@ -36,10 +37,10 @@ public class ShowAllDialog extends JFrame implements ActionListener, ProgressLis
setTitle("Show All Orders");
JButton ok = new JButton("Ok");
ok.addActionListener(this);
- final OrderPane output = new OrderPane();
+ mOutput = new OrderPane();
mProgressBar = new JProgressBar();
getContentPane().add(mProgressBar, BorderLayout.SOUTH);
- this.getContentPane().add(output, BorderLayout.CENTER);
+ this.getContentPane().add(mOutput, BorderLayout.CENTER);
this.getContentPane().add(ok, BorderLayout.NORTH);
try {
mProgressBar.setMaximum(MainWindow.db.getCount());
@@ -49,11 +50,12 @@ public class ShowAllDialog extends JFrame implements ActionListener, ProgressLis
mProgressBar.setString("Loading from Database");
mProgressBar.setStringPainted(true);
MainWindow.db.setOnProgressListerner(this);
+ pack();
java.util.concurrent.Executors.newSingleThreadExecutor().submit(new Runnable() {
public void run() {
try {
- output.displayOrders(MainWindow.db.getAllOrders());
+ mOutput.displayOrders(MainWindow.db.getAllOrders());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@@ -64,11 +66,10 @@ public class ShowAllDialog extends JFrame implements ActionListener, ProgressLis
// TODO Auto-generated catch block
e.printStackTrace();
}
+ pack();
}
});
-
- pack();
setVisible(true);
}