GXT中的MVC(1)

在GXT中,官方已经给了我们一个MVC设计模型。我们只需要了解他,然后使用它就行了。
其主要的代码中: com.extjs.gxt.ui.client.mvc包中。

包括以下几个类:
AppEvent 事件类
Dispatcher 负责应用程序的事件转发
DispatcherListener 事件转发监听器
Controller  MVC模型中的C 控制器
View MVC模型中的V 视图

Dispatcher是一个单例,负责整个应用程序中的所有事件的分发。
以下是分发事件的方法:
  private void dispatch(AppEvent event, boolean createhistory) {
    MvcEvent e = new MvcEvent(this, event);
    e.setAppEvent(event);
    if (fireEvent(BeforeDispatch, e)) {
      List<Controller> copy = new ArrayList<Controller>(controllers);
      for (Controller controller : copy) {
        if (controller.canHandle(event)) {
          if (!controller.initialized) {
            controller.initialized = true;
            controller.initialize();
          }
          controller.handleEvent(event);
        }
      }
      fireEvent(AfterDispatch, e);
    }
    if (createhistory && event.isHistoryEvent()) {
      String token = event.getToken();
      if (token == null) {
        token = "" + new Date().getTime();
      }
      history.put(token, event);
      if (supportsHistory()) {
        History.newItem(token, false);
      }
    }
  }

这个方法有2个参数,第一个是要分发到事件,第二个是指定要不要记录历史(即是否添加记录点,在浏览器的前进后退按钮中生效);

你可能感兴趣的:(C++,c,mvc,UI,浏览器)