您的位置:首页 > 编程语言 > Java开发

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

2015-08-05 23:49 495 查看
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)方法,实现监听时自己希望达到的业务逻辑。这里用到了观察者模式。

}



 

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: