Improve UX data parts
[lgpl/argeo-commons.git] / org.argeo.cms.ux / src / org / argeo / cms / ux / widgets / AbstractColumnsPart.java
diff --git a/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractColumnsPart.java b/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractColumnsPart.java
new file mode 100644 (file)
index 0000000..143b9cc
--- /dev/null
@@ -0,0 +1,26 @@
+package org.argeo.cms.ux.widgets;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class AbstractColumnsPart<INPUT, TYPE> extends AbstractDataPart<INPUT, TYPE> implements ColumnsPart<INPUT, TYPE> {
+
+       private List<Column<TYPE>> columns = new ArrayList<>();
+
+       @Override
+       public Column<TYPE> getColumn(int index) {
+               if (index >= columns.size())
+                       throw new IllegalArgumentException("There a only " + columns.size());
+               return columns.get(index);
+       }
+
+       @Override
+       public void addColumn(Column<TYPE> column) {
+               columns.add(column);
+       }
+
+       @Override
+       public int getColumnCount() {
+               return columns.size();
+       }
+}