]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/DefaultTabularPart.java
Improve documentation.
[lgpl/argeo-commons.git] / org.argeo.cms.ux / src / org / argeo / cms / ux / widgets / DefaultTabularPart.java
1 package org.argeo.cms.ux.widgets;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 public class DefaultTabularPart<INPUT, T> extends AbstractTabularPart<INPUT, T> implements TabularPart<INPUT, T> {
7 private List<T> content;
8
9 @Override
10 public int getItemCount() {
11 return content.size();
12 }
13
14 @Override
15 public T getData(int row) {
16 assert row < getItemCount();
17 return content.get(row);
18 }
19
20 @Override
21 public void refresh() {
22 INPUT input = getInput();
23 if (input == null) {
24 content = new ArrayList<>();
25 return;
26 }
27 content = asList(input);
28 super.refresh();
29 }
30
31 protected List<T> asList(INPUT input) {
32 List<T> res = new ArrayList<>();
33 content.clear();
34 if (input instanceof List) {
35 content = (List<T>) input;
36 } else if (input instanceof Iterable) {
37 for (T item : (Iterable<T>) input)
38 content.add(item);
39 } else {
40 throw new IllegalArgumentException(
41 "Unsupported class " + input.getClass() + ", method should be overridden.");
42 }
43 return res;
44 }
45
46 }