sysModel.env
Class NullEnv

java.lang.Object
  extended by sysModel.env.AGlobalEnv
      extended by sysModel.env.NullEnv

public class NullEnv
extends AGlobalEnv

Dummy environment used if no other environment has been created or loaded yet.

Author:
Mathias Ricken

Nested Class Summary
 
Nested classes/interfaces inherited from class sysModel.env.AGlobalEnv
AGlobalEnv.ALocalEnv, AGlobalEnv.BreedLambda, AGlobalEnv.ILocalEnvVisitor
 
Field Summary
private static NullEnv _instance
          Singleton instance.
 
Fields inherited from class sysModel.env.AGlobalEnv
_breedLambdas, _cmdFactory, _moveLambdas, _securityManager, _waterColor, OCEAN_BLUE
 
Constructor Summary
private NullEnv()
          Private singleton constructor.
 
Method Summary
 void addFishToInternalData(AGlobalEnv.ALocalEnv localEnv, AFish fish)
          Add the fish to the global environment.
 ILambda editFish(AGlobalEnv.ALocalEnv localEnv, IFishFactory fishFactory, int button)
          Edit the fish.
 java.awt.Dimension getDisplaySize()
          Get size of the display.
 java.awt.geom.Point2D.Double getPanDelta(java.awt.geom.Point2D.Double delta)
          Ask the model how much to pan, given where the user scrolled.
 ILambda getToolTipText(java.awt.geom.Point2D.Double p)
          Get a tool tip description for a specific place in the environment.
 java.awt.geom.Point2D.Double getViewPosition(java.awt.geom.Point2D.Double pos)
          Ask the model where to scroll, given where the user has scrolled.
static NullEnv instance()
          Return singleton instance.
 AEnvFactory makeEnvFactory()
          Get the environment settings class.
 AGlobalEnv.ALocalEnv makeLocalEnv(java.awt.geom.Point2D.Double p)
          Create a local environment for the position.
 AGlobalEnv parseEnvironment(Lexer l)
          Factory method for parsing a stream of tokens and creating a global environment from it.
protected  void parseFish(Lexer l)
          Parse fish and add them to the environment.
protected  void printHeader(java.io.PrintWriter pw)
          Print file header.
protected  void removeFishFromInternalData(AGlobalEnv.ALocalEnv localEnv)
          Remove the fish from the global environment.
 void returnHome(IScrollAdapter sa)
          The action to be executed if the display should return home.
 
Methods inherited from class sysModel.env.AGlobalEnv
addFish, deactivateBreedLambdas, deactivateMoveLambdas, drawBackground, makeDrawCmd, makeEditCmd, makeStepCmd, parse, removeFish, save
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_instance

private static NullEnv _instance
Singleton instance.

Constructor Detail

NullEnv

private NullEnv()
Private singleton constructor.

Method Detail

instance

public static NullEnv instance()
Return singleton instance.

Returns:
singleton instance

addFishToInternalData

public void addFishToInternalData(AGlobalEnv.ALocalEnv localEnv,
                                  AFish fish)
Add the fish to the global environment.

Specified by:
addFishToInternalData in class AGlobalEnv
Parameters:
localEnv - local environment
fish - fish to add

removeFishFromInternalData

protected void removeFishFromInternalData(AGlobalEnv.ALocalEnv localEnv)
Remove the fish from the global environment.

Specified by:
removeFishFromInternalData in class AGlobalEnv
Parameters:
localEnv - local environment

editFish

public ILambda editFish(AGlobalEnv.ALocalEnv localEnv,
                        IFishFactory fishFactory,
                        int button)
Edit the fish.

Specified by:
editFish in class AGlobalEnv
Parameters:
localEnv - local environment
fishFactory -
button -
Returns:
lambda to edit the fish

makeLocalEnv

public AGlobalEnv.ALocalEnv makeLocalEnv(java.awt.geom.Point2D.Double p)
Create a local environment for the position.

Specified by:
makeLocalEnv in class AGlobalEnv
Parameters:
p - position
Returns:
local environment

parseEnvironment

public AGlobalEnv parseEnvironment(Lexer l)
Factory method for parsing a stream of tokens and creating a global environment from it.

Specified by:
parseEnvironment in class AGlobalEnv
Parameters:
l - lexer
Returns:
new global environment

parseFish

protected void parseFish(Lexer l)
Parse fish and add them to the environment.

Specified by:
parseFish in class AGlobalEnv
Parameters:
l - parser to read from

makeEnvFactory

public AEnvFactory makeEnvFactory()
Get the environment settings class.

Specified by:
makeEnvFactory in class AGlobalEnv
Returns:
environment settings class

printHeader

protected void printHeader(java.io.PrintWriter pw)
Print file header.

Specified by:
printHeader in class AGlobalEnv
Parameters:
pw - PrintWriter to use

getDisplaySize

public java.awt.Dimension getDisplaySize()
Get size of the display.

Specified by:
getDisplaySize in class AGlobalEnv
Returns:
size of the display in model coordinate units.

returnHome

public void returnHome(IScrollAdapter sa)
The action to be executed if the display should return home.

Specified by:
returnHome in class AGlobalEnv
Parameters:
sa - scroll adapter

getViewPosition

public java.awt.geom.Point2D.Double getViewPosition(java.awt.geom.Point2D.Double pos)
Ask the model where to scroll, given where the user has scrolled. If the environment just acts like a normal panal, it should return pos without modification. If the environment recenters, it should return a position in the middle of the pan area. All coordinates are in model coordinate units.

Specified by:
getViewPosition in class AGlobalEnv
Parameters:
pos - position where the user scrolled to
Returns:
position where the environment wants the view to be
See Also:
IDisplayAdapter.getPanDelta(java.awt.geom.Point2D.Double)

getPanDelta

public java.awt.geom.Point2D.Double getPanDelta(java.awt.geom.Point2D.Double delta)
Ask the model how much to pan, given where the user scrolled. If the environment just acts like a normal panal, it should return (0,0). If the environment recenters, it should return delta without modification. All coordinates are in model coordinate units.

Specified by:
getPanDelta in class AGlobalEnv
Parameters:
delta - how far the user scrolled
Returns:
how far the panel should scroll
See Also:
IDisplayAdapter.getViewPosition(java.awt.geom.Point2D.Double)

getToolTipText

public ILambda getToolTipText(java.awt.geom.Point2D.Double p)
Get a tool tip description for a specific place in the environment.

Specified by:
getToolTipText in class AGlobalEnv
Parameters:
p - mouse coordinates
Returns:
lambda for the simulation controller to execute. Must return the tooltip string.