zoukankan      html  css  js  c++  java
  • Composite UI Application Block(CAB)

    序言

    WorkSpace

    WorkSpace:作为一个容器,它可以统一的添加和显示视图。CAB中提供了一组控件作为视图的容器,包括DeckWorkSpace,MDIWorkSpace,TabWorkSpace,WindowWorkSpace,ZoneWorkSpace。 它们的作用有点类似普通Windows 控件Panel,MDI窗口,TAB控件,Window窗体。在程序中根据名称可以通过WorkItem的WorkSpace集合索引到它们。

    Workspace是SmartPart的容器与管理器。它可以控制SmartPart如何显示或者隐藏,以及如何布局。

    WorkSpace 分为5种,用于动态加载各种继承于controller的用户自定义控件,也即smartPart。

    1.WindowWorkSpace

    该WorkSpace能将你需要在其中显示的用户控件在一个WinForm中显示出来,我们可以通过和该WorkSpace对应的WindowSmartPartInfo来设置用户控件的显示属性,如标题信息,是否是模式窗口等。

    2.MDIWorkSpace

    该WorkSpace是在WindowWorkSpace的基础上发展而来的,他同样将一个用户控件在单独的Form中进行显示,并且,他还将以MDI的形式显示和管理其子窗体。对应用户控件的显示信息的设置是通过设置smartPartInfo,然后作为参数传入WorkSpace的Show方法。

    3.TabWorkSpace

    该WorkSpace能将你需要在其中显示的用户控件以Tab页的形式显示出来,我们可以通过和该WorkSpace对应的TabSmartPartInfo来设置用户控件的显示属性,如标题信息。

    4.DeckWorkSpace

    该WorkSpace将以类似于重叠的卡片的形式来显示用户控件,当前激活的界面将在卡片的最上方。卡片的数序是由Workspace进行管理。没有和该WorkSpace对应的SmartPartinfo.

    5.ZoneWorkSpace

    该WorkSpace将以平铺的方式显示用户控件,比如类似OutLook的界面,可以将一个界面划分成多个Zone,每个Zone都是作为呈现用户控件的一个容器。同样的,我们可以通过设置ZoneSmartPartInfo来设置用户控件在WorkSpace中的显示属性。

    SmartParts 

    也可以被称作View,实际上是一个个自定义的控件。

    WorkItems 

    代表一个用例,包含在 Workspace 之中

    State

    你可以把它想象成Asp.net中的Session一样,可以把一些在本WorkItem中传递的信息存到State中。

    Event 

    Event Broker:事件代理,通过事件源和订阅事件源来达成对象之间的协作。

    Event Publisher:事件发布者,在CAB里是一个用属性EventPublication修饰的事件对象,提供特定的URL给Event Subscriber订阅。

    Event Subscriber:事件订阅者,在CAB里是一个用属性EventSubscription修饰的方法,根据修饰提供的URL自动寻找事件发布者。Publisher和Subscriber之间由主题(由URL决定),

    [EventPublication("topic://TestReport/DataRowAdded")]
    public event EventHandler<DictionaryEventArgs> DataRowAdded;

    FormShellApplication

    现在我们来看看基于CAB的应用程序中非常重要的一个类。这个类可以认为是一个CAB应用的启动点。

    class Program : FormShellApplication<MainWorkItem, MainShellForm>

    Controller

    controller中主要来实现业务逻辑,于是我们需要添加一个方法AddNewRow(int sex, string name),用来实现人员信息的添加

    整合界面和controller,[CreateNew],将该窗体相关的Controller标记为自动创建实例

    资料

    https://www.cnblogs.com/lglruirui/archive/2010/06/21/1761737.html?tdsourcetag=s_pcqq_aiomsg

    https://www.cnblogs.com/mixiaobo/archive/2008/01/16/1041349.html

    https://www.cnblogs.com/wf20012/archive/2007/04/18/718610.html

    https://www.cnblogs.com/lglruirui/archive/2010/07/07/1772912.html

  • 相关阅读:
    Attach Files to Objects 将文件附加到对象
    Provide Several View Variants for End-Users 为最终用户提供多个视图变体
    Audit Object Changes 审核对象更改
    Toggle the WinForms Ribbon Interface 切换 WinForms 功能区界面
    Change Style of Navigation Items 更改导航项的样式
    Apply Grouping to List View Data 将分组应用于列表视图数据
    Choose the WinForms UI Type 选择 WinForms UI 类型
    Filter List Views 筛选器列表视图
    Make a List View Editable 使列表视图可编辑
    Add a Preview to a List View将预览添加到列表视图
  • 原文地址:https://www.cnblogs.com/cnki/p/11515383.html
Copyright © 2011-2022 走看看