Package net.sf.gridarta.gui.map.renderer
Class AbstractIsoMapRenderer<G extends DefaultIsoGameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>>
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- net.sf.gridarta.gui.map.renderer.AbstractMapRenderer<G,A,R>
-
- net.sf.gridarta.gui.map.renderer.AbstractIsoMapRenderer<G,A,R>
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,MapRenderer
- Direct Known Subclasses:
IsoMapRenderer,IsoPickmapRenderer
public abstract class AbstractIsoMapRenderer<G extends DefaultIsoGameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>> extends AbstractMapRenderer<G,A,R>
AMapRendererthat renders isometric squares. It also visualizes selections and validation errors.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean @NotNull []foundSubLayersBoolean array fortileStretchingOffsets(java.awt.Point, boolean[])to avoid allocating lots of arrays.-
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
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractIsoMapRenderer(int spawnPointTypeNo, @NotNull MapViewSettings mapViewSettings, @NotNull MapModel<G,A,R> mapModel, @NotNull MapGrid mapGrid, int borderOffsetX, int borderOffsetY, @NotNull MultiPositionData multiPositionData, @NotNull IsoMapSquareInfo isoMapSquareInfo, @NotNull GridMapSquarePainter gridMapSquarePainter, @NotNull GameObjectParser<G,A,R> gameObjectParser, @NotNull javax.swing.Icon unknownSquareIcon)Creates a new instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract voidclearBackground(@NotNull java.awt.Graphics g)Clears the window to background color if necessary.voidcloseNotify()Must be called when this renderer is not used anymore.voidforceRepaint()Repaint the view because some view parameters may have changed.@NotNull java.awt.image.BufferedImagegetFullImage()Returns an image of the entire map view.@NotNull Size2DgetImageSize()Returns the size of an image of the entire map view in pixels.@NotNull java.awt.RectanglegetSquareBounds(@NotNull java.awt.Point p)Returns coordinates, length and width of map square.booleangetSquareLocationAt(@NotNull java.awt.Point point, @NotNull java.awt.Point retPoint)Returns the map location at the given point.protected abstract booleanisGameObjectVisible(G gameObject)Checks whether a game object is visible according to current editor settings.voidpaintComponent(@NotNull java.awt.Graphics g)protected voidpaintGameObjectIfVisible(@NotNull java.awt.Graphics2D g, int xStart, int yStart, G gameObject)Paints a single game object if it is visible according to current editor settings.protected voidpaintIcon(@NotNull java.awt.Graphics2D g, @NotNull javax.swing.Icon icon)Paints an icon.protected abstract voidpaintSquare(@NotNull java.awt.Graphics2D g, int x, int y, @NotNull MapSquare<G,A,R> square)Paints one square.protected int @NotNull []tileStretchingOffsets(@NotNull java.awt.Point point, boolean @NotNull [] foundSubLayers)Calculates the tile stretching Y offset.-
Methods inherited from class net.sf.gridarta.gui.map.renderer.AbstractMapRenderer
getToolTipText, isLightVisible, printFullImage, setErroneousMapSquares, setLightVisible
-
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, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, getAccessibleContext, 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
-
Methods inherited from interface net.sf.gridarta.gui.map.renderer.MapRenderer
addMouseListener, addMouseMotionListener, removeMouseListener, removeMouseMotionListener, scrollRectToVisible
-
-
-
-
Field Detail
-
foundSubLayers
protected final boolean @NotNull [] foundSubLayers
Boolean array fortileStretchingOffsets(java.awt.Point, boolean[])to avoid allocating lots of arrays.
-
-
Constructor Detail
-
AbstractIsoMapRenderer
protected AbstractIsoMapRenderer(int spawnPointTypeNo, @NotNull @NotNull MapViewSettings mapViewSettings, @NotNull @NotNull MapModel<G,A,R> mapModel, @NotNull @NotNull MapGrid mapGrid, int borderOffsetX, int borderOffsetY, @NotNull @NotNull MultiPositionData multiPositionData, @NotNull @NotNull IsoMapSquareInfo isoMapSquareInfo, @NotNull @NotNull GridMapSquarePainter gridMapSquarePainter, @NotNull @NotNull GameObjectParser<G,A,R> gameObjectParser, @NotNull @NotNull javax.swing.Icon unknownSquareIcon)Creates a new instance.- Parameters:
spawnPointTypeNo- the game object type number for spawn pointsmapViewSettings- the map view settings instance to usemapModel- the map model to rendermapGrid- the grid to renderborderOffsetX- the horizontal border sizeborderOffsetY- the vertical border sizemultiPositionData- the multi position data to query for multi-part objectsisoMapSquareInfo- the iso square info to usegridMapSquarePainter- the grid square painter to usegameObjectParser- the game object parser for creating tooltip informationunknownSquareIcon- the icons for unknown squares
-
-
Method Detail
-
closeNotify
public void closeNotify()
Description copied from class:AbstractMapRendererMust be called when this renderer is not used anymore.- Specified by:
closeNotifyin classAbstractMapRenderer<G extends DefaultIsoGameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>>
-
getImageSize
@NotNull public @NotNull Size2D getImageSize()
Description copied from interface:MapRendererReturns the size of an image of the entire map view in pixels.- Returns:
- the size
-
getFullImage
@NotNull public @NotNull java.awt.image.BufferedImage getFullImage()
Description copied from interface:MapRendererReturns an image of the entire map view.- Returns:
- an image of the entire map view
-
paintComponent
public void paintComponent(@NotNull @NotNull java.awt.Graphics g)- Overrides:
paintComponentin classjavax.swing.JComponent
-
forceRepaint
public void forceRepaint()
Description copied from interface:MapRendererRepaint the view because some view parameters may have changed.
-
getSquareBounds
@NotNull public @NotNull java.awt.Rectangle getSquareBounds(@NotNull @NotNull java.awt.Point p)Description copied from interface:MapRendererReturns coordinates, length and width of map square.- Parameters:
p- the map coordinates- Returns:
- the boundary rectangle of square
-
clearBackground
protected abstract void clearBackground(@NotNull @NotNull java.awt.Graphics g)Clears the window to background color if necessary.- Parameters:
g- the graphics to use for clearing
-
paintSquare
protected abstract void paintSquare(@NotNull @NotNull java.awt.Graphics2D g, int x, int y, @NotNull @NotNull MapSquare<G,A,R> square)Paints one square.- Parameters:
g- the graphics context to paint tox- the square coordinate to paint toy- the square coordinate to paint tosquare- the square to paint
-
isGameObjectVisible
protected abstract boolean isGameObjectVisible(@NotNull G gameObject)Checks whether a game object is visible according to current editor settings.- Parameters:
gameObject- the game object- Returns:
- whether the game object is visible
-
paintGameObjectIfVisible
protected void paintGameObjectIfVisible(@NotNull @NotNull java.awt.Graphics2D g, int xStart, int yStart, @NotNull G gameObject)Paints a single game object if it is visible according to current editor settings.- Parameters:
g- the graphics to paint toxStart- the x offset for paintingyStart- the y offset for paintinggameObject- the game object to paint
-
paintIcon
protected void paintIcon(@NotNull @NotNull java.awt.Graphics2D g, @NotNull @NotNull javax.swing.Icon icon)Paints an icon.- Parameters:
g- the graphics to paint intoicon- the icon to paint
-
tileStretchingOffsets
protected int @NotNull [] tileStretchingOffsets(@NotNull @NotNull java.awt.Point point, boolean @NotNull [] foundSubLayers)Calculates the tile stretching Y offset.- Parameters:
point- coordinatesfoundSubLayers- array that will contain information about found sub-layers on the tile- Returns:
- offset
-
getSquareLocationAt
public boolean getSquareLocationAt(@NotNull @NotNull java.awt.Point point, @NotNull @NotNull java.awt.Point retPoint)Description copied from interface:MapRendererReturns the map location at the given point.- Parameters:
point- the coordinates in the renderer viewretPoint- this point will be returned- Returns:
- whether the location is within the map bounds
-
-