Update PanelTable.java

This commit is contained in:
2015-02-24 17:00:11 +01:00
parent 755941598e
commit 46be84245b
+18 -16
View File
@@ -2,11 +2,12 @@ import java.awt.Dimension;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.GregorianCalendar;
import javax.swing.JFrame; import javax.swing.JFrame;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.JTable; import javax.swing.JTable;
import javax.swing.table.AbstractTableModel; import javax.swing.table.AbstractTableModel;
@@ -16,7 +17,7 @@ import javax.swing.table.AbstractTableModel;
* @author Wesley * @author Wesley
* @version 1.0 * @version 1.0
*/ */
public class PanelTable extends Panel { public class PanelTable extends JPanel implements Panel{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private JScrollPane scrollPane; private JScrollPane scrollPane;
@@ -35,16 +36,12 @@ public class PanelTable extends Panel {
* Constructor makes the table and adds it to a scrollPane. * Constructor makes the table and adds it to a scrollPane.
* @param events * @param events
*/ */
public PanelTable(ArrayList<Event> events, GregorianCalendar calendar) { public PanelTable() {
super(calendar);
this.events = events;
fullEvents = new ArrayList<>();
compileData(columnNames.length,events.size());
table= new JTable(); table= new JTable();
AbstractTableModel tableModel = new ContentTable(data,columnNames);
table.setModel(tableModel);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setAutoCreateRowSorter(true); table.setAutoCreateRowSorter(true);
table.setAutoResizeMode(table.AUTO_RESIZE_ALL_COLUMNS);
table.addMouseListener(new MouseAdapter() { table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) { if(e.getClickCount() > 1 ) cellClicked(e); else selectedCell = (JTable) e.getSource(); } public void mouseClicked(MouseEvent e) { if(e.getClickCount() > 1 ) cellClicked(e); else selectedCell = (JTable) e.getSource(); }
}); });
@@ -66,14 +63,15 @@ public class PanelTable extends Panel {
* @param rows * @param rows
*/ */
public void compileData(int columnes, int rows) { public void compileData(int columnes, int rows) {
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm");
data = new Object[rows][columnes]; data = new Object[rows][columnes];
for(int x = 0; x < rows; x++) { for(int x = 0; x < rows; x++) {
Object[] tempData = new Object[columnes]; Object[] tempData = new Object[columnes];
tempData[0] = "Stage 1"; tempData[0] = "Stage 1";
tempData[1] = events.get(x).getName(); tempData[1] = events.get(x).getEventName();
tempData[2] = events.get(x).getArtist().getName(); tempData[2] = events.get(x).getArtist().getName();
tempData[3] = events.get(x).getStartDate(); tempData[3] = formatter.format(events.get(x).getStartDate().getTime());
tempData[4] = events.get(x).getEndDate(); tempData[4] = formatter.format(events.get(x).getEndDate().getTime());
data[x] = tempData; data[x] = tempData;
} }
} }
@@ -82,7 +80,12 @@ public class PanelTable extends Panel {
* Refreshes the content on the table with a fresh ArrayList of events, useful when things are removed and added and should be called every time you update the list. * Refreshes the content on the table with a fresh ArrayList of events, useful when things are removed and added and should be called every time you update the list.
* @param events * @param events
*/ */
public void refreshContent(ArrayList<Event> events, boolean newList) { public void update(ArrayList<Event> events)
{
update(events, true);
}
public void update(ArrayList<Event> events, boolean newList) {
this.events = events; this.events = events;
if(newList) if(newList)
this.fullEvents = events; this.fullEvents = events;
@@ -151,11 +154,9 @@ public class PanelTable extends Panel {
switch(selectedCell.getSelectedColumn()) { switch(selectedCell.getSelectedColumn()) {
case 0: case 0:
for(Event event : fullEvents) { for(Event event : fullEvents) {
/*
if(event.getStage().equals(events.get(selectedCell.getSelectedRow()).getStage())) { if(event.getStage().equals(events.get(selectedCell.getSelectedRow()).getStage())) {
filteredList.add(event); filteredList.add(event);
} }
*/
} }
break; break;
case 1: case 1:
@@ -174,11 +175,12 @@ public class PanelTable extends Panel {
break; break;
} }
refreshContent(filteredList,false); update(filteredList,false);
selectedCell = null; selectedCell = null;
} }
else { else {
JOptionPane.showMessageDialog(this, "Select a cell with the value u want to filter on","No cell selected",JOptionPane.WARNING_MESSAGE); JOptionPane.showMessageDialog(this, "Select a cell with the value u want to filter on","No cell selected",JOptionPane.WARNING_MESSAGE);
} }
} }
} }