de.uni_paderborn.fujaba.basic
Class ProcessOutputViewer

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JInternalFrame
                  extended byde.uni_paderborn.fujaba.basic.ProcessOutputViewer
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class ProcessOutputViewer
extends javax.swing.JInternalFrame

This class represents an internal window. It executes a command via the Process.exec method. Two included threads poll the input and the error stream of the forked process and writes the characters into to text area.

Version:
$Revision: 1.65 $
Author:
$Author: lowende $
See Also:
Serialized Form

Nested Class Summary
(package private)  class ProcessOutputViewer.AutoScrollTextArea
          TextArea which scrolls down when something is appended.
(package private)  class ProcessOutputViewer.MyThread
          No comment provided by developer, please add a comment to improve documentation.
static interface ProcessOutputViewer.OutputListener
          No comment provided by developer, please add a comment to improve documentation.
(package private)  class ProcessOutputViewer.StreamPoller
          This class polls an input stream and appends the input to the text in a text area.
 
Nested classes inherited from class javax.swing.JInternalFrame
javax.swing.JInternalFrame.AccessibleJInternalFrame, javax.swing.JInternalFrame.JDesktopIcon
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
(package private)  javax.swing.JPanel advancedPanel
          No comment provided by developer, please add a comment to improve documentation.
 boolean calledByCompileAction
          to decide if CompileAction has called POV
private  javax.swing.JButton clearDisplay
          No comment provided by developer, please add a comment to improve documentation.
private  javax.swing.JButton clearHistory
          No comment provided by developer, please add a comment to improve documentation.
(package private)  javax.swing.JComboBox commandLineBox
          No comment provided by developer, please add a comment to improve documentation.
private  int curProcessState
          No comment provided by developer, please add a comment to improve documentation.
private  ProcessOutputViewer.StreamPoller errorOutputPoller
          No comment provided by developer, please add a comment to improve documentation.
private  javax.swing.JButton execute
          No comment provided by developer, please add a comment to improve documentation.
(package private)  javax.swing.JButton exit
          No comment provided by developer, please add a comment to improve documentation.
private  java.awt.event.ActionListener exitAction
          No comment provided by developer, please add a comment to improve documentation.
(package private)  java.lang.String exitText
          No comment provided by developer, please add a comment to improve documentation.
(package private)  java.util.Collection listeners
          No comment provided by developer, please add a comment to improve documentation.
private static org.apache.log4j.Logger log
          log4j logging
private static int maxProcessStates
          No comment provided by developer, please add a comment to improve documentation.
(package private)  javax.swing.JTextArea normalOutput
          No comment provided by developer, please add a comment to improve documentation.
private  ProcessOutputViewer.StreamPoller normalOutputPoller
          No comment provided by developer, please add a comment to improve documentation.
(package private)  java.lang.Process process
          No comment provided by developer, please add a comment to improve documentation.
private  javax.swing.JLabel processCommandLabel
          No comment provided by developer, please add a comment to improve documentation.
private  de.upb.tools.fca.FTreeSet processListeners
          No comment provided by developer, please add a comment to improve documentation.
private  javax.swing.JLabel processStateLabel
          No comment provided by developer, please add a comment to improve documentation.
private  javax.swing.JButton recompile
          No comment provided by developer, please add a comment to improve documentation.
private static java.lang.String[] states
          No comment provided by developer, please add a comment to improve documentation.
 
Fields inherited from class javax.swing.JInternalFrame
closable, CONTENT_PANE_PROPERTY, desktopIcon, FRAME_ICON_PROPERTY, frameIcon, GLASS_PANE_PROPERTY, iconable, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, isClosed, isIcon, isMaximum, isSelected, LAYERED_PANE_PROPERTY, maximizable, MENU_BAR_PROPERTY, resizable, ROOT_PANE_PROPERTY, rootPane, rootPaneCheckingEnabled, title, TITLE_PROPERTY
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ProcessOutputViewer()
          Constructor for class ProcessOutputViewer
ProcessOutputViewer(boolean calledByCompileAction, boolean show)
          Constructor for class ProcessOutputViewer
 
Method Summary
 void addOutputListener(ProcessOutputViewer.OutputListener listener)
          Access method for a To N-association.
 void addProcessListener(ProcessListener newListener)
          Adds a new listner to the ProcessOutputViewer who is interested to know when the Process is finished.
 boolean compileAndWaitForResult(java.lang.String cmdLine)
          No comment provided by developer, please add a comment to improve documentation.
 void executeButtonPressed()
          Execute the command line.
 void executeCommand(java.lang.String commandLine)
          Shows the ProcessOutputViewer and executes the command
 void executeCommand(java.lang.String commandLine, java.lang.String title)
          Shows the ProcessOutputViewer and executes the command
 void exitButtonPressed()
          Disposes the frame in order to close it.
(package private)  java.lang.String getCommandLine()
          Get the commandLine attribute of the ProcessOutputViewer object
 java.awt.event.ActionListener getExitAction()
          Get the exitAction attribute of the ProcessOutputViewer object
 java.lang.String getOutput()
          Get the output attribute of the ProcessOutputViewer object
 boolean isAutoContinueEnabled()
          Get the autoContinueEnabled attribute of the ProcessOutputViewer object
 boolean isRunning()
          Shows if a process is currently running
static void main(java.lang.String[] argv)
          The main method allows to start the process output viewer separately
(package private)  void notifyAllProcessListeners(ProcessEvent event)
          No comment provided by developer, please add a comment to improve documentation.
 void quietExecuteCommand(java.lang.String commandLine)
          Executes the command, shows ProcessOutputView only if an error occures
 void recompileButtonPressed()
          No comment provided by developer, please add a comment to improve documentation.
 void removeOutputListener(ProcessOutputViewer.OutputListener listener)
          No comment provided by developer, please add a comment to improve documentation.
 void resetProcessState()
          Resets the state label and the exit/abort button's text.
private  void setCommandLine(java.lang.String commandLine)
          Sets the commandLine attribute of the ProcessOutputViewer object
 void setExitAction(java.awt.event.ActionListener act)
          Sets the exitAction attribute of the ProcessOutputViewer object
 void setMouseListener(java.awt.event.MouseListener mouseListener)
          Sets the mouseListener attribute of the ProcessOutputViewer object
(package private)  void startThreads()
          Starts the internal threads.
(package private)  void stopThreads()
          Stops the internal threads.
 void switchProcessState()
          Switches the state label and enables the exit button if finished.
 
Methods inherited from class javax.swing.JInternalFrame
addImpl, addInternalFrameListener, createRootPane, dispose, doDefaultCloseAction, fireInternalFrameEvent, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getFrameIcon, getGlassPane, getInternalFrameListeners, getJMenuBar, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getTitle, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isRootPaneCheckingEnabled, isSelected, moveToBack, moveToFront, pack, paintComponent, paramString, remove, removeInternalFrameListener, reshape, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setFrameIcon, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setRootPane, setRootPaneCheckingEnabled, setSelected, setTitle, setUI, show, toBack, toFront, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setFocusTraversalKeys, setFocusTraversalPolicy, transferFocusBackward, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

log

private static final transient org.apache.log4j.Logger log
log4j logging


states

private static final java.lang.String[] states
No comment provided by developer, please add a comment to improve documentation.


exitText

java.lang.String exitText
No comment provided by developer, please add a comment to improve documentation.


normalOutput

javax.swing.JTextArea normalOutput
No comment provided by developer, please add a comment to improve documentation.


exit

javax.swing.JButton exit
No comment provided by developer, please add a comment to improve documentation.


execute

private javax.swing.JButton execute
No comment provided by developer, please add a comment to improve documentation.


recompile

private javax.swing.JButton recompile
No comment provided by developer, please add a comment to improve documentation.


clearHistory

private javax.swing.JButton clearHistory
No comment provided by developer, please add a comment to improve documentation.


clearDisplay

private javax.swing.JButton clearDisplay
No comment provided by developer, please add a comment to improve documentation.


processCommandLabel

private javax.swing.JLabel processCommandLabel
No comment provided by developer, please add a comment to improve documentation.


commandLineBox

javax.swing.JComboBox commandLineBox
No comment provided by developer, please add a comment to improve documentation.


processStateLabel

private javax.swing.JLabel processStateLabel
No comment provided by developer, please add a comment to improve documentation.


maxProcessStates

private static final int maxProcessStates
No comment provided by developer, please add a comment to improve documentation.

See Also:
Constant Field Values

curProcessState

private int curProcessState
No comment provided by developer, please add a comment to improve documentation.


processListeners

private de.upb.tools.fca.FTreeSet processListeners
No comment provided by developer, please add a comment to improve documentation.


normalOutputPoller

private ProcessOutputViewer.StreamPoller normalOutputPoller
No comment provided by developer, please add a comment to improve documentation.


errorOutputPoller

private ProcessOutputViewer.StreamPoller errorOutputPoller
No comment provided by developer, please add a comment to improve documentation.


process

java.lang.Process process
No comment provided by developer, please add a comment to improve documentation.


exitAction

private java.awt.event.ActionListener exitAction
No comment provided by developer, please add a comment to improve documentation.


advancedPanel

javax.swing.JPanel advancedPanel
No comment provided by developer, please add a comment to improve documentation.


calledByCompileAction

public boolean calledByCompileAction
to decide if CompileAction has called POV


listeners

java.util.Collection listeners
No comment provided by developer, please add a comment to improve documentation.

Constructor Detail

ProcessOutputViewer

public ProcessOutputViewer()
Constructor for class ProcessOutputViewer


ProcessOutputViewer

public ProcessOutputViewer(boolean calledByCompileAction,
                           boolean show)
Constructor for class ProcessOutputViewer

Parameters:
calledByCompileAction - No description provided
show - No description provided
Method Detail

setMouseListener

public void setMouseListener(java.awt.event.MouseListener mouseListener)
Sets the mouseListener attribute of the ProcessOutputViewer object

Parameters:
mouseListener - The new mouseListener value

switchProcessState

public void switchProcessState()
Switches the state label and enables the exit button if finished. 'state: ' is added as a prefix.


resetProcessState

public void resetProcessState()
Resets the state label and the exit/abort button's text.


setExitAction

public void setExitAction(java.awt.event.ActionListener act)
Sets the exitAction attribute of the ProcessOutputViewer object

Parameters:
act - The new exitAction value

getExitAction

public java.awt.event.ActionListener getExitAction()
Get the exitAction attribute of the ProcessOutputViewer object

Returns:
The exitAction value

getCommandLine

java.lang.String getCommandLine()
Get the commandLine attribute of the ProcessOutputViewer object

Returns:
The commandLine value

setCommandLine

private void setCommandLine(java.lang.String commandLine)
Sets the commandLine attribute of the ProcessOutputViewer object

Parameters:
commandLine - The new commandLine value

notifyAllProcessListeners

void notifyAllProcessListeners(ProcessEvent event)
No comment provided by developer, please add a comment to improve documentation.

Parameters:
event - No description provided

addProcessListener

public void addProcessListener(ProcessListener newListener)
Adds a new listner to the ProcessOutputViewer who is interested to know when the Process is finished.

Parameters:
newListener - The new listener.

executeCommand

public void executeCommand(java.lang.String commandLine)
Shows the ProcessOutputViewer and executes the command

Parameters:
commandLine - No description provided

executeCommand

public void executeCommand(java.lang.String commandLine,
                           java.lang.String title)
Shows the ProcessOutputViewer and executes the command

Parameters:
commandLine - No description provided
title - No description provided

quietExecuteCommand

public void quietExecuteCommand(java.lang.String commandLine)
Executes the command, shows ProcessOutputView only if an error occures

Parameters:
commandLine - No description provided

compileAndWaitForResult

public boolean compileAndWaitForResult(java.lang.String cmdLine)
No comment provided by developer, please add a comment to improve documentation.

Parameters:
cmdLine - No description provided
Returns:
No description provided

isRunning

public boolean isRunning()
Shows if a process is currently running

Returns:
The running value

getOutput

public java.lang.String getOutput()
Get the output attribute of the ProcessOutputViewer object

Returns:
The output value

startThreads

void startThreads()
Starts the internal threads.


stopThreads

void stopThreads()
Stops the internal threads.


exitButtonPressed

public void exitButtonPressed()
Disposes the frame in order to close it.


executeButtonPressed

public void executeButtonPressed()
Execute the command line.


recompileButtonPressed

public void recompileButtonPressed()
No comment provided by developer, please add a comment to improve documentation.


isAutoContinueEnabled

public boolean isAutoContinueEnabled()
Get the autoContinueEnabled attribute of the ProcessOutputViewer object

Returns:
The autoContinueEnabled value

main

public static void main(java.lang.String[] argv)
The main method allows to start the process output viewer separately

Parameters:
argv - No description provided

addOutputListener

public void addOutputListener(ProcessOutputViewer.OutputListener listener)
Access method for a To N-association.

Parameters:
listener - The object added.

removeOutputListener

public void removeOutputListener(ProcessOutputViewer.OutputListener listener)
No comment provided by developer, please add a comment to improve documentation.

Parameters:
listener - No description provided