added a date picker dialog to make it easier to enter dates into searches

This commit is contained in:
2011-01-10 19:06:52 +00:00
parent f8d9eb7281
commit 1469f69507
7 changed files with 194 additions and 12 deletions

View File

@@ -3,5 +3,6 @@
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/sqlitejdbc-v056.jar"/> <classpathentry kind="lib" path="lib/sqlitejdbc-v056.jar"/>
<classpathentry kind="lib" path="lib/jcalendar-1.3.3.jar"/>
<classpathentry kind="output" path="bin"/> <classpathentry kind="output" path="bin"/>
</classpath> </classpath>

Binary file not shown.

View File

@@ -110,7 +110,7 @@ public class Date implements Comparable<Date>, Serializable{
* @return seconds * @return seconds
* @author ricky barrette * @author ricky barrette
*/ */
private byte getSecond() { public byte getSecond() {
return this.mSecond; return this.mSecond;
} }
@@ -119,7 +119,7 @@ public class Date implements Comparable<Date>, Serializable{
* @return minutes * @return minutes
* @author ricky barrette * @author ricky barrette
*/ */
private byte getMinute() { public byte getMinute() {
return this.mMinute; return this.mMinute;
} }
@@ -128,7 +128,7 @@ public class Date implements Comparable<Date>, Serializable{
* @return hours * @return hours
* @author ricky barrette * @author ricky barrette
*/ */
private byte getHour() { public byte getHour() {
return this.mHour; return this.mHour;
} }
@@ -137,7 +137,7 @@ public class Date implements Comparable<Date>, Serializable{
* @return day * @return day
* @author ricky barrette * @author ricky barrette
*/ */
private byte getDay() { public byte getDay() {
return this.mDay; return this.mDay;
} }
@@ -146,7 +146,7 @@ public class Date implements Comparable<Date>, Serializable{
* @return month * @return month
* @author ricky barrette * @author ricky barrette
*/ */
private byte getMonth() { public byte getMonth() {
return this.mMonth; return this.mMonth;
} }
@@ -155,7 +155,7 @@ public class Date implements Comparable<Date>, Serializable{
* @return year * @return year
* @author ricky barrette * @author ricky barrette
*/ */
private int getYear() { public int getYear() {
return this.mYear; return this.mYear;
} }
} }

View File

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

View File

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

View File

@@ -9,6 +9,8 @@ package com.TwentyCodes.java.OrderProcessor.UI;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.IOException; import java.io.IOException;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
@@ -21,6 +23,7 @@ import javax.swing.JProgressBar;
import javax.swing.JTextField; import javax.swing.JTextField;
import com.TwentyCodes.java.OrderProcessor.Date; import com.TwentyCodes.java.OrderProcessor.Date;
import com.TwentyCodes.java.OrderProcessor.DatePickerListener;
import com.TwentyCodes.java.OrderProcessor.InvalidDateFormatException; import com.TwentyCodes.java.OrderProcessor.InvalidDateFormatException;
import com.TwentyCodes.java.OrderProcessor.Main; import com.TwentyCodes.java.OrderProcessor.Main;
import com.TwentyCodes.java.OrderProcessor.Order; 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 * This class will be the dialog that will ask the user for a specific make to show
* @author ricky barrette * @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 long serialVersionUID = 1750326106927701404L;
private static final int END_DATE_RESULT = 1;
private static final int START_DATE_RESULT = 0;
private JButton mOkButton; private JButton mOkButton;
private JTextField mTextField; private JTextField mTextField;
private JProgressBar mProgressBar; private JProgressBar mProgressBar;
@@ -68,12 +73,14 @@ public class SearchDialog extends JFrame implements ActionListener, ProgressList
mStartDateField = new JTextField(); mStartDateField = new JTextField();
panel.add(mStartDateField); panel.add(mStartDateField);
mStartDateField.setColumns(12); mStartDateField.setColumns(12);
mStartDateField.addMouseListener(this);
//end date //end date
panel.add(new JLabel("End Date:")); panel.add(new JLabel("End Date:"));
mEndDateField = new JTextField(); mEndDateField = new JTextField();
panel.add(mEndDateField); panel.add(mEndDateField);
mEndDateField.setColumns(12); mEndDateField.setColumns(12);
mEndDateField.addMouseListener(this);
//ok button //ok button
mOkButton = new JButton("Ok"); mOkButton = new JButton("Ok");
@@ -182,4 +189,58 @@ public class SearchDialog extends JFrame implements ActionListener, ProgressList
mProgressBar.setValue(progress); 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;
}
}
} }

View File

@@ -27,6 +27,7 @@ public class ShowAllDialog extends JFrame implements ActionListener, ProgressLis
private static final long serialVersionUID = -8416144493079733535L; private static final long serialVersionUID = -8416144493079733535L;
private JProgressBar mProgressBar; private JProgressBar mProgressBar;
private OrderPane mOutput;
/** /**
* Creates a new ShowAllDialog * Creates a new ShowAllDialog
@@ -36,10 +37,10 @@ public class ShowAllDialog extends JFrame implements ActionListener, ProgressLis
setTitle("Show All Orders"); setTitle("Show All Orders");
JButton ok = new JButton("Ok"); JButton ok = new JButton("Ok");
ok.addActionListener(this); ok.addActionListener(this);
final OrderPane output = new OrderPane(); mOutput = new OrderPane();
mProgressBar = new JProgressBar(); mProgressBar = new JProgressBar();
getContentPane().add(mProgressBar, BorderLayout.SOUTH); getContentPane().add(mProgressBar, BorderLayout.SOUTH);
this.getContentPane().add(output, BorderLayout.CENTER); this.getContentPane().add(mOutput, BorderLayout.CENTER);
this.getContentPane().add(ok, BorderLayout.NORTH); this.getContentPane().add(ok, BorderLayout.NORTH);
try { try {
mProgressBar.setMaximum(MainWindow.db.getCount()); mProgressBar.setMaximum(MainWindow.db.getCount());
@@ -49,11 +50,12 @@ public class ShowAllDialog extends JFrame implements ActionListener, ProgressLis
mProgressBar.setString("Loading from Database"); mProgressBar.setString("Loading from Database");
mProgressBar.setStringPainted(true); mProgressBar.setStringPainted(true);
MainWindow.db.setOnProgressListerner(this); MainWindow.db.setOnProgressListerner(this);
pack();
java.util.concurrent.Executors.newSingleThreadExecutor().submit(new Runnable() { java.util.concurrent.Executors.newSingleThreadExecutor().submit(new Runnable() {
public void run() { public void run() {
try { try {
output.displayOrders(MainWindow.db.getAllOrders()); mOutput.displayOrders(MainWindow.db.getAllOrders());
} catch (SQLException e) { } catch (SQLException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
@@ -64,11 +66,10 @@ public class ShowAllDialog extends JFrame implements ActionListener, ProgressLis
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
pack();
} }
}); });
pack();
setVisible(true); setVisible(true);
} }