From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
Behalf Of Hofmann, Torsten
Sent: Wednesday, June 14, 2006
7:23 AM
To: [email protected]
Subject: [ULC-developer] Error
inserting row in Tablemodel
I tried in a Tablemodel to add a row. I have changed my data
array and then i called the fireTableRowsInserted-Method and nothing happens.
When i resize the ULCFrame then the line is visible. After this i tried
fireTableChanged and this works also fine. What is the problem?
Here is the code of my model
private String[] _columnNames = { "Name",
"ident", "Empl. Name", "OID",
"lastChangeUser"};
private List _rows = new ArrayList();
private List _oid = new ArrayList();
private List _user = new ArrayList();
public void reload(List lst){
_rows.clear();
_oid.clear();
_user.clear();
for (int r = 0; r < lst.size(); r ++) {
User user = (User) lst.get(r);
fillRowElement(user);
}
fireTableDataChanged();
}
public OID getOid(int row){
return (OID)_oid.get(row);
}
public User getUser(int row){
return (User)_user.get(row);
}
public void addUser(User user){
fillRowElement(user);
//bug in ULC
// fireTableRowsInserted(getRowCount(), getRowCount());
fireTableDataChanged();
}
private void fillRowElement(User user){
String[] row = new String[getColumnCount()];
row[0] = user.getName();
row[1] = user.getParentEmployee().getIdentification();
row[2] = user.getParentEmployee().getPerson().getName();
row[3] = user.getOid().toString();
row[4] = "";
//user.getHistory().getLastChangeUser().getName();
_rows.add(row);
_user.add(user);
_oid.add(user.getOid());
}
public void removeUser(int row){
_rows.remove(row);
_oid.remove(row);
_user.remove(row);
fireTableRowsDeleted(getRowCount(), getRowCount());
}
public void updateUser(User user, int row){
_oid.set(row, user.getOid());
_user.set(row, user);
String[] rowe = (String[])_rows.get(row);
rowe[0] = user.getName();
rowe[1] = user.getParentEmployee().getIdentification();
rowe[2] = user.getParentEmployee().getPerson().getName();
rowe[3] = user.getOid().toString();
rowe[4] = "";
//user.getHistory().getLastChangeUser().getName();
_rows.set(row, rowe);
fireTableRowsUpdated(row, row);
}
public Object getValueAt(int row, int column) {
return ((String[])_rows.get(row))[column];
}
public int getColumnCount() {
return _columnNames.length;
}
public int getRowCount() {
return _rows.size();
}
public String getColumnName(int column) {
return _columnNames[column];
}
public boolean isCellEditable(int rowIndex, int
columnIndex) {
if (columnIndex == 2){
//for date format
return true;
}
return true;
}
public void setValueAt(Object value, int row, int
column) {
// if (column == 0){
// ((User)modelItems.get(row)).getName();
// }
// if (column == 1){
// ((User)modelItems.get(row)).getParentEmployee().getIdentification();
// }
// if (column == 2){
// ((String[])_rows.get(row))[column] = value.toString();
// }
// if (column == 3){
// ((User)modelItems.get(row)).getOid().toString();
// }
// ((String[])_rows.get(row))[column] = value.toString();
// System.out.println("Modelrow: " + row);
System.out.println("Value: " + value);
System.out.println("ValueClass: " +
value.getClass().getName());
}
public Class getColumnClass(int columnIndex) {
// if (columnIndex == 2){
// return Date.class;
// }
return String.class;
}
Torsten
Hofmann
Dipl. - Informatiker (FH)
IT Consultant Business Integration
Würth Phoenix GmbH
Drillberg 6
D-97980 Bad Mergentheim
(Phone:
+49 7931 91 6284
7
Fax: +49 7931 91 7284
+E-Mail:
torsten.hofmann@wuerth-phoenix.de
Website: www.wuerth-phoenix.de