]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/property/P3DSelectionProcessor.java
Replace obsolete use of Callback with Consumer.
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / property / P3DSelectionProcessor.java
index 54941609764669373b7e182928b25e984e1815d1..4970d0e961c18e01389d7f874f8fde631e85ff1b 100644 (file)
@@ -3,6 +3,7 @@ package org.simantics.plant3d.property;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.function.Consumer;
 
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.swt.widgets.Composite;
@@ -26,7 +27,7 @@ import org.simantics.selectionview.BasicPropertyTab;
 import org.simantics.selectionview.ComparableTabContributor;
 import org.simantics.selectionview.PropertyTabContributorImpl;
 import org.simantics.selectionview.SelectionProcessor;
-import org.simantics.utils.datastructures.Callback;
+import org.simantics.utils.threads.SWTThread;
 
 import vtk.vtkProp;
 
@@ -38,87 +39,91 @@ public class P3DSelectionProcessor implements SelectionProcessor<Object, ReadGra
 //          System.out.println(getClass().getSimpleName() + " incoming selection: " + ObjectUtils.toString(selection));
 
 
-                Collection<ComparableTabContributor> result = new ArrayList<ComparableTabContributor>();
-                Collection<Resource> resourceCollection = AdaptationUtils.adaptToCollection(selection, Resource.class);
-                Collection<StructuralResource> structuralResourceCollection = AdaptationUtils.adaptToCollection(selection, StructuralResource.class);
-                Collection<vtkProp> propCollection = AdaptationUtils.adaptToCollection(selection, vtkProp.class);
-                Collection<IG3DNode> nodeCollection = AdaptationUtils.adaptToCollection(selection, IG3DNode.class);
-                boolean readOnly = false;
-                if (resourceCollection.size() == 0 && structuralResourceCollection.size() > 0) {
-                        for (StructuralResource sr : structuralResourceCollection) {
-                                if (sr.isStructural() && !sr.isStructuralRoot())
-                                        readOnly = true;
-                                 resourceCollection.add(sr.getResource());
-                        }
-                }
-                
-               
-                if (nodeCollection.size() == 1) {
-                        IG3DNode node = nodeCollection.iterator().next();
-                        List<PropertyTabContributor> contributors = PropertyTabUtil.getContributors(node);
-                        int i = 100;
-                        for (PropertyTabContributor c : contributors) {
-                                result.add(new ComparableTabContributor(c, i--, node, c.getId()));
-                        }
-                }
-            
-                if (DEBUG) {
-                        if (propCollection.size() == 1) {
-                                vtkProp prop = propCollection.iterator().next();
-                                if (prop == null)
-                                        throw new NullPointerException();
-                                result.add(new ComparableTabContributor(new VTKPropertyTabContributor(), -2, prop, "VTK"));
-                        }
-                        
-                        if (resourceCollection.size() > 0) {
-                                if (resourceCollection.size() > 1)
-                                result.add(new ComparableTabContributor(new MultiSelectionTabContibutor(),0, resourceCollection, "Graph"));
-                                else if (resourceCollection.size() == 1){
-                                try {
+               Collection<ComparableTabContributor> result = new ArrayList<ComparableTabContributor>();
+               Collection<Resource> resourceCollection = AdaptationUtils.adaptToCollection(selection, Resource.class);
+               Collection<StructuralResource> structuralResourceCollection = AdaptationUtils.adaptToCollection(selection, StructuralResource.class);
+               Collection<vtkProp> propCollection = AdaptationUtils.adaptToCollection(selection, vtkProp.class);
+               Collection<IG3DNode> nodeCollection = AdaptationUtils.adaptToCollection(selection, IG3DNode.class);
+               boolean readOnly = false;
+               if (resourceCollection.size() == 0 && structuralResourceCollection.size() > 0) {
+                       for (StructuralResource sr : structuralResourceCollection) {
+                               if (sr.isStructural() && !sr.isStructuralRoot())
+                                       readOnly = true;
+                               resourceCollection.add(sr.getResource());
+                       }
+               }
+
+
+               if (nodeCollection.size() == 1) {
+                       IG3DNode node = nodeCollection.iterator().next();
+                       List<PropertyTabContributor> contributors = PropertyTabUtil.getContributors(node);
+                       int i = 100;
+                       for (PropertyTabContributor c : contributors) {
+                               result.add(new ComparableTabContributor(c, i--, node, c.getId()));
+                       }
+               }
+
+               if (DEBUG) {
+                       if (propCollection.size() == 1) {
+                               vtkProp prop = propCollection.iterator().next();
+                               if (prop == null)
+                                       throw new NullPointerException();
+                               result.add(new ComparableTabContributor(new VTKPropertyTabContributor(SWTThread.getThreadAccess()), -2, prop, "VTK"));
+                       }
+
+                       if (resourceCollection.size() > 0) {
+                               if (resourceCollection.size() > 1)
+                                       result.add(new ComparableTabContributor(new MultiSelectionTabContibutor(),0, resourceCollection, "Graph"));
+                               else if (resourceCollection.size() == 1){
+                                       try {
                                                Resource r = resourceCollection.iterator().next();
-                                       result.add(new ComparableTabContributor(new P3DBasicPropertyTab(!readOnly), 0, r, "Graph"));
-                                                       
-                                } catch (Exception e) {
-                                        e.printStackTrace();
-                                }
-                                }
-                        }  
-                }
-                
-                if(result.size() == 0) {
-                        result.add(new ComparableTabContributor(new NoneSelectionTabContributor(),0, resourceCollection, "Empty"));
-                }
-            
+                                               result.add(new ComparableTabContributor(new P3DBasicPropertyTab(!readOnly), 0, r, "Graph"));
+
+                                       } catch (Exception e) {
+                                               e.printStackTrace();
+                                       }
+                               }
+                       }  
+               }
+
+               if(result.size() == 0) {
+                       result.add(new ComparableTabContributor(new NoneSelectionTabContributor(),0, resourceCollection, "Empty"));
+               }
+
                return result;
        }
-       
+
        public class P3DBasicPropertyTab extends BasicPropertyTab {
-               
+
                boolean enabled;
                public P3DBasicPropertyTab(boolean enabled) {
                        this.enabled = enabled;
                }
-                public void updatePartName(ISelection forSelection, Callback<String> updateCallback) {
-                       Read<String> read = getPartNameReadRequest(forSelection);
-                       if (read == null) {
-                           updateCallback.run("Override to control part name (PropertyTabContributorImpl.updatePartName)");
-                       } else {
-                           Simantics.getSession().asyncRequest(read, new PartNameListener(updateCallback));
-                       }
-                   }
-                public Read<String> getPartNameReadRequest(ISelection forSelection) {
-                        final Resource r  =  AdaptationUtils.adaptToSingle(forSelection, Resource.class);
-                        if (r == null)
-                                return null;
-                        return new Read<String>() {
-                                @Override
+
+               @Override
+               public void updatePartName(ISelection forSelection, Consumer<String> updateCallback) {
+                       Read<String> read = getPartNameReadRequest(forSelection);
+                       if (read == null) {
+                               updateCallback.accept("Override to control part name (PropertyTabContributorImpl.updatePartName)");
+                       } else {
+                               Simantics.getSession().asyncRequest(read, new PartNameListener(updateCallback));
+                       }
+               }
+
+               @Override
+               public Read<String> getPartNameReadRequest(ISelection forSelection) {
+                       final Resource r  =  AdaptationUtils.adaptToSingle(forSelection, Resource.class);
+                       if (r == null)
+                               return null;
+                       return new Read<String>() {
+                               @Override
                                public String perform(ReadGraph graph) throws DatabaseException {
                                        return NameUtils.getSafeName(graph, r);         
                                }
                        };
-                }
-                
-                @Override
+               }
+
+               @Override
                public void createControls(Composite body, IWorkbenchSite site,
                                ISessionContext context, WidgetSupport support) {
                        // TODO Auto-generated method stub
@@ -126,20 +131,22 @@ public class P3DSelectionProcessor implements SelectionProcessor<Object, ReadGra
                        ((Composite)parameterExplorer.getExplorerControl()).setEnabled(enabled);
                }
        }
-       
-       
-       
+
+
+
        public class MultiSelectionTabContibutor extends PropertyTabContributorImpl {
+               @Override
                public void createControls(org.eclipse.swt.widgets.Composite body, org.eclipse.ui.IWorkbenchSite site, org.simantics.db.management.ISessionContext context, org.simantics.browsing.ui.swt.widgets.impl.WidgetSupport support) {
                        //Composite composite = new Composite(body, SWT.NONE);
                }
-               
+
+               @Override
                public Read<String> getPartNameReadRequest(ISelection forSelection) {
-                        final Collection<Resource> coll =  AdaptationUtils.adaptToCollection(forSelection, Resource.class);
-                        if (coll.size() == 0)
-                                return null;
-                        return new Read<String>() {
-                                @Override
+                       final Collection<Resource> coll =  AdaptationUtils.adaptToCollection(forSelection, Resource.class);
+                       if (coll.size() == 0)
+                               return null;
+                       return new Read<String>() {
+                               @Override
                                public String perform(ReadGraph graph) throws DatabaseException {
                                        String title = "";
                                        for (Resource r : coll) {
@@ -149,21 +156,22 @@ public class P3DSelectionProcessor implements SelectionProcessor<Object, ReadGra
                                        return title.substring(0,title.length()-1);             
                                }
                        };
-                }
+               }
        }
-       
+
        public class NoneSelectionTabContributor extends PropertyTabContributorImpl {
                @Override
                public void createControls(Composite body, IWorkbenchSite site,
                                ISessionContext context, WidgetSupport support) {
                        //Composite composite = new Composite(body, SWT.NONE);
-                       
+
                }
-               
-               public void updatePartName(ISelection forSelection, Callback<String> updateCallback) {
-                       updateCallback.run("No Selection");
+
+               //@Override
+               public void updatePartName(ISelection forSelection, Consumer<String> updateCallback) {
+                       updateCallback.accept("No Selection");
                }
        }
-       
+
 
 }