X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fproperty%2FP3DSelectionProcessor.java;h=3bef85b501ddcfb0cb4a4e99f341596af5d18fef;hb=53d55c24c779745f188bdb18d32f71d20acb61b2;hp=072079c22e198bb85224c0085de0116317bd4c8c;hpb=f36217aeeb09c0c46f99886ee99772156ce9cfe6;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/property/P3DSelectionProcessor.java b/org.simantics.plant3d/src/org/simantics/plant3d/property/P3DSelectionProcessor.java index 072079c2..3bef85b5 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/property/P3DSelectionProcessor.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/property/P3DSelectionProcessor.java @@ -39,87 +39,87 @@ public class P3DSelectionProcessor implements SelectionProcessor result = new ArrayList(); - Collection resourceCollection = AdaptationUtils.adaptToCollection(selection, Resource.class); - Collection structuralResourceCollection = AdaptationUtils.adaptToCollection(selection, StructuralResource.class); - Collection propCollection = AdaptationUtils.adaptToCollection(selection, vtkProp.class); - Collection 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 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 { + Collection result = new ArrayList(); + Collection resourceCollection = AdaptationUtils.adaptToCollection(selection, Resource.class); + Collection structuralResourceCollection = AdaptationUtils.adaptToCollection(selection, StructuralResource.class); + Collection propCollection = AdaptationUtils.adaptToCollection(selection, vtkProp.class); + Collection 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 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 updateCallback) { - Read 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 getPartNameReadRequest(ISelection forSelection) { - final Resource r = AdaptationUtils.adaptToSingle(forSelection, Resource.class); - if (r == null) - return null; - return new Read() { - @Override + public void updatePartName(ISelection forSelection, Callback updateCallback) { + Read 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 getPartNameReadRequest(ISelection forSelection) { + final Resource r = AdaptationUtils.adaptToSingle(forSelection, Resource.class); + if (r == null) + return null; + return new Read() { + @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 @@ -127,20 +127,20 @@ public class P3DSelectionProcessor implements SelectionProcessor getPartNameReadRequest(ISelection forSelection) { - final Collection coll = AdaptationUtils.adaptToCollection(forSelection, Resource.class); - if (coll.size() == 0) - return null; - return new Read() { - @Override + final Collection coll = AdaptationUtils.adaptToCollection(forSelection, Resource.class); + if (coll.size() == 0) + return null; + return new Read() { + @Override public String perform(ReadGraph graph) throws DatabaseException { String title = ""; for (Resource r : coll) { @@ -150,21 +150,21 @@ public class P3DSelectionProcessor implements SelectionProcessor updateCallback) { updateCallback.run("No Selection"); } } - + }