Class LayerObjectGridDrawer

  • All Implemented Interfaces:
    ILayerDrawer, ILayerMouseListener

    public class LayerObjectGridDrawer
    extends java.lang.Object
    implements ILayerDrawer
    It is able to draw objects contained by an ObjGrid on a LayeredSurfaceFrame.
    An object is represented by a circle. The objects could be drawn using one given color or, implementing the IColored interface inside them, each object return to the LayerObjGridDrawer which color to use.

    Title: JAS

    Description: Java Agent-based Simulation library

    Copyright (C) 2002 Michele Sonnessa

    This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
    Author:
    Michele Sonnessa

    • Constructor Summary

      Constructors 
      Constructor Description
      LayerObjectGridDrawer​(java.lang.String name, microsim.space.ObjectSpace matrix, java.awt.Color color)
      Create a new object drawer based on a given Grid object.
      LayerObjectGridDrawer​(java.lang.String name, microsim.space.ObjectSpace matrix, java.lang.Class<?> targetClass, java.lang.String variableName, boolean isMethod, ColorMap map)
      Create a new object drawer based on a given Grid object.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getDescription()
      Return the name of the layer.
      boolean isDisplayed()
      Return if the layer is currently displayed on the LayeredSurfaceFrame.
      void paint​(java.awt.Graphics g, int cellLen)
      Draw the layer using the given cell length.
      boolean performDblClickActionAt​(int atX, int atY)
      If a mouse listener has been defined the double-click event, it is passed to it, otherwise it is shown a message box with the value contained by the clicked cell.
      boolean performMouseMovedFromTo​(int fromX, int fromY, int toX, int toY)
      If a mouse listener has been defined the mouse dragging event, it is passed to it, otherwise it is returned false.
      boolean performRightClickActionAt​(int atX, int atY)
      If a mouse listener has been defined the right-click event, it is passed to it, otherwise it is returned false.
      void setDisplay​(boolean display)
      Decide if layer has to be painted or not.
      void setMouseListener​(ILayerMouseListener listener)
      Set a manager for mouse events.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • LayerObjectGridDrawer

        public LayerObjectGridDrawer​(java.lang.String name,
                                     microsim.space.ObjectSpace matrix,
                                     java.awt.Color color)
        Create a new object drawer based on a given Grid object. It plots the objects using the given color. NOTICE that the matrix parameter accepts a generic Grid, so also classes like IntGrid could be drawn.
        Parameters:
        name - The string describing the layer.
        matrix - A generic Grid object.
        color - The default color used to plot objects.
      • LayerObjectGridDrawer

        public LayerObjectGridDrawer​(java.lang.String name,
                                     microsim.space.ObjectSpace matrix,
                                     java.lang.Class<?> targetClass,
                                     java.lang.String variableName,
                                     boolean isMethod,
                                     ColorMap map)
        Create a new object drawer based on a given Grid object. It plots the objects using the color they return. NOTICE that the matrix parameter accepts a generic Grid, so also classes like IntGrid could be drawn.
        Parameters:
        name - The string describing the layer.
        matrix - A generic Grid object containing IColored objects.
    • Method Detail

      • paint

        public void paint​(java.awt.Graphics g,
                          int cellLen)
        Draw the layer using the given cell length.
        Specified by:
        paint in interface ILayerDrawer
        Parameters:
        g - The graphic context passed by container.
        cellLen - The length of a cell in pixels.
      • isDisplayed

        public boolean isDisplayed()
        Return if the layer is currently displayed on the LayeredSurfaceFrame.
        Specified by:
        isDisplayed in interface ILayerDrawer
        Returns:
        True if it is currently painted, false otherwise.
      • setDisplay

        public void setDisplay​(boolean display)
        Decide if layer has to be painted or not.
        Specified by:
        setDisplay in interface ILayerDrawer
        Parameters:
        display - True if you want the layer to be painted, false otherwise.
      • getDescription

        public java.lang.String getDescription()
        Return the name of the layer.
        Specified by:
        getDescription in interface ILayerDrawer
        Returns:
        The name passed to the constructor.
      • setMouseListener

        public void setMouseListener​(ILayerMouseListener listener)
        Set a manager for mouse events. If not defined, mouse events are managed by the class itself.
        Parameters:
        listener - A ILayerMouseListener object.
      • performDblClickActionAt

        public boolean performDblClickActionAt​(int atX,
                                               int atY)
        If a mouse listener has been defined the double-click event, it is passed to it, otherwise it is shown a message box with the value contained by the clicked cell.
        Specified by:
        performDblClickActionAt in interface ILayerMouseListener
        Parameters:
        atX - The x coordinate of the clicked cell.
        atY - The y coordinate of the clicked cell.
        Returns:
        always true if no mouse listener is defined. This value is used by caller to know if the layer wants to manage the event.
      • performRightClickActionAt

        public boolean performRightClickActionAt​(int atX,
                                                 int atY)
        If a mouse listener has been defined the right-click event, it is passed to it, otherwise it is returned false.
        Specified by:
        performRightClickActionAt in interface ILayerMouseListener
        Parameters:
        atX - The x coordinate of the clicked cell.
        atY - The y coordinate of the clicked cell.
        Returns:
        always false if no mouse listener is defined. This value is used by caller to know if the layer wants to manage the event.
      • performMouseMovedFromTo

        public boolean performMouseMovedFromTo​(int fromX,
                                               int fromY,
                                               int toX,
                                               int toY)
        If a mouse listener has been defined the mouse dragging event, it is passed to it, otherwise it is returned false.
        Specified by:
        performMouseMovedFromTo in interface ILayerMouseListener
        Parameters:
        fromX - The x coordinate of the starting cell.
        fromY - The y coordinate of the starting cell.
        toX - The x coordinate of the last dragged cell.
        toY - The y coordinate of the last dragged cell.
        Returns:
        always false if no mouse listener is defined. This value is used by caller to know if the layer wants to manage the event.