Я хочу замаскировать виджет.Поэтому я использовал всплывающую панель, чтобы сделать то же самое
public class MyMask extends PopupPanel
{
public MyMask ()
{
super();
}
public void showAbsolute( UIObject uiObject )
{
show();
setPopupPosition( uiObject.getAbsoluteLeft(), uiObject.getAbsoluteTop() );
}
}
, и мой класс маски выглядит следующим образом
public final class Mask
{
private static MyMask mask = new MyMask();
private static UIObject object;
private Mask()
{
}
public static void enable( UIObject uiObject )
{
VerticalPanel vp = new VerticalPanel();
vp.setVerticalAlignment( HasVerticalAlignment.ALIGN_MIDDLE );
vp.setStyleName( "mask" );
vp.setHeight( uiObject.getOffsetHeight() + Unit.PX.getType() );
vp.setWidth( uiObject.getOffsetWidth() + Unit.PX.getType() );
mask.add( vp );
mask.showAbsolute( uiObject );
}
public static void disable()
{
mask.hide();
}
}
Но при вызове
Mask.enable(widget)
Всплывающая панель не отображается точно над виджетом, а расположена ниже виджета и немного влево.Я хочу, чтобы он появился именно на виджете.Есть идеи, как это сделать?
В настоящее время я использую gwt 2.4.0
