litesoft
@ 151
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.GWT.client.widgets.nonpublic; public class DragPositionableController extends AbstractMovable { public DragPositionableController( UiPositionable pTarget ) { super( pTarget ); } @Override protected boolean dragBy( int pDeltaX, int pDeltaY ) { getTarget().setPosition( calcNewPos( "X", getTarget().getPosLeft(), pDeltaX, // getTarget().minPosLeft(), getTarget().maxPosLeft() ), calcNewPos( "Y", getTarget().getPosTop(), pDeltaY, // getTarget().minPosTop(), getTarget().maxPosTop() ) ); return true; } /** * @noinspection UnusedDeclaration */ private int calcNewPos( String pOrientation, int pCurrentPosition, int pDelta, int pMinimumPosition, int pMaximumPosition ) { int zNewPosition = pCurrentPosition; if ( pDelta < 0 ) { if ( (zNewPosition += pDelta) < pMinimumPosition ) { zNewPosition = pMinimumPosition; } } else if ( (pDelta > 0) && (pMaximumPosition > 0) ) { if ( (zNewPosition += pDelta) > pMaximumPosition ) { zNewPosition = pMaximumPosition; } } return zNewPosition; } } |