KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > ca > mcgill > sable > soot > ui > VisManContentProvider


1 /* Soot - a J*va Optimization Framework
2  * Copyright (C) 2004 Jennifer Lhotak
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */

19
20 package ca.mcgill.sable.soot.ui;
21
22 import org.eclipse.jface.viewers.*;
23 import org.eclipse.core.resources.*;
24 import org.eclipse.core.runtime.*;
25 import java.util.*;
26
27 public class VisManContentProvider implements ITreeContentProvider {
28
29     private final Object JavaDoc [] EMPTY_ARRAY = new Object JavaDoc [0];
30     public VisManContentProvider() {
31         super();
32     }
33     
34     private boolean includeCon(IContainer con){
35         try {
36             IResource [] members = con.members();
37             for (int i = 0; i < members.length; i++){
38                 if (members[i] instanceof IFolder){
39                     if (includeCon((IFolder)members[i])){
40                         return true;
41                     }
42                 }
43                 else if (members[i] instanceof IFile){
44                     IFile file = (IFile)members[i];
45                     if (file.getFileExtension() == null) continue;
46                     if (file.getFileExtension().equals("jimple") || file.getFileExtension().equals("java")){
47                         return true;
48                     }
49                 }
50             }
51         }
52         catch(CoreException e){
53         }
54         return false;
55     }
56
57     /* (non-Javadoc)
58      * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
59      */

60     public Object JavaDoc[] getChildren(Object JavaDoc parentElement) {
61         if (parentElement instanceof IContainer){
62             try {
63                 IResource [] mems = ((IContainer)parentElement).members();
64                 ArrayList list = new ArrayList();
65                 for (int i = 0; i < mems.length; i++){
66                     if (mems[i] instanceof IFolder){
67                         if (includeCon((IFolder)mems[i])){
68                             list.add(mems[i]);
69                         }
70                     }
71                     else if (mems[i] instanceof IFile){
72                         if (((IFile)mems[i]).getFileExtension().equals("jimple") || ((IFile)mems[i]).getFileExtension().equals("java")){
73                             list.add(mems[i]);
74                         }
75                     }
76                 }
77                 Object JavaDoc [] result = new Object JavaDoc[list.size()];
78                 list.toArray(result);
79                 return result;
80             }
81             catch(CoreException e){
82             }
83             
84         }
85         return EMPTY_ARRAY;
86     }
87
88     /* (non-Javadoc)
89      * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
90      */

91     public Object JavaDoc getParent(Object JavaDoc element) {
92         if (element instanceof IResource){
93             return ((IResource)element).getParent();
94         }
95         return null;
96     }
97
98     /* (non-Javadoc)
99      * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
100      */

101     public boolean hasChildren(Object JavaDoc element) {
102         if (element instanceof IContainer){
103             return true;
104         }
105         return false;
106     }
107
108     /* (non-Javadoc)
109      * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
110      */

111     public Object JavaDoc[] getElements(Object JavaDoc inputElement) {
112         return getChildren(inputElement);
113     }
114
115     /* (non-Javadoc)
116      * @see org.eclipse.jface.viewers.IContentProvider#dispose()
117      */

118     public void dispose() {
119     }
120
121     /* (non-Javadoc)
122      * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
123      */

124     public void inputChanged(Viewer viewer, Object JavaDoc oldInput, Object JavaDoc newInput) {
125     }
126
127 }
128
Popular Tags