/**
* Դ�������ƣ�JresResourceRefConentProposalPovider.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.ui
* ����˵����JRES Studio�Ľ���չ�ֻ�����ܺͱ༭��ع���
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.ui.assist;
import java.util.ArrayList;
import java.util.List;
import com.hundsun.ares.studio.core.IARESProject;
import com.hundsun.ares.studio.model.reference.ReferenceInfo;
import com.hundsun.ares.studio.reference.ReferenceManager;
import com.hundsun.ares.studio.ui.cellEditor.AresContentProposalProvider;
import com.hundsun.ares.studio.ui.cellEditor.IContentProposalProviderHelper;
/**
* Jres����Դ����ʹ�õ�ContentProposalProvider�� ���ʵ��ʹ��IResStatisticProvider��ȡ��ʾ���ݡ�
* @author sundl
*/
public abstract class JresResourceRefConentProposalPovider extends AresContentProposalProvider{
protected String resType;
protected IARESProject project;
/**
* @param helper
* @param resType ��Ҫ��ʾ����Դ����
* @param project
*/
public JresResourceRefConentProposalPovider(IContentProposalProviderHelper helper, String resType, IARESProject project) {
super(helper);
this.resType = resType;
this.project = project;
}
@Override
public void updateContent(Object element) {
List<ReferenceInfo> infoList = ReferenceManager.getInstance().getReferenceInfos(project, resType, true);
// ��ΪcreateProposal()�ò���element��������ʾԪ�صĹ��˱���������ʹ����
List<Object> inputItems = new ArrayList<Object>();
if (infoList != null) {
for (ReferenceInfo inputItem : infoList) {
if (filter(inputItem, element))
inputItems.add(inputItem);
}
}
setInput(inputItems.toArray());
}
/**
* ָ����inputItem�Ƿ�Ӧ�ó�������ʾ�б���;
* @param inputItem
* @param element һ���DZ�/���е�ǰѡ�е���һ��
* @return
*/
protected abstract boolean filter(Object inputItem, Object element);
}