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; + } + +}