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