forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
175 lines
3.2 KiB
175 lines
3.2 KiB
package leaf.ui;
|
|
|
|
import java.util.Collection;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
|
|
import com.evolute.adt.OrderedMap;
|
|
import com.evolute.utils.tables.BaseTableModel;
|
|
|
|
public class LeafTableModel extends BaseTableModel
|
|
{
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
private OrderedMap<Object> map = new OrderedMap<Object>();
|
|
|
|
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<? extends Object> v )
|
|
{
|
|
Iterator<? extends Object> iterator = v.iterator();
|
|
while( iterator.hasNext() )
|
|
{
|
|
Object value = iterator.next();
|
|
map.putLast( value, value.toString() );
|
|
}
|
|
fireTableDataChanged();
|
|
}
|
|
|
|
public void setValues( OrderedMap<? extends Object> map )
|
|
{
|
|
this.map = (OrderedMap<Object>) 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<Object> 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 );
|
|
// }
|
|
// }
|
|
|
|
}
|