/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.xml.ui.wizards; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; import org.teiid.designer.core.workspace.ModelUtil; /** * SchemaFileViewerFilter is a ViewerFilter that only displays projects, folders, and * .xsd files within open projects. * * @since 8.0 */ public class SchemaFileViewerFilter extends ViewerFilter { /** * Construct an instance of SchemaFileViewerFilter. */ public SchemaFileViewerFilter() { super(); } /* (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) { boolean result = false; // determine if project is open first boolean projectOpen = false; if (element instanceof IResource) { projectOpen = ((IResource)element).getProject().isOpen(); } // look further if project open if(projectOpen) { if ( element instanceof IContainer || element instanceof IWorkspaceRoot ) { result = true; } // only show xsd files if ( element instanceof IFile ) { result = ModelUtil.isXsdFile((IFile) element); } } return result; } }