]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.browsing.ui.model/src/org/simantics/browsing/ui/model/browsecontexts/BrowseContext.java
BrowseContext creation fails when including invalid contributions
[simantics/platform.git] / bundles / org.simantics.browsing.ui.model / src / org / simantics / browsing / ui / model / browsecontexts / BrowseContext.java
index e57bfacca92d11b8b71d7eba4b2a8f1e0aa4c8e1..c4f8c26829081fa290a6df3cd35549817f6d3439 100644 (file)
@@ -22,9 +22,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
 import org.simantics.browsing.ui.BuiltinKeys;
 import org.simantics.browsing.ui.CheckedState;
 import org.simantics.browsing.ui.NodeContext;
@@ -59,13 +57,11 @@ import org.simantics.browsing.ui.model.visuals.VisualsContribution;
 import org.simantics.db.ReadGraph;
 import org.simantics.db.RequestProcessor;
 import org.simantics.db.Resource;
+import org.simantics.db.common.utils.NameUtils;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.exception.ResourceNotFoundException;
 import org.simantics.db.layer0.variable.Variable;
 import org.simantics.db.request.Read;
-import org.simantics.graphviz.Graph;
-import org.simantics.graphviz.Node;
-import org.simantics.graphviz.ui.GraphvizComponent;
 import org.simantics.scl.reflection.OntologyVersions;
 import org.simantics.viewpoint.ontology.ViewpointResource;
 import org.slf4j.Logger;
@@ -130,24 +126,32 @@ public class BrowseContext {
             
             for(Resource childContributionResource : 
                 g.getObjects(browseContextResource, vr.BrowseContext_HasChildContribution)) {
-                ChildContribution contribution = ChildContribution.create(g, childContributionResource);
-                browseContext.childContributions.put(contribution.getParentNodeType(), contribution);
-                browseContext.parentContributions.put(contribution.getChildNodeType(), contribution);
+                try {
+                    ChildContribution contribution = ChildContribution.create(g, childContributionResource);
+                    browseContext.childContributions.put(contribution.getParentNodeType(), contribution);
+                    browseContext.parentContributions.put(contribution.getChildNodeType(), contribution);
+                } catch (DatabaseException e) {
+                    LOGGER.error("Failed to load child contribution " + NameUtils.getSafeName(g, childContributionResource), e);
+                }
             }
             
             for(Resource visualsContributionResource : 
                 g.getObjects(browseContextResource, vr.BrowseContext_HasVisualsContribution)) {
-                VisualsContribution.load(g, visualsContributionResource,
-                        browseContext.labelContributions,
-                        browseContext.imageContributions,
-                        browseContext.checkedStateContributions,
-                        browseContext.labelDecorationContributions,
-                        browseContext.imageDecorationContributions,
-                        browseContext.modifierContributions,
-                        browseContext.sorterContributions,
-                        browseContext.flatNodeContributions,
-                        browseContext.tooltipContributions
+                try {
+                    VisualsContribution.load(g, visualsContributionResource,
+                            browseContext.labelContributions,
+                            browseContext.imageContributions,
+                            browseContext.checkedStateContributions,
+                            browseContext.labelDecorationContributions,
+                            browseContext.imageDecorationContributions,
+                            browseContext.modifierContributions,
+                            browseContext.sorterContributions,
+                            browseContext.flatNodeContributions,
+                            browseContext.tooltipContributions
                         );
+                } catch (DatabaseException e) {
+                    LOGGER.error("Failed to load visuals contribution " + NameUtils.getSafeName(g, visualsContributionResource), e);
+                }
             }
         }
         //browseContext.visualize();
@@ -469,36 +473,6 @@ public class BrowseContext {
             return tooltip;
         return null;
     }
-    
-    private Graph toGraph() {
-        Graph graph = new Graph();
-        new Node(graph, "Foo");
-        return graph;
-    }
-
-    @SuppressWarnings("unused")
-    private void visualize() {
-        final Graph graph = toGraph();
-                
-        // Show it
-        new Thread() {
-            public void run() {
-                final Display display = new Display();
-                final Shell shell = new Shell(display);
-
-                GraphvizComponent comp = new GraphvizComponent(shell, 0);
-                comp.setGraph(graph);
-
-                comp.setBounds(0, 0, 800, 600);
-                shell.pack();
-                shell.open ();
-                while (!shell.isDisposed()) {
-                    if (!display.readAndDispatch()) display.sleep();
-                }
-                display.dispose();
-            }
-        }.start();      
-    }
 
     @Override
     public int hashCode() {