diff --git a/Week9.java b/Week9.java index 87b3df3..35025d5 100644 --- a/Week9.java +++ b/Week9.java @@ -1,7 +1,13 @@ import java.awt.event.*; import java.util.ArrayList; +import java.util.Scanner; + +import javax.swing.JOptionPane; + import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; public class Week9 { private static ArrayList tasks; @@ -28,11 +34,22 @@ public class Week9 { // TODO gui.update(tasks); } + + //addBtn Method + private static void addBtn() { + String[] strs = new String[3]; + strs[0] = JOptionPane.showInputDialog("Please Enter A Title:"); + strs[1] = JOptionPane.showInputDialog("Please Enter A Discription:"); + strs[2] = JOptionPane.showInputDialog("Please Enter A Due Date:"); - private void parse(File f) { + + } + + private void parse(File f) throws IOException { // TODO: Need to open the file and get each line. // TODO: Parse the format ("TITLE, DESCRIPTION, DUE DATE, COMPLETED"), // TODO: Create a new Task object and add it to the ArrayList. + } // Writes each task to the file after a change. @@ -72,7 +89,12 @@ public class Week9 { if(f.isFile()) { System.out.println("loading tasks from " + filepath); - parse(f); + try { + parse(f); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } else { try { f.createNewFile(); @@ -108,8 +130,14 @@ public class Week9 { filterByComplete(); } }; + + ActionListener addBtn = new ActionListener() { + public void actionPerformed(ActionEvent e) { + addBtn(); + } + }; - gui = new Week9Gui(tasks, sortByTitle, sortByDueDate, filterByCompleted); + gui = new Week9Gui(tasks, sortByTitle, sortByDueDate, filterByCompleted, addBtn); } } diff --git a/Week9Gui.java b/Week9Gui.java index 7c1070c..05030ae 100644 --- a/Week9Gui.java +++ b/Week9Gui.java @@ -9,6 +9,7 @@ import javax.swing.UIManager; import java.awt.event.*; import java.awt.BorderLayout; +import java.awt.Dimension; import java.awt.GridLayout; public class Week9Gui { @@ -17,29 +18,31 @@ public class Week9Gui { private ActionListener titleSort; private ActionListener dueDateSort; private ActionListener completeFilter; + private ActionListener addBtn; - public Week9Gui(ArrayList tasks, ActionListener titleSort, ActionListener dueDateSort, ActionListener completeFilter) { + public Week9Gui(ArrayList tasks, ActionListener titleSort, ActionListener dueDateSort, ActionListener completeFilter, ActionListener addBtn) { this.titleSort = titleSort; this.dueDateSort = dueDateSort; this.completeFilter = completeFilter; - + this.addBtn = addBtn; initGui(tasks); } // Setup the basic GUI layout. private void initGui(ArrayList tasks) { - frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); - frame.setLayout(new BorderLayout()); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.getContentPane().setLayout(new BorderLayout()); frame.setLocationRelativeTo(null); - + frame.setPreferredSize(new Dimension(600, 450)); + frame.setSize(frame.getPreferredSize()); try { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); } catch (Exception e) { System.out.println("Error with cross platform look & feel."); } - frame.add(buttonsView(), BorderLayout.PAGE_END); - frame.add(view(tasks)); + frame.getContentPane().add(buttonsView(), BorderLayout.PAGE_END); + frame.getContentPane().add(view(tasks)); frame.setVisible(true); } @@ -54,14 +57,21 @@ public class Week9Gui { JButton filterByComplete = new JButton("Complete"); filterByComplete.addActionListener(completeFilter); + + JButton addBtn = new JButton("Add"); + addBtn.addActionListener(this.addBtn); + + - JPanel p = new JPanel(new GridLayout(2, 3)); + JPanel p = new JPanel(new GridLayout(0, 4)); p.add(new JLabel("Sort by:")); p.add(new JLabel("Sort by:")); p.add(new JLabel("Filter by:")); + p.add(new JLabel("Add to:")); p.add(sortByTitle); p.add(sortByDueDate); p.add(filterByComplete); + p.add(addBtn); return p; } @@ -87,8 +97,8 @@ public class Week9Gui { // Clear everything and refresh the JFrame to update information. public void update(ArrayList tasks) { frame.getContentPane().removeAll(); - frame.add(buttonsView(), BorderLayout.PAGE_END); - frame.add(view(tasks)); + frame.getContentPane().add(buttonsView(), BorderLayout.PAGE_END); + frame.getContentPane().add(view(tasks)); frame.repaint(); frame.revalidate(); frame.pack();