【 WebGis 开发框架FlexViewer 解读 】

    技术2025-01-27  25

     

    FlexViewer开发框架个人理解

     

     

     

     一、整个应用程序公共事件列表----AppEvent

     

           01appError

           02configLoaded

           03mapLoaded

           04layerLoaded

           05basemapMenuClicked

           06widgetMenuClicked

           07setMapNavigation

           08setStatus

           09widgetShowInfo

           10setMapAction

           11dataAdded

           12dataUpdated

           13dataFetch

     

     二、整个应用程序事件分发器----EventBus

     

           01、仅且只能有一个:使用静态成员变量保证只有一个该对象

           02、提供的方法:向整个应用程序分发一个事件

     

     三、整个应用程序所使用的数据数据结构

          

           01、将该应用程序所使用的一切数据已对象形式封装成为一个

               对象(程序需要改进的地方)

     

           02、对数据内部按各自职能的不同分为6种不同的类别

          

     四、层层揭开

     

      ()、最底层:整个应用程序最大的容器----Application

     

           01、功能:侦听应用程序主绘图区域键盘事件,添加事件处理

                     程序

           02、实现:

    stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown);

           03、实现自身容器的功能

     

      ()、第二层:整个应用程序最为重要容器----SiteContainer

     

           01、功能:* 事件:监听并处理整个应用程序所发生的错误

                                     分发容器加载完成事件

                                  * 会话:为其他层高级对象提供事件处理工具,分

                                 发,注册(监听),移除

                        * 唯一:保障容器唯一性

                        * 状态:设置程序当前操作状态

     

      ()、第三层:各个并列层共同组成

     

         01、配置管理器----ConfigManager

          

               (01)、初始化:完成ConfigData对象的实例化

               (02)、会话:监听底层容器初始化完成

                                   分发数据加载完成事件并携带数据

               (03)

     

         02、界面样式管理器----UIManager

          

               (01)、完成样式表的加载,交由样式管理器统一管理

     

         03、控制面板----Controller

     

               (01)、初始化:* 注册配置文件加载事件----配置数据,

                                      导航条,操作菜单

     

                                              * 注册地图加载事件----配置地图

     

                                              * 注册程序状态事件----配置当前操作状    

                                  

               (02)、菜单:会话与各个子组件

               (03)、控制内容:地图,地图操作状态,程序菜单

               (04)

     

         04、数据管理----实现整个应用程序数据缓存与缓存访问

            

               工具性:

               (01)、缓存: * 一级缓存----数组对象缓存

                                            * 二级缓存----哈希映射表

                                            * 三级缓存----逻辑地址缓存

               (02)、会话: * 数据发送

                                            * 数据增加

                                            * 数据的更新

     

         05、部件管理器----WidgetManagerDocked

          

               (01)、初始化

               (02)、会话:数据,地图,图层加载,部件加载

     

         06、地图管理器----MapManager

          

           (01)、初始化:

           SiteContainer.addEventListener(AppEvent.CONFIG_LOADED, config);

           (02)、地图操作会话:

    SiteContainer.addEventListener(AppEvent.SET_MAP_NAVIGATION, changeNavigationbyMenu)

     

    SiteContainer.addEventListener(AppEvent.BASEMAP_MENU_CLICKED, basemapMenuClicked)

                                      

    //SiteContainer.addEventListener(AppEvent.SET_MAP_NAVIGATION, changeNavigationbyWidget)

     

    SiteContainer.addEventListener(AppEvent.SET_MAP_ACTION, enableMapAction)

     

    (03)、地图弹出式窗口回话:

    SiteContainer.addEventListener(AppEvent.SHOW_INFOWINDOW, widgetShowInfo);

     

     

    应用程序结构图

     

     

     

    最新回复(0)