package fachkonzept; import db.*; import java.util.*; import javax.swing.table.*; import javax.swing.tree.*; import java.sql.*; public class Model extends Observable{ private MyTableModel aTableModel; private MyTreeModel aTreeModel; public Model(){ } public TreeModel getTreeModel(){ return aTreeModel; } public TableModel getTableModel(){ return aTableModel; } public void setTableModel(String table, String query){ aTableModel = new MyTableModel(table,query); setChanged(); notifyObservers(); } public void setTreeModel(){ aTreeModel = new MyTreeModel(); setChanged(); notifyObservers(); } private class MyTreeModel extends DefaultTreeModel{ static final long serialVersionUID = 1L; private ResultSet res; public MyTreeModel(){ super(new DefaultMutableTreeNode("Alle Veranstaltungen")); try{ res = new DBAccess().getConnection().createStatement(). executeQuery("select * from tabellen;"); while (res.next()){ insertNodeInto( new DefaultMutableTreeNode (res.getString(1)), (DefaultMutableTreeNode)root, res.getInt(2)); } }catch (Exception ae){ System.err.print(ae.getMessage()); ae.printStackTrace(); } } } private class MyTableModel extends AbstractTableModel{ static final long serialVersionUID = 1L; private ResultSet res; private int rows=0; private int columns=0; private Object[][] data; private String[] columnNames; public MyTableModel(String table, String query){ try{ res = new DBAccess().getConnection().createStatement(). executeQuery("select count(*) from "+table+";"); res.next(); rows = res.getInt(1); res = new DBAccess().getConnection().createStatement(). executeQuery(query); columns = res.getMetaData().getColumnCount(); columnNames = new String[columns]; for (int i=1; i<= columns; i++){ columnNames[i-1]=res.getMetaData().getColumnName(i); } data = new Object[rows][columns]; for (int i=0; i(this); } public int getColumnCount() { return columns;} public int getRowCount() { return rows;} public Object getValueAt(int row, int col) { return data[row][col]; } public String getColumnName(int col) { return columnNames[col]; } public Class getColumnClass(int columnIndex){ return data[0][columnIndex].getClass(); } } }