package leaf.ui; import java.util.Collection; import java.util.Iterator; import java.util.List; import leaf.data.OrderedMap; import siprp.database.cayenne.objects.TrabalhadoresEcd; import com.evolute.utils.tables.BaseTableModel; import com.evolute.utils.tables.models.SortableModel; public class LeafTableModel extends BaseTableModel { private static final long serialVersionUID = 1L; private OrderedMap map = new OrderedMap(); public LeafTableModel(String n[]) { super( n, null ); setChangeable( false ); } public void clearAll() { int i = map.rows(); if( i > 0 ) { map.clear(); fireTableRowsDeleted( 0, i - 1 ); } } @Override public int innerGetRowCount() { return map == null ? 0 : map.rows(); } @Override public Object innerGetValueAt( int row, int col ) { return map.getValueAt( row, col ); } @Override public void deleteRow( int row ) { map.deleteRow( row ); } public Object getKey( int row ) { Object result = null; if( row < map.rows() ) { result = map.getKeyForRow( row ); } return result; } public void setValues( Collection v ) { Iterator iterator = v.iterator(); while( iterator.hasNext() ) { Object value = iterator.next(); map.putLast( value, value.toString() ); } fireTableDataChanged(); } public void setValues( OrderedMap map ) { this.map = (OrderedMap) map; fireTableDataChanged(); } public void order(int ... colNumber ) { if(colNumber != null) { map.order(colNumber); fireTableDataChanged(); } } @Override public void appendEmptyRow() { map.putLast( map.rows(), (Object) null ); } @Override public void innerSetValueAt( Object obj, int row, int col ) { if( isCellEditable( row, col ) && map.getValueAt( row, col ) != null ) { map.setValueAt( row, col, obj ); } } @Override public boolean isRowEmpty( int row ) { List line = map.getRow( row ); return line != null && line.size() > 0; } @Override public boolean innerIsCellEditable( int row, int col ) { return false; } public void printContents() { for( int r = 0; r < getRowCount(); r++ ) { for( int c = 0; c < getColumnCount(); c++ ) { Object val = getValueAt( r, c ); if( val != null ) { System.out.print( val.toString() + "\t" ); } } System.out.println( "" ); } } // public void insertRowAt( Object rowObj, int row ) // { // values.add( row, rowObj ); // fireTableDataChanged(); // } // // public void removeRowAt( int row ) // { // values.remove( row ); // fireTableDataChanged(); // } // // public Object getRowAt( int row ) // { // return values.elementAt( row ); // } // public void swapRows( int row1, int row2 ) // { // if( row1 == row2 || row1 < 0 || row2 < 0 || row1 >= getRowCount() || row2 // >= getRowCount() ) // { // return; // } // // Collections.swap( values, row1, row2 ); // Object row1Data = getRowAt( row1 ); // Object row2Data = getRowAt( row2 ); // if( row1 < row2 ) // { // removeRowAt( row2 ); // removeRowAt( row1 ); // insertRowAt( row2Data, row1 ); // insertRowAt( row1Data, row2 ); // } // else // { // removeRowAt( row1 ); // removeRowAt( row2 ); // insertRowAt( row1Data, row2 ); // insertRowAt( row2Data, row1 ); // } // } }