|
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.lang.Thread jpicedt.ui.util.RunExternalCommand
public class RunExternalCommand
A class implementing methods for calling external processes like latex, (x)dvi, ghostscript… on the current picture file (e.g. the active internal frame)
A "tmp" file is generated on-the-fly in the "tmp" directory of the underlying platform, This tmp file
contains an adequate preamble (e.g. \\usepackage{epic}
) depending on current options, and LaTeX
commands (or PsTricks or eepic commands) corresponding to each object found in the given picture.
These command lines may include the following special symbols:
{f}
: tmp file name w/o extension (the user need to specify explicitely any extension required by the external program)
{p}
: tmp file path including trailing separator
{i}
: jPicEdt add-ons dir, that is : "jpicedt.home/add-ons
" (trailing separtor excluded){j}
: jPicEdt installation directory (without trailing separator){d}
: drawing directory, that is the directory in which the drawing is saved, if any
{u}
: user setting directory, where the user preferences, user defined fragments, and macros are saved
{[}
: expands to {
{]}
: expands to }
E.g.: kghostview {p}{f}.ps
or "{i}\windows\miktex\jlatex.bat" "{p}" {f} "{d}"
Since we don't want to resort on platform dependent tricks (working dirs, PATH variables, root directory names differing on UNIX and Win32 systems, latex command line which might also differ, aso&helllip;), the better thing the user could do is to write one batch/shell script per process he wants to launch, then provide the names of these scripts to PicEdt.
Scripts are easy to write on UNIX/Window platforms, and very likely on MacOS platforms by using AppleScript.
Nested Class Summary | |
---|---|
static class |
RunExternalCommand.Command
Enum for predefined external commands |
class |
RunExternalCommand.DlgBoxDisplayProcessIOStream
An inner class implementing a JDialog to display external process inputStream and send keyboard events to process outputStream |
Nested classes/interfaces inherited from class java.lang.Thread |
---|
Thread.State, Thread.UncaughtExceptionHandler |
Field Summary | |
---|---|
static boolean |
isGUI
|
static EnumSet<RunExternalCommand.Command> |
TeX_COMMANDS
members of Command enum that are TeX related external commands |
Fields inherited from class java.lang.Thread |
---|
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Constructor Summary | |
---|---|
RunExternalCommand(Drawing drawing,
ContentType contentType,
RunExternalCommand.Command commandToRun,
MDIManager mdimgr)
|
|
RunExternalCommand(Drawing drawing,
ContentType contentType,
String cmdLine,
boolean isWriteTmpTeXfile)
Mostly for debugging purpose, or when used outside the jpicedt.ui package (since then JPicEdt.preferences are no longer available). |
Method Summary | |
---|---|
static void |
cleanTmpDir()
Delete files created by JPicEdt or programms called by JPicEdt (LaTeX, dvips,…). |
static AbstractCustomizer |
createCustomizer(Properties preferences)
|
static void |
createTmpFile()
Create a new tmp file if it doesn't exit yet |
static String |
getAddonDir()
|
static File |
getTmpFile()
|
static String |
getTmpFilePrefix()
|
static String |
getTmpPath()
|
void |
openUI()
|
void |
run()
run an external process as a thread (overloading Thread.run() method)
we then pipe the process std output to a JTextArea |
Methods inherited from class java.lang.Thread |
---|
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final EnumSet<RunExternalCommand.Command> TeX_COMMANDS
public static boolean isGUI
Constructor Detail |
---|
public RunExternalCommand(Drawing drawing, ContentType contentType, RunExternalCommand.Command commandToRun, MDIManager mdimgr)
drawing
- The target document upon which the command will actscontentType
- the content-type used to format the documentcommandToRun
- one of the predefined constant fields (e.g. LATEX, DVIVIEWER, DVIPS or GHOSTVIEW)public RunExternalCommand(Drawing drawing, ContentType contentType, String cmdLine, boolean isWriteTmpTeXfile)
drawing
- The target document upon which the command will actscontentType
- the content-type used to format the documentcmdLine
- a string containing the command to be executed (e.g. "ext_prod.sh {p} latex {f}")Method Detail |
---|
public static File getTmpFile()
public static String getTmpPath()
public static String getTmpFilePrefix()
public void openUI()
public void run()
Thread.run()
method)
we then pipe the process std output to a JTextArea
run
in interface Runnable
run
in class Thread
public static void cleanTmpDir()
public static String getAddonDir()
public static void createTmpFile() throws IOException
IOException
- if an error occurspublic static AbstractCustomizer createCustomizer(Properties preferences)
|
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |