fr.lifl.jedi.gui.display.colorGrid.view.agentDisplay
Class ColorRectangleWithLineDisplayer

java.lang.Object
  extended by fr.lifl.jedi.gui.display.colorGrid.view.agentDisplay.ColorRectangleWithLineDisplayer
All Implemented Interfaces:
AgentDisplayer

public class ColorRectangleWithLineDisplayer
extends java.lang.Object
implements AgentDisplayer

This class defines a tool used to display agents in the environment.

It displays agents as rectangles filled with a color. The size of the rectangle is based on the width and height of the agent.

It adds to the rectangle a line that displays the direction of the agent.

Version:
JEDI V 2.2
Created the 4th nov. 2008
Modified the 5th may 2009
Author:
Yoann Kubera
SMAC Team (Systèmes Multi-Agents et Comportement)
LIFL (Laboratoire d'Informatique Fondamentale de Lille)
University of Lille, France

Field Summary
protected  java.awt.Color color
          The color used to fill the rectangle representing the agent.
protected  java.awt.Color lineColor
          The color used to draw the direction of the agent.
 
Constructor Summary
ColorRectangleWithLineDisplayer(java.awt.Color color, java.awt.Color lineColor, boolean inBg)
          Constructor of the displayer.
 
Method Summary
 void drawAgent(java.awt.Graphics g, Environment e, Agent a, int factor, int height)
          Displays the agent in the environment.
 boolean isDisplayable(Agent a)
          Checks if the agent is displayed in GUI or not.
 boolean isDisplayedInBackground()
          Checks if the agent has to be displayed on the background of the GUI.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

color

protected java.awt.Color color
The color used to fill the rectangle representing the agent.


lineColor

protected java.awt.Color lineColor
The color used to draw the direction of the agent.

Constructor Detail

ColorRectangleWithLineDisplayer

public ColorRectangleWithLineDisplayer(java.awt.Color color,
                                       java.awt.Color lineColor,
                                       boolean inBg)
Constructor of the displayer.

Parameters:
color - The color used to fill the rectangle displaying the agent.
lineColor - The color used to draw the direction of the agent.
inBg - true if this displayer displays agents in the background of the frame rather than in the foreground.
Method Detail

drawAgent

public void drawAgent(java.awt.Graphics g,
                      Environment e,
                      Agent a,
                      int factor,
                      int height)
Description copied from interface: AgentDisplayer
Displays the agent in the environment.

Sadly, Swing uses a cartesian coordinate system where the y axis goes from up to down. Thus, y coordinates have to be inverted, in order to correspond to coordinates in the model used in JEDI.

This requires a particular additional parameter, that corresponds to the total height of displayed simulation.

The width of the black border around the environment is equal to factor. Keep in mind that the black border all around the environment has to be taken into account when computing displayed areas: the (0, 0) coordinate of the environment lies in the (factor, factor - height) coordinate of the panel.

Specified by:
drawAgent in interface AgentDisplayer
Parameters:
g - The object where drawing is made.
e - The environment of the simulation.
a - The agent to be displayed.
factor - The scaling factor used. It defines the number of pixels corresponding to a unit in the environment.
height - The height of the rectangle displaying the environment. It is equal to the height of the environment * the scaling factor.
See Also:
AgentDisplayer.drawAgent(java.awt.Graphics, fr.lifl.jedi.model.Environment, fr.lifl.jedi.model.Agent, int, int)

isDisplayable

public boolean isDisplayable(Agent a)
Description copied from interface: AgentDisplayer
Checks if the agent is displayed in GUI or not.

Specified by:
isDisplayable in interface AgentDisplayer
Parameters:
a - The agent checked by this method
Returns:
true if the agent is displayed in the GUI.
See Also:
AgentDisplayer.isDisplayable(fr.lifl.jedi.model.Agent)

isDisplayedInBackground

public boolean isDisplayedInBackground()
Description copied from interface: AgentDisplayer
Checks if the agent has to be displayed on the background of the GUI.

Specified by:
isDisplayedInBackground in interface AgentDisplayer
Returns:
true if the agent has to be displayed on the background of the GUI.
See Also:
AgentDisplayer.isDisplayedInBackground()