diff --git a/to.etc.domui/src/main/java/to/etc/domui/component/tbl/KeySelectionModel.java b/to.etc.domui/src/main/java/to/etc/domui/component/tbl/KeySelectionModel.java index 94b8c05f8..7440b03b0 100644 --- a/to.etc.domui/src/main/java/to/etc/domui/component/tbl/KeySelectionModel.java +++ b/to.etc.domui/src/main/java/to/etc/domui/component/tbl/KeySelectionModel.java @@ -150,19 +150,23 @@ public List getSelectedInstances() { } @Override - public void clearSelection(ITableModel model) { + public void clearSelection(ITableModel model) throws Exception { if(model instanceof TableKeyModelBase) { TableKeyModelBase tm = (TableKeyModelBase) model; for(K key : tm.getKeys()) { m_selectedSet.remove(key); } } else { - throw new IllegalStateException("Expecting a keyed table model"); + for(T item : model.getItems(0, model.getRows())) { + K key = getKey(item); + m_selectedSet.remove(key); + } } + callSelectionAllChanged(); } @Override - public boolean isCompleteModelSelected(ITableModel model) { + public boolean isCompleteModelSelected(ITableModel model) throws Exception { if(model instanceof TableKeyModelBase) { TableKeyModelBase tm = (TableKeyModelBase) model; for(K key : tm.getKeys()) { @@ -171,7 +175,12 @@ public boolean isCompleteModelSelected(ITableModel model) { } return true; } else { - throw new IllegalStateException("Expecting a keyed table model"); + for(T item : model.getItems(0, model.getRows())) { + K key = getKey(item); + if(!m_selectedSet.containsKey(key)) + return false; + } + return true; } }