|
What this is
Other links
The source code/* * 05/22/2001 - 20:38:27 * * DawnRunScript.java * Copyright (C) 2001 Romain Guy * * This free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.jext.scripting.dawn; import java.io.*; import javax.swing.JOptionPane; import java.awt.event.ActionEvent; import org.jext.*; import org.jext.dawn.*; public final class Run { /** * Executes some Dawn code. * @param code The script code to be interpreted * @param parent The window which execuets the script */ public static void execute(String code, JextFrame parent) { execute(code, parent, true); } /** * Executes some Dawn code. * @param code The script code to be interpreted * @param parent The window which execuets the script * @param isThreaded If true, Dawn libraries loading is threaded */ public static void execute(String code, JextFrame parent, boolean isThreaded) { if (!isThreaded) { try { if (!DawnParser.isInitialized()) { DawnParser.init(); DawnParser.installPackage(Jext.class, "dawn-jext.scripting"); } DawnParser parser = new DawnParser(new StringReader(code)); parser.setProperty("JEXT.JEXT_FRAME", parent); parser.exec(); if (Jext.getBooleanProperty("dawn.scripting.debug")) { String dumped = parser.dump(); if (dumped.length() > 0) parent.getDawnLogWindow().logln(dumped); } } catch (DawnRuntimeException dre) { if (Jext.getBooleanProperty("dawn.scripting.debug")) { JOptionPane.showMessageDialog(parent, dre.getMessage(), Jext.getProperty("dawn.script.error"), JOptionPane.ERROR_MESSAGE); } } } else new ThreadExecuter(code, parent); } // the script is executed within a thread static class ThreadExecuter extends Thread { private String code; private JextFrame parent; ThreadExecuter(String code, JextFrame parent) { super("---Thread:Dawn runtime---"); this.code = code; this.parent = parent; start(); } public void run() { try { if (!DawnParser.isInitialized()) { DawnParser.init(); DawnParser.installPackage(Jext.class, "dawn-jext.scripting"); } DawnParser parser = new DawnParser(new StringReader(code)); parser.setProperty("JEXT.JEXT_FRAME", parent); parser.exec(); if (Jext.getBooleanProperty("dawn.scripting.debug")) { String dumped = parser.dump(); if (dumped.length() > 0) parent.getDawnLogWindow().logln(dumped); } } catch (DawnRuntimeException dre) { JOptionPane.showMessageDialog(parent, dre.getMessage(), Jext.getProperty("dawn.script.error"), JOptionPane.ERROR_MESSAGE); } } } /** * Runs a Jext script from a file. * @param fileName Path to the script * @param parent The Jext window which have to execute the script */ public static void runScript(String fileName, JextFrame parent) { runScript(fileName, parent, true); } /** * Runs a Jext script from a file. * @param fileName Path to the script * @param parent The Jext window which have to execute the script * @param isThreaded If true, loading of libraries is threaded */ public static void runScript(String fileName, JextFrame parent, boolean isThreaded) { try { BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileName))); String line; StringBuffer buf = new StringBuffer(); for ( ; (line = in.readLine()) != null; ) buf.append(line).append('\n'); in.close(); execute(buf.toString(), parent, isThreaded); } catch (IOException ioe) { Utilities.showError(Jext.getProperty("dawn.script.cannotread")); } } } // End of Run.java |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.