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="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/sqlitejdbc-v056.jar"/>
<classpathentry kind="lib" path="lib/jcalendar-1.3.3.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

Binary file not shown.

View File

@@ -110,7 +110,7 @@ public class Date implements Comparable<Date>, Serializable{
* @return seconds
* @author ricky barrette
*/
private byte getSecond() {
public byte getSecond() {
return this.mSecond;
}
@@ -119,7 +119,7 @@ public class Date implements Comparable<Date>, Serializable{
* @return minutes
* @author ricky barrette
*/
private byte getMinute() {
public byte getMinute() {
return this.mMinute;
}
@@ -128,7 +128,7 @@ public class Date implements Comparable<Date>, Serializable{
* @return hours
* @author ricky barrette
*/
private byte getHour() {
public byte getHour() {
return this.mHour;
}
@@ -137,7 +137,7 @@ public class Date implements Comparable<Date>, Serializable{
* @return day
* @author ricky barrette
*/
private byte getDay() {
public byte getDay() {
return this.mDay;
}
@@ -146,7 +146,7 @@ public class Date implements Comparable<Date>, Serializable{
* @return month
* @author ricky barrette
*/
private byte getMonth() {
public byte getMonth() {
return this.mMonth;
}
@@ -155,7 +155,7 @@ public class Date implements Comparable<Date>, Serializable{
* @return year
* @author ricky barrette
*/
private int getYear() {
public int getYear() {
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.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");
@@ -182,4 +189,58 @@ public class SearchDialog extends JFrame implements ActionListener, ProgressList
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 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);
}