diff options
author | Artur Signell <artur.signell@itmill.com> | 2010-05-27 09:15:05 +0000 |
---|---|---|
committer | Artur Signell <artur.signell@itmill.com> | 2010-05-27 09:15:05 +0000 |
commit | 12e5f5e5aa852632b5f0c0783f3d1591354669c8 (patch) | |
tree | 2d422a9fb242e3f9587eef62e1e45164cc46e242 | |
parent | e2867b081a01f0b419b38ca3539c3756df9736ec (diff) | |
download | vaadin-framework-12e5f5e5aa852632b5f0c0783f3d1591354669c8.tar.gz vaadin-framework-12e5f5e5aa852632b5f0c0783f3d1591354669c8.zip |
Fixed #4251 - ArithmeticException when changing Select pageLength to 0
svn changeset:13389/svn branch:6.3
4 files changed, 40 insertions, 2 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java b/src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java index 66e712f4da..6030236073 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java @@ -219,7 +219,7 @@ public class VFilterSelect extends Composite implements Paintable, Field, } // We don't need to show arrows or statusbar if there is only one // page - if (totalSuggestions <= pageLength) { + if (totalSuggestions <= pageLength || pageLength == 0) { setPagingEnabled(false); } else { setPagingEnabled(true); diff --git a/src/com/vaadin/ui/Select.java b/src/com/vaadin/ui/Select.java index 4e4ab74215..467a21b259 100644 --- a/src/com/vaadin/ui/Select.java +++ b/src/com/vaadin/ui/Select.java @@ -258,7 +258,9 @@ public class Select extends AbstractSelect implements AbstractSelect.Filtering, */ private List sanitetizeList(List options, boolean needNullSelectOption) { - if (options.size() > pageLength) { + if (pageLength != 0 && options.size() > pageLength) { + // Not all options are visible, find out which ones are on the + // current "page". int first = currentPage * pageLength; int last = first + pageLength; if (needNullSelectOption) { diff --git a/tests/src/com/vaadin/tests/components/combobox/Comboboxes.html b/tests/src/com/vaadin/tests/components/combobox/Comboboxes.html index 8df7ea00ae..6f87903413 100644 --- a/tests/src/com/vaadin/tests/components/combobox/Comboboxes.html +++ b/tests/src/com/vaadin/tests/components/combobox/Comboboxes.html @@ -191,6 +191,28 @@ <td></td> <td></td> </tr> +<!--Open pagelength 0 combobox and capture--> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentscomboboxComboboxes::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[9]/VFilterSelect[0]/domChild[1]</td> + <td>9,13</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>pagelength-0-popup-open</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<!--Start testing modes--> <tr> <td>mouseClick</td> <td>vaadin=runcomvaadintestscomponentscomboboxComboboxes::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VCheckBox[0]/domChild[0]</td> diff --git a/tests/src/com/vaadin/tests/components/combobox/Comboboxes.java b/tests/src/com/vaadin/tests/components/combobox/Comboboxes.java index f55a252f10..39008f3db5 100644 --- a/tests/src/com/vaadin/tests/components/combobox/Comboboxes.java +++ b/tests/src/com/vaadin/tests/components/combobox/Comboboxes.java @@ -66,6 +66,20 @@ public class Comboboxes extends ComponentTestCase<ComboBox> { populate(s, 50); addTestComponent(s); + s = new PageLength0ComboBox(); + s.setImmediate(true); + s.addContainerProperty(CAPTION, String.class, ""); + s.setItemCaptionPropertyId(CAPTION); + s.setCaption("Pagelength 0"); + populate(s, 15); + addTestComponent(s); + } + + public class PageLength0ComboBox extends ComboBox { + public PageLength0ComboBox() { + super(); + pageLength = 0; + } } private void populate(Select s, int nr) { |