t3.portfolios.commonbehaviours
Class RotateNTranslateWithTranslateOnlyRegion

java.lang.Object
  extended by t3.portfolios.commonbehaviours.RotateNTranslateWithTranslateOnlyRegion
All Implemented Interfaces:
PortfolioCommonBehaviour

public class RotateNTranslateWithTranslateOnlyRegion
extends java.lang.Object
implements PortfolioCommonBehaviour

This class allows portfolios to be translated and rotated by dragging with a specified pid type and button, using the RotateNTranslate idea.

Clicking within a certain area will result in translate-only behaviour. This area is rectangular and always PORT-space aligned, and centred on the bounding box of the portfolio and its children. The size of the area is either a specified fraction of the portfolio's tile dimensions, or a specified fraction of some specified dimensions.

See: Kruger, R., Carpendale, S., Scott, S.D., Tang, A. (2005). Fluid Integration of Rotation and Translation. In Proceedings of the ACM Conference on Human Factors in Computing Systems (CHI)'05, April 2-7, 2005, Portland, Oregon, USA.

Author:
pjt40

Field Summary
 boolean guessPORTdimensionsFromOurTile
           
 PointInputDeviceTypeAndButtonSet pidtbs
           
 double PORTh
           
 double PORTw
           
 double translateOnlyProportion
           
 
Constructor Summary
RotateNTranslateWithTranslateOnlyRegion()
           
RotateNTranslateWithTranslateOnlyRegion(PointInputDeviceTypeAndButtonSet pidtbs, boolean guessPORTdimensionsFromOurTile, double PORTw, double PORTh, double translateOnlyProportion)
           
RotateNTranslateWithTranslateOnlyRegion(PointInputDeviceTypeAndButtonSet pidtbs, double translateOnlyProportion)
           
 
Method Summary
 boolean customProcessEndOfFDOPmode(Portfolio p, PointInputDevice pid, int button)
          Implement this method to be notified when a PID stops being in FDOP mode.
 boolean customProcessEventForThisPortfolioNotChildren(Portfolio p, PortfolioEvent e, boolean bubbled)
          Implement this method to receive events.
 boolean customProcessFDOPevent(Portfolio p, PortfolioEvent e, double PORTxWhenEnteredFDOPmode, double PORTyWhenEnteredFDOPmode)
          Implement this method to receive FDOP mode events.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PORTw

public final double PORTw

PORTh

public final double PORTh

translateOnlyProportion

public final double translateOnlyProportion

guessPORTdimensionsFromOurTile

public final boolean guessPORTdimensionsFromOurTile

pidtbs

public final PointInputDeviceTypeAndButtonSet pidtbs
Constructor Detail

RotateNTranslateWithTranslateOnlyRegion

public RotateNTranslateWithTranslateOnlyRegion()

RotateNTranslateWithTranslateOnlyRegion

public RotateNTranslateWithTranslateOnlyRegion(PointInputDeviceTypeAndButtonSet pidtbs,
                                               double translateOnlyProportion)

RotateNTranslateWithTranslateOnlyRegion

public RotateNTranslateWithTranslateOnlyRegion(PointInputDeviceTypeAndButtonSet pidtbs,
                                               boolean guessPORTdimensionsFromOurTile,
                                               double PORTw,
                                               double PORTh,
                                               double translateOnlyProportion)
Method Detail

customProcessEventForThisPortfolioNotChildren

public boolean customProcessEventForThisPortfolioNotChildren(Portfolio p,
                                                             PortfolioEvent e,
                                                             boolean bubbled)
Description copied from interface: PortfolioCommonBehaviour
Implement this method to receive events. See PortfolioServer for more information on the event model.

Specified by:
customProcessEventForThisPortfolioNotChildren in interface PortfolioCommonBehaviour
e - Event
bubbled - True iff the event did not occur on this portfolio's tile but has been bubbled from one of its children.
Returns:
True iff the event should not be passed to the portfolio.

customProcessFDOPevent

public boolean customProcessFDOPevent(Portfolio p,
                                      PortfolioEvent e,
                                      double PORTxWhenEnteredFDOPmode,
                                      double PORTyWhenEnteredFDOPmode)
Description copied from interface: PortfolioCommonBehaviour
Implement this method to receive FDOP mode events. See PortfolioServer for more information on the event model.

Specified by:
customProcessFDOPevent in interface PortfolioCommonBehaviour
e - Event
PORTxWhenEnteredFDOPmode - PORT space coordinate of the PID when it entered FDOP mode.
PORTyWhenEnteredFDOPmode - PORT space coordinate of the PID when it entered FDOP mode.
Returns:
True iff the event should not be passed to the portfolio.

customProcessEndOfFDOPmode

public boolean customProcessEndOfFDOPmode(Portfolio p,
                                          PointInputDevice pid,
                                          int button)
Description copied from interface: PortfolioCommonBehaviour
Implement this method to be notified when a PID stops being in FDOP mode. See PortfolioServer for more information on the event model.

Specified by:
customProcessEndOfFDOPmode in interface PortfolioCommonBehaviour
Returns:
True iff the event should not be passed to the portfolio.