]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/property/svg/SVGElementComposite.java
Initial version of SVG tab contribution
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / property / svg / SVGElementComposite.java
index 58dbf16dafc70a8dea3b15ffc5178d73399b5782..084569f0293870bde66d3469cffe869344b177cf 100644 (file)
@@ -11,6 +11,8 @@
  *******************************************************************************/\r
 package org.simantics.modeling.ui.property.svg;\r
 \r
+import java.util.Collection;\r
+\r
 import org.eclipse.jface.dialogs.IInputValidator;\r
 import org.eclipse.jface.layout.GridDataFactory;\r
 import org.eclipse.jface.resource.ColorDescriptor;\r
@@ -24,16 +26,44 @@ import org.simantics.browsing.ui.swt.widgets.DefaultColorProvider;
 import org.simantics.browsing.ui.swt.widgets.Label;\r
 import org.simantics.browsing.ui.swt.widgets.TrackedText;\r
 import org.simantics.browsing.ui.swt.widgets.impl.WidgetSupport;\r
+import org.simantics.db.ReadGraph;\r
 import org.simantics.db.Resource;\r
+import org.simantics.db.exception.DatabaseException;\r
 import org.simantics.db.management.ISessionContext;\r
+import org.simantics.diagram.stubs.DiagramResource;\r
 import org.simantics.selectionview.ComparableTabContributor;\r
 import org.simantics.selectionview.ConfigurationComposite;\r
+import org.simantics.selectionview.TabContribution;\r
+import org.simantics.ui.selection.WorkbenchSelectionUtils;\r
 \r
 /**\r
  * @author Tuukka Lehtonen\r
  */\r
 public class SVGElementComposite extends ConfigurationComposite {\r
 \r
+       public static TabContribution<Object> svgTabContribution() {\r
+               return new TabContribution<Object>() {\r
+\r
+                       @Override\r
+                       public boolean accept(ReadGraph graph, Object input) throws DatabaseException {\r
+                               Resource res = WorkbenchSelectionUtils.getPossibleResource(input);\r
+                               if(res == null) return false;\r
+                               return graph.isInstanceOf(res, DiagramResource.getInstance(graph).SVGElement);\r
+                       }\r
+\r
+                       @Override\r
+                       public void contribute(ReadGraph graph, Object selection, Collection<ComparableTabContributor> result)\r
+                                       throws DatabaseException {\r
+                               Resource res = WorkbenchSelectionUtils.getPossibleResource(selection);\r
+                               if(res != null) {\r
+                                       if(graph.isInstanceOf(res, DiagramResource.getInstance(graph).SVGElement)) {\r
+                                               result.add(make(res, 100.0, "SVG"));\r
+                                       }\r
+                               }\r
+                       }\r
+               };\r
+       }\r
+       \r
     public static ComparableTabContributor make(Resource input, double priority, String tabLabel) {\r
         return make(new SVGInput(input), priority, tabLabel);\r
     }\r