Rai*_*dok 9 gwt gwt-platform twitter-bootstrap
我使用GWT-Platform和GWT-Bootstrap框架构建了一个使用Google Web Toolkit的webapp .在我尝试实现弹出窗口之前,它几乎完美无瑕.这些框架的弹出窗口似乎完全不同.
GWT-Platform期望弹出窗口小部件本身是com.google.gwt.user.client.ui.PopupPanel使用GWTP RevealRootPopupContentEvent.fire(source, content)或演示者addToPopupSlot(child)方法时的实例.
GWT-Bootstrap的模态与添加到底层面板的任何其他窗口小部件一样使用,但我的目标是拥有一个单独的演示者和视图,并可能使用AsyncProvider异步获取它.
我试图将它作为PresenterWidget使用addToSlot(slot, content)并显示它,但它看起来不太正确.并非所有样式都以这种方式应用,并且关闭图标(×)不起作用.
我想我并不是第一个尝试这样做的人,所以也许有人想出了一个合适的方法让它发挥作用.
谢谢!
你必须创建一个视图:
public class MyPopupView extends PopupViewImpl implements MyView {
protected Widget widget;
public interface MyPopupViewUiBinder extends
UiBinder<Widget, MyPopupView> {
}
@UiField(provided = true)
Modal dialogBox;
private MyPresenter presenter;
@Inject
public MyPopupView(final MyPopupViewUiBinder uiBinder,
final EventBus eventBus) {
super(eventBus);
setUpDialog(); // Provides UiField => Before initWidgets
initWidget(uiBinder.createAndBindUi(this));
}
// DialogBox must be overridden to let the presenter handle changes onUnload
private void setUpDialog() {
dialogBox = new Modal() {
@Override
protected void onUnload() {
MyPopupView.this.hide();
}
};
dialogBox.setTitle("Some title");
}
@Override
public void setPresenter(final MyPresenter presenter) {
this.presenter = presenter;
}
@Override
public final void hide() {
dialogBox.hide();
presenter.hide();
}
@Override
public void setAutoHideOnNavigationEventEnabled(final boolean autoHide) {
// TODO Auto-generated method stub
}
@Override
public void setCloseHandler(
final PopupViewCloseHandler popupViewCloseHandler) {
// TODO Auto-generated method stub
}
@Override
public void setPosition(final int left, final int top) {
// TODO Auto-generated method stub
}
@Override
public void show() {
dialogBox.show();
}
@Override
public void center() {
dialogBox.show();
}
@Override
public Widget asWidget() {
return widget;
}
protected final void initWidget(final Widget widget) {
this.widget = widget;
}
}
Run Code Online (Sandbox Code Playgroud)
和一个UIBinder文件:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:b='urn:import:com.github.gwtbootstrap.client.ui'>
<b:Modal title="Some Title" ui:field="dialogBox">
<!-- Your content -->
</b:Modal>
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6380 次 |
| 最近记录: |