Allow rows to be inserted/updated/removed.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@1452 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: ObjectEditorTable.java,v 1.3 2004/06/14 17:36:03 ray Exp $
|
// $Id: ObjectEditorTable.java,v 1.4 2004/06/15 17:57:17 ray Exp $
|
||||||
|
|
||||||
package com.samskivert.swing;
|
package com.samskivert.swing;
|
||||||
|
|
||||||
@@ -11,7 +11,9 @@ import java.awt.event.ActionListener;
|
|||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.BitSet;
|
import java.util.BitSet;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
import javax.swing.ListSelectionModel;
|
import javax.swing.ListSelectionModel;
|
||||||
@@ -20,6 +22,7 @@ import javax.swing.table.AbstractTableModel;
|
|||||||
import com.samskivert.swing.event.CommandEvent;
|
import com.samskivert.swing.event.CommandEvent;
|
||||||
|
|
||||||
import com.samskivert.util.ClassUtil;
|
import com.samskivert.util.ClassUtil;
|
||||||
|
import com.samskivert.util.CollectionUtil;
|
||||||
import com.samskivert.util.ListUtil;
|
import com.samskivert.util.ListUtil;
|
||||||
|
|
||||||
import com.samskivert.Log;
|
import com.samskivert.Log;
|
||||||
@@ -137,11 +140,21 @@ public class ObjectEditorTable extends JTable
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the data to be viewed or edited.
|
* Set the data to be viewed or edited.
|
||||||
* Note that the passed in data will be edited in place.
|
|
||||||
*/
|
*/
|
||||||
public void setData (Object[] data)
|
public void setData (Object[] data)
|
||||||
{
|
{
|
||||||
_data = data;
|
_data.clear();
|
||||||
|
CollectionUtil.addAll(_data, data);
|
||||||
|
_model.fireTableDataChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the data to be viewed or edited.
|
||||||
|
*/
|
||||||
|
public void setData (Collection data)
|
||||||
|
{
|
||||||
|
_data.clear();
|
||||||
|
_data.addAll(data);
|
||||||
_model.fireTableDataChanged();
|
_model.fireTableDataChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,16 +163,45 @@ public class ObjectEditorTable extends JTable
|
|||||||
*/
|
*/
|
||||||
public void setData (Object data)
|
public void setData (Object data)
|
||||||
{
|
{
|
||||||
setData(new Object[] { data });
|
_data.clear();
|
||||||
|
_data.add(data);
|
||||||
|
_model.fireTableDataChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the edited data. Not really needed, since the the data passed
|
* Insert the specified element at the specified row.
|
||||||
* to set is
|
*/
|
||||||
|
public void insertData (Object element, int row)
|
||||||
|
{
|
||||||
|
_data.add(row, element);
|
||||||
|
_model.fireTableRowsInserted(row, row);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the value of the specified row.
|
||||||
|
*/
|
||||||
|
public void updateData (Object element, int row)
|
||||||
|
{
|
||||||
|
_data.set(row, element);
|
||||||
|
_model.fireTableRowsUpdated(row, row);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified row.
|
||||||
|
*/
|
||||||
|
public void removeData (int row)
|
||||||
|
{
|
||||||
|
_data.remove(row);
|
||||||
|
_model.fireTableRowsDeleted(row, row);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the edited data. Not really needed, since the the data being
|
||||||
|
* edited is the same objects that were passed in.
|
||||||
*/
|
*/
|
||||||
public Object[] getData ()
|
public Object[] getData ()
|
||||||
{
|
{
|
||||||
return _data;
|
return _data.toArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -168,7 +210,7 @@ public class ObjectEditorTable extends JTable
|
|||||||
public Object getSelectedObject ()
|
public Object getSelectedObject ()
|
||||||
{
|
{
|
||||||
int row = getSelectedRow();
|
int row = getSelectedRow();
|
||||||
return (row == -1) ? null : _data[row];
|
return (row == -1) ? null : _data.get(row);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -201,7 +243,7 @@ public class ObjectEditorTable extends JTable
|
|||||||
* Get the object at the specified row. Useful for our subclass.
|
* Get the object at the specified row. Useful for our subclass.
|
||||||
*/
|
*/
|
||||||
public Object getObjectAt (int row) {
|
public Object getObjectAt (int row) {
|
||||||
return _data[row];
|
return _data.get(row);
|
||||||
}
|
}
|
||||||
|
|
||||||
// documentation inherited
|
// documentation inherited
|
||||||
@@ -211,8 +253,9 @@ public class ObjectEditorTable extends JTable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// documentation inherited
|
// documentation inherited
|
||||||
public int getRowCount() {
|
public int getRowCount()
|
||||||
return (_data == null) ? 0 : _data.length;
|
{
|
||||||
|
return _data.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
// documentation inherited
|
// documentation inherited
|
||||||
@@ -281,5 +324,5 @@ public class ObjectEditorTable extends JTable
|
|||||||
protected BitSet _editable = new BitSet();
|
protected BitSet _editable = new BitSet();
|
||||||
|
|
||||||
/** The data being edited. */
|
/** The data being edited. */
|
||||||
protected Object[] _data;
|
protected ArrayList _data = new ArrayList();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user