t3.portfolios.commonbehaviours
Class RNTWTORAndRegroupAndShrinkAndDestroy

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

public class RNTWTORAndRegroupAndShrinkAndDestroy
extends java.lang.Object
implements PortfolioCommonBehaviour

This class is like RotateNTranslateWithTranslateOnlyRegion but additionally any portfolios in the set containers act as containers. Portfolios dragged into containers will become children of the containers until dragged out.

Portfolios dragged into containers are shrunk (scaled down from 1.0 to scaleInContainerDESKtoPORT). This happens while the pen drags a distance scaleChangePerMM. Portfolios dragged into recycleBinPortfolioOrNull (which must also be in the containers set) are destroyed.

Rule re containing and shrinking: If point of contact goes in then whole lot shrinks. If whole thing comes out then whole thing unshrinks.

Author:
pjt40

Field Summary
 java.util.Set<Portfolio> containers
           
 boolean guessPORTdimensionsFromOurTile
           
 PointInputDeviceTypeAndButtonSet pidtbs
           
 java.util.Set<Portfolio> portfoliosBeingDragged
           
 double PORTh
           
 double PORTw
           
 Portfolio recycleBinPortfolio
           
 double scaleChangePerMM
           
 double scaleInContainerDESKtoPORT
           
 double translateOnlyProportion
           
 
Constructor Summary
RNTWTORAndRegroupAndShrinkAndDestroy(PointInputDeviceTypeAndButtonSet pidtbs, boolean guessPORTdimensionsFromOurTile, double PORTw, double PORTh, double translateOnlyProportion, double scaleInContainerPORTtoDESK, double scaleChangePerMM, Portfolio recycleBinPortfolioOrNull)
           
 
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

containers

public final java.util.Set<Portfolio> containers

recycleBinPortfolio

public final Portfolio recycleBinPortfolio

scaleInContainerDESKtoPORT

public final double scaleInContainerDESKtoPORT

scaleChangePerMM

public final double scaleChangePerMM

portfoliosBeingDragged

public final java.util.Set<Portfolio> portfoliosBeingDragged

pidtbs

public final PointInputDeviceTypeAndButtonSet pidtbs
Constructor Detail

RNTWTORAndRegroupAndShrinkAndDestroy

public RNTWTORAndRegroupAndShrinkAndDestroy(PointInputDeviceTypeAndButtonSet pidtbs,
                                            boolean guessPORTdimensionsFromOurTile,
                                            double PORTw,
                                            double PORTh,
                                            double translateOnlyProportion,
                                            double scaleInContainerPORTtoDESK,
                                            double scaleChangePerMM,
                                            Portfolio recycleBinPortfolioOrNull)
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.