ch.epfl.craft.maglib.magnet
Class DefaultMagnetModel

java.lang.Object
  extended bych.epfl.craft.maglib.magnet.DefaultMagnetModel
All Implemented Interfaces:
MagnetModel
Direct Known Subclasses:
MagMapMagnetModel

public class DefaultMagnetModel
extends java.lang.Object
implements MagnetModel

Manages the nodes. Knows who is selected, magnetic or visible.

Terminology: We make no difference between a node or a MagnetNode, they are the same. Everything that is handled by this class is a MagnetNode. However not every MagnetNode is magnetic, only those that attracts or repulse other nodes.

Version:
1.0
Author:
Jerome Caffaro

Field Summary
 java.util.Vector allNodes
           
protected  java.util.ArrayList listeners
          the listeners of the model
 java.util.Vector magneticNodes
           
 java.util.Vector selectedNodes
           
 java.util.Vector visibleNodes
           
 
Constructor Summary
DefaultMagnetModel()
          Contructs a new DefaultMagnetModel
DefaultMagnetModel(MagnetNode[] nodes)
          Contructs a new DefaultMagnetModel with the given nodes as initial data
 
Method Summary
 void addListener(MagnetModelListener listener)
          Adds a listener that will be notified when the model has changed.
 void addMagnetNode(MagnetNode newMagnetNode)
          Adds a MagnetNode instance to this model Nothing happens if aMagnetNode is null or already exists in the model.
 void addMagnetNodes(MagnetNode[] newMagnetNodes)
          Adds MagnetNode instances to this model If a node is null or already exists in the model, it is not added to the model.
 void clearMagneticNodes()
          Resets all magnetic nodes.
 void clearVisibleNodes()
          Resets all visible nodes: none (except magnetic nodes) will be drawn on screen.
 boolean getIsMagneticNode(MagnetNode aNode)
          Returns true if the node is magnetic, else false
 boolean getIsSelectedNode(MagnetNode aNode)
          Returns true if the node is selected, else false
 boolean getIsVisibleNode(MagnetNode aMagnetNode)
          Returns true if aMagnetNode is visible, else false.
 java.util.Collection getMagneticNodes()
          Returns all magnetic nodes.
 java.util.Collection getMagnetNodes()
          Returns all the nodes in the model
 java.util.Collection getSelectedNodes()
          Returns all selected nodes.
 MagnetNode[] getSimilarNodes(MagnetNode aMagnetNode)
          Returns a list of MagnetNodes ordered by similarity with aMagnetNode.
 java.util.Collection getVisibleMagnetNodes()
          Returns all visible nodes in the model
 java.util.Collection getVisibleMagnetNodesInRect(java.awt.Rectangle aRectangle)
          Returns the nodes whoose origin is in a aRectangle
 void removeListener(MagnetModelListener listener)
          Removes a listener.
 void removeMagnetNode(MagnetNode aMagnetNode)
          Removes a MagnetNode instance from this model.
 void reset()
          Resets the model.
 void setIsMagneticNode(MagnetNode aNode, boolean aBoolean)
          Sets the node as magnetic if aBoolean is true, else set it as non magnetic.
 void setIsSelectedNode(MagnetNode aNode, boolean aBoolean)
          Sets the node as selected if aBoolean is true, else set it as not selected.
 void setIsVisibleNode(MagnetNode aNode, boolean aBoolean)
          Sets the node as visible or invisible in the view if aBoolean is true or false;
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

allNodes

public java.util.Vector allNodes

magneticNodes

public java.util.Vector magneticNodes

visibleNodes

public java.util.Vector visibleNodes

selectedNodes

public java.util.Vector selectedNodes

listeners

protected java.util.ArrayList listeners
the listeners of the model

Constructor Detail

DefaultMagnetModel

public DefaultMagnetModel()
Contructs a new DefaultMagnetModel


DefaultMagnetModel

public DefaultMagnetModel(MagnetNode[] nodes)
Contructs a new DefaultMagnetModel with the given nodes as initial data

Parameters:
nodes - the magnet nodes to be used by this instance of DefaultMagnetModel
Method Detail

addMagnetNode

public void addMagnetNode(MagnetNode newMagnetNode)
Adds a MagnetNode instance to this model Nothing happens if aMagnetNode is null or already exists in the model.

Specified by:
addMagnetNode in interface MagnetModel
Parameters:
newMagnetNode - the node to add to the model

addMagnetNodes

public void addMagnetNodes(MagnetNode[] newMagnetNodes)
Adds MagnetNode instances to this model If a node is null or already exists in the model, it is not added to the model. This does not affect other nodes.

Specified by:
addMagnetNodes in interface MagnetModel
Parameters:
newMagnetNodes - the nodes to add to the model

removeMagnetNode

public void removeMagnetNode(MagnetNode aMagnetNode)
Removes a MagnetNode instance from this model. Nothing happens if aMagnetNode is null or does not exist in the model.

Specified by:
removeMagnetNode in interface MagnetModel
Parameters:
aMagnetNode - the node to remove from the model

getMagnetNodes

public java.util.Collection getMagnetNodes()
Returns all the nodes in the model

Specified by:
getMagnetNodes in interface MagnetModel
Returns:
all the nodes of the model

getVisibleMagnetNodes

public java.util.Collection getVisibleMagnetNodes()
Returns all visible nodes in the model

Specified by:
getVisibleMagnetNodes in interface MagnetModel
Returns:
the visible nodes of the model

getIsVisibleNode

public boolean getIsVisibleNode(MagnetNode aMagnetNode)
Returns true if aMagnetNode is visible, else false.

Specified by:
getIsVisibleNode in interface MagnetModel
Returns:
true if aMagnetNode is visible, else false.

setIsVisibleNode

public void setIsVisibleNode(MagnetNode aNode,
                             boolean aBoolean)
Sets the node as visible or invisible in the view if aBoolean is true or false;

Specified by:
setIsVisibleNode in interface MagnetModel
Parameters:
aNode - the node to set visible/invisible
aBoolean - true if aMagnetNode has to be visible, else false.

clearVisibleNodes

public void clearVisibleNodes()
Resets all visible nodes: none (except magnetic nodes) will be drawn on screen.

Specified by:
clearVisibleNodes in interface MagnetModel

clearMagneticNodes

public void clearMagneticNodes()
Resets all magnetic nodes.

Specified by:
clearMagneticNodes in interface MagnetModel

getVisibleMagnetNodesInRect

public java.util.Collection getVisibleMagnetNodesInRect(java.awt.Rectangle aRectangle)
Returns the nodes whoose origin is in a aRectangle

Specified by:
getVisibleMagnetNodesInRect in interface MagnetModel
Parameters:
aRectangle - a rectangle in the MagnetView coordinates
Returns:
the nodes inside the bounds of aRectangle

getIsMagneticNode

public boolean getIsMagneticNode(MagnetNode aNode)
Returns true if the node is magnetic, else false

Specified by:
getIsMagneticNode in interface MagnetModel
Parameters:
aNode - the node to check if it is magnetic.
Returns:
true if the node is magnetic, else false

setIsMagneticNode

public void setIsMagneticNode(MagnetNode aNode,
                              boolean aBoolean)
Sets the node as magnetic if aBoolean is true, else set it as non magnetic. All magnetic nodes will be visible, even if not set as visible.

Specified by:
setIsMagneticNode in interface MagnetModel
Parameters:
aNode - the node to make magnetic/non-magnetic
aBoolean - true to make the node magnetic, else false

getMagneticNodes

public java.util.Collection getMagneticNodes()
Returns all magnetic nodes.

Specified by:
getMagneticNodes in interface MagnetModel
Returns:
all magnetic nodes

getIsSelectedNode

public boolean getIsSelectedNode(MagnetNode aNode)
Returns true if the node is selected, else false

Specified by:
getIsSelectedNode in interface MagnetModel
Parameters:
aNode - the node to check if it is selected.
Returns:
true if the node is selected, else false

setIsSelectedNode

public void setIsSelectedNode(MagnetNode aNode,
                              boolean aBoolean)
Sets the node as selected if aBoolean is true, else set it as not selected.

Specified by:
setIsSelectedNode in interface MagnetModel
Parameters:
aNode - the node to select/deselect
aBoolean - true to make the node selected, else false

getSelectedNodes

public java.util.Collection getSelectedNodes()
Returns all selected nodes.

Specified by:
getSelectedNodes in interface MagnetModel
Returns:
all selected nodes

getSimilarNodes

public MagnetNode[] getSimilarNodes(MagnetNode aMagnetNode)
Returns a list of MagnetNodes ordered by similarity with aMagnetNode. The returned array does not contain aMagnetNode.

Parameters:
aMagnetNode - the node to find the most similar
Returns:
all selected nodes

addListener

public void addListener(MagnetModelListener listener)
Adds a listener that will be notified when the model has changed.

Specified by:
addListener in interface MagnetModel
Parameters:
listener - the listener object to add

removeListener

public void removeListener(MagnetModelListener listener)
Removes a listener.

Specified by:
removeListener in interface MagnetModel
Parameters:
listener - the listener object to remove

reset

public void reset()
Resets the model.

Specified by:
reset in interface MagnetModel


Copyright © CRAFT EPFL. All Rights Reserved.