private final ColumnReorderLayer columnReorderLayer;
private final ColumnHideShowLayer columnHideShowLayer;
- private final ColumnGroupExpandCollapseLayer columnGroupExpandCollapseLayer;
private final SelectionLayer selectionLayer;
private final ViewportLayer viewportLayer;
public MatrixBodyLayerStack(IUniqueIndexLayer underlyingLayer, LinkedList<ColumnGroupWrapper> columnGroups) {
this.columnReorderLayer = new ColumnReorderLayer(underlyingLayer);
- ColumnGroupModel bottomModel = columnGroups.getLast().getModel();
- ColumnGroupReorderLayer columnGroupReorderLayer = new ColumnGroupReorderLayer(this.columnReorderLayer, bottomModel);
- this.columnHideShowLayer = new ColumnHideShowLayer(columnGroupReorderLayer);
- List<ColumnGroupModel> columnGroupModels = new ArrayList<>();
- for(ColumnGroupWrapper columnGroup:columnGroups){
- columnGroupModels.add(columnGroup.getModel());
+ if(columnGroups.isEmpty()){
+ this.columnHideShowLayer = new ColumnHideShowLayer(columnReorderLayer);
+ this.selectionLayer = new SelectionLayer(this.columnHideShowLayer);
+ }
+ else{
+ ColumnGroupModel bottomModel = columnGroups.getLast().getModel();
+ ColumnGroupReorderLayer columnGroupReorderLayer = new ColumnGroupReorderLayer(this.columnReorderLayer, bottomModel);
+ this.columnHideShowLayer = new ColumnHideShowLayer(columnGroupReorderLayer);
+ List<ColumnGroupModel> columnGroupModels = new ArrayList<>();
+ for(ColumnGroupWrapper columnGroup:columnGroups){
+ columnGroupModels.add(columnGroup.getModel());
+ }
+ Collections.reverse(columnGroupModels);
+ ColumnGroupExpandCollapseLayer columnGroupExpandCollapseLayer = new ColumnGroupExpandCollapseLayer(this.columnHideShowLayer, columnGroupModels.toArray(new ColumnGroupModel[columnGroups.size()]));
+ this.selectionLayer = new SelectionLayer(columnGroupExpandCollapseLayer);
}
- Collections.reverse(columnGroupModels);
- this.columnGroupExpandCollapseLayer = new ColumnGroupExpandCollapseLayer(this.columnHideShowLayer, columnGroupModels.toArray(new ColumnGroupModel[columnGroups.size()]));
- this.selectionLayer = new SelectionLayer(this.columnGroupExpandCollapseLayer);
this.viewportLayer = new ViewportLayer(this.selectionLayer);
setUnderlyingLayer(this.viewportLayer);
return this.columnHideShowLayer;
}
- public ColumnGroupExpandCollapseLayer getColumnGroupExpandCollapseLayer() {
- return this.columnGroupExpandCollapseLayer;
- }
-
public SelectionLayer getSelectionLayer() {
return this.selectionLayer;
}