]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/techtype/table/TechTypeTable.java
Handle tech type tables with no component type
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / techtype / table / TechTypeTable.java
index a8db44c789200fb8015596916ade28ed8283e9fa..b18e10c8d63f50c8971ef2fd90150ae783b37e69 100644 (file)
@@ -325,7 +325,7 @@ public class TechTypeTable extends Composite {
                                LOGGER.error("Failed to read possible tech type key name for {}", componentType, e);
                        }
                }
-               return keyName.startsWith("_") ? keyName.substring(1) : keyName;
+               return keyName != null && keyName.startsWith("_") ? keyName.substring(1) : keyName;
        }
 
        @Override
@@ -340,8 +340,10 @@ public class TechTypeTable extends Composite {
                
                this.componentType = componentType;
                this.keyName = getKeyColumnName(componentType);
-               
-               Simantics.getSession().asyncRequest(new TableDataRequest(componentType), new TableDataListener(componentType));
+
+               if (componentType != null) {
+                       Simantics.getSession().asyncRequest(new TableDataRequest(componentType), new TableDataListener(componentType));
+               }
        }
 
        private final class TableDataListener implements Listener<Triple<Resource, String, List<Integer>>> {
@@ -354,6 +356,9 @@ public class TechTypeTable extends Composite {
                @Override
                public void execute(Triple<Resource, String, List<Integer>> result) {
                        TechTypeTable.this.getDisplay().asyncExec(() -> {
+                               if (isDisposed() || result == null)
+                                       return;
+                               
                                TechTypeTable.this.tableResource = result.first;
                                String data = result.second;
                                int[] enabled = result.third.stream().mapToInt(Integer::intValue).toArray();