eclipseRCP深入浅出(学习总结)2015.08.05


5.4 Filling in the Contacts View

1、Workbench 创建Contacts view时调用createPartControl(Composite)方法

         查看createPartControl这个方法的调用关系得知:它是接口IWorkbenchPart的抽象方法。public interface ISaveableWorkbenchPart extends ISaveablePart, IWorkbenchPart  然后ISaveableWorkbenchPart的对象调用了这个方法。所以Workbench指的是IWorkbenchPart。
  2、createPartControl(Composite)这个方法主要做了两件事:
第一件事:创建了一个用于放到treeviewer中的模型对象,这件事写到了initializeSession()方法中,这个方法首先new出session对象,获取根节点,这个根节点是不用于显示的,这个根节点又添加了两个次跟节点(Friends群组

Other群组),接着又为这两个次跟节点添加entity实体(具体的联系人),次跟节点和实体都是用来显示的。
第二件事:把treeviewer放入Contacts View中,并为treeviewer配置了SelectionProvider、LabelProvider、ContentProvider。
【疑问】SelectionProvider具体干什么的还没懂,原文说TheTreeVieweris also set up as a selection provider so that actions can determine the selection in this view 
          ContentProvider:用来提供节点模型。treeViewer.setInput(session.getRoot());treeViewer会用提供的根节点来建立一个树型结构的模型 即:ContentProvider会用自己的getchildren方法获取整棵树结构
         LabelProvider:用来为节点产生可读的联系人和图片
        
    第二件事还没完,它又为那个虚拟的根节点(不显示的那个)添加了监听addContactsListener(IContactsListener listener),这个监听的作用就是每当当前节点调用addEntry(Contact entry)方法添加实体(Entry)时,在addEntry方法中又会调用fireContactsChanged(ContactsEntry entry)方法,在fireContactsChanged这个方法中,entry遍历自己的监听者列表,让每个监听者执行抽象方法contactsChanged(ContactsGroup contacts, ContactsEntry entry),由于addContactsListener(IContactsListener listener)这个方法传入的参数本身就是接口对象,因此当调用这个添加监听的方法时,可以在这个方法中重写contactsChanged(ContactsGroup contacts, ContactsEntry entry)方法,实现监听时自己希望达到的业务逻辑。这里用到了观察者模式。






    }









     








        





    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值