]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/contributions/ChangeMappingTypeHandler.java
Elimination of compiler warnings.
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / contributions / ChangeMappingTypeHandler.java
index 1f94833507ad557226f249d02740347d995e6eab..a2c02532c4b3f84c23065e27ca7f068a414e6534 100644 (file)
@@ -47,6 +47,7 @@ import org.simantics.db.exception.ServiceException;
 import org.simantics.db.exception.ValidationException;
 import org.simantics.db.layer0.SelectionHints;
 import org.simantics.db.procedure.Procedure;
+import org.simantics.db.request.Read;
 import org.simantics.district.network.ontology.DistrictNetworkResource;
 import org.simantics.district.network.ui.function.Functions;
 import org.simantics.district.network.ui.internal.Activator;
@@ -60,36 +61,29 @@ public class ChangeMappingTypeHandler {
 
     @CanExecute
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION) ISelection selection) {
-//        List<Resource> elements = ISelectionUtils.getPossibleKeys(selection, SelectionHints.KEY_MAIN, Resource.class);
-//        if (elements.size() < 1)
-//            return false;
-//        try {
-//            return Simantics.getSession().syncRequest(new Read<Boolean>() {
-//
-//                @Override
-//                public Boolean perform(ReadGraph graph) throws DatabaseException {
-//                    Layer0 L0 = Layer0.getInstance(graph);
-//                    Resource instanceOf = null;
-//                    for (Resource element : elements) {
-//                        if (instanceOf == null) {
-//                            instanceOf = graph.getSingleObject(element, L0.InstanceOf);
-//                        } else {
-//                            Resource currentInstanceOf = graph.getSingleObject(element, L0.InstanceOf);
-//                            if (!currentInstanceOf.equals(instanceOf)) {
-//                                return false;
-//                            }
-//                        }
-//                    }
-//                    return true;
-//                }
-//            });
-//        } catch (DatabaseException e) {
-//            e.printStackTrace();
-//            return false;
-//        }
-        return true;
+        List<Resource> elements = ISelectionUtils.getPossibleKeys(selection, SelectionHints.KEY_MAIN, Resource.class);
+        if (elements.size() < 1)
+            return false;
+        try {
+            return Simantics.getSession().syncRequest(new Read<Boolean>() {
+
+                @Override
+                public Boolean perform(ReadGraph graph) throws DatabaseException {
+                    DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
+                    for (Resource selection : elements) {
+                        if (!graph.isInstanceOf(selection, DN.Element)) {
+                            return false;
+                        }
+                    }
+                    return true;
+                }
+            });
+        } catch (DatabaseException e) {
+            LOGGER.error("Could not evaluate if mapping can be changed for selection {}", elements, e);
+            return false;
+        }
     }
-    
+
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_SELECTION) Object selection) {
         final List<Resource> elements = ISelectionUtils.getPossibleKeys(selection, SelectionHints.KEY_MAIN, Resource.class);
@@ -189,18 +183,12 @@ public class ChangeMappingTypeHandler {
         
         private Map<NamedResource, Map<String, Resource>> possibleMappings = new HashMap<>();
         
-        private Resource defaultVertexMapping;
-
         protected SelectMappingDialog(Shell parentShell, CompletableFuture<Map<NamedResource, Collection<NamedResource>>> elements) {
             super(parentShell);
             this.elements = elements;
             setTitle("Change mappings");
         }
 
-        public Resource getDefaultVertexMapping() {
-            return defaultVertexMapping;
-        }
-
         @Override
         protected Control createDialogArea(Composite parent) {
             composite = (Composite) super.createDialogArea(parent);