/********************************************************************************
* *
* (c) Copyright 2010 Verizon Communications USA and The Open University UK *
* *
* This software is freely distributed in accordance with *
* the GNU Lesser General Public (LGPL) license, version 3 or later *
* as published by the Free Software Foundation. *
* For details see LGPL: http://www.fsf.org/licensing/licenses/lgpl.html *
* and GPL: http://www.fsf.org/licensing/licenses/gpl-3.0.html *
* *
* This software is provided by the copyright holders and contributors "as is" *
* and any express or implied warranties, including, but not limited to, the *
* implied warranties of merchantability and fitness for a particular purpose *
* are disclaimed. In no event shall the copyright owner or contributors be *
* liable for any direct, indirect, incidental, special, exemplary, or *
* consequential damages (including, but not limited to, procurement of *
* substitute goods or services; loss of use, data, or profits; or business *
* interruption) however caused and on any theory of liability, whether in *
* contract, strict liability, or tort (including negligence or otherwise) *
* arising in any way out of the use of this software, even if advised of the *
* possibility of such damage. *
* *
********************************************************************************/
package com.compendium.core.datamodel;
import java.awt.Point;
import java.util.Date;
/**
* The INodePosition object defines the position of a node
* in a view. The position is defined by an X and Y coordinate
* in the view's relative coordinate system.
*
* @author rema and sajid
*/
public interface INodePosition extends IPCObject {
/** X position property name for use with property change events */
public final static String XPOS_PROPERTY = "xpos";
/** Y position property name for use with property change events */
public final static String YPOS_PROPERTY = "ypos";
/** Position property name for use with property change events */
public final static String POS_PROPERTY = "pos";
/**
* Returns the node for which this object defines its position
*
* @return NodeSummary, the node summary for which the this position is defined.
*/
public NodeSummary getNode() ;
/**
* Sets the node for which this object defines its position, in the local data ONLY.
*
* @param NodeSummary oNode, the node for which this object defines its position
*/
public void setNode(NodeSummary oNode);
/**
* Returns the view in which the node is placed at the defined position
*
* @return View, the view in which the node is placed at the defined position
*/
public View getView();
/**
* Set the view in which the node is placed at the defined position.
* @param View oView, the view in which this node is placed.
*/
public void setView(View oView);
/**
* Returns the X coordinate of the nodes position in the defined view.
*
* @return int, the X coordinate of the nodes position.
*/
public int getXPos() ;
/**
* Sets the X coordinate of the nodes position in the defined view, in the local data ONLY.
* and fires a PropertyChangeEvent.
*
* @param int x, the X coordinate of the nodes position.
*/
public void setXPos(int x) ;
/**
* Returns the Y coordinate of the nodes position in the defined view.
*
* @return int, the Y coordinate of the nodes position.
*/
public int getYPos() ;
/**
* Sets the Y coordinate of the nodes position in the defined view, in the local data ONLY.
* and fires a PropertyChangeEvent.
*
* @param int y, the Y coordinate of the nodes position.
*/
public void setYPos(int y) ;
/**
* Returns the nodes position in the defined view.
*
* @return Point, a point object representing the node's position.
*/
public Point getPos() ;
/**
* Sets the nodes position in the defined view, in the local data ONLY.
* and fires a PropertyChangeEvent.
*
* @param int x, the X coordinate of the node's position.
* @param int y, the Y coordinate of the node's position.
*/
public void setPos(int x, int y) ;
/**
* Sets the nodes position in the defined view, in the local data ONLY.
*
* @param Point oPoint, The node's position.
*/
public void setPos(Point p);
/**
* Returns the creation date of this object.
*
* @return Date, the date when this object was created.
*/
public Date getCreationDate();
/**
* Sets the date when this node was created, in the local data ONLY.
*
* @param Date date, the creation date of this object.
*/
public void setCreationDate(Date date);
/**
* Sets the ModificationDate date of this object, in the local data ONLY.
*
* @param Date date, the date this object was last modified.
*/
public void setModificationDate(Date date);
/**
* Returns the modification date of this node.
*
* @return Date, the date when this node was last modified.
*/
public Date getModificationDate();
}