com.realtime.crossfire.jxclient.gui.textinput
Class GUIText

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by com.realtime.crossfire.jxclient.gui.gui.GUIElement
                  extended by com.realtime.crossfire.jxclient.gui.gui.ActivatableGUIElement
                      extended by com.realtime.crossfire.jxclient.gui.textinput.GUIText
All Implemented Interfaces:
KeyListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
GUICommandText, GUIQueryText, GUITextField

public abstract class GUIText
extends ActivatableGUIElement
implements KeyListener

See Also:
Serialized Form

Nested Class Summary
 
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
private  java.awt.Color activeColor
           
private  java.awt.Image activeImage
           
private  java.awt.datatransfer.Clipboard clipboard
          The clipboard for cut/copy/paste operations.
private  CommandCallback commandCallback
          The CommandCallback to use.
private  CommandHistory commandHistory
          The command history for this text field.
private  int cursor
          The cursor location.
private  boolean enableHistory
          Whether UP and DOWN keys should be checked.
private  java.awt.Font font
           
private  java.awt.font.FontRenderContext fontRenderContext
          The context used to determine character extents.
private  boolean hideInput
          If set, hide input; else show input.
private  java.awt.Color inactiveColor
           
private  java.awt.Image inactiveImage
           
private  int margin
           
private  int offset
          The display offset: this many characters are hidden.
private static int SCROLL_CHARS
          The number of characters to scroll left/right when the cursor would move outside of the visible area.
private  java.awt.datatransfer.Clipboard selection
          The system selection for cut/copy/paste operations.
private static long serialVersionUID
          The serial version UID.
private  java.lang.Object syncCursor
          Object used to synchronize on access to text, cursor, and offset.
private  java.lang.StringBuilder text
           
 
Fields inherited from class com.realtime.crossfire.jxclient.gui.gui.GUIElement
bufferedImageSync
 
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
protected GUIText(CommandCallback commandCallback, TooltipManager tooltipManager, GUIElementListener elementListener, java.lang.String name, Extent extent, java.awt.Image activeImage, java.awt.Image inactiveImage, java.awt.Font font, java.awt.Color inactiveColor, java.awt.Color activeColor, int margin, java.lang.String text, boolean enableHistory)
          Creates a new instance.
 
Method Summary
protected  void activeChanged()
          Will be called whenever the active state has changed.
protected abstract  void execute(java.lang.String command)
          Will be called to execute the entered command.
private  java.lang.String getDisplayText()
           
 java.lang.String getText()
           
private  void historyNext()
          Activate the next command from the command history.
private  void historyPrev()
          Activate the previous command from the command history.
private  void insertChar(char ch)
          Inserts a character at the cursor position.
private  void insertString(java.lang.String str)
          Inserts a string at the cursor position.
 boolean keyPressed(java.awt.event.KeyEvent e)
          Invoked when a key has been pressed.
 boolean keyReleased(java.awt.event.KeyEvent e)
          Invoked when a key has been released.
 boolean keyTyped(java.awt.event.KeyEvent e)
          Invoked when a key has been typed.
 void mouseClicked(java.awt.event.MouseEvent e)
          Will be called when the user has clicked (pressed+released) this element.
private  void paste()
          Perform a "paste" operation from the system clipboard.
protected  void render(java.awt.Graphics2D g2)
          Paints the element's contents into the passed graphics.
private  void setCursor(int cursor)
          Set the cursor position.
 void setHideInput(boolean hideInput)
          Enable or disable hidden text.
 void setText(java.lang.String text)
           
 
Methods inherited from class com.realtime.crossfire.jxclient.gui.gui.ActivatableGUIElement
isActive, mousePressed, setActive
 
Methods inherited from class com.realtime.crossfire.jxclient.gui.gui.GUIElement
createBufferGraphics, dispose, getElementX, getElementY, getGui, getName, getTooltipText, hasBufferedImage, isChanged, isDefault, isElementAtPoint, isElementVisible, isIgnore, mouseDragged, mouseEntered, mouseExited, mouseMoved, mouseReleased, paintComponent, resetChanged, setChanged, setChangedListener, setChangedNoListeners, setDefault, setElementLocation, setElementSize, setElementVisible, setGui, setIgnore, setTooltipText, setTooltipText, toString, updateResolution, updateResolutionConstant
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, 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, updateUI
 
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, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

activeColor

@NotNull
private final java.awt.Color activeColor

activeImage

@NotNull
private final java.awt.Image activeImage

clipboard

@NotNull
private final java.awt.datatransfer.Clipboard clipboard
The clipboard for cut/copy/paste operations.


commandCallback

@NotNull
private final CommandCallback commandCallback
The CommandCallback to use.


commandHistory

@NotNull
private final CommandHistory commandHistory
The command history for this text field.


cursor

private int cursor
The cursor location.


enableHistory

private final boolean enableHistory
Whether UP and DOWN keys should be checked. If set, these keys cycle through the history.


font

@NotNull
private final java.awt.Font font

fontRenderContext

@NotNull
private final java.awt.font.FontRenderContext fontRenderContext
The context used to determine character extents.


hideInput

private boolean hideInput
If set, hide input; else show input.


inactiveColor

@NotNull
private final java.awt.Color inactiveColor

inactiveImage

@NotNull
private final java.awt.Image inactiveImage

margin

private final int margin

offset

private int offset
The display offset: this many characters are hidden.


SCROLL_CHARS

private static final int SCROLL_CHARS
The number of characters to scroll left/right when the cursor would move outside of the visible area.

See Also:
Constant Field Values

selection

@Nullable
private final java.awt.datatransfer.Clipboard selection
The system selection for cut/copy/paste operations.


serialVersionUID

private static final long serialVersionUID
The serial version UID.

See Also:
Constant Field Values

syncCursor

@NotNull
private final java.lang.Object syncCursor
Object used to synchronize on access to text, cursor, and offset.


text

@NotNull
private final java.lang.StringBuilder text
Constructor Detail

GUIText

protected GUIText(@NotNull
                  CommandCallback commandCallback,
                  @NotNull
                  TooltipManager tooltipManager,
                  @NotNull
                  GUIElementListener elementListener,
                  @NotNull
                  java.lang.String name,
                  @NotNull
                  Extent extent,
                  @NotNull
                  java.awt.Image activeImage,
                  @NotNull
                  java.awt.Image inactiveImage,
                  @NotNull
                  java.awt.Font font,
                  @NotNull
                  java.awt.Color inactiveColor,
                  @NotNull
                  java.awt.Color activeColor,
                  int margin,
                  @NotNull
                  java.lang.String text,
                  boolean enableHistory)
Creates a new instance.

Parameters:
commandCallback - the command callback to use
tooltipManager - the tooltip manager to update
elementListener - the element listener to notify
name - the name of this element
extent - the extent of this element
enableHistory - if set, enable access to command history
Method Detail

activeChanged

protected void activeChanged()
Will be called whenever the active state has changed.

Specified by:
activeChanged in class ActivatableGUIElement

execute

protected abstract void execute(@NotNull
                                java.lang.String command)
Will be called to execute the entered command.

Parameters:
command - The entered command.

getDisplayText

@NotNull
private java.lang.String getDisplayText()

getText

@NotNull
public java.lang.String getText()

historyNext

private void historyNext()
Activate the next command from the command history.


historyPrev

private void historyPrev()
Activate the previous command from the command history.


insertChar

private void insertChar(char ch)
Inserts a character at the cursor position.

Parameters:
ch - the character

insertString

private void insertString(@NotNull
                          java.lang.String str)
Inserts a string at the cursor position.

Parameters:
str - the string

keyPressed

public boolean keyPressed(@NotNull
                          java.awt.event.KeyEvent e)
Description copied from interface: KeyListener
Invoked when a key has been pressed.

Specified by:
keyPressed in interface KeyListener
Parameters:
e - the key event for the key
Returns:
whether the key event has been consumed

keyReleased

public boolean keyReleased(@NotNull
                           java.awt.event.KeyEvent e)
Invoked when a key has been released.

Specified by:
keyReleased in interface KeyListener
Parameters:
e - the key event for the key
Returns:
whether the key event has been consumed

keyTyped

public boolean keyTyped(@NotNull
                        java.awt.event.KeyEvent e)
Invoked when a key has been typed.

Specified by:
keyTyped in interface KeyListener
Parameters:
e - the key event for the key
Returns:
whether the key event has been consumed

mouseClicked

public void mouseClicked(@NotNull
                         java.awt.event.MouseEvent e)
Will be called when the user has clicked (pressed+released) this element. This event will be delivered after GUIElement.mouseReleased(MouseEvent).

Overrides:
mouseClicked in class GUIElement
Parameters:
e - the mouse event relative to this element

paste

private void paste()
Perform a "paste" operation from the system clipboard.


render

protected void render(@NotNull
                      java.awt.Graphics2D g2)
Paints the element's contents into the passed graphics.

Specified by:
render in class GUIElement
Parameters:
g2 - the graphics to paint to

setCursor

private void setCursor(int cursor)
Set the cursor position. Make sure the cursor position is visible.

Parameters:
cursor - The new cursor position.

setHideInput

public void setHideInput(boolean hideInput)
Enable or disable hidden text.

Parameters:
hideInput - If set, hide input; else show input.

setText

public void setText(@NotNull
                    java.lang.String text)