001    /*
002     * file FolderContentProvider.java
003     * 
004     * Licensed Materials - Property of IBM
005     * Restricted Materials of IBM - you are allowed to copy, modify and 
006     * redistribute this file as part of any program that interfaces with 
007     * IBM Rational CM API.
008     *
009     * com.ibm.rational.teamapi.scout.FolderContentProvider
010     *
011     * © Copyright IBM Corporation 2005, 2008.  All Rights Reserved.
012     * Note to U.S. Government Users Restricted Rights:  Use, duplication or 
013     * disclosure restricted by GSA ADP  Schedule Contract with IBM Corp.
014     */
015    package com.ibm.rational.teamapi.scout;
016    
017    import org.eclipse.jface.viewers.ITreeContentProvider;
018    import org.eclipse.jface.viewers.Viewer;
019    
020    /**
021     * An implementation of ITreeContentProvider for ProxyElement objects.
022     * All methods are implemented via direct calls to methods on the ProxyElement
023     * being displayed.
024     */
025    public class FolderContentProvider implements ITreeContentProvider {
026            /*
027             * @see IContentProvider#dispose()
028             */
029            public void dispose() {}
030            
031            /*
032             * @see ITreeContentProvider#getChildren(Object)
033             */
034            public Object[] getChildren(Object parentElement) {
035            return ((ProxyElement)parentElement).getChildren();
036            }
037            
038            /*
039             * @see ITreeContentProvider#getParent(Object)
040             */
041            public Object getParent(Object element) {
042            return ((ProxyElement)element).getParent();
043            }
044    
045            /*
046             * @see ITreeContentProvider#hasChildren(Object)
047             */
048            public boolean hasChildren(Object element) {
049            return ((ProxyElement)element).couldBeFolder();
050            }
051    
052            /*
053             * @see IStructuredContentProvider#getElements(Object)
054             */
055            public Object[] getElements(Object inputElement) {
056                    return getChildren(inputElement);
057            }
058    
059        /*
060         * @see IStructuredContentProvider#inputChanged
061         */
062        public void inputChanged(
063            Viewer viewer,
064            Object oldInput,
065            Object newInput)
066        {
067        }
068    }