package com.tibco.as.spacebar.ui.editor;
import org.eclipse.nebula.widgets.nattable.freeze.CompositeFreezeLayer;
import org.eclipse.nebula.widgets.nattable.freeze.FreezeLayer;
import org.eclipse.nebula.widgets.nattable.group.ColumnGroupExpandCollapseLayer;
import org.eclipse.nebula.widgets.nattable.group.ColumnGroupModel;
import org.eclipse.nebula.widgets.nattable.group.ColumnGroupReorderLayer;
import org.eclipse.nebula.widgets.nattable.hideshow.ColumnHideShowLayer;
import org.eclipse.nebula.widgets.nattable.layer.AbstractLayerTransform;
import org.eclipse.nebula.widgets.nattable.layer.IUniqueIndexLayer;
import org.eclipse.nebula.widgets.nattable.layer.config.ColumnStyleChooserConfiguration;
import org.eclipse.nebula.widgets.nattable.reorder.ColumnReorderLayer;
import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer;
import org.eclipse.nebula.widgets.nattable.viewport.ViewportLayer;
public class BodyLayerStack extends AbstractLayerTransform {
private ColumnReorderLayer columnReorderLayer;
private ColumnGroupReorderLayer columnGroupReorderLayer;
private ColumnHideShowLayer columnHideShowLayer;
private ColumnGroupExpandCollapseLayer columnGroupExpandCollapseLayer;
private SelectionLayer selectionLayer;
private ViewportLayer viewportLayer;
private FreezeLayer freezeLayer;
private CompositeFreezeLayer compositeFreezeLayer;
public BodyLayerStack(IUniqueIndexLayer layer,
ColumnGroupModel columnGroupModel) {
columnReorderLayer = new ColumnReorderLayer(layer);
columnGroupReorderLayer = new ColumnGroupReorderLayer(
columnReorderLayer, columnGroupModel);
columnHideShowLayer = new ColumnHideShowLayer(columnGroupReorderLayer);
columnGroupExpandCollapseLayer = new ColumnGroupExpandCollapseLayer(
columnHideShowLayer, columnGroupModel);
selectionLayer = new SelectionLayer(columnGroupExpandCollapseLayer);
viewportLayer = new ViewportLayer(selectionLayer);
freezeLayer = new FreezeLayer(selectionLayer);
compositeFreezeLayer = new CompositeFreezeLayer(freezeLayer,
viewportLayer, selectionLayer);
setUnderlyingLayer(compositeFreezeLayer);
addConfiguration(new ColumnStyleChooserConfiguration(this,
selectionLayer));
}
@Override
public void dispose() {
super.dispose();
compositeFreezeLayer.dispose();
freezeLayer.dispose();
viewportLayer.dispose();
selectionLayer.dispose();
columnGroupExpandCollapseLayer.dispose();
columnHideShowLayer.dispose();
columnGroupReorderLayer.dispose();
columnReorderLayer.dispose();
}
public ColumnHideShowLayer getColumnHideShowLayer() {
return columnHideShowLayer;
}
public SelectionLayer getSelectionLayer() {
return selectionLayer;
}
public ViewportLayer getViewportLayer() {
return viewportLayer;
}
}