6220bb9d24b869e74636b004416b7d7c76e5d0e2
[scilab.git] / scilab / modules / xcos / src / java / org / scilab / modules / xcos / utils / XcosDelegates.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2012 - Scilab Enterprises - Clement David
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10  *
11  */
12
13 package org.scilab.modules.xcos.utils;
14
15 import java.awt.image.BufferedImage;
16 import java.io.File;
17
18 import javax.imageio.ImageIO;
19
20 import org.scilab.modules.helptools.image.XcosImageConverter;
21 import org.scilab.modules.xcos.JavaController;
22 import org.scilab.modules.xcos.Kind;
23 import org.scilab.modules.xcos.graph.XcosDiagram;
24 import org.scilab.modules.xcos.io.XcosFileType;
25
26 import com.mxgraph.swing.mxGraphComponent;
27 import com.mxgraph.util.mxCellRenderer;
28
29 /**
30  * Class which contains all Xcos dependant function used by other modules.
31  */
32 public class XcosDelegates {
33
34     private XcosDelegates() {
35         // static singleton
36     }
37
38     /**
39      * Delegate method to avoid a strong dependency on helptools.
40      *
41      * @param helpID
42      * @param xcosFile
43      * @param imageFile
44      * @param imageName
45      * @throws Exception
46      *
47      * @see {@link XcosImageConverter}
48      */
49     public static final void convertToPNG(final String helpID, final String xcosFile, final File imageFile, final String imageName) throws Exception {
50         JavaController controller = new JavaController();
51
52         final XcosDiagram diag = new XcosDiagram(controller.createObject(Kind.DIAGRAM), Kind.DIAGRAM);
53         diag.installListeners();
54
55         final XcosFileType filetype = XcosFileType.findFileType(xcosFile);
56         // FIXME load file
57         //        filetype.load(xcosFile, diag);
58         //
59         //        final mxGraphComponent graphComponent = diag.getAsComponent();
60         //
61         //        final BufferedImage image = mxCellRenderer.createBufferedImage(diag, null, 1, null, graphComponent.isAntiAlias(), null, graphComponent.getCanvas());
62         final BufferedImage image = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
63         ImageIO.write(image, "png", imageFile);
64
65         controller.deleteObject(diag.getUID());
66     }
67 }