X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ux%2Fsrc%2Forg%2Fargeo%2Fcms%2Fux%2Fwidgets%2FDefaultTabularPart.java;fp=org.argeo.cms.ux%2Fsrc%2Forg%2Fargeo%2Fcms%2Fux%2Fwidgets%2FDefaultTabularPart.java;h=cb30af675a322f1f192da010c665610b3b7be82b;hb=43dc6cd030cab486347ffef4d339406bee7a8dec;hp=0000000000000000000000000000000000000000;hpb=54dac5debb27cc585200b3117b99f3de0015efef;p=lgpl%2Fargeo-commons.git
diff --git a/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/DefaultTabularPart.java b/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/DefaultTabularPart.java
new file mode 100644
index 000000000..cb30af675
--- /dev/null
+++ b/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/DefaultTabularPart.java
@@ -0,0 +1,46 @@
+package org.argeo.cms.ux.widgets;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class DefaultTabularPart extends AbstractTabularPart implements TabularPart {
+ private List content;
+
+ @Override
+ public int getItemCount() {
+ return content.size();
+ }
+
+ @Override
+ public T getData(int row) {
+ assert row < getItemCount();
+ return content.get(row);
+ }
+
+ @Override
+ public void refresh() {
+ INPUT input = getInput();
+ if (input == null) {
+ content = new ArrayList<>();
+ return;
+ }
+ content = asList(input);
+ super.refresh();
+ }
+
+ protected List asList(INPUT input) {
+ List res = new ArrayList<>();
+ content.clear();
+ if (input instanceof List) {
+ content = (List) input;
+ } else if (input instanceof Iterable) {
+ for (T item : (Iterable) input)
+ content.add(item);
+ } else {
+ throw new IllegalArgumentException(
+ "Unsupported class " + input.getClass() + ", method should be overridden.");
+ }
+ return res;
+ }
+
+}