диалоговое окно gwt не будет двигаться - PullRequest
1 голос
/ 14 марта 2012

Я создал диалоговое окно, используя uiBinder в приложении gwt, оно работает нормально, за исключением того, что оно не может двигаться.я не знаю, что с ним не так, мне нужно установить заголовок для его перемещения?

вот мой код: myDialog.ui.xml

  <g:HTMLPanel ui:field="_glossaryPanel">
   <div class="dialogBox">
     <h3>content goes here..</h3>
     <p>More content...</p>
   </div>
  </g:HTMLPanel>

myDialog.java

открытый класс MyDialog расширяет DialogBox {

private static MyDialogUiBinder uiBinder = GWT.create(MyDialogUiBinder.class);

interface MyDialogUiBinder extends UiBinder<Widget, MyDialog> {
}

public MyDialog() {
    setWidget(uiBinder.createAndBindUi(this));
    this.setModal(true);
    this.setAutoHideEnabled(true);
}

FooterView.java

public class FooterView extends Composite implements FooterPresenter.Display {

    interface Binder extends UiBinder<Widget, FooterView> {
    }
    private static final Binder BINDER = GWT.create(Binder.class);

    @UiField
    Anchor _glossary;

    @UiHandler("_glossary")
    public void handleGlossaryClick(ClickEvent event) {
        MyDialog mDialog = new MyDialog();
        mDialog.setGlassEnabled(true);
        mDialog.setAnimationEnabled(true);
        mDialog.center();
        mDialog.show();
    }

Ответы [ 5 ]

3 голосов
/ 15 марта 2012

См. http://gwt.google.com/samples/Showcase/Showcase.html#!CwDialogBox Вы должны использовать DialogBox (не PopupPanel), чтобы переместить предмет.

РЕДАКТИРОВАТЬ:

Я попробовал твой код, и он работал для меня.Вы пытались щелкнуть по границе (не по содержанию!), Чтобы перетащить диалоговое окно вокруг?

0 голосов
/ 20 ноября 2013

"Должен ли я установить заголовок, чтобы переместить его?" Да.

dialogbox.setText ( "DialogBox"); Вы можете перетащить только Divion Catpion; При перетаскивании заголовка div, все диалоговое окно переместится.

0 голосов
/ 16 марта 2012

Вот решение,

VerticalPanel panel;
DialogBox dialogbox;
PopupPanel glass;
VerticalPanel DialogBoxContents;
ClickListener listener;
HTML message;
Button button;
SimplePanel holder;

public void demo()
{
    // Create a panel and add it to the screen
    panel = new VerticalPanel();
    RootPanel.get("demo").add(panel);
    panel.setStyleName("table-center");
    //
    // Create a DialogBox with a button to close it
    dialogbox = new DialogBox(false);
    dialogbox.setStyleName("demo-DialogBox");
    DialogBoxContents = new VerticalPanel();
    dialogbox.setText("DialogBox");
    message = new HTML("Click 'Close' to close");
    message.setStyleName("demo-DialogBox-message");
    listener = new ClickListener()
    {
        public void onClick(Widget sender)
        {
            dialogbox.hide();
        }
    };
    button = new Button("Close", listener);
    holder = new SimplePanel();
    holder.add(button);
    holder.setStyleName("demo-DialogBox-footer");
    DialogBoxContents.add(message);
    DialogBoxContents.add(holder);
    dialogbox.setWidget(DialogBoxContents);
    //
    // Add a button to the demo to show the above DialogBox
    listener = new ClickListener()
    {
        public void onClick(Widget sender)
        {
            dialogbox.center();
        }
    };
    button = new Button("Show DialogBox", listener);
    panel.add(button);
}

Проверьте DEMO AT http://examples.roughian.com/index.htm#Widgets~DialogBox

0 голосов
/ 15 марта 2012

Может быть, вы можете попробовать в вашем файле ui.xml изменить тип корневого элемента

от HTMLpanel до FlowPanel

Я видел где-то что-то подобное. где ? Я не могу вспомнить: - (

ваш <div clas="dialogBox">, на мой взгляд, немного сбивает с толку, может быть, вы захотите переименовать что-то более личное и менее в ключевых словах gwt, например

0 голосов
/ 15 марта 2012

Диалоги GWT нельзя перемещать как окно рабочего стола.Был проект, называемый gwt-windows, который позволял бы вам это делать, но он не обновлялся годами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...