]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.image.ui/src/org/simantics/image/ui/CreateImage.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.image.ui / src / org / simantics / image / ui / CreateImage.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2011 Association for Decentralized Information Management in\r
3  * Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.image.ui;\r
13 \r
14 import org.simantics.databoard.Bindings;\r
15 import org.simantics.db.ReadGraph;\r
16 import org.simantics.db.Resource;\r
17 import org.simantics.db.WriteGraph;\r
18 import org.simantics.db.common.request.WriteRequest;\r
19 import org.simantics.db.exception.DatabaseException;\r
20 import org.simantics.db.layer0.util.Layer0Utils;\r
21 import org.simantics.image2.ontology.ImageResource;\r
22 import org.simantics.layer0.Layer0;\r
23 \r
24 /**\r
25  * @author Tuukka Lehtonen\r
26  */\r
27 public class CreateImage extends WriteRequest {\r
28 \r
29     private Resource container;\r
30     private ImageSource source;\r
31 \r
32     public CreateImage(Resource container, ImageSource source) {\r
33         this.container = container;\r
34         this.source = source;\r
35     }\r
36 \r
37     public static Resource getType(ReadGraph graph, ImageSource source) throws DatabaseException {\r
38         ImageResource IMAGE = ImageResource.getInstance(graph);\r
39         String name = source.name.toLowerCase();\r
40         if(name.endsWith("svg")) return IMAGE.SvgImage;\r
41         else if(name.endsWith("png")) return IMAGE.PngImage;\r
42         else if(name.endsWith("jpg") || name.endsWith("jpeg")) return IMAGE.JpegImage;\r
43         else if(name.endsWith("gif")) return IMAGE.GifImage;\r
44         else throw new DatabaseException("Unsupported image format " + source.name);\r
45     }\r
46     \r
47     public static void claimLiteral(WriteGraph graph, Resource image, ImageSource source) throws DatabaseException {\r
48         String name = source.name.toLowerCase();\r
49         if (name.endsWith("svg"))\r
50             graph.claimValue(image, new String(source.data), Bindings.STRING);\r
51         else if (name.endsWith("png") || name.endsWith("jpg") || name.endsWith("jpeg") || name.endsWith("gif"))\r
52             graph.claimValue(image, source.data, Bindings.BYTE_ARRAY);\r
53         else throw new DatabaseException("Unsupported image format " + source.name);\r
54     }\r
55 \r
56     @Override\r
57     public void perform(WriteGraph graph) throws DatabaseException {\r
58         doImage(graph, container, source);\r
59     }\r
60     \r
61     public Resource doImage(WriteGraph graph, Resource parent, ImageSource source) throws DatabaseException {\r
62         graph.markUndoPoint();\r
63         Layer0 L0 = Layer0.getInstance(graph);\r
64         Resource image = graph.newResource();\r
65         graph.claim(image, L0.InstanceOf, null, getType(graph, source));\r
66         graph.claimLiteral(image, L0.HasName, source.name, Bindings.STRING);\r
67         claimLiteral(graph, image, source);\r
68         graph.claim(parent, L0.ConsistsOf, image);\r
69         Layer0Utils.addCommentMetadata(graph, "Imported image " + source.name + " " + image.toString());\r
70         return image;\r
71         \r
72 //      if(file.getPath().endsWith("svg")) {\r
73 //            ImageSource src = ImportImagesActionFactory.toImageSource(file);\r
74 //            Layer0 l0 = Layer0.getInstance(graph);\r
75 //            ImageResource img = ImageResource.getInstance(graph);\r
76 //            Resource image = graph.newResource();\r
77 //            graph.claim(image, l0.InstanceOf, null, img.Image);\r
78 //            graph.claimLiteral(image, l0.HasName, src.name, Bindings.STRING);\r
79 //            String document = FileUtils.getContents(file.getAbsolutePath());\r
80 //            graph.claimLiteral(image, img.HasImageDocument, document, Bindings.STRING);\r
81 //            graph.claim(container, l0.ConsistsOf, image);\r
82 //            graph.claim(container, img.HasImage, image);\r
83 //      } else {\r
84 //      }\r
85 //\r
86 //      \r
87 //        Layer0 l0 = Layer0.getInstance(graph);\r
88 //        ImageResource img = ImageResource.getInstance(graph);\r
89 //\r
90 //        Resource image = graph.newResource();\r
91 //        graph.claim(image, l0.InstanceOf, null, img.Image);\r
92 //        graph.claimLiteral(image, l0.HasName, source.name, Bindings.STRING);\r
93 //        graph.claimLiteral(image, img.HasImageData, source.data, Bindings.BYTE_ARRAY);\r
94 //        graph.claim(container, l0.ConsistsOf, image);\r
95 //        graph.claim(container, img.HasImage, image);\r
96                 \r
97     }\r
98 \r
99 }