From 58bd42bd8a399dfc414f18f44a93a32b7c00fe5b Mon Sep 17 00:00:00 2001 From: Marc Englund Date: Tue, 24 Jun 2008 14:21:11 +0000 Subject: [PATCH] Table now refreshes explicitly when adding and removing stuff and the contained does not implement the appropriate notifier interface. Fixes #1461. svn changeset:4949/svn branch:trunk --- src/com/itmill/toolkit/ui/Table.java | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/com/itmill/toolkit/ui/Table.java b/src/com/itmill/toolkit/ui/Table.java index 0e46e74e88..e914584460 100644 --- a/src/com/itmill/toolkit/ui/Table.java +++ b/src/com/itmill/toolkit/ui/Table.java @@ -1449,6 +1449,11 @@ public class Table extends AbstractSelect implements Action.Container, item.getItemProperty(cols[i]).setValue(cells[i]); } + if (!(items instanceof Container.ItemSetChangeNotifier)) { + resetPageBuffer(); + refreshRenderedCells(); + } + return itemId; } @@ -2192,6 +2197,10 @@ public class Table extends AbstractSelect implements Action.Container, if (ret && (itemId != null) && (itemId.equals(currentPageFirstItemId))) { currentPageFirstItemId = nextItemId; } + if (!(items instanceof Container.ItemSetChangeNotifier)) { + resetPageBuffer(); + refreshRenderedCells(); + } return ret; } @@ -2239,6 +2248,10 @@ public class Table extends AbstractSelect implements Action.Container, } return false; } + if (!(items instanceof Container.PropertySetChangeNotifier)) { + resetPageBuffer(); + refreshRenderedCells(); + } return true; } @@ -2479,7 +2492,13 @@ public class Table extends AbstractSelect implements Action.Container, */ public Object addItemAfter(Object previousItemId) throws UnsupportedOperationException { - return ((Container.Ordered) items).addItemAfter(previousItemId); + Object itemId = ((Container.Ordered) items) + .addItemAfter(previousItemId); + if (!(items instanceof Container.ItemSetChangeNotifier)) { + resetPageBuffer(); + refreshRenderedCells(); + } + return itemId; } /** @@ -2490,8 +2509,13 @@ public class Table extends AbstractSelect implements Action.Container, */ public Item addItemAfter(Object previousItemId, Object newItemId) throws UnsupportedOperationException { - return ((Container.Ordered) items).addItemAfter(previousItemId, + Item item = ((Container.Ordered) items).addItemAfter(previousItemId, newItemId); + if (!(items instanceof Container.ItemSetChangeNotifier)) { + resetPageBuffer(); + refreshRenderedCells(); + } + return item; } /** -- 2.39.5