From 3363d703decd994069d66740681a72c03ce6acf4 Mon Sep 17 00:00:00 2001 From: Antti Villberg Date: Tue, 22 Nov 2016 13:47:55 +0200 Subject: [PATCH] Initial version of SVG tab contribution refs #6825 Change-Id: I412379dcd53e307962b807b087cf6e243fe37b03 --- .../org.simantics.modeling.ontology/graph.tg | Bin 81597 -> 81885 bytes .../graph/Modeling.pgraph | 4 +++ .../simantics/modeling/ModelingResources.java | 3 ++ .../SelectionView/TabContribution/SVG.scl | 5 +++ .../scl/Simantics/UI.scl | 2 +- .../ui/property/svg/SVGElementComposite.java | 30 ++++++++++++++++++ .../graph.tg | Bin 18732 -> 18748 bytes .../graph/PlatformUI.pgraph | 1 + .../org.simantics.selectionview/adapters.xml | 2 +- 9 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 bundles/org.simantics.modeling.ui/scl/Simantics/SelectionView/TabContribution/SVG.scl rename bundles/{org.simantics.modeling => org.simantics.modeling.ui}/scl/Simantics/UI.scl (83%) diff --git a/bundles/org.simantics.modeling.ontology/graph.tg b/bundles/org.simantics.modeling.ontology/graph.tg index 9bfebc390959640226a8ee71108d4441f53e4bca..c76a05c83ecfdf879c26150166f1952a21a90b25 100644 GIT binary patch literal 81885 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 literal 81597 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�l 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 Boolean" +MOD.SVGTabContribution : SEL.SCLTabContribution + @MOD.scl SEL.SCLTabContribution.instantiate + "svgTabContribution" + "() -> TabContribution" \ No newline at end of file diff --git a/bundles/org.simantics.modeling.ontology/src/org/simantics/modeling/ModelingResources.java b/bundles/org.simantics.modeling.ontology/src/org/simantics/modeling/ModelingResources.java index 0c4febf84..0bcb5ecdf 100644 --- a/bundles/org.simantics.modeling.ontology/src/org/simantics/modeling/ModelingResources.java +++ b/bundles/org.simantics.modeling.ontology/src/org/simantics/modeling/ModelingResources.java @@ -366,6 +366,7 @@ public class ModelingResources { public final Resource SCLTest_test; public final Resource SCLTest_test_Inverse; public final Resource SCLValue; + public final Resource SVGTabContribution; public final Resource SharedOntology; public final Resource SourceInformation; public final Resource SourceInformation_copiedAtRevision; @@ -790,6 +791,7 @@ public class ModelingResources { public static final String SCLTest_test = "http://www.simantics.org/Modeling-1.2/SCLTest/test"; public static final String SCLTest_test_Inverse = "http://www.simantics.org/Modeling-1.2/SCLTest/test/Inverse"; public static final String SCLValue = "http://www.simantics.org/Modeling-1.2/SCLValue"; + public static final String SVGTabContribution = "http://www.simantics.org/Modeling-1.2/SVGTabContribution"; public static final String SharedOntology = "http://www.simantics.org/Modeling-1.2/SharedOntology"; public static final String SourceInformation = "http://www.simantics.org/Modeling-1.2/SourceInformation"; public static final String SourceInformation_copiedAtRevision = "http://www.simantics.org/Modeling-1.2/SourceInformation/copiedAtRevision"; @@ -1224,6 +1226,7 @@ public class ModelingResources { SCLTest_test = getResourceOrNull(graph, URIs.SCLTest_test); SCLTest_test_Inverse = getResourceOrNull(graph, URIs.SCLTest_test_Inverse); SCLValue = getResourceOrNull(graph, URIs.SCLValue); + SVGTabContribution = getResourceOrNull(graph, URIs.SVGTabContribution); SharedOntology = getResourceOrNull(graph, URIs.SharedOntology); SourceInformation = getResourceOrNull(graph, URIs.SourceInformation); SourceInformation_copiedAtRevision = getResourceOrNull(graph, URIs.SourceInformation_copiedAtRevision); diff --git a/bundles/org.simantics.modeling.ui/scl/Simantics/SelectionView/TabContribution/SVG.scl b/bundles/org.simantics.modeling.ui/scl/Simantics/SelectionView/TabContribution/SVG.scl new file mode 100644 index 000000000..e41da3cea --- /dev/null +++ b/bundles/org.simantics.modeling.ui/scl/Simantics/SelectionView/TabContribution/SVG.scl @@ -0,0 +1,5 @@ +include "File" +include "Simantics/SelectionView" + +importJava "org.simantics.modeling.ui.property.svg.SVGElementComposite" where + svgTabContribution :: () -> TabContribution \ No newline at end of file diff --git a/bundles/org.simantics.modeling/scl/Simantics/UI.scl b/bundles/org.simantics.modeling.ui/scl/Simantics/UI.scl similarity index 83% rename from bundles/org.simantics.modeling/scl/Simantics/UI.scl rename to bundles/org.simantics.modeling.ui/scl/Simantics/UI.scl index 59772c97b..50bcb305a 100644 --- a/bundles/org.simantics.modeling/scl/Simantics/UI.scl +++ b/bundles/org.simantics.modeling.ui/scl/Simantics/UI.scl @@ -1,6 +1,6 @@ include "File" +include "Simantics/SelectionView" importJava "org.simantics.modeling.ModelingUtils" where """Queries for a file using a common file dialog.""" fileDialog :: String -> [(String,String)] -> Maybe File - \ No newline at end of file diff --git a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/property/svg/SVGElementComposite.java b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/property/svg/SVGElementComposite.java index 58dbf16da..084569f02 100644 --- a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/property/svg/SVGElementComposite.java +++ b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/property/svg/SVGElementComposite.java @@ -11,6 +11,8 @@ *******************************************************************************/ package org.simantics.modeling.ui.property.svg; +import java.util.Collection; + import org.eclipse.jface.dialogs.IInputValidator; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.resource.ColorDescriptor; @@ -24,16 +26,44 @@ import org.simantics.browsing.ui.swt.widgets.DefaultColorProvider; import org.simantics.browsing.ui.swt.widgets.Label; import org.simantics.browsing.ui.swt.widgets.TrackedText; import org.simantics.browsing.ui.swt.widgets.impl.WidgetSupport; +import org.simantics.db.ReadGraph; import org.simantics.db.Resource; +import org.simantics.db.exception.DatabaseException; import org.simantics.db.management.ISessionContext; +import org.simantics.diagram.stubs.DiagramResource; import org.simantics.selectionview.ComparableTabContributor; import org.simantics.selectionview.ConfigurationComposite; +import org.simantics.selectionview.TabContribution; +import org.simantics.ui.selection.WorkbenchSelectionUtils; /** * @author Tuukka Lehtonen */ public class SVGElementComposite extends ConfigurationComposite { + public static TabContribution svgTabContribution() { + return new TabContribution() { + + @Override + public boolean accept(ReadGraph graph, Object input) throws DatabaseException { + Resource res = WorkbenchSelectionUtils.getPossibleResource(input); + if(res == null) return false; + return graph.isInstanceOf(res, DiagramResource.getInstance(graph).SVGElement); + } + + @Override + public void contribute(ReadGraph graph, Object selection, Collection result) + throws DatabaseException { + Resource res = WorkbenchSelectionUtils.getPossibleResource(selection); + if(res != null) { + if(graph.isInstanceOf(res, DiagramResource.getInstance(graph).SVGElement)) { + result.add(make(res, 100.0, "SVG")); + } + } + } + }; + } + public static ComparableTabContributor make(Resource input, double priority, String tabLabel) { return make(new SVGInput(input), priority, tabLabel); } diff --git a/bundles/org.simantics.platform.ui.ontology/graph.tg b/bundles/org.simantics.platform.ui.ontology/graph.tg index 45c711d9cf908a0312c80be0e3585ef25befe1e0..eafb6ec76ba847404f9b0cc19d1c6a9714fa9d4e 100644 GIT binary patch delta 22 ecmZ28iE+;)#tr{P87(%6{TF9s+5AD*Mj8NXq6n4% delta 20 ccmdlpiE+&&#tr{P8BI2c{TJWNucs>w09zObo&W#< diff --git a/bundles/org.simantics.platform.ui.ontology/graph/PlatformUI.pgraph b/bundles/org.simantics.platform.ui.ontology/graph/PlatformUI.pgraph index 093fb87e2..3d3dc3c8a 100644 --- a/bundles/org.simantics.platform.ui.ontology/graph/PlatformUI.pgraph +++ b/bundles/org.simantics.platform.ui.ontology/graph/PlatformUI.pgraph @@ -13,6 +13,7 @@ PlatformUI = : L0.Ontology L0.IsLinkedTo SEL L0.IsLinkedTo ANNO L0.IsLinkedTo TEMPLATE + L0.IsLinkedTo MOD PlatformUI.SCLMain : L0.SCLModule L0.SCLModule.definition _ : L0.String diff --git a/bundles/org.simantics.selectionview/adapters.xml b/bundles/org.simantics.selectionview/adapters.xml index 4ac4dab26..f1b084282 100644 --- a/bundles/org.simantics.selectionview/adapters.xml +++ b/bundles/org.simantics.selectionview/adapters.xml @@ -10,5 +10,5 @@ VTT Technical Research Centre of Finland - initial API and implementation --> - + -- 2.47.1