Ventana emergente de posicionamiento GWT

¿Cómo puedo colocar la ventana emergente en la posición en la que se hizo clic con el mouse en GWT? Intenté usar getX y getY en la mesa flexible y configuré la ventana emergente en esa posición, pero eso no funciona.

preguntado el 04 de julio de 12 a las 09:07

1 Respuestas

Ejemplo rápido:

final RootLayoutPanel rootLayoutPanel = RootLayoutPanel.get();

final FocusPanel focusPanel = new FocusPanel();

/* just to make the clickable area visible */
focusPanel.getElement().getStyle().setBackgroundColor("red");

rootLayoutPanel.add(focusPanel);


final PopupPanel popupPanel = new PopupPanel();
popupPanel.add(new Label("Popup"));
popupPanel.show();

focusPanel.addClickHandler(new ClickHandler() {

  @Override
  public void onClick(final ClickEvent event) {
    final int left = event.getClientX();
    final int top = event.getClientY();

    popupPanel.setPopupPosition(left, top);
  }
});

Notas

  • Asegúrese de mostrar el PopupPanel después de agregar el focusPanel, de lo contrario, estará detrás del focusPanel.
  • Estoy usando RootLayoutPanel aquí, pero también podría trabajar en relación con un elemento diferente (use left = event.getRelativeX(myContextElem); etc)
  • Si no desea usar un FocusPanel (que tiene ClickHandlers), también puede usar un MouseDownHandler, pero en ese caso, debe llamar sinkEvents(Event.ONMOUSEDOWN).

Respondido 04 Jul 12, 11:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.