import java.io.*; import javax.swing.DefaultCellEditor; import javax.swing.JComboBox; import javax.swing.table.AbstractTableModel; import java.text.DateFormat; import java.text.ParseException; import java.util.Vector; import java.util.Date; /** *

Überschrift: TierCon

* *

Beschreibung: Container Klasse der Tiere

* *

Copyright: Copyright (c) 2005

* *

Organisation:

* * @author Andreas Spirka, Sven Eisenhauer * @version 1.0 */ public class TierCon extends AbstractTableModel implements Serializable { private Vector vec = new Vector(); String[] colnam = { "ID","Name","Tierart","Rasse","Farbe","Alter","Geschlecht","Foto","Sonstiges","Heimeintritt","Impfung","zuständiger Mitarbeiter","Änderung","Befund","Last Changer","Freigabe"}; /** * Konstruktor */ public TierCon() { } /** * @return int naechste freie ID im Container * entspricht TierID */ public int getNextFreeID() { int retVal=1000; if (vec.size()!=0) { retVal=vec.lastElement().getTierID()+1; } return retVal; } /** * @param t Tier * zum Container hinzufuegen */ public void addTier(Tier t) { vec.addElement(t); fireTableDataChanged(); } /** * @param t Tier * aus Container loeschen */ public void removeTier(Tier t) { vec.removeElement(t); fireTableDataChanged(); } /* (non-Javadoc) * @see javax.swing.table.TableModel#getColumnCount() */ public int getColumnCount() { return colnam.length; } /* (non-Javadoc) * @see javax.swing.table.TableModel#getColumnName(int) */ public String getColumnName(int column) { return colnam[ column ]; } /* (non-Javadoc) * @see javax.swing.table.TableModel#getRowCount() */ public int getRowCount() { return vec.size(); } /* (non-Javadoc) * @see javax.swing.table.TableModel#getValueAt(int, int) */ public Object getValueAt(int rowIndex, int columnIndex) { Tier t = (Tier) vec.elementAt( rowIndex ); switch (columnIndex) { case 0: return Integer.toString(t.getTierID()); //ID case 1: return t.getTierName(); //Name case 2: return Tier.TIERARTEN[t.getTierart()]; //Tierart case 3: return t.getRasse(); case 4: return t.getFarbe(); //Farbe case 5: return Integer.toString(t.getAlter()); //Alter case 6: return Tier.GESCHLECHT[t.getGeschlecht()]; // Geschlecht case 7: return t.getFoto(); //Foto case 8: return t.getSonstiges(); //sonstiges case 9: return t.getHeimeintritt(); //heimeintritt case 10: return t.getImpfung(); //impfung case 11: return t.getMitarbeiter().getUserName(); // zuständiger Mitarbeiter case 12: return t.getAenderung(); //änderung case 13: return t.getBefund(); //befund case 14: return t.getChanger().getUserName(); //last Canger case 15: return t.getFreigabe(); //Freiagbe default: } return null; } /** * @return int size of container */ public int size () { return vec.size(); } /** * @param i int * @return Object */ public Object elementAt(int i) { return (Object) vec.elementAt(i); } /** * @param t Tier * @param i int Position */ public void setElementAt(Tier t, int i) { t.setChanger(thv.getActUser()); vec.setElementAt(t,i); fireTableDataChanged(); } /* (non-Javadoc) * @see javax.swing.table.TableModel#getColumnClass(int) */ public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); } /* (non-Javadoc) * @see javax.swing.table.TableModel#isCellEditable(int, int) */ public boolean isCellEditable(int rowIndex, int columnIndex) { if(thv.getActUser().getRole() == User.ROLE_GUEST) return false; else if (columnIndex == 14 || columnIndex==7 || columnIndex==12) return false; else if ( (columnIndex == 13 || columnIndex == 15) && thv.getActUser().getRole() != User.ROLE_VET) return false; else return true; } /* (non-Javadoc) * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) */ public void setValueAt(Object o,int rowIndex, int columnIndex) { Tier t = (Tier) vec.elementAt(rowIndex); switch (columnIndex) { case 1: // Name t.setTierName((String) o); break; case 2: // Tierart t.setTierArt ( (String) o ); break; case 3: // Rasse t.setRasse((String) o); break; case 4: // Farbe t.setFarbe((String) o); break; case 5: // Alter t.setAlter((String) o); break; case 6: // Geschlecht t.setGeschlecht((String) o); break; //case 7: // Fotopfad // u.setFoto((String) o); // break; case 8: // Sonstige Merkmale t.setSonstiges((String) o); break; case 9: // Datum Heimeintritt t.setHeimeintritt((String) o); break; case 10: // Impfung t.setImpfung((String) o); break; case 11: // zuständiger Mitarbeiter t.setMitarbeiter( (String) o); break; case 12: // Datum Letzte Ändererung t.setAenderung((String) o); break; case 13: // Ärztlicher Befund t.setBefund((String) o); break; //case 14: // Mitarbeiter Letzte Änderung // t.setChanger(t.getChanger()); // break; case 15: // Freigabe t.setFreigabe( (Boolean) o ); break; default: } vec.setElementAt(t,rowIndex); fireTableCellUpdated(rowIndex,columnIndex); thv.setDataChanged(true); } /** * clear container */ public void clear() { vec.clear(); } }