*******************************************************************************/\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
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