/** * */ package org.nchc.incident; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.zkoss.pivot.PivotField; import org.zkoss.pivot.impl.TabularPivotModel; import org.zkoss.pivot.util.Trees; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.util.GenericForwardComposer; public class PivottableViewCtrl extends GenericForwardComposer { private static final long serialVersionUID = -2423478051547719896L; private CustomPivottable pivot; // private Pivottable pivot; private TabularPivotModel model; private CustomPivotRenderer renderer = new CustomPivotRenderer(); @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); model = new TabularPivotModel(getData(), getColumns()); pivot.setModel(model); model.setFieldType("Year", PivotField.Type.COLUMN); model.setFieldType("Organization", PivotField.Type.ROW); model.setFieldType("Pointer", PivotField.Type.ROW); model.setFieldType("Desire Value", PivotField.Type.DATA); model.setFieldType("Actual Value", PivotField.Type.DATA); expandRowTree(model); pivot.setPivotRenderer(renderer); } private List> getData() { Object[][] objs = new Object[][] { { "org1", "papers", "100", 10, 8 }, { "org2", "papers", "100", 12, 8 }, { "org1", "patents", "100", 20, 14 }, { "org2", "patents", "100", 18, 20 }, { "org1", "papers", "099", 10, 8 }, { "org2", "papers", "099", 12, 8 }, { "org1", "patents", "099", 20, 14 }, { "org2", "patents", "099", 18, 20 } }; List> list = new ArrayList>(); for(Object[] a : objs) list.add(Arrays.asList(a)); return list; } private List getColumns() { return Arrays.asList(new String[]{ "Organization", "Pointer", "Year", "Desire Value", "Actual Value" }); } private void expandRowTree(TabularPivotModel model) { Trees.openDown(model.getRowHeaderTree().getRoot(), true); } }