Class MiniMap

  • All Implemented Interfaces:
    java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.MouseInputListener

    public final class MiniMap
    extends javax.swing.JPanel
    implements javax.swing.event.MouseInputListener
    This component draws a small version of the map. It allows us to see a larger part of the map and to relocate the viewport by clicking on it. Pity its not a FreeColClientHolder.
    See Also:
    Serialized Form
    • 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
      • 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

      Fields 
      Modifier and Type Field Description
      private int adjustX
      Used for adjusting the position of the mapboard image.
      private int adjustY
      Used for adjusting the position of the mapboard image.
      private int firstColumn
      The top left tile on the mini map represents the tile.
      private int firstRow
      The top left tile on the mini map represents the tile.
      private FreeColClient freeColClient  
      private static java.util.logging.Logger logger  
      static int MAX_TILE_SIZE  
      static int MIN_TILE_SIZE  
      static int SCALE_STEP  
      private int tileSize
      tileSize is the size (in pixels) that each tile will take up on the mini map
      • 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
      • Fields inherited from class java.awt.Component

        accessibleContext, 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

      Constructors 
      Constructor Description
      MiniMap​(FreeColClient freeColClient)
      The constructor that will initialize this component.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean canZoomIn()
      Return true if tile size can be decreased.
      boolean canZoomOut()
      Return true if tile size can be increased.
      private Game getGame()
      Internal game accessor.
      private GUI getGUI()
      Internal GUI accessor.
      private Map getMap()
      Internal Map accessor.
      void mouseClicked​(java.awt.event.MouseEvent e)
      void mouseDragged​(java.awt.event.MouseEvent e)
      void mouseEntered​(java.awt.event.MouseEvent e)
      void mouseExited​(java.awt.event.MouseEvent e)
      void mouseMoved​(java.awt.event.MouseEvent e)
      void mousePressed​(java.awt.event.MouseEvent e)
      void mouseReleased​(java.awt.event.MouseEvent e)
      private void paintActualMapWhiteRectangle​(java.awt.Graphics2D g, int minimapWidth, int minimapHeight)  
      void paintComponent​(java.awt.Graphics graphics)
      void paintMap​(java.awt.Graphics graphics)
      Paints a representation of the mapboard onto this component.
      private void setFocus​(java.awt.event.MouseEvent e)
      Set the map focus from a mouse click location.
      void setTileSize​(int size)
      Set tile size to the given value, or the minimum or maximum bound of the tile size.
      private void setZoomOption​(int tileSize)
      Set the DEFAULT_ZOOM_LEVEL option on the basis of a tile size.
      void zoomIn()
      Zooms in the mini map.
      void zoomOut()
      Zooms out the mini map.
      • 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, 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • logger

        private static final java.util.logging.Logger logger
      • tileSize

        private int tileSize
        tileSize is the size (in pixels) that each tile will take up on the mini map
      • firstColumn

        private int firstColumn
        The top left tile on the mini map represents the tile. (firstColumn, firstRow) in the world map
      • firstRow

        private int firstRow
        The top left tile on the mini map represents the tile. (firstColumn, firstRow) in the world map
    • Constructor Detail

      • MiniMap

        public MiniMap​(FreeColClient freeColClient)
        The constructor that will initialize this component.
        Parameters:
        freeColClient - The FreeColClient for the game.
    • Method Detail

      • getGUI

        private GUI getGUI()
        Internal GUI accessor.
        Returns:
        The GUI.
      • getGame

        private Game getGame()
        Internal game accessor.
        Returns:
        The Game.
      • getMap

        private Map getMap()
        Internal Map accessor.
        Returns:
        The Map.
      • setZoomOption

        private void setZoomOption​(int tileSize)
        Set the DEFAULT_ZOOM_LEVEL option on the basis of a tile size.
        Parameters:
        tileSize - The tile size to check.
      • setFocus

        private void setFocus​(java.awt.event.MouseEvent e)
        Set the map focus from a mouse click location.
        Parameters:
        e - The MouseEvent containing the location.
      • zoomIn

        public void zoomIn()
        Zooms in the mini map.
      • zoomOut

        public void zoomOut()
        Zooms out the mini map.
      • canZoomIn

        public boolean canZoomIn()
        Return true if tile size can be decreased.
        Returns:
        a boolean value
      • canZoomOut

        public boolean canZoomOut()
        Return true if tile size can be increased.
        Returns:
        a boolean value
      • setTileSize

        public void setTileSize​(int size)
        Set tile size to the given value, or the minimum or maximum bound of the tile size. FIXME: Public for MapEditorController.createMiniMapThumbnail.
        Parameters:
        size - an int value
      • paintMap

        public void paintMap​(java.awt.Graphics graphics)
        Paints a representation of the mapboard onto this component. FIXME: Public for MapEditorController.createMiniMapThumbnail.
        Parameters:
        graphics - The Graphics context within which to draw.
      • paintActualMapWhiteRectangle

        private void paintActualMapWhiteRectangle​(java.awt.Graphics2D g,
                                                  int minimapWidth,
                                                  int minimapHeight)
      • mouseClicked

        public void mouseClicked​(java.awt.event.MouseEvent e)
        Specified by:
        mouseClicked in interface java.awt.event.MouseListener
      • mousePressed

        public void mousePressed​(java.awt.event.MouseEvent e)
        Specified by:
        mousePressed in interface java.awt.event.MouseListener
      • mouseReleased

        public void mouseReleased​(java.awt.event.MouseEvent e)
        Specified by:
        mouseReleased in interface java.awt.event.MouseListener
      • mouseEntered

        public void mouseEntered​(java.awt.event.MouseEvent e)
        Specified by:
        mouseEntered in interface java.awt.event.MouseListener
      • mouseExited

        public void mouseExited​(java.awt.event.MouseEvent e)
        Specified by:
        mouseExited in interface java.awt.event.MouseListener
      • mouseDragged

        public void mouseDragged​(java.awt.event.MouseEvent e)
        Specified by:
        mouseDragged in interface java.awt.event.MouseMotionListener
      • mouseMoved

        public void mouseMoved​(java.awt.event.MouseEvent e)
        Specified by:
        mouseMoved in interface java.awt.event.MouseMotionListener
      • paintComponent

        public void paintComponent​(java.awt.Graphics graphics)
        Overrides:
        paintComponent in class javax.swing.JComponent