1 19 20 package org.netbeans.modules.refactoring.java.ui.tree; 21 22 import java.util.Map ; 23 import java.util.WeakHashMap ; 24 import org.netbeans.api.project.Project; 25 import org.netbeans.api.project.SourceGroup; 26 import org.netbeans.modules.refactoring.api.RefactoringElement; 27 import org.netbeans.modules.refactoring.spi.ui.*; 28 import org.openide.filesystems.FileObject; 29 30 34 public class TreeElementFactoryImpl implements TreeElementFactoryImplementation { 35 36 public Map <Object , TreeElement> map = new WeakHashMap (); 37 public static TreeElementFactoryImpl instance; 38 { 39 instance = this; 40 } 41 42 public TreeElement getTreeElement(Object o) { 43 TreeElement result = null; 44 if (o instanceof SourceGroup) { 45 result = map.get(((SourceGroup)o).getRootFolder()); 46 } else { 47 result = map.get(o); 48 } 49 if (result!= null) 50 return result; 51 if (o instanceof FileObject) { 52 FileObject fo = (FileObject) o; 53 if (fo.isFolder()) { 54 SourceGroup sg = FolderTreeElement.getSourceGroup(fo); 55 if (sg!=null && fo.equals(sg.getRootFolder())) 56 result = new SourceGroupTreeElement(sg); 57 else 58 result = new FolderTreeElement(fo); 59 } else { 60 result = new FileTreeElement(fo); 61 } 62 } else if (o instanceof SourceGroup) { 63 result = new SourceGroupTreeElement((SourceGroup)o); 64 } else if (o instanceof ElementGrip) { 65 result = new ElementGripTreeElement((ElementGrip) o); 66 } 67 else if (o instanceof Project) { 68 result = new ProjectTreeElement((Project) o); 69 } else if (o instanceof RefactoringElement) { 70 if (((RefactoringElement) o).getComposite() instanceof ElementGrip) { 71 result = new RefactoringTreeElement((RefactoringElement) o); 72 } 73 } 74 if (result != null) { 75 if (o instanceof SourceGroup) { 76 map.put(((SourceGroup)o).getRootFolder(), result); 77 } else { 78 map.put(o, result); 79 } 80 } 81 return result; 82 } 83 84 public void cleanUp() { 85 map.clear(); 86 ElementGripFactory.getDefault().cleanUp(); 87 } 88 } 89 | Popular Tags |