Hello
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();
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);
}
_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];
}
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;
}
return _columnNames.length;
}
public int
getRowCount() {
return _rows.size();
}
return _rows.size();
}
public String
getColumnName(int column) {
return _columnNames[column];
}
return _columnNames[column];
}
public boolean
isCellEditable(int rowIndex, int columnIndex) {
if (columnIndex == 2){
//for date format
return true;
}
return true;
}
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());
}
// 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;
}
// 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
