2012-09-30 38 views
0

我正在为不同的formfactors开发一个web应用程序。每个人都有自己的客户端工厂来创建符合formfactor的视图。 Everythings迄今为止工作得很好,但是在编辑框架方面我仍然陷入困境。GWT:依赖formfactor的编辑器

要使用该框架的我要声明一个标记接口,像这样:
interface Driver extends SimpleBeanEditorDriver<User, UserEditor> {}

由于这发生在我的形状因子无关的活动我想要的类型UserEditor基础上,形状因子是指实际执行,即UserEditorPhone,UserEditorTablet,UserEditorYouNameIt

无济于事我试着用推迟在module.gwt.xml结合:

<replace-with class="com.example.client.desktop.UserEditorDesktop"> 
    <when-type-is class="com.example.client.view.UserEditor"/> 
</replace-with> 

上任何想法我缺少,以及如何避免formfactors之间的一个一对一关系UserEditor活动?

回答

1

你会希望你的形状因子无关的活动只知道SimpleBeanEditorDriver<User, ?>,并移动Driver界面进入UserEditorDesktopUserEditorTableUserEditorPhone各一个。

然后,活动将针对编辑器驱动程序的实例请求一个依赖于形式的对象(例如其视图,如果您使用MVP且活动是演示者),而不是直接使用GWT.create()

(我可以给代码示例,如果你详细说明你的代码是如何组织的???您使用的MVP是你的看法如何的呢实例化编辑器等)

+0

喜托马斯,听起来前途那么容易,谢谢!然而,试过这种方式声明'私人最终SimpleBeanEditorDriver <用户,?扩展UserEditor> driver;'在活动中,并在调用'driver.initialize(编辑器)'我不断获取'方法初始化(捕获#3 - 扩展UserEditor)...不适用于参数(UserEditor)' (〜与上限相同)。听起来很奇怪GWT内部对我来说:任何提示如何解决这个问题?事实上,我正在使用MVP,而编辑器则充当了视图。 – pong

+0

如何在创建'SimpleBeanEditorDriver'的formfactory依赖对象中调用'initialize'? 'Driver d = GWT.create(Driver.class); d.initialize(编辑);返回d;' –

+0

膨胀!非常感谢您的帮助! – pong