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; } }