package com.hundsun.ares.studio.cres.text.assistant; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; import com.hundsun.ares.studio.core.IARESModule; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.cres.extend.cresextend.MoudleDepend; import com.hundsun.ares.studio.cres.extend.ui.module.gencode.util.ModuleGeneratorHelper; /**ģ�����Թ��ˣ�ֻ��ʾ����ģ��*/ public class ModuleAssistantFilter implements IAssistantFilter{ IARESModule module; List<MoudleDepend> depends = new ArrayList<MoudleDepend>(); public ModuleAssistantFilter(IARESModule module) { this.module = module; } /** * ��ȡ������ģ��(��ģ��û������������һ��ģ���������) */ private void initDepends(IARESModule module) { try { depends.addAll(ModuleGeneratorHelper.getAllDepends(module)); } catch (Exception e) { e.printStackTrace(); } if(depends.isEmpty()){ IARESModule parent = module.getParentModule(); if(parent != null && parent.exists()){ initDepends(parent); } } } @Override public boolean filter(Object obj) { if(obj instanceof IARESResource){ IARESResource resource = (IARESResource)obj; //����ģ����Ҳ��Ӧ����ʾ�� if(resource.getModule().equals(module)){ return true; } //����ģ�� for(MoudleDepend depend : depends){ if(StringUtils.equals(depend.getModulePath(), resource.getModule().getElementName())){ return true; } } } return false; } @Override public void init() { depends.clear(); initDepends(module); } }