/**
* <p>Copyright: Copyright (c) 2013</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.cres.text.assistant;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.eclipse.jface.text.IDocument;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.model.reference.ReferenceInfo;
import com.hundsun.ares.studio.reference.ReferenceManager;
import com.hundsun.ares.studio.ui.editor.text.TextUtil;
/**
* @author wangxh
* �������ͼ���������ʾ��
*/
public class ResourceAssistantLoader extends AbstractAssistantLoader {
private String PREFIX = "[";
private String SUFFIX = "]";
private IARESResource resource;
private String type = "";
public ResourceAssistantLoader(IARESResource resource, String type){
this.resource = resource;
this.type = type;
}
@Override
public List<String> loadAssitant(String text,IDocument doc,int offset) {
List<String> allproposals = new ArrayList<String>();
if(StringUtils.startsWith(text, PREFIX) && !TextUtil.isAfterMacro(doc, offset)){
List<ReferenceInfo> references = ReferenceManager.getInstance().getReferenceInfos(resource.getARESProject(), type, true);
if(references != null){
if(filter != null){
//����ǰ�ij�ʼ���������������ģ���������
filter.init();
}
for(ReferenceInfo info : references){
if(info != null){
if(filter == null){
allproposals.add(PREFIX + info.getRefName() + SUFFIX);
}else if(filter.filter(info.getResource())){
//��Ҫ���й��ˣ���Ҫ�������¼��֣�
//LS����ʾLF��ֻ��ʾ����ģ�飩
//LF��ʾLF��ֻ��ʾ����ģ�飩
//AS��ʾAF,AP��ֻ��ʾ����ģ�飩
//AF��ʾAF,AP��ֻ��ʾ����ģ�飩
//AP��ʾAP��ֻ��ʾ����ģ�飩
allproposals.add(PREFIX + info.getRefName() + SUFFIX);
}
}
}
}
}
return allproposals;
}
}