~centralelyon2010/inkscape/imagelinks2

« back to all changes in this revision

Viewing changes to src/bind/java/org/inkscape/cmn/ScriptRunner.java

  • Committer: ishmal
  • Date: 2008-03-08 22:50:44 UTC
  • Revision ID: ishmal@users.sourceforge.net-20080308225044-8uoavse4zlq2lu7w
First commit for java binding

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * This is a simple mechanism to bind Inkscape to Java, and thence
 
3
 * to all of the nice things that can be layered upon that.
 
4
 *
 
5
 * Authors:
 
6
 *   Bob Jamison
 
7
 *
 
8
 * Copyright (C) 2007 Bob Jamison
 
9
 *
 
10
 *  This library is free software; you can redistribute it and/or
 
11
 *  modify it under the terms of the GNU Lesser General Public
 
12
 *  License as published by the Free Software Foundation; either
 
13
 *  version 2.1 of the License, or (at your option) any later version.
 
14
 *
 
15
 *  This library is distributed in the hope that it will be useful,
 
16
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
17
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
18
 *  Lesser General Public License for more details.
 
19
 *
 
20
 *  You should have received a copy of the GNU Lesser General Public
 
21
 *  License along with this library; if not, write to the Free Software
 
22
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
23
 */
 
24
 
 
25
package org.inkscape.cmn;
 
26
 
 
27
import javax.script.*;
 
28
import java.io.FileReader;
 
29
import java.io.IOException;
 
30
import javax.swing.JOptionPane;
 
31
 
 
32
 
 
33
 
 
34
 
 
35
public class ScriptRunner
 
36
{
 
37
 
 
38
 
 
39
 
 
40
static void err(String message)
 
41
{
 
42
    JOptionPane.showMessageDialog(null, message,
 
43
               "Script Error", JOptionPane.ERROR_MESSAGE);
 
44
}
 
45
 
 
46
 
 
47
 
 
48
public static boolean run(String lang, String str)
 
49
{
 
50
    ScriptEngineManager factory = new ScriptEngineManager();
 
51
    // create JavaScript engine
 
52
    ScriptEngine engine = factory.getEngineByName(lang);
 
53
    // evaluate JavaScript code from given file - specified by first argument
 
54
    try
 
55
        {
 
56
        engine.eval(str);
 
57
        }
 
58
    catch (javax.script.ScriptException e)
 
59
        {
 
60
        err("Executing script: " + e);
 
61
        }
 
62
    return true;
 
63
}
 
64
 
 
65
public static boolean runFile(String lang, String fname)
 
66
{
 
67
    ScriptEngineManager factory = new ScriptEngineManager();
 
68
    // create JavaScript engine
 
69
    ScriptEngine engine = factory.getEngineByName(lang);
 
70
    // evaluate JavaScript code from given file - specified by first argument
 
71
    FileReader in = null;
 
72
    boolean ret = true;
 
73
    try
 
74
        {
 
75
        in = new FileReader(fname);
 
76
        }
 
77
    catch (java.io.IOException e)
 
78
        {
 
79
        err("Executing file: " + e);
 
80
        return false;
 
81
        }
 
82
    try
 
83
        {
 
84
        engine.eval(in);
 
85
        }
 
86
    catch (javax.script.ScriptException e)
 
87
        {
 
88
        err("Executing file: " + e);
 
89
        ret = false;
 
90
        }
 
91
    try
 
92
        {
 
93
        in.close();
 
94
        }
 
95
    catch (java.io.IOException e)
 
96
        {
 
97
        err("Executing file: " + e);
 
98
        return false;
 
99
        }
 
100
    return ret;
 
101
}
 
102
 
 
103
 
 
104
 
 
105
}