Picker

Inherited from NULL

Inherited by PrePicker

Friend class NULL

Description

Picker负责管理被用户选择的对象,这些对象在Picker中以UniqueEntity的形式存在,它包括对象的类型,身份ID以及父对象ID等主要信息,对象的类型在后续定制开发过程中按照一定的规则可进行扩展和补充。K2中有大量的类本身拥有不同的目标对象,如LBC/Metric等等,Picker可以通过bindContainer将类的目标与Picker绑定起来。PickContainer是Picker面向用户的UI视图。

Members

Public interface


PickingItemHash * m_pPickingItemHash

被管理的对象Hash,对象以UniqueEntity形式保持

LinkList * m_pPickList

被管理的对象list,新加入的对象都放在该对象末尾,以记录对象被选择的顺序

LinkList * m_pFragmentList

碎片对象list,碎片具体的对象取决于实际需要,比如前处理中某些内部体单元等

MemPool * m_pItemPool

内存池

int m_iItemCount[UETag_Type_Count]

记录每种对象的个数


Picker(MemPool * pItemPool,MemPool * pHashPool)

UniqueEntity * insertItem(ModelTypeID mt, UniqueEntityTagID t, ulong id)

UniqueEntity * getLastItem()

void removeItem(ModelTypeID mt, UniqueEntityTagID t, ulong id)

int getItemCount(UniqueEntityTagID t = UETag_None)

void clear()

bool isItemPicked(ModelTypeID mt, UniqueEntityTagID t, ulong id)

void bindItemIterator(Iterator * iter)

void setPickingRule(UniqueEntityTagID t,int count)

virtual void infoItemPicked(IDocument * pDoc,UniqueEntity * ue)

int getFragmentItemCount()

void clearFragment()

void bindFragmentIterator(Iterator * iter)

LinkList * getFragmentList()

virtual void bindContainer(TreeItem * pContainer,bool bUpdateContainer = false)