`
flashcloud
  • 浏览: 189451 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

MVP For GWT 系列资料转载九:Base presenter and view classes for gwt-presenter

    博客分类:
  • GWT
 
阅读更多

源文转自:Base presenter and view classes for gwt-presenter

 

When your presenters extend gwt-presenter’s WidgetPresenter, you are required to implement four methods that are often unused. In order to avoid boilerplate in all my presenters, as well as to do other things that are common to all my presenters, I’ve created an abstract base class that extends WidgetPresenter.

 

public abstract class MyBasePresenter<D extends
MyBasePresenter.Display> extends WidgetPresenter<D>
{
       public interface Display extends WidgetDisplay
       {

       }

       public MyBasePresenter(final D display, final EventBus eventBus)
       {
               super(display, eventBus);
       }

       @Override
       protected void onBind()
       {
               // TODO Auto-generated method stub

       }

       @Override
       protected void onPlaceRequest(PlaceRequest request)
       {
               // TODO Auto-generated method stub

       }

       @Override
       protected void onUnbind()
       {
               // TODO Auto-generated method stub

       }

       @Override
       public void refreshDisplay()
       {
               // TODO Auto-generated method stub

       }

}

 

Now instead of extending WidgetPresenter directly, I can extend MyBasePresenter:

 

public class ManageListsPresenter extends
MyBasePresenter<ManageListsPresenter.Display>
{

       public interface Display extends MyBasePresenter.Display
       {
        ...
       }

       @Inject
       public ManageListsPresenter(final Display display, final EventBus eventBus)
       {
               super(display, eventBus);
               bind();
       }
        ...
}

 

In similar fashion, I define a corresponding BaseView that eliminates the need for the startProcessing() and stopProcessing() methods required by gwt-presenter’s WidgetDisplay interface. Besides eliminating boilerplate, I use the base view constructor to inject references to my applications Constants and Images singletons (see this previous post):

 

public abstract class MyBaseView implements MyBasePresenter.Display
{

	protected final RoaConstants constants;
	protected final RoaImages images;

	protected BaseView(final RoaConstants constants, final RoaImages images)
	{
		this.constants = constants;
		this.images = images;
	}

	@Override
	public void startProcessing()
	{
		// TODO Auto-generated method stub

	}

	@Override
	public void stopProcessing()
	{
		// TODO Auto-generated method stub

	}

}

 

Now all views that extend MyBaseView will have less boilerplate and will automatically have access to the constants and images interfaces.

 

public class ManageListsView extends MyBaseView implements ManageListsPresenter.Display
{

	@Inject
	public ManageListsView(final RoaConstants constants, final RoaImages images)
	{
		super(constants, images);
        ...
	}
    ...
}

后记:

I made a serious mistake in my previous post and spent all evening looking for it

A side effect of the if block in the previous post is that the PlaceManager doesn’t get loaded if the URL is empty. I’ve now corrected it to always load the PlaceManager, as gwt-presenter doesn’t work at all without it.

 
分享到:
评论

相关推荐

    gwt-dev-plugin-x86-对ie浏览器使用

    3. **UI构建**:GWT提供了丰富的Widget库,允许开发者构建复杂的用户界面,同时支持MVP(Model-View-Presenter)和MVVM(Model-View-ViewModel)设计模式。 4. **国际化和本地化**:GWT支持多语言应用,可以轻松地...

    gwt-2.8.2 SDK 最新下载 google web toolkit

    2. **MVP模式**:Model-View-Presenter(MVP)是GWT推荐的开发模式。模型层处理业务逻辑,视图层负责用户界面展示,而presenter作为模型和视图之间的桥梁,协调两者通信。这种模式有利于代码组织和测试。 3. **国际...

    gwt-polymer-sample:使用 gwt-polymer 存储库的示例

    4. **UI 编程模型**:GWT 提供了 MVP (Model-View-Presenter) 模式,用于组织 UI 代码。Presenter 负责处理视图事件和数据模型之间的交互,而 View 只负责展示。 **Polymer 框架知识点** 1. **Polymer 简介**:...

    GWT打包学习资料

    1. **GWT入门教程**:对于初学者,资料可能涵盖GWT的基本概念、开发环境搭建(如Eclipse插件配置)、Hello World示例、MVP(Model-View-Presenter)设计模式的介绍,以及如何创建和运行第一个GWT项目。 2. **GWT...

    GWT-Airline-scheduler:PSU高级Java项目5

    - **Model-View-Presenter (MVP)模式**: MVP是GWT推荐的架构模式,其中Model负责数据存储,View负责UI展示,Presenter作为Model和View之间的桥梁,处理用户交互和数据更新。 - **Remote Procedure Call (RPC)**: ...

    GWT进阶教程

    2. **GWT MVP模式**:Model-View-Presenter模式是一种常见的GWT应用架构,有助于分离视图、模型和逻辑,提升代码可维护性。 3. **GWT RAPID-UI**:GWT的Rapid-UI技术,如Cell Widgets,使开发者能快速构建动态表格...

    gwt-ext-选课系统

    在开发过程中,GWT-EXT选课系统可能会采用MVP(Model-View-Presenter)架构模式,将业务逻辑、视图展示和数据处理分离,提高代码的可维护性和测试性。同时,GWT的事件处理机制使得组件之间的交互更加灵活。 EXTdata...

    Gwt开发文档

    4. **GWT MVP模式**: Model-View-Presenter (MVP) 是GWT推荐的架构模式,它有助于分离视图逻辑、业务逻辑和数据模型,使得代码更易于维护和测试。 5. **异步通信(GWT RPC)**: GWT提供了Remote Procedure Call (RPC)...

    利用GWT控制创建一个表

    - GWT是基于MVP(Model-View-Presenter)设计模式的,它提倡分离关注点,提高代码的可维护性和可测试性。 - GWT项目通常由`EntryPoint`类开始,它是应用的入口点,负责初始化和加载界面。 2. **创建表格组件**: ...

    jqm4gwt-standalone-1.3.5.zip

    GWT提供了丰富的API和工具,支持MVP(Model-View-Presenter)架构,便于进行单元测试和代码调试。 **jqm4gwt与jQuery Mobile的集成** jqm4gwt-standalone-1.3.5.zip包含的jqm4gwt-master文件可能是该项目的源代码...

    GWT 配置

    然而,GWT还有更多高级特性,如 Gin for dependency injection, GWT-RPC for server communication, RequestFactory for client-server communication, MVP (Model-View-Presenter)架构等,这些都是提升GWT应用功能...

    GWT中文教程(入门进阶)

    8. **GWT MVP**:Model-View-Presenter模式是GWT推荐的架构模式,帮助分离业务逻辑、视图和呈现逻辑,提高代码复用和测试性。 9. **GWT EventBus**:EventBus是GWT中的一种事件总线,用于组件间的通信,让组件间...

    Eclipse GWT 4.4插件离线安装包

    - **GWT MVP (Model-View-Presenter)**: 一种推荐的开发模式,分离了应用的逻辑层、视图层和控制层,提高了代码的可维护性和可测试性。 - **GWT Modules**: 应用可以被划分为多个模块,每个模块包含一组相关的类和...

    gwt学习资料和实例项目

    **Tutorial-hellomvp-2.1.zip** MVP(Model-View-Presenter)是GWT中推荐的一种设计模式,用于组织和分离业务逻辑和用户界面。这个教程可能专注于介绍如何在GWT中实现MVP模式,帮助开发者理解如何划分模型、视图和...

    GWT入门与经典实例解析源码

    Model-View-Presenter(MVP)设计模式是GWT推荐的UI组织方式。模型层负责业务逻辑,视图层负责展示,而presenter作为中间人协调两者。通过MVP,可以实现清晰的代码结构和良好的可维护性。 7. **国际化与本地化**:...

    GWT

    通常,这样的设计可能涉及到如何优雅地组织GWT代码结构、实现可重用的组件或遵循特定的设计原则,如MVP(Model-View-Presenter)模式,用于分离视图逻辑和业务逻辑。 标签“源码”和“工具”表明这篇博客可能探讨了...

    GWT入门实例

    4. **GWT的MVP模式**:学习Model-View-Presenter(MVP)设计模式,这是GWT推荐的应用架构。了解如何将业务逻辑(Model)、用户界面(View)和控制逻辑(Presenter)分离,以实现可维护和可测试的代码。 5. **UI组件...

    gwt in action

    5. **GWT MVP模式**:Model-View-Presenter (MVP) 是GWT推荐的开发模式,有助于保持代码组织清晰,分离视图逻辑和业务逻辑。Presenter作为模型和视图之间的中介,负责处理用户交互和数据更新。 6. **GWT的国际化...

    GWT_MVP_Development.pdf

    GWT 2.1 版本引入了一套内置的 Model-View-Presenter (MVP) 开发框架,为开发者提供了一种更加结构化的方法来组织和管理应用代码。本文将详细介绍 GWT 2.1 中的活动(Activities)与位置(Places)等核心概念及其在 ...

Global site tag (gtag.js) - Google Analytics