Package ptolemy.gui
Class JTextAreaExec
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- ptolemy.gui.JTextAreaExec
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,javax.accessibility.Accessible,ExecuteCommands
public class JTextAreaExec extends javax.swing.JPanel implements ExecuteCommands
Execute commands in a subprocess and display them in a JTextArea.As an alternative to this class, see
StringBufferExec, which writes to a StringBuffer, andStreamExec, which writes to stderr and stdout.Loosely based on Example1.java from http://java.sun.com/products/jfc/tsc/articles/threads/threads2.html
See also http://developer.java.sun.com/developer/qow/archive/135/index.jsp (1/11: Broken) and http://jw.itworld.com/javaworld/jw-12-2000/jw-1229-traps.html.
- Since:
- Ptolemy II 2.0
- Version:
- $Id$
- Author:
- Christopher Hylands
- See Also:
StringBufferExec,StreamExec, Serialized Form- Pt.AcceptedRating:
- Red (cxh)
- Pt.ProposedRating:
- Red (cxh)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description JTextAreaExec(java.lang.String name, boolean showButtons)Create the JTextArea, progress bar, status text field and optionally Start, Cancel and Clear buttons.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidappendJTextArea(java.lang.String text)Append the text message to the JTextArea and include a trailing newline.voidappendToPath(java.lang.String directoryName)Append to the path of the subprocess.voidcancel()Cancel any running commands.voidclear()Clear the text area, status bar and progress bar.java.lang.Stringgetenv(java.lang.String key)Get the value of the environment of the subprocess.intgetLastSubprocessReturnCode()Return the return code of the last subprocess that was executed.javax.swing.JButtongetStartButton()Return the Start button.static voidmain(java.lang.String[] args)Main method used for testing.voidsetCommands(java.util.List commands)Set the list of commands.voidsetWorkingDirectory(java.io.File workingDirectory)Set the working directory of the subprocess.voidstart()Start running the commands.voidstderr(java.lang.String text)Append the text message to stderr.voidstdout(java.lang.String text)Append the text message to the output.voidupdateStatusBar(java.lang.String text)Update the status area with the text message.-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Constructor Detail
-
JTextAreaExec
public JTextAreaExec(java.lang.String name, boolean showButtons)Create the JTextArea, progress bar, status text field and optionally Start, Cancel and Clear buttons.- Parameters:
name- A String containing the name to label the JTextArea with.showButtons- True if the Start, Cancel and Clear buttons should be made visible.
-
-
Method Detail
-
appendJTextArea
public void appendJTextArea(java.lang.String text)
Append the text message to the JTextArea and include a trailing newline.- Parameters:
text- The text message to be appended.
-
appendToPath
public void appendToPath(java.lang.String directoryName)
Append to the path of the subprocess. If directoryName is already in the path, then it is not appended.- Specified by:
appendToPathin interfaceExecuteCommands- Parameters:
directoryName- The name of the directory to append to the path.
-
cancel
public void cancel()
Cancel any running commands.- Specified by:
cancelin interfaceExecuteCommands
-
clear
public void clear()
Clear the text area, status bar and progress bar.- Specified by:
clearin interfaceExecuteCommands
-
getenv
public java.lang.String getenv(java.lang.String key)
Get the value of the environment of the subprocess.- Specified by:
getenvin interfaceExecuteCommands- Parameters:
key- The environment variable.- Returns:
- The value of the key. If the key is not set, then null is returned. If appendToPath() has been called, and the then the environment for the subprocess is checked, which might be different than the environment for the current process because appendToPath() was called. Note that that key is searched for in a case-insensitive mode.
-
getLastSubprocessReturnCode
public int getLastSubprocessReturnCode()
Return the return code of the last subprocess that was executed.- Specified by:
getLastSubprocessReturnCodein interfaceExecuteCommands- Returns:
- the return code of the last subprocess that was executed.
-
getStartButton
public javax.swing.JButton getStartButton()
Return the Start button. This method is used to get the Start button so we can set the focus to it.- Returns:
- the Start button.
-
main
public static void main(java.lang.String[] args)
Main method used for testing. To run a simple test, use:java -classpath $PTII ptolemy.gui.JTextAreaExec- Parameters:
args- The command line arguments, currently ignored.
-
setCommands
public void setCommands(java.util.List commands)
Set the list of commands.- Specified by:
setCommandsin interfaceExecuteCommands- Parameters:
commands- a List of Strings, where each element is a command.
-
setWorkingDirectory
public void setWorkingDirectory(java.io.File workingDirectory)
Set the working directory of the subprocess.- Specified by:
setWorkingDirectoryin interfaceExecuteCommands- Parameters:
workingDirectory- The working directory of the subprocess. If this argument is null, then the subprocess is executed in the working directory of the current process.
-
start
public void start()
Start running the commands.- Specified by:
startin interfaceExecuteCommands
-
stderr
public void stderr(java.lang.String text)
Append the text message to stderr. The output automatically gets a trailing newline appended.- Specified by:
stderrin interfaceExecuteCommands- Parameters:
text- The text to append to standard error.
-
stdout
public void stdout(java.lang.String text)
Append the text message to the output. The output automatically gets a trailing newline appended.- Specified by:
stdoutin interfaceExecuteCommands- Parameters:
text- The text to append to standard out.
-
updateStatusBar
public void updateStatusBar(java.lang.String text)
Update the status area with the text message.- Specified by:
updateStatusBarin interfaceExecuteCommands- Parameters:
text- The text with which the status area is updated.
-
-