org.aitools.programd.interfaces.graphical
Class GUIConsole

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.aitools.programd.interfaces.graphical.GUIConsole
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class GUIConsole
extends javax.swing.JPanel

Provides a very simple GUI console for the bot.

Since:
4.1.5
Author:
Noel Bush
See Also:
Serialized Form

Nested Class Summary
 class GUIConsole.ConsoleDisplayStream
          Extends OutputStream to direct all output to the display textarea.
 class GUIConsole.ConsoleInputStream
          Extends InputStream to suit our purposes in handling user input for the GUIConsole.
 class GUIConsole.ConsolePromptStream
          Extends OutputStream to direct all output to the prompt field.
(package private)  class GUIConsole.InputPanel
           
(package private)  class GUIConsole.TalkingHeadPanel
           
 
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
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  Console console
          The underlying Console.
private  Core core
          The core associated with this console.
protected  javax.swing.JTextArea display
          Where console messages will be displayed.
protected  GUIConsole.ConsoleDisplayStream errDisplay
           
private  java.io.PrintStream errStream
          The stream to which console stdout will be directed.
private  javax.swing.JFrame frame
           
private  javax.swing.ImageIcon head
           
private static java.lang.String HEAD_PATH
           
private static java.lang.Object[] HELP_MESSAGE
           
private  javax.swing.ImageIcon icon
           
private static java.lang.String ICON_PATH
           
private  GUIConsole.InputPanel inputPanel
          Contains the input prompt and field.
protected  GUIConsole.ConsoleInputStream inStream
          The stream which will receive console input.
protected static java.lang.String LINE_SEPARATOR
          For convenience, the system line separator.
private  javax.swing.ImageIcon logo
           
private static java.lang.String LOGO_PATH
           
private static javax.swing.JMenuBar menuBar
           
protected  GUIConsole.ConsoleDisplayStream outDisplay
           
private  java.io.PrintStream outStream
          The stream to which console stdout will be directed.
private  java.io.PrintStream promptStream
          The stream to which console prompt will be directed.
protected  Shell shell
          The Shell that will (may) be used by the underlying console.
private  GUIConsole.TalkingHeadPanel talkingHeadPanel
           
private  boolean useTalkingHead
           
 
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.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
GUIConsole()
          Constructs a new simple console gui with a new shell.
 
Method Summary
 void attachTo(Core coreToUse)
          Attaches the GUIConsole to the given Core.
protected  void chooseBot()
           
 void loadAIMLFile(java.io.File file)
          Load AIML file to running application.
protected  void loadAIMLFilePathChooser()
           
protected  void loadAIMLURLBox()
           
protected  void quit()
           
protected  void showAboutBox()
           
protected  void showPropertiesBox()
           
protected  void showTalkingHead()
           
protected  void shutdown()
           
 void start()
          Starts the WeatherUtil
 void startShell()
          Enables the input panel and starts the underlying console's shell.
 
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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintComponent, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printComponent, printChildren, 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, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, checkImage, checkImage, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

core

private Core core
The core associated with this console.


console

protected Console console
The underlying Console.


shell

protected Shell shell
The Shell that will (may) be used by the underlying console.


display

protected javax.swing.JTextArea display
Where console messages will be displayed.


inputPanel

private GUIConsole.InputPanel inputPanel
Contains the input prompt and field.


talkingHeadPanel

private GUIConsole.TalkingHeadPanel talkingHeadPanel

outDisplay

protected GUIConsole.ConsoleDisplayStream outDisplay

errDisplay

protected GUIConsole.ConsoleDisplayStream errDisplay

frame

private javax.swing.JFrame frame

outStream

private java.io.PrintStream outStream
The stream to which console stdout will be directed.


errStream

private java.io.PrintStream errStream
The stream to which console stdout will be directed.


promptStream

private java.io.PrintStream promptStream
The stream to which console prompt will be directed.


inStream

protected GUIConsole.ConsoleInputStream inStream
The stream which will receive console input.


LINE_SEPARATOR

protected static final java.lang.String LINE_SEPARATOR
For convenience, the system line separator.


HELP_MESSAGE

private static final java.lang.Object[] HELP_MESSAGE

menuBar

private static javax.swing.JMenuBar menuBar

useTalkingHead

private boolean useTalkingHead

LOGO_PATH

private static java.lang.String LOGO_PATH

logo

private javax.swing.ImageIcon logo

ICON_PATH

private static java.lang.String ICON_PATH

icon

private javax.swing.ImageIcon icon

HEAD_PATH

private static java.lang.String HEAD_PATH

head

private javax.swing.ImageIcon head
Constructor Detail

GUIConsole

public GUIConsole()
Constructs a new simple console gui with a new shell.

Method Detail

attachTo

public void attachTo(Core coreToUse)
Attaches the GUIConsole to the given Core.

Parameters:
coreToUse - the Core to which to attach

start

public void start()
Starts the WeatherUtil


shutdown

protected void shutdown()

quit

protected void quit()

loadAIMLURLBox

protected void loadAIMLURLBox()

loadAIMLFile

public void loadAIMLFile(java.io.File file)
Load AIML file to running application.

Parameters:
file - AIML file to load.

loadAIMLFilePathChooser

protected void loadAIMLFilePathChooser()

chooseBot

protected void chooseBot()

showAboutBox

protected void showAboutBox()

showTalkingHead

protected void showTalkingHead()

showPropertiesBox

protected void showPropertiesBox()

startShell

public void startShell()
Enables the input panel and starts the underlying console's shell.