gwt对话框不会移动

时间:2012-03-14 19:19:23

标签: gwt dialog

我在gwt app中使用uiBinder创建了一个对话框,它工作正常,除了它无法移动。我不知道它有什么问题,我是否必须设置标题以便移动它?

这是我的代码: 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

public class 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 个答案:

答案 0 :(得分:3)

请参阅http://gwt.google.com/samples/Showcase/Showcase.html#!CwDialogBox您必须使用DialogBox(而不是PopupPanel)移动物品。

编辑:

我尝试了你的代码,它对我有用。您是否尝试过单击边框(不是内容!)来拖动对话框?

答案 1 :(得分:0)

GWT对话框不能像桌面窗口那样移动。有一个名为gwt-windows的预计可以让你这样做,但它已经多年没有更新了。

答案 2 :(得分:0)

也许您可以尝试在ui.xml文件中更改根元素类型

HTMLpanelFlowPanel

我看到某个地方说的是这样的话。哪里?我不记得了: - (

在我看来,你的<div clas="dialogBox">有点令人困惑,也许你会考虑重命名为更个性化的东西,而不是像gwt关键词那样。

答案 3 :(得分:0)

这是解决方案,

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

答案 4 :(得分:0)

“我是否必须设置标题以便移动它?” 是。

对话框.setText(“对话框”); 你可以只拖动字幕div; 拖动标题div时,整个对话框将移动。