summaryrefslogtreecommitdiffstats
path: root/Bachelor/ERGO/TierheimVerw/thv/TierCon.java
blob: 1a6ab1ffd88ac4f5bf8fe07d409723b318f7f9bf (plain)
1
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;

/**
 
 * <p>�berschrift: TierCon</p>
 
 *
 
 * <p>Beschreibung: Container Klasse der Tiere</p>
 
 *
 
 * <p>Copyright: Copyright (c) 2005</p>
 
 *
 
 * <p>Organisation: </p>
 
 *
 
 * @author Andreas Spirka, Sven Eisenhauer
 
 * @version 1.0
 
 */

public class TierCon extends AbstractTableModel implements Serializable {
	
	private Vector<Tier> vec  = new Vector<Tier>();
	
	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();
	}
}