package com.hundsun.ares.studio.procedure.ui.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.biz.ParamType;
import com.hundsun.ares.studio.biz.Parameter;
import com.hundsun.ares.studio.core.ARESModelException;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.cres.text.assistant.AbstractAssistantLoader;
import com.hundsun.ares.studio.procdure.Procedure;
public class InternalAssistantLoader extends AbstractAssistantLoader {
private final static String PREFIX = "@";
IARESResource resource;
public InternalAssistantLoader(IARESResource resource){
this.resource = resource;
}
@Override
public List<String> loadAssitant(String text, IDocument doc, int offset) {
List<String> allproposals = new ArrayList<String>();
if(StringUtils.startsWith(text, PREFIX)){
try {
//��ʾ�ڲ�����������зDZ��ֶ�
List<Parameter> params = new ArrayList<Parameter>();
Procedure obj = resource.getInfo(Procedure.class);
if(obj != null){
params.addAll(obj.getInternalVariables());
}
for(Parameter param : params){
if(param.getParamType() == ParamType.NON_STD_FIELD){
String id = param.getId();
if(!allproposals.contains(id)){
allproposals.add(PREFIX + id);
}
}
}
} catch (ARESModelException e) {
e.printStackTrace();
}
}
return allproposals;
}
}