Update Window.java

This commit is contained in:
2015-02-24 17:01:00 +01:00
parent 4fe2761ab1
commit 29063703f6
+77 -10
View File
@@ -1,20 +1,31 @@
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Toolkit; 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.ArrayList;
import java.util.GregorianCalendar;
import java.util.HashMap; import java.util.HashMap;
import javax.swing.JFrame; import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.UIManager; import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException; import javax.swing.UnsupportedLookAndFeelException;
import org.apache.commons.lang3.time.DateUtils;
public class Window extends JFrame { public class Window extends JFrame {
private static HashMap<String, Panel> panels = new HashMap<String, Panel>(); private static HashMap<String, Panel> panels = new HashMap<String, Panel>();
private static JPanel centerPanel; private static JPanel centerPanel;
private static GregorianCalendar date;
private static Agenda agenda;
public Window() public Window()
{ {
@@ -22,7 +33,14 @@ public class Window extends JFrame {
* Initialize window * Initialize window
*/ */
super("Agenda"); 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); setSize(1200, 800);
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
@@ -35,33 +53,82 @@ public class Window extends JFrame {
e.printStackTrace(); e.printStackTrace();
} }
setJMenuBar(new MenuBar()); setJMenuBar(new MenuBar(this));
/* /*
* Create Panels * Create Panels
*/ */
ArrayList<Event> events = new ArrayList<Event>();
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()); JPanel mainPanel = new JPanel(new BorderLayout());
centerPanel = new JPanel(); centerPanel = new JPanel(new BorderLayout());
JPanel bottomPanel = new PanelDate(); 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(centerPanel, BorderLayout.CENTER);
mainPanel.add(bottomPanel, BorderLayout.SOUTH); mainPanel.add(bottomPanel, BorderLayout.SOUTH);
setContentPane(mainPanel); setContentPane(mainPanel);
updatePanel("table"); updatePanel("table2");
//Show window
setVisible(true); setVisible(true);
} }
public static void updatePanel(String panel) public static void updatePanel(String panel)
{ {
centerPanel.removeAll(); if(centerPanel.getComponents().length > 0)
centerPanel.add(panels.get(panel)); {
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(); 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<Event> getEvents()
{
ArrayList<Event> events = new ArrayList<Event>();
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;
}
} }