From 29063703f6ad1b2552722cbca72af9728720e420 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Tue, 24 Feb 2015 17:01:00 +0100 Subject: [PATCH] Update Window.java --- Window.java | 87 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 77 insertions(+), 10 deletions(-) diff --git a/Window.java b/Window.java index 1ace408..70e6301 100644 --- a/Window.java +++ b/Window.java @@ -1,20 +1,31 @@ import java.awt.BorderLayout; +import java.awt.Color; import java.awt.Dimension; import java.awt.Toolkit; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.GregorianCalendar; import java.util.HashMap; import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; +import org.apache.commons.lang3.time.DateUtils; + public class Window extends JFrame { private static HashMap panels = new HashMap(); private static JPanel centerPanel; + private static GregorianCalendar date; + private static Agenda agenda; public Window() { @@ -22,7 +33,14 @@ public class Window extends JFrame { * Initialize window */ super("Agenda"); - setDefaultCloseOperation(EXIT_ON_CLOSE); + agenda = new Agenda(); + + setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); + addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent evt) { + onExit(); + } + }); setSize(1200, 800); Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); @@ -35,33 +53,82 @@ public class Window extends JFrame { e.printStackTrace(); } - setJMenuBar(new MenuBar()); + setJMenuBar(new MenuBar(this)); /* * Create Panels */ - ArrayList events = new ArrayList(); - events.add(new Event(2015, 2, 24, 12, 21, 2015, 2, 24, 13, 23, new Artist("Kenneth van Ewijk", "PeopMuziek", "null", "Cool vent"), "Leuke dingen deon", 2, 1)); - panels.put("table", new PanelTable(events, null)); + //Agenda Panels + Panel tablePanel = new PanelTable(); + panels.put("table", tablePanel); + + //Main Panels JPanel mainPanel = new JPanel(new BorderLayout()); - centerPanel = new JPanel(); - JPanel bottomPanel = new PanelDate(); + centerPanel = new JPanel(new BorderLayout()); + centerPanel.setBackground(Color.WHITE); + JPanel bottomPanel = new JPanel(); + bottomPanel.setBackground(Color.DARK_GRAY); + + date = new GregorianCalendar(); + SimpleDateFormat formatter=new SimpleDateFormat("dd-MM-yyyy"); + JLabel dateLabel = new JLabel(formatter.format(date.getTime())); + dateLabel.setForeground(Color.WHITE); + bottomPanel.add(dateLabel); + + //Add panels mainPanel.add(centerPanel, BorderLayout.CENTER); mainPanel.add(bottomPanel, BorderLayout.SOUTH); setContentPane(mainPanel); - updatePanel("table"); + updatePanel("table2"); + //Show window setVisible(true); } public static void updatePanel(String panel) { - centerPanel.removeAll(); - centerPanel.add(panels.get(panel)); + if(centerPanel.getComponents().length > 0) + { + centerPanel.remove(0); + } + Panel p = panels.get(panel); + p.update(getEvents()); + JPanel p1 = (JPanel)p; + p1.setPreferredSize(centerPanel.getSize()); + centerPanel.add(p1, BorderLayout.CENTER); centerPanel.repaint(); + p1.repaint(); } + + public void onExit() { + if(JOptionPane.showConfirmDialog(null, "Are you sure you want to close this program?", "Close Agenda", JOptionPane.YES_NO_OPTION) == JOptionPane.OK_OPTION) + { + System.exit(0); + } + } + + public static ArrayList getEvents() + { + ArrayList events = new ArrayList(); + for(Event e : agenda.getEvents()) + { + if(DateUtils.isSameDay(e.getStartDate(), date) || DateUtils.isSameDay(e.getEndDate(), date)) + { + events.add(e); + } + } + + return events; + } + + public Agenda getAgenda() + { + return agenda; + } + + }