com.realtime.crossfire.jxclient.gui.log
Class GUILog

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.log.GUILog
All Implemented Interfaces:
GUIScrollable, GUIScrollable2, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
GUILabelLog, GUIMessageLog

public abstract class GUILog
extends GUIElement
implements GUIScrollable2

Abstract base class for gui elements implementing text fields.

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.Image backgroundImage
          The background image drawn below the text contents.
private  Buffer buffer
          The Buffer containing all received text messages.
private  Fonts fonts
          The Fonts instance for looking up fonts.
private  java.util.Collection<ScrollableListener> listeners
          All listeners.
private  RenderStateListener renderStateListener
          The RenderStateListener attached to renderStateManager.
private  RenderStateManager renderStateManager
          The rendering state.
private static int SCROLL_PIXEL
          The number of pixels to scroll.
private static long serialVersionUID
          The serial version UID.
 
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 GUILog(TooltipManager tooltipManager, GUIElementListener elementListener, java.lang.String name, Extent extent, java.awt.Image backgroundImage, Fonts fonts)
          Creates a new instance.
 
Method Summary
 void addScrollableListener(ScrollableListener listener)
          Add a scrollable listener to be informed about changes.
 boolean canScroll(int distance)
          Returns whether scrolling is possible.
 void dispose()
          Releases all allocated resources.
private  void drawLine(java.awt.Graphics g, int y, java.lang.Iterable<Segment> line)
          Draws one Line to a Graphics2D instance.
 Buffer getBuffer()
          Returns the Buffer instance containing the text messages.
 void removeScrollableListener(ScrollableListener listener)
          Remove a scrollable listener.
protected  void render(java.awt.Graphics2D g2)
          Paints the element's contents into the passed graphics.
 void resetScroll()
          Resets the scroll index to the default value.
 void scroll(int distance)
          
 void scrollTo(int pos)
          Scroll to the given location.
 void updateResolution(int screenWidth, int screenHeight)
          Updates the location and size to a new screen resolution.
 
Methods inherited from class com.realtime.crossfire.jxclient.gui.gui.GUIElement
createBufferGraphics, getElementX, getElementY, getGui, getName, getTooltipText, hasBufferedImage, isChanged, isDefault, isElementAtPoint, isElementVisible, isIgnore, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, paintComponent, resetChanged, setChanged, setChangedListener, setChangedNoListeners, setDefault, setElementLocation, setElementSize, setElementVisible, setGui, setIgnore, setTooltipText, setTooltipText, toString, 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

backgroundImage

@Nullable
private final java.awt.Image backgroundImage
The background image drawn below the text contents. Set to null if unused.


buffer

@NotNull
private final Buffer buffer
The Buffer containing all received text messages.


fonts

@NotNull
private final Fonts fonts
The Fonts instance for looking up fonts.


listeners

@NotNull
private final java.util.Collection<ScrollableListener> listeners
All listeners.


renderStateListener

@NotNull
private final RenderStateListener renderStateListener
The RenderStateListener attached to renderStateManager.


renderStateManager

@NotNull
private final RenderStateManager renderStateManager
The rendering state.


SCROLL_PIXEL

private static final int SCROLL_PIXEL
The number of pixels to scroll.

See Also:
Constant Field Values

serialVersionUID

private static final long serialVersionUID
The serial version UID.

See Also:
Constant Field Values
Constructor Detail

GUILog

protected GUILog(@NotNull
                 TooltipManager tooltipManager,
                 @NotNull
                 GUIElementListener elementListener,
                 @NotNull
                 java.lang.String name,
                 @NotNull
                 Extent extent,
                 @Nullable
                 java.awt.Image backgroundImage,
                 @NotNull
                 Fonts fonts)
Creates a new instance.

Parameters:
tooltipManager - the tooltip manager to update
elementListener - the element listener to notify
name - the name of this element
extent - the extent of this element
backgroundImage - the background image; may be null if unused
fonts - the Fonts instance for looking up fonts
Method Detail

addScrollableListener

public void addScrollableListener(@NotNull
                                  ScrollableListener listener)
Add a scrollable listener to be informed about changes.

Specified by:
addScrollableListener in interface GUIScrollable2
Parameters:
listener - The listener to add.

canScroll

public boolean canScroll(int distance)
Returns whether scrolling is possible.

Specified by:
canScroll in interface GUIScrollable
Parameters:
distance - the distance to scroll
Returns:
whether scrolling is possible

dispose

public void dispose()
Releases all allocated resources.

Overrides:
dispose in class GUIElement

drawLine

private void drawLine(@NotNull
                      java.awt.Graphics g,
                      int y,
                      @NotNull
                      java.lang.Iterable<Segment> line)
Draws one Line to a Graphics2D instance.

Parameters:
g - the graphics to draw to
y - the y-coordinate to start drawing
line - the line to draw

getBuffer

@NotNull
public Buffer getBuffer()
Returns the Buffer instance containing the text messages.

Returns:
the buffer instance

removeScrollableListener

public void removeScrollableListener(@NotNull
                                     ScrollableListener listener)
Remove a scrollable listener.

Specified by:
removeScrollableListener in interface GUIScrollable2
Parameters:
listener - The listener to remove.

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

resetScroll

public void resetScroll()
Resets the scroll index to the default value.

Specified by:
resetScroll in interface GUIScrollable

scroll

public void scroll(int distance)

Specified by:
scroll in interface GUIScrollable

scrollTo

public void scrollTo(int pos)
Scroll to the given location. The possible range is given by a previous notification through a listener registered with GUIScrollable2.addScrollableListener(ScrollableListener).

Specified by:
scrollTo in interface GUIScrollable2
Parameters:
pos - The location to scroll to.

updateResolution

public void updateResolution(int screenWidth,
                             int screenHeight)
Updates the location and size to a new screen resolution.

Overrides:
updateResolution in class GUIElement
Parameters:
screenWidth - the new screen width
screenHeight - the new screen height