Pārlūkot izejas kodu

Table view added.

Gilian Joosen 10 gadi atpakaļ
vecāks
revīzija
19acaa5e06

+ 7 - 2
src/gui/frames/MainFrame.java

@@ -8,6 +8,8 @@ import javax.swing.JFrame;
 import javax.swing.JPanel;
 
 import agenda.Agenda;
+import gui.panels.table.Table;
+import sun.tools.jconsole.Tab;
 
 import java.awt.*;
 import java.lang.reflect.InvocationTargetException;
@@ -16,14 +18,14 @@ import java.lang.reflect.Method;
 @SuppressWarnings("serial")
 public class MainFrame extends JFrame{
 	
-    public enum Views{EDITOR, SIMULATOR, AGENDA};
+    public enum Views{EDITOR, SIMULATOR, AGENDA, TABLE};
     
     private Agenda agenda;
     private JPanel currentPanel;
     
     public MainFrame(){
         this.agenda = new Agenda();
-        this.currentPanel = new EditPane(this.agenda);
+        this.currentPanel = new Table(this.agenda);
         this.add(this.currentPanel);
 		this.setResizable(true);
 		this.setBounds(100,100,1440,900);
@@ -60,6 +62,9 @@ public class MainFrame extends JFrame{
             case SIMULATOR:
                 //komt later nog.
                 break;
+            case TABLE:
+                this.updateView(new Table(this.agenda));
+                break;
         }
     }
     

+ 9 - 0
src/gui/menubar/MenuBar.java

@@ -46,6 +46,7 @@ public class MenuBar extends JMenuBar{
         JMenuItem editorView = new JMenuItem("Editor");
         JMenuItem agendaView = new JMenuItem("Agenda");
         JMenuItem simulatorView = new JMenuItem("Simulator");
+        JMenuItem tableView = new JMenuItem("Table");
 
         newAction.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK));
         openAction.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
@@ -121,6 +122,14 @@ public class MenuBar extends JMenuBar{
 
             }
         });
+
+        viewMenu.add(tableView);
+        tableView.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                mainFrame.changeView(MainFrame.Views.TABLE);
+            }
+        });
 	}
 	
 }

+ 75 - 0
src/gui/panels/table/TableModel.java

@@ -0,0 +1,75 @@
+package gui.panels.table;
+
+import agenda.Act;
+import agenda.Agenda;
+import agenda.Artist;
+
+import javax.swing.table.AbstractTableModel;
+import java.util.ArrayList;
+
+/**
+ * Created by gjoosen on 23/02/15.
+ */
+public class TableModel extends AbstractTableModel {
+
+    private ArrayList<Act> acts;
+    private Agenda agenda;
+
+    private String[] columnNames;
+    private Object[][] data;
+
+    public TableModel(Agenda agenda){
+        this.acts = new ArrayList<>();
+        this.agenda = agenda;
+
+        for(Act act: this.agenda.getActs()){
+            this.acts.add(act);
+        }
+        this.columnNames = new String[]{"actname", "artists", "stage", "genre" ,"start time", "end time"};
+
+        this.data = new Object[this.acts.size()][columnNames.length];
+        for(int i = 0; i < acts.size(); i++){
+            data[i][0] = acts.get(i).getName();
+            
+            String artists = "";
+            for(Artist artist: acts.get(i).getArtists()){
+                if(!artists.equals("")){
+                    artists += " - " + artist;
+                }else{
+                    artists += artist;
+                }
+            }
+            
+            data[i][1] = artists;
+            data[i][2] = acts.get(i).getStage();
+            data[i][3] = acts.get(i).getGenre();
+            data[i][4] = acts.get(i).getActTime().getBeginTimeString();
+            data[i][5] = acts.get(i).getActTime().getEndTimeString();
+        }
+    }
+
+    @Override
+    public String getColumnName(int col) {
+        return columnNames[col];
+    }
+    
+    @Override
+    public int getRowCount() {
+        return this.data.length;
+    }
+
+    @Override
+    public int getColumnCount() {
+        return this.columnNames.length;
+    }
+
+    @Override
+    public Object getValueAt(int rowIndex, int columnIndex) {
+        return data[rowIndex][columnIndex];
+    }
+
+    @Override
+    public Class getColumnClass(int c) {
+        return getValueAt(0, c).getClass();
+    }
+}