From 2a6a5c57b1a8991f9752503111a760039b7b8aa1 Mon Sep 17 00:00:00 2001 From: ricky barrette Date: Fri, 7 Jan 2011 16:47:56 +0000 Subject: [PATCH] created a file filter for the jfile chooser for CSV files --- .../java/OrderProcessor/FileFilter.java | 77 +++++++++++++++++++ .../java/OrderProcessor/UI/MainWindow.java | 9 ++- 2 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 Order Processor/src/com/TwentyCodes/java/OrderProcessor/FileFilter.java diff --git a/Order Processor/src/com/TwentyCodes/java/OrderProcessor/FileFilter.java b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/FileFilter.java new file mode 100644 index 0000000..63398f8 --- /dev/null +++ b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/FileFilter.java @@ -0,0 +1,77 @@ +/** + * FileFilter.java + * @date Jan 7, 2011 + * @author ricky barrette + * @author Twenty Codes, LLC + */ +package com.TwentyCodes.java.OrderProcessor; + +import java.io.File; + +/** + * A file filter for the JFilechooser + * @author ricky barrette + */ +public class FileFilter extends javax.swing.filechooser.FileFilter { + + public final static String csv = "csv"; + + /** + * Creates a new FileFilter + * @author ricky barrette + */ + public FileFilter() { + // TODO Auto-generated constructor stub + } + + /** + * (non-Javadoc) + * @see javax.swing.filechooser.FileFilter#accept(java.io.File) + * @author ricky barrette + */ + @Override + public boolean accept(File f) { + if (f.isDirectory()) { + return true; + } + + String extension = getExtension(f); + if (extension != null) { + if (extension.equals(csv)) { + return true; + } else { + return false; + } + } + + return false; + } + + /** + * (non-Javadoc) + * @see javax.swing.filechooser.FileFilter#getDescription() + * @author ricky barrette + */ + @Override + public String getDescription() { + return "Google Checkout CSV files"; + } + + /** + * Get the extension of a file + * @param f file + * @return file's extension + * @author ricky barrette + */ + private String getExtension(File f) { + String ext = null; + String s = f.getName(); + int i = s.lastIndexOf('.'); + + if (i > 0 && i < s.length() - 1) { + ext = s.substring(i+1).toLowerCase(); + } + return ext; + } + +} diff --git a/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/MainWindow.java b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/MainWindow.java index dcfd42d..520eaf1 100644 --- a/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/MainWindow.java +++ b/Order Processor/src/com/TwentyCodes/java/OrderProcessor/UI/MainWindow.java @@ -21,6 +21,7 @@ import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JProgressBar; +import com.TwentyCodes.java.OrderProcessor.FileFilter; import com.TwentyCodes.java.OrderProcessor.OrderDB; import com.TwentyCodes.java.OrderProcessor.ProgressListener; import com.TwentyCodes.java.OrderProcessor.UncaughtExceptionHandler; @@ -57,11 +58,11 @@ public class MainWindow extends JFrame implements ActionListener, ProgressListen mSearchButton = new JButton("Search"); mSearchButton.addActionListener(this); - panel.add(mSearchButton, "cell 0 0,grow"); - panel.add(mShowAllButton, "cell 0 0,alignx left,aligny top"); + panel.add(mSearchButton); + panel.add(mShowAllButton); mLoadFileButton = new JButton("Load File"); mLoadFileButton.addActionListener(this); - panel.add(mLoadFileButton, "cell 0 0,alignx left,aligny top"); + panel.add(mLoadFileButton); mProgressBar = new JProgressBar(); getContentPane().add(mProgressBar, BorderLayout.SOUTH); @@ -70,7 +71,7 @@ public class MainWindow extends JFrame implements ActionListener, ProgressListen db = new OrderDB(); fc = new JFileChooser(); - fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); + fc.setFileFilter(new FileFilter()); db.setOnProgressListerner(this); }