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 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.GWT.forms.client.components.nonpublic; import org.litesoft.core.simpletypes.*; import org.litesoft.core.util.*; import com.google.gwt.user.client.*; import com.google.gwt.user.client.ui.*; public class PopupPanelVisiblePositionCallBack implements PopupPanel.PositionCallback { private PopupPanel mPopupPanel; private int mDesiredXpos; private int mDesiredYpos; public PopupPanelVisiblePositionCallBack( PopupPanel pPopupPanel, int pDesiredXpos, int pDesiredYpos ) { mPopupPanel = pPopupPanel; mDesiredXpos = pDesiredXpos; mDesiredYpos = pDesiredYpos; } @Override public void setPosition( int pPopupXsize, int pPopupYsize ) { Rect zPopupRect = new Rect( mDesiredXpos, mDesiredYpos, pPopupXsize, pPopupYsize ); Rect zWindowRect = new Rect( 0, 0, Window.getClientWidth(), Window.getClientHeight() ); PointXY zPoint = LeftRightAndUpDownRectContainmentStrategy.INSTANCE.moveToFitIn( zPopupRect, zWindowRect ); int zX = (zPoint != null) ? zPoint.getX() : mDesiredXpos; int zY = (zPoint != null) ? zPoint.getY() : mDesiredYpos; mPopupPanel.setPopupPosition( zX, zY ); } } |