import dataccesstool.application.SavedTransfer;
import dataccesstool.application.SavedTransferDataSet;

/**
 * A specific implementation of a TableModel and is used specifically on the
 * DaSavedTransfersDialog.
 * @author: Michael Pell, of Solutions Plus, Inc.
 */
public class DaSavedTransfersTableModel extends javax.swing.table.AbstractTableModel {
	private java.util.Vector savedTransfers;
	public String[] columnNames = {"Name", "Environment","Res Proj Code", "1st Lib/DataSet", "Target Host", "Target Dir", "Format"};
/**
 * DaSavedTransfersTableModel constructor comment.
 */
public DaSavedTransfersTableModel() {
	super();
}
public void addSavedTransfer(SavedTransfer savedTransfer)
{

	this.getSavedTransfers().addElement(savedTransfer);
	this.fireTableDataChanged();
}
public int getColumnCount()
{
	return columnNames.length;
}
public String getColumnName(int col)
{
	return columnNames[col];
}
/**
 * getRowCount method comment.
 */
public int getRowCount() 
{
	if (this.getSavedTransfers() != null)
		return this.getSavedTransfers().size();
	else
		return 0;
}
public int getRowForSavedTransfer(SavedTransfer savedTransfer)
{
	return this.getSavedTransfers().indexOf(savedTransfer);
}
public SavedTransfer getSavedTransferForRow(int row)
{

	//TODO what if the sort order changes?
	return (SavedTransfer)this.getSavedTransfers().elementAt(row);
}
/**
 * @return java.util.Vector
 */
public java.util.Vector getSavedTransfers() {
	return savedTransfers;
}
public Object getValueAt(int row, int col)
{

	SavedTransfer st = (SavedTransfer)this.getSavedTransfers().elementAt(row);
	Object tempObject = null;
	switch (col)
	{
		case DaSavedTransfersDialog.NAME_COLUMN :
			tempObject = st.getName();
			break;
		case DaSavedTransfersDialog.ENVIRONMENT_COLUMN :
			if (st.isTestEnvironment())
				tempObject = "Test";  //TODO probably shouldn't hardcode
			else
				tempObject = "Production";				
			break;
		case DaSavedTransfersDialog.RES_PROJ_CODE_COLUMN :
			tempObject = st.getResearchProjectCode();
			break;
		case DaSavedTransfersDialog.FIRST_LIB_COLUMN :
			SavedTransferDataSet tmp = (SavedTransferDataSet)st.getSavedTransferDatasets().firstElement();
			tempObject = tmp.getLibraryName()+"."+  tmp.getDataSetName();
			break;
		case DaSavedTransfersDialog.TARGET_HOST_COLUMN :
			tempObject = st.getTargetHost();
			break;
		case DaSavedTransfersDialog.TARGET_DIR_COLUMN :
			tempObject = st.getTargetDirectory();
			break;
		case DaSavedTransfersDialog.FORMAT_COLUMN :
			tempObject = st.getFormat();
			break;
		default :
			tempObject = null;
	}
	return tempObject;
}
/*
* Must have if your table is editable.
*/
public boolean isCellEditable(int row, int col)
{
	//Note that the data/cell address is constant,
	//no matter where the cell appears onscreen.
	return false;

}
public void removeSavedTransfer(SavedTransfer savedTransfer)
{

	this.getSavedTransfers().removeElement(savedTransfer);
	this.fireTableDataChanged();
}
/**
 * @param newSavedTransfers java.util.Vector
 */
public void setSavedTransfers(java.util.Vector newSavedTransfers) {
	savedTransfers = newSavedTransfers;
}
}

