KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > refactoring > java > ui > tree > TreeElementFactoryImpl


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.refactoring.java.ui.tree;
21
22 import java.util.Map JavaDoc;
23 import java.util.WeakHashMap JavaDoc;
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 /**
31  *
32  * @author Jan Becicka
33  */

34 public class TreeElementFactoryImpl implements TreeElementFactoryImplementation {
35
36     public Map JavaDoc<Object JavaDoc, TreeElement> map = new WeakHashMap JavaDoc();
37     public static TreeElementFactoryImpl instance;
38     {
39         instance = this;
40     }
41     
42     public TreeElement getTreeElement(Object JavaDoc 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