Fix potential NPE
authorpplitzner <p.plitzner@posteo.de>
Sun, 15 Sep 2019 10:22:08 +0000 (12:22 +0200)
committerpplitzner <p.plitzner@posteo.de>
Mon, 16 Sep 2019 04:46:24 +0000 (06:46 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/MatrixBodyLayerStack.java

index 5c2370fd4a9c374fe8653d001c0c7cf3bdb042ec..5116ea1e520ce9dd159d620f5c027584d304b24f 100644 (file)
@@ -34,22 +34,27 @@ public class MatrixBodyLayerStack extends AbstractIndexLayerTransform {
 
     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);
 
@@ -69,10 +74,6 @@ public class MatrixBodyLayerStack extends AbstractIndexLayerTransform {
         return this.columnHideShowLayer;
     }
 
-    public ColumnGroupExpandCollapseLayer getColumnGroupExpandCollapseLayer() {
-        return this.columnGroupExpandCollapseLayer;
-    }
-
     public SelectionLayer getSelectionLayer() {
         return this.selectionLayer;
     }