// ============================================================================ // // Copyright (C) 2006-2012 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.designer.core.ui.routine; import java.util.List; import java.util.Map; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; import org.talend.core.model.general.Project; import org.talend.core.model.properties.Property; import org.talend.core.model.properties.RoutineItem; /** * ggu class global comment. Detailled comment */ public class ShowRoutineItemsViewerFilter extends ViewerFilter { private boolean system; private Map<Project, List<Property>> allRoutineItems; public ShowRoutineItemsViewerFilter(Map<Project, List<Property>> allRoutineItems, boolean system) { super(); this.system = system; this.allRoutineItems = allRoutineItems; } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, * java.lang.Object) */ @Override public boolean select(Viewer viewer, Object parentElement, Object element) { if (element instanceof Property && ((Property) element).getItem() instanceof RoutineItem && ((RoutineItem) ((Property) element).getItem()).isBuiltIn() == system) { return true; } else if (element instanceof Project) { List<Property> list = allRoutineItems.get(element); boolean has = false; if (list != null) { for (Property p : list) { if (select(viewer, parentElement, p)) { has = true; break; } } } return has; } return false; } }