1 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 [] EMPTY_ARRAY = new Object [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 60 public Object [] getChildren(Object 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 [] result = new Object [list.size()]; 78 list.toArray(result); 79 return result; 80 } 81 catch(CoreException e){ 82 } 83 84 } 85 return EMPTY_ARRAY; 86 } 87 88 91 public Object getParent(Object element) { 92 if (element instanceof IResource){ 93 return ((IResource)element).getParent(); 94 } 95 return null; 96 } 97 98 101 public boolean hasChildren(Object element) { 102 if (element instanceof IContainer){ 103 return true; 104 } 105 return false; 106 } 107 108 111 public Object [] getElements(Object inputElement) { 112 return getChildren(inputElement); 113 } 114 115 118 public void dispose() { 119 } 120 121 124 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { 125 } 126 127 } 128 | Popular Tags |