* Bug 16365 fixed: median(m,'r'|'c') was wrong after 5dc990
[scilab.git] / scilab / modules / graphic_export / src / java / org / scilab / modules / graphic_export / Driver.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2012 - Scilab Enterprises - Calixte DENIZET
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15
16 package org.scilab.modules.graphic_export;
17
18 import org.scilab.modules.localization.Messages;
19
20 /**
21  * Class to map driver function
22  *
23  * @author Calixte DENIZET
24  */
25 public class Driver {
26
27     private static String driver = "Rec";
28     private static String filename;
29
30     /**
31      * Set the driver
32      * @param driver the driver to use
33      */
34     public static boolean setDriver(String driver) {
35         String d = driver.toLowerCase();
36         if (!d.equals("x11") && !d.equals("rec") && !d.equals("null") && Export.getType(d) == -1) {
37             return false;
38         }
39         Driver.driver = driver;
40
41         return true;
42     }
43
44     /**
45      * Get the driver
46      * @return the driver used
47      */
48     public static String getDriver() {
49         return driver;
50     }
51
52     /**
53      * Set the path
54      * @param path the path
55      */
56     public static void setPath(String path) {
57         Driver.filename = path;
58     }
59
60     public static boolean isImageRendering() {
61         return !driver.equalsIgnoreCase("X11") && !driver.equalsIgnoreCase("Rec") && !driver.equals("null");
62     }
63
64     public static void setDefaultVisitor(int uid) {
65         if (isImageRendering()) {
66             Export.setVisitor(uid, Export.getType(driver), new ExportParams(-1.0f, 0, true));
67         }
68     }
69
70     /**
71      * Export the current figure
72      * @param uid the uid of the current figure
73      */
74     public static String end(int uid) {
75         if (filename == null) {
76             return Messages.gettext("xinit must be called before xend.");
77         }
78
79         if (isImageRendering()) {
80             String ret = FileExporter.headlessFileExport(uid, filename, driver, -1, 0);
81             filename = null;
82
83             return ret;
84         }
85
86         return "";
87     }
88 }