在GWTP中,有没有什么方法可以创建一个Child(具有“接口MyView扩展PopupView”)继承PresenterWidget(具有“MyView extends View”界面)?
这是我的问题。我需要提示(以PopupView的形式)用户输入送货地址,如果他们没有。
当然,有一个UserShippingAddressPresenter
演示者窗口小部件不是弹出窗口&位于个人资料页面。
public class UserShippingAddressPresenter extends
PresenterWidget<UserShippingAddressPresenter.MyView> {
public interface MyView extends View {
////...... more code///
}
}
现在我希望有一个PopupUserShippingAddressPresenter
正好拥有Gui&amp;像UserShippingAddressPresenter
这样的功能,但它是像这样的Popup
public class UserShippingAddressPopupPresenter extends
PresenterWidget<UserShippingAddressPresenter.MyView> {
public interface MyView extends PopupView {
////...... more code///
}
}
所以这是我认为它有效的逻辑,但事实并非如此。那就是我将使用eclipse创建UserShippingAddressPopupPresenter
interface MyView extends PopupView
然后在UserShippingAddressPopupView
我尝试setInSlot userShiopingAddress,如下所示
public class UserShippingAddressPopupView extends PopupViewImpl implements
UserShippingAddressPopupPresenter.MyView {
@Override
public void setInSlot(Object slot, Widget content){
if(slot==ProfilePresenter.SLOT_userShippingAddress){
userShippingAddressHTMLPanel.clear();
if(content!=null){
userShippingAddressHTMLPanel.add(content);
}
}
else{
super.setInSlot(slot, content);
}
}
}
UserShippingAddressPopupPresenter
中的
public class UserShippingAddressPopupPresenter extends
PresenterWidget<UserShippingAddressPopupPresenter.MyView> {
public static final Object SLOT_userShippingAddress=new Object();
public interface MyView extends PopupView {}
@Inject UserShippingAddressPresenter userShippingAddressPresenter;
@Override
protected void onReveal() {
super.onReveal();
setInSlot( SLOT_userShippingAddress, userShippingAddressPresenter);
}
}
跑完后,它在页面中间显示了一个非常小的框。
我尝试了onReset
而不是onReveal
,但它也没有用。
你能找到更好的解决方案吗?
答案 0 :(得分:0)
我的逻辑没问题,它正在发挥作用。我修好了,问题是“if(slot==ProfilePresenter.SLOT_userShippingAddress){
”错了,正确的应该是“if(slot==PopupUserShippingAddressPresenter.SLOT_userShippingAddress){
”