created statuss for NEW and CHARGABLE, and added the options to the order pane.
added the ability to remove existing orders if they are new, so they can be replaced added the ability to print all new order in blue improved order pane processing modified the date picker to be easier to use
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
#---No Comment---
|
#---No Comment---
|
||||||
#Thu Jan 20 12:15:15 EST 2011
|
#Sat Jan 22 14:59:35 EST 2011
|
||||||
server_parrword=S35-2n6t
|
server_parrword=S35-2n6t
|
||||||
use_remote_server=true
|
|
||||||
server_location=tcdevsvn1
|
server_location=tcdevsvn1
|
||||||
|
use_remote_server=true
|
||||||
server_port_number=3306
|
server_port_number=3306
|
||||||
server_user_name=ricky.barrette
|
server_user_name=ricky.barrette
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import com.TwentyCodes.java.OrderProcessor.Main;
|
|||||||
import com.TwentyCodes.java.OrderProcessor.Order;
|
import com.TwentyCodes.java.OrderProcessor.Order;
|
||||||
import com.TwentyCodes.java.OrderProcessor.OrderExistsException;
|
import com.TwentyCodes.java.OrderProcessor.OrderExistsException;
|
||||||
import com.TwentyCodes.java.OrderProcessor.ProgressListener;
|
import com.TwentyCodes.java.OrderProcessor.ProgressListener;
|
||||||
|
import com.TwentyCodes.java.OrderProcessor.Status;
|
||||||
import com.TwentyCodes.java.OrderProcessor.UI.SettingsPanel;
|
import com.TwentyCodes.java.OrderProcessor.UI.SettingsPanel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -88,43 +89,6 @@ public class OrderDB {
|
|||||||
conn.close();
|
conn.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* gets the properties from the properties file
|
|
||||||
* @return properties
|
|
||||||
* @author ricky barrette
|
|
||||||
*/
|
|
||||||
private Properties getProperties() {
|
|
||||||
Properties props = new java.util.Properties();
|
|
||||||
try {
|
|
||||||
FileInputStream in = new FileInputStream(".settings.propertys");
|
|
||||||
props.load(in);
|
|
||||||
in.close();
|
|
||||||
return props;
|
|
||||||
} catch (IOException e1) {
|
|
||||||
e1.printStackTrace();
|
|
||||||
}
|
|
||||||
return props;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* counts the number of lines in a csv file
|
|
||||||
* @param file to be read
|
|
||||||
* @return number of lines in a file
|
|
||||||
* @throws IOException
|
|
||||||
* @author ricky barrette
|
|
||||||
*/
|
|
||||||
public int countLines(File file) throws IOException {
|
|
||||||
// LineNumberReader reader = new LineNumberReader(new FileReader(file));
|
|
||||||
int cnt = 1;
|
|
||||||
// while ((reader.readLine()) != null) ;
|
|
||||||
// cnt = reader.getLineNumber();
|
|
||||||
// reader.close();
|
|
||||||
CSVParser csvParser = new CSVParser(new FileInputStream(file));
|
|
||||||
while(csvParser.getLine() != null)
|
|
||||||
cnt++;
|
|
||||||
return cnt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* added the order to the database
|
* added the order to the database
|
||||||
* @param order
|
* @param order
|
||||||
@@ -139,13 +103,70 @@ public class OrderDB {
|
|||||||
* check the current database for an orders with a matching order number
|
* check the current database for an orders with a matching order number
|
||||||
*/
|
*/
|
||||||
for(Order item : list)
|
for(Order item : list)
|
||||||
|
|
||||||
if(item.getGoogleOrderNumber() == order.getGoogleOrderNumber())
|
if(item.getGoogleOrderNumber() == order.getGoogleOrderNumber())
|
||||||
throw new OrderExistsException(order.toString());
|
if(item.getFulfillmentStatus() == Status.NEW )
|
||||||
|
deleteOrder(item);
|
||||||
|
else
|
||||||
|
throw new OrderExistsException(order.toString());
|
||||||
|
|
||||||
list.add(order);
|
list.add(order);
|
||||||
|
|
||||||
saveOrder(order);
|
saveOrder(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* counts the number of lines in a csv file
|
||||||
|
* @param file to be read
|
||||||
|
* @return number of lines in a file
|
||||||
|
* @throws IOException
|
||||||
|
* @author ricky barrette
|
||||||
|
*/
|
||||||
|
public int countLines(File file) throws IOException {
|
||||||
|
int cnt = 1;
|
||||||
|
CSVParser csvParser = new CSVParser(new FileInputStream(file));
|
||||||
|
while(csvParser.getLine() != null)
|
||||||
|
cnt++;
|
||||||
|
return cnt;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* deletes the old order that IS BEING replaced
|
||||||
|
* @throws SQLException
|
||||||
|
* @throws IOException
|
||||||
|
* @throws ClassNotFoundException
|
||||||
|
* @author ricky barrette
|
||||||
|
*/
|
||||||
|
private void deleteOrder(Order order) throws SQLException, IOException, ClassNotFoundException{
|
||||||
|
int row = 1;
|
||||||
|
int count = getCount();
|
||||||
|
Connection conn = getConnection();
|
||||||
|
Statement stat = conn.createStatement();
|
||||||
|
ResultSet rs = stat.executeQuery("select * from Orders;");
|
||||||
|
ByteArrayInputStream bais;
|
||||||
|
ObjectInputStream ins;
|
||||||
|
Order item;
|
||||||
|
while (rs.next()) {
|
||||||
|
|
||||||
|
if(mListener != null)
|
||||||
|
mListener.onProgressUpdate("Deleting old Order", false, row++, count);
|
||||||
|
bais = new ByteArrayInputStream(rs.getBytes("item"));
|
||||||
|
ins = new ObjectInputStream(bais);
|
||||||
|
item = (Order) ins.readObject();
|
||||||
|
|
||||||
|
if (order.getGoogleOrderNumber() == item.getGoogleOrderNumber()){
|
||||||
|
conn.createStatement().execute("DELETE FROM Orders WHERE id="+rs.getInt("id")+";");
|
||||||
|
System.out.println("deleting "+ item.toString());
|
||||||
|
}
|
||||||
|
ins.close();
|
||||||
|
}
|
||||||
|
rs.close();
|
||||||
|
conn.close();
|
||||||
|
|
||||||
|
if(mListener != null)
|
||||||
|
mListener.onProgressUpdate("Done", false, 1, 1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gets all orders from the database
|
* gets all orders from the database
|
||||||
@@ -223,6 +244,24 @@ public class OrderDB {
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gets the properties from the properties file
|
||||||
|
* @return properties
|
||||||
|
* @author ricky barrette
|
||||||
|
*/
|
||||||
|
private Properties getProperties() {
|
||||||
|
Properties props = new java.util.Properties();
|
||||||
|
try {
|
||||||
|
FileInputStream in = new FileInputStream(".settings.propertys");
|
||||||
|
props.load(in);
|
||||||
|
in.close();
|
||||||
|
return props;
|
||||||
|
} catch (IOException e1) {
|
||||||
|
e1.printStackTrace();
|
||||||
|
}
|
||||||
|
return props;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* loads the orders from the specified *.CSV file
|
* loads the orders from the specified *.CSV file
|
||||||
* @param file to be parsed
|
* @param file to be parsed
|
||||||
@@ -233,14 +272,13 @@ public class OrderDB {
|
|||||||
* @throws OrderExistsException
|
* @throws OrderExistsException
|
||||||
*/
|
*/
|
||||||
public void load(File file) throws SQLException, IOException, ClassNotFoundException{
|
public void load(File file) throws SQLException, IOException, ClassNotFoundException{
|
||||||
|
|
||||||
// Scanner scan = new Scanner(file);
|
|
||||||
prep = null;
|
prep = null;
|
||||||
list = null;
|
list = null;
|
||||||
|
|
||||||
CSVParser csvParser = new CSVParser(new FileInputStream(file));
|
CSVParser csvParser = new CSVParser(new FileInputStream(file));
|
||||||
list = new ArrayList<Order>(getAllOrders());
|
list = new ArrayList<Order>(getAllOrders());
|
||||||
|
|
||||||
int line = 1;
|
int line = 1;
|
||||||
int lineCount = countLines(file);
|
int lineCount = countLines(file);
|
||||||
isLoadingFile = true;
|
isLoadingFile = true;
|
||||||
@@ -267,7 +305,6 @@ public class OrderDB {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -276,9 +313,9 @@ public class OrderDB {
|
|||||||
prep.close();
|
prep.close();
|
||||||
conn.close();
|
conn.close();
|
||||||
isLoadingFile = false;
|
isLoadingFile = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* saves an order to the database
|
* saves an order to the database
|
||||||
* @param order
|
* @param order
|
||||||
@@ -297,7 +334,6 @@ public class OrderDB {
|
|||||||
|
|
||||||
prep.setBytes(1, bos.toByteArray());
|
prep.setBytes(1, bos.toByteArray());
|
||||||
prep.executeUpdate();
|
prep.executeUpdate();
|
||||||
// prep.addBatch();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ public class Main {
|
|||||||
|
|
||||||
|
|
||||||
public static final boolean DEBUG = true;
|
public static final boolean DEBUG = true;
|
||||||
public static final boolean USE_REMOTE_DB = true;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* called when the application first starts
|
* called when the application first starts
|
||||||
|
|||||||
@@ -37,7 +37,18 @@ public enum Status {
|
|||||||
/**
|
/**
|
||||||
* A fulfillment status representing that the order has been canceled, and will not be delivered to the customer
|
* A fulfillment status representing that the order has been canceled, and will not be delivered to the customer
|
||||||
*/
|
*/
|
||||||
WILL_NOT_DELIVER;
|
WILL_NOT_DELIVER,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A financial status representing that the order is chargeable
|
||||||
|
*/
|
||||||
|
CHARGEABLE,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A fulfillment status representing that the order is new
|
||||||
|
*/
|
||||||
|
NEW;
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -64,6 +75,12 @@ public enum Status {
|
|||||||
|
|
||||||
if(s.equals(WILL_NOT_DELIVER.toString()))
|
if(s.equals(WILL_NOT_DELIVER.toString()))
|
||||||
return WILL_NOT_DELIVER;
|
return WILL_NOT_DELIVER;
|
||||||
|
|
||||||
|
if(s.equals(CHARGEABLE.toString()))
|
||||||
|
return CHARGEABLE;
|
||||||
|
|
||||||
|
if(s.equals(NEW.toString()))
|
||||||
|
return NEW;
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,6 @@ package com.TwentyCodes.java.OrderProcessor;
|
|||||||
*/
|
*/
|
||||||
public enum TextStyle {
|
public enum TextStyle {
|
||||||
|
|
||||||
BOLD, ITALIC, REGULAR, RED, GREEN
|
BOLD, ITALIC, REGULAR, RED, BLUE
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -16,12 +16,12 @@ import javax.swing.JButton;
|
|||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
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.DatePickerListener;
|
||||||
import com.TwentyCodes.java.OrderProcessor.InvalidDateFormatException;
|
import com.TwentyCodes.java.OrderProcessor.InvalidDateFormatException;
|
||||||
import com.toedter.calendar.JCalendar;
|
import com.toedter.calendar.JCalendar;
|
||||||
|
import com.toedter.components.JSpinField;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* a simple date picker window that allows the user to easily pick a date
|
* a simple date picker window that allows the user to easily pick a date
|
||||||
@@ -30,11 +30,13 @@ import com.toedter.calendar.JCalendar;
|
|||||||
public class DatePicker extends JFrame implements ActionListener {
|
public class DatePicker extends JFrame implements ActionListener {
|
||||||
|
|
||||||
private static final long serialVersionUID = -8460535573336456875L;
|
private static final long serialVersionUID = -8460535573336456875L;
|
||||||
|
public static final int END_DATE_RESULT = 1;
|
||||||
|
public static final int START_DATE_RESULT = 0;
|
||||||
private JCalendar mCalendar;
|
private JCalendar mCalendar;
|
||||||
private JButton mOkButton;
|
private JButton mOkButton;
|
||||||
private JTextField mHours;
|
private JSpinField mHours;
|
||||||
private JTextField mSeconds;
|
private JSpinField mSeconds;
|
||||||
private JTextField mMinutes;
|
private JSpinField mMinutes;
|
||||||
private DatePickerListener mListener;
|
private DatePickerListener mListener;
|
||||||
private JLabel mFailLabel;
|
private JLabel mFailLabel;
|
||||||
private int mResultCode;
|
private int mResultCode;
|
||||||
@@ -54,16 +56,22 @@ public class DatePicker extends JFrame implements ActionListener {
|
|||||||
//Time fields
|
//Time fields
|
||||||
JPanel p = new JPanel();
|
JPanel p = new JPanel();
|
||||||
p.add(new JLabel("Hours:"));
|
p.add(new JLabel("Hours:"));
|
||||||
mHours = new JTextField();
|
mHours = new JSpinField();
|
||||||
mHours.setColumns(10);
|
mHours.setMinimum(0);
|
||||||
|
mHours.setMaximum(23);
|
||||||
|
mHours.adjustWidthToMaximumValue();
|
||||||
p.add(mHours);
|
p.add(mHours);
|
||||||
p.add(new JLabel("Minutes:"));
|
p.add(new JLabel("Minutes:"));
|
||||||
mMinutes = new JTextField();
|
mMinutes = new JSpinField();
|
||||||
mMinutes.setColumns(10);
|
mMinutes.setMinimum(0);
|
||||||
|
mMinutes.setMaximum(59);
|
||||||
|
mMinutes.adjustWidthToMaximumValue();
|
||||||
p.add(mMinutes);
|
p.add(mMinutes);
|
||||||
p.add(new JLabel("Seconds:"));
|
p.add(new JLabel("Seconds:"));
|
||||||
mSeconds = new JTextField();
|
mSeconds = new JSpinField();
|
||||||
mSeconds.setColumns(10);
|
mSeconds.setMinimum(0);
|
||||||
|
mSeconds.setMaximum(59);
|
||||||
|
mSeconds.adjustWidthToMaximumValue();
|
||||||
p.add(mSeconds);
|
p.add(mSeconds);
|
||||||
this.getContentPane().add(p, BorderLayout.NORTH);
|
this.getContentPane().add(p, BorderLayout.NORTH);
|
||||||
|
|
||||||
@@ -81,6 +89,13 @@ public class DatePicker extends JFrame implements ActionListener {
|
|||||||
mFailLabel.setVisible(false);
|
mFailLabel.setVisible(false);
|
||||||
p.add(mFailLabel);
|
p.add(mFailLabel);
|
||||||
|
|
||||||
|
//if this is an end date, then set the time to the latest possible
|
||||||
|
if(resultCode == END_DATE_RESULT){
|
||||||
|
mHours.setValue(23);
|
||||||
|
mMinutes.setValue(59);
|
||||||
|
mSeconds.setValue(59);
|
||||||
|
}
|
||||||
|
|
||||||
pack();
|
pack();
|
||||||
this.setVisible(true);
|
this.setVisible(true);
|
||||||
}
|
}
|
||||||
@@ -90,7 +105,7 @@ public class DatePicker extends JFrame implements ActionListener {
|
|||||||
try {
|
try {
|
||||||
mListener.onDatePicked(mResultCode, new Date(
|
mListener.onDatePicked(mResultCode, new Date(
|
||||||
mCalendar.getYearChooser().getYear()+"-"+ (mCalendar.getMonthChooser().getMonth()+1) +"-"+ mCalendar.getDayChooser().getDay() +
|
mCalendar.getYearChooser().getYear()+"-"+ (mCalendar.getMonthChooser().getMonth()+1) +"-"+ mCalendar.getDayChooser().getDay() +
|
||||||
" "+ Integer.parseInt(mHours.getText())+":"+ Integer.parseInt(mMinutes.getText())+":"+ Integer.parseInt(mSeconds.getText())));
|
" "+ mHours.getValue()+":"+ mMinutes.getValue()+":"+ mSeconds.getValue()));
|
||||||
this.dispose();
|
this.dispose();
|
||||||
} catch (NumberFormatException e1) {
|
} catch (NumberFormatException e1) {
|
||||||
e1.printStackTrace();
|
e1.printStackTrace();
|
||||||
|
|||||||
@@ -55,23 +55,32 @@ public class OrderPane extends JScrollPane {
|
|||||||
BigDecimal possible = new BigDecimal(0);
|
BigDecimal possible = new BigDecimal(0);
|
||||||
BigDecimal actual = new BigDecimal(0);
|
BigDecimal actual = new BigDecimal(0);
|
||||||
int total = 0;
|
int total = 0;
|
||||||
for (Order item : list) {
|
|
||||||
if(mListener != null)
|
for (int i = 0; i < list.size(); i++) {
|
||||||
mListener.onProgressUpdate("Processing Order: "+ (total+1) +" of "+ list.size(), false, total, list.size());
|
if(mListener != null)
|
||||||
|
mListener.onProgressUpdate("Processing Order: "+ (i+1) +" of "+ list.size(), false, i, list.size());
|
||||||
switch (item.getFulfillmentStatus()) {
|
|
||||||
case WILL_NOT_DELIVER:
|
try {
|
||||||
styles.add(TextStyle.RED.toString());
|
switch (list.get(i).getFulfillmentStatus()) {
|
||||||
break;
|
case WILL_NOT_DELIVER:
|
||||||
default:
|
styles.add(TextStyle.RED.toString());
|
||||||
|
break;
|
||||||
|
case NEW:
|
||||||
|
styles.add(TextStyle.BLUE.toString());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
styles.add(TextStyle.REGULAR.toString());
|
||||||
|
total++;
|
||||||
|
actual = actual.add(new BigDecimal((list.get(i).getAmountCharged())));
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
styles.add(TextStyle.REGULAR.toString());
|
styles.add(TextStyle.REGULAR.toString());
|
||||||
total++;
|
}
|
||||||
|
possible = possible.add(new BigDecimal((list.get(i).getOrderAmount())));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
possible = possible.add(new BigDecimal(item.getOrderAmount()));
|
|
||||||
actual = actual.add(new BigDecimal(item.getAmountCharged()));
|
|
||||||
}
|
|
||||||
|
|
||||||
updateTextPane(list, styles);
|
updateTextPane(list, styles);
|
||||||
updateTextPane("\nPossible sales: $" + possible.setScale(2, BigDecimal.ROUND_DOWN) + "\nActual sales: $" + actual.setScale(2, BigDecimal.ROUND_DOWN) + "\nPossible sold:" + list.size() + "\nTotal sold: " + total, TextStyle.BOLD);
|
updateTextPane("\nPossible sales: $" + possible.setScale(2, BigDecimal.ROUND_DOWN) + "\nActual sales: $" + actual.setScale(2, BigDecimal.ROUND_DOWN) + "\nPossible sold:" + list.size() + "\nTotal sold: " + total, TextStyle.BOLD);
|
||||||
}
|
}
|
||||||
@@ -151,8 +160,9 @@ public class OrderPane extends JScrollPane {
|
|||||||
StyleConstants.setForeground(s, Color.RED);
|
StyleConstants.setForeground(s, Color.RED);
|
||||||
StyleConstants.setBold(s, true);
|
StyleConstants.setBold(s, true);
|
||||||
|
|
||||||
s = doc.addStyle("GREEN", regular);
|
s = doc.addStyle("BLUE", regular);
|
||||||
StyleConstants.setForeground(s, Color.GREEN);
|
StyleConstants.setForeground(s, Color.BLUE);
|
||||||
|
StyleConstants.setBold(s, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import java.awt.event.MouseListener;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.SocketException;
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
@@ -34,7 +33,6 @@ import com.TwentyCodes.java.OrderProcessor.Date;
|
|||||||
import com.TwentyCodes.java.OrderProcessor.DatePickerListener;
|
import com.TwentyCodes.java.OrderProcessor.DatePickerListener;
|
||||||
import com.TwentyCodes.java.OrderProcessor.FileFilter;
|
import com.TwentyCodes.java.OrderProcessor.FileFilter;
|
||||||
import com.TwentyCodes.java.OrderProcessor.InvalidDateFormatException;
|
import com.TwentyCodes.java.OrderProcessor.InvalidDateFormatException;
|
||||||
import com.TwentyCodes.java.OrderProcessor.Main;
|
|
||||||
import com.TwentyCodes.java.OrderProcessor.Order;
|
import com.TwentyCodes.java.OrderProcessor.Order;
|
||||||
import com.TwentyCodes.java.OrderProcessor.ProgressListener;
|
import com.TwentyCodes.java.OrderProcessor.ProgressListener;
|
||||||
|
|
||||||
@@ -45,13 +43,10 @@ import com.TwentyCodes.java.OrderProcessor.ProgressListener;
|
|||||||
public class SearchPanel extends JPanel implements ActionListener, ProgressListener, MouseListener, DatePickerListener {
|
public class SearchPanel extends JPanel 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;
|
||||||
private boolean isProcessing = false;
|
|
||||||
private int mListSize;
|
|
||||||
private OrderPane mOrderPanel;
|
private OrderPane mOrderPanel;
|
||||||
private JTextField mStartDateField;
|
private JTextField mStartDateField;
|
||||||
private JTextField mEndDateField;
|
private JTextField mEndDateField;
|
||||||
@@ -120,6 +115,8 @@ public class SearchPanel extends JPanel implements ActionListener, ProgressListe
|
|||||||
//progress bar
|
//progress bar
|
||||||
mProgressBar = new JProgressBar();
|
mProgressBar = new JProgressBar();
|
||||||
add(mProgressBar, BorderLayout.SOUTH);
|
add(mProgressBar, BorderLayout.SOUTH);
|
||||||
|
mProgressBar.setStringPainted(true);
|
||||||
|
|
||||||
//file chooser
|
//file chooser
|
||||||
fc = new JFileChooser();
|
fc = new JFileChooser();
|
||||||
fc.setFileFilter(new FileFilter());
|
fc.setFileFilter(new FileFilter());
|
||||||
@@ -220,8 +217,6 @@ public class SearchPanel extends JPanel implements ActionListener, ProgressListe
|
|||||||
private void preformSearch(final String search, final Date start, final Date end) {
|
private void preformSearch(final String search, final Date start, final Date end) {
|
||||||
java.util.concurrent.Executors.newSingleThreadExecutor().submit(new Runnable() {
|
java.util.concurrent.Executors.newSingleThreadExecutor().submit(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
mProgressBar.setString("Searching for: "+search);
|
|
||||||
mProgressBar.setStringPainted(true);
|
|
||||||
MainWindow.db.setOnProgressListerner(SearchPanel.this);
|
MainWindow.db.setOnProgressListerner(SearchPanel.this);
|
||||||
|
|
||||||
ArrayList<Order> list = null;
|
ArrayList<Order> list = null;
|
||||||
@@ -239,18 +234,10 @@ public class SearchPanel extends JPanel implements ActionListener, ProgressListe
|
|||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
mListSize = list.size();
|
|
||||||
|
|
||||||
mProgressBar.setMaximum(mProgressBar.getMaximum() + mListSize);
|
|
||||||
isProcessing = true;
|
|
||||||
mProgressBar.setString("Processing Order: "+ 1 +" of "+ mListSize);
|
|
||||||
mFrame.pack();
|
|
||||||
|
|
||||||
mOrderPanel.setOnProgressListerner(SearchPanel.this);
|
mOrderPanel.setOnProgressListerner(SearchPanel.this);
|
||||||
mOrderPanel.displayOrders(list);
|
mOrderPanel.displayOrders(list);
|
||||||
|
|
||||||
isProcessing = false;
|
|
||||||
|
|
||||||
mFrame.pack();
|
mFrame.pack();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -268,24 +255,6 @@ public class SearchPanel extends JPanel implements ActionListener, ProgressListe
|
|||||||
mProgressBar.setValue(progress);
|
mProgressBar.setValue(progress);
|
||||||
mProgressBar.setIndeterminate(isIndeterminate);
|
mProgressBar.setIndeterminate(isIndeterminate);
|
||||||
mProgressBar.setString(string);
|
mProgressBar.setString(string);
|
||||||
|
|
||||||
if(Main.DEBUG)
|
|
||||||
System.out.println("search progress = "+ progress);
|
|
||||||
|
|
||||||
progress++;
|
|
||||||
|
|
||||||
if(isProcessing){
|
|
||||||
try {
|
|
||||||
mProgressBar.setValue(progress + MainWindow.db.getCount());
|
|
||||||
} catch (SQLException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (SocketException e) {
|
|
||||||
mOrderPanel.setText(e.getMessage());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
mProgressBar.setValue(progress);
|
|
||||||
mProgressBar.setMaximum(max);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -297,11 +266,11 @@ public class SearchPanel extends JPanel implements ActionListener, ProgressListe
|
|||||||
@Override
|
@Override
|
||||||
public void mouseClicked(MouseEvent e) {
|
public void mouseClicked(MouseEvent e) {
|
||||||
if(e.getSource() == mEndDateField){
|
if(e.getSource() == mEndDateField){
|
||||||
new DatePicker(END_DATE_RESULT, this);
|
new DatePicker(DatePicker.END_DATE_RESULT, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(e.getSource() == mStartDateField){
|
if(e.getSource() == mStartDateField){
|
||||||
new DatePicker(START_DATE_RESULT, this);
|
new DatePicker(DatePicker.START_DATE_RESULT, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -342,10 +311,10 @@ public class SearchPanel extends JPanel implements ActionListener, ProgressListe
|
|||||||
@Override
|
@Override
|
||||||
public void onDatePicked(int resultCode, Date date) {
|
public void onDatePicked(int resultCode, Date date) {
|
||||||
switch(resultCode){
|
switch(resultCode){
|
||||||
case START_DATE_RESULT:
|
case DatePicker.START_DATE_RESULT:
|
||||||
mStartDateField.setText(date.getYear()+"-"+date.getMonth()+"-"+date.getDay()+" "+date.getHour()+":"+date.getMinute()+":"+date.getSecond());
|
mStartDateField.setText(date.getYear()+"-"+date.getMonth()+"-"+date.getDay()+" "+date.getHour()+":"+date.getMinute()+":"+date.getSecond());
|
||||||
break;
|
break;
|
||||||
case END_DATE_RESULT:
|
case DatePicker.END_DATE_RESULT:
|
||||||
mEndDateField.setText(date.getYear()+"-"+date.getMonth()+"-"+date.getDay()+" "+date.getHour()+":"+date.getMinute()+":"+date.getSecond());
|
mEndDateField.setText(date.getYear()+"-"+date.getMonth()+"-"+date.getDay()+" "+date.getHour()+":"+date.getMinute()+":"+date.getSecond());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,4 +21,11 @@ i created a settings panel that uses a .property file to save settings.
|
|||||||
i modified OrderDB to use the .property file
|
i modified OrderDB to use the .property file
|
||||||
|
|
||||||
1.0.6 b 34
|
1.0.6 b 34
|
||||||
created the static method MainWindow.loadDatabase() for easy database reloading
|
created the static method MainWindow.loadDatabase() for easy database reloading
|
||||||
|
|
||||||
|
1.1.0 B 45
|
||||||
|
created statuss for NEW and CHARGABLE, and added the options to the order pane.
|
||||||
|
added the ability to remove existing orders if they are new, so they can be replaced
|
||||||
|
added the ability to print all new order in blue
|
||||||
|
improved order pane processing
|
||||||
|
modified the date picker to be easier to use
|
||||||
@@ -1 +1 @@
|
|||||||
1.0.6 b 34
|
1.1.0 b 35
|
||||||
Reference in New Issue
Block a user