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); }