This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 219904
Collapse All | Expand All

(-)a/php.refactoring/src/org/netbeans/modules/refactoring/php/ui/tree/FileTreeElement.java (+97 lines)
Line 0 Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2012 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU
10
 * General Public License Version 2 only ("GPL") or the Common
11
 * Development and Distribution License("CDDL") (collectively, the
12
 * "License"). You may not use this file except in compliance with the
13
 * License. You can obtain a copy of the License at
14
 * http://www.netbeans.org/cddl-gplv2.html
15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16
 * specific language governing permissions and limitations under the
17
 * License.  When distributing the software, include this License Header
18
 * Notice in each file and include the License file at
19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
20
 * particular file as subject to the "Classpath" exception as provided
21
 * by Oracle in the GPL Version 2 section of the License file that
22
 * accompanied this code. If applicable, add the following below the
23
 * License Header, with the fields enclosed by brackets [] replaced by
24
 * your own identifying information:
25
 * "Portions Copyrighted [year] [name of copyright owner]"
26
 *
27
 * If you wish your version of this file to be governed by only the CDDL
28
 * or only the GPL Version 2, indicate your decision by adding
29
 * "[Contributor] elects to include this software in this distribution
30
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
31
 * single choice of license, a recipient has the option to distribute
32
 * your version of this file under either the CDDL, the GPL Version 2 or
33
 * to extend the choice of license to its licensees as provided above.
34
 * However, if you add GPL Version 2 code and therefore, elected the GPL
35
 * Version 2 license, then the option applies only if the new code is
36
 * made subject to such option by the copyright holder.
37
 *
38
 * Contributor(s):
39
 *
40
 * Portions Copyrighted 2012 Sun Microsystems, Inc.
41
 */
42
package org.netbeans.modules.refactoring.php.ui.tree;
43
44
import java.beans.BeanInfo;
45
import javax.swing.Icon;
46
import javax.swing.ImageIcon;
47
import org.netbeans.api.project.FileOwnerQuery;
48
import org.netbeans.api.project.Project;
49
import org.netbeans.modules.refactoring.spi.ui.TreeElement;
50
import org.netbeans.modules.refactoring.spi.ui.TreeElementFactory;
51
import org.openide.filesystems.FileObject;
52
import org.openide.loaders.DataObject;
53
import org.openide.loaders.DataObjectNotFoundException;
54
55
/**
56
 *
57
 * @author Ondrej Brejla <obrejla@netbeans.org>
58
 */
59
public class FileTreeElement implements TreeElement {
60
61
    private final FileObject fileObject;
62
63
    FileTreeElement(FileObject fileObject) {
64
        this.fileObject = fileObject;
65
    }
66
67
    @Override
68
    public TreeElement getParent(boolean isLogical) {
69
        if (isLogical) {
70
            return TreeElementFactory.getTreeElement(fileObject.getParent());
71
        } else {
72
            Project project = FileOwnerQuery.getOwner(fileObject);
73
            return TreeElementFactory.getTreeElement(project != null ? project : fileObject.getParent());
74
        }
75
    }
76
77
    @Override
78
    public Icon getIcon() {
79
        Icon result = null;
80
        try {
81
            result = new ImageIcon(DataObject.find(fileObject).getNodeDelegate().getIcon(BeanInfo.ICON_COLOR_16x16));
82
        } catch (DataObjectNotFoundException ex) {
83
            //no-op
84
        }
85
        return result;
86
    }
87
88
    @Override
89
    public String getText(boolean isLogical) {
90
        return fileObject.getNameExt();
91
    }
92
93
    @Override
94
    public Object getUserObject() {
95
        return fileObject;
96
    }
97
}
(-)a/php.refactoring/src/org/netbeans/modules/refactoring/php/ui/tree/FolderTreeElement.java (+97 lines)
Line 0 Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2012 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU
10
 * General Public License Version 2 only ("GPL") or the Common
11
 * Development and Distribution License("CDDL") (collectively, the
12
 * "License"). You may not use this file except in compliance with the
13
 * License. You can obtain a copy of the License at
14
 * http://www.netbeans.org/cddl-gplv2.html
15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16
 * specific language governing permissions and limitations under the
17
 * License.  When distributing the software, include this License Header
18
 * Notice in each file and include the License file at
19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
20
 * particular file as subject to the "Classpath" exception as provided
21
 * by Oracle in the GPL Version 2 section of the License file that
22
 * accompanied this code. If applicable, add the following below the
23
 * License Header, with the fields enclosed by brackets [] replaced by
24
 * your own identifying information:
25
 * "Portions Copyrighted [year] [name of copyright owner]"
26
 *
27
 * If you wish your version of this file to be governed by only the CDDL
28
 * or only the GPL Version 2, indicate your decision by adding
29
 * "[Contributor] elects to include this software in this distribution
30
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
31
 * single choice of license, a recipient has the option to distribute
32
 * your version of this file under either the CDDL, the GPL Version 2 or
33
 * to extend the choice of license to its licensees as provided above.
34
 * However, if you add GPL Version 2 code and therefore, elected the GPL
35
 * Version 2 license, then the option applies only if the new code is
36
 * made subject to such option by the copyright holder.
37
 *
38
 * Contributor(s):
39
 *
40
 * Portions Copyrighted 2012 Sun Microsystems, Inc.
41
 */
42
package org.netbeans.modules.refactoring.php.ui.tree;
43
44
import java.beans.BeanInfo;
45
import javax.swing.Icon;
46
import javax.swing.ImageIcon;
47
import org.netbeans.api.project.FileOwnerQuery;
48
import org.netbeans.api.project.Project;
49
import org.netbeans.modules.refactoring.spi.ui.TreeElement;
50
import org.netbeans.modules.refactoring.spi.ui.TreeElementFactory;
51
import org.openide.filesystems.FileObject;
52
import org.openide.loaders.DataObject;
53
import org.openide.loaders.DataObjectNotFoundException;
54
55
/**
56
 *
57
 * @author Ondrej Brejla <obrejla@netbeans.org>
58
 */
59
public class FolderTreeElement implements TreeElement {
60
61
    private final FileObject fileObject;
62
63
    FolderTreeElement(FileObject fileObject) {
64
        this.fileObject = fileObject;
65
    }
66
67
    @Override
68
    public TreeElement getParent(boolean isLogical) {
69
        Project project = FileOwnerQuery.getOwner(fileObject);
70
        if (project != null) {
71
            return TreeElementFactory.getTreeElement(project);
72
        } else {
73
            return null;
74
        }
75
    }
76
77
    @Override
78
    public Icon getIcon() {
79
        Icon result = null;
80
        try {
81
            result = new ImageIcon(DataObject.find(fileObject).getNodeDelegate().getIcon(BeanInfo.ICON_COLOR_16x16));
82
        } catch (DataObjectNotFoundException ex) {
83
            //no-op
84
        }
85
        return result;
86
    }
87
88
    @Override
89
    public String getText(boolean isLogical) {
90
        return fileObject.getPath();
91
    }
92
93
    @Override
94
    public Object getUserObject() {
95
        return fileObject;
96
    }
97
}
(-)a/php.refactoring/src/org/netbeans/modules/refactoring/php/ui/tree/ProjectTreeElement.java (+96 lines)
Line 0 Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2012 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU
10
 * General Public License Version 2 only ("GPL") or the Common
11
 * Development and Distribution License("CDDL") (collectively, the
12
 * "License"). You may not use this file except in compliance with the
13
 * License. You can obtain a copy of the License at
14
 * http://www.netbeans.org/cddl-gplv2.html
15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16
 * specific language governing permissions and limitations under the
17
 * License.  When distributing the software, include this License Header
18
 * Notice in each file and include the License file at
19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
20
 * particular file as subject to the "Classpath" exception as provided
21
 * by Oracle in the GPL Version 2 section of the License file that
22
 * accompanied this code. If applicable, add the following below the
23
 * License Header, with the fields enclosed by brackets [] replaced by
24
 * your own identifying information:
25
 * "Portions Copyrighted [year] [name of copyright owner]"
26
 *
27
 * If you wish your version of this file to be governed by only the CDDL
28
 * or only the GPL Version 2, indicate your decision by adding
29
 * "[Contributor] elects to include this software in this distribution
30
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
31
 * single choice of license, a recipient has the option to distribute
32
 * your version of this file under either the CDDL, the GPL Version 2 or
33
 * to extend the choice of license to its licensees as provided above.
34
 * However, if you add GPL Version 2 code and therefore, elected the GPL
35
 * Version 2 license, then the option applies only if the new code is
36
 * made subject to such option by the copyright holder.
37
 *
38
 * Contributor(s):
39
 *
40
 * Portions Copyrighted 2012 Sun Microsystems, Inc.
41
 */
42
package org.netbeans.modules.refactoring.php.ui.tree;
43
44
import java.lang.ref.WeakReference;
45
import javax.swing.Icon;
46
import org.netbeans.api.project.FileOwnerQuery;
47
import org.netbeans.api.project.Project;
48
import org.netbeans.api.project.ProjectInformation;
49
import org.netbeans.api.project.ProjectUtils;
50
import org.netbeans.modules.refactoring.spi.ui.TreeElement;
51
import org.openide.filesystems.FileObject;
52
53
/**
54
 *
55
 * @author Ondrej Brejla <obrejla@netbeans.org>
56
 */
57
public class ProjectTreeElement implements TreeElement {
58
59
    private final String name;
60
    private final Icon icon;
61
    private final WeakReference<Project> projectReference;
62
    private final FileObject projectDirectory;
63
64
    public ProjectTreeElement(Project project) {
65
        ProjectInformation projectInformation = ProjectUtils.getInformation(project);
66
        name = projectInformation.getDisplayName();
67
        icon = projectInformation.getIcon();
68
        projectReference = new WeakReference<Project>(project);
69
        projectDirectory = project.getProjectDirectory();
70
    }
71
72
    @Override
73
    public TreeElement getParent(boolean isLogical) {
74
        return null;
75
    }
76
77
    @Override
78
    public Icon getIcon() {
79
        return icon;
80
    }
81
82
    @Override
83
    public String getText(boolean isLogical) {
84
        return name;
85
    }
86
87
    @Override
88
    public Object getUserObject() {
89
        Project project = projectReference.get();
90
        if (project == null) {
91
            project = FileOwnerQuery.getOwner(projectDirectory);
92
        }
93
        return project;
94
    }
95
96
}
(-)a/php.refactoring/src/org/netbeans/modules/refactoring/php/ui/tree/RefactoringTreeElement.java (+84 lines)
Line 0 Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2012 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU
10
 * General Public License Version 2 only ("GPL") or the Common
11
 * Development and Distribution License("CDDL") (collectively, the
12
 * "License"). You may not use this file except in compliance with the
13
 * License. You can obtain a copy of the License at
14
 * http://www.netbeans.org/cddl-gplv2.html
15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16
 * specific language governing permissions and limitations under the
17
 * License.  When distributing the software, include this License Header
18
 * Notice in each file and include the License file at
19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
20
 * particular file as subject to the "Classpath" exception as provided
21
 * by Oracle in the GPL Version 2 section of the License file that
22
 * accompanied this code. If applicable, add the following below the
23
 * License Header, with the fields enclosed by brackets [] replaced by
24
 * your own identifying information:
25
 * "Portions Copyrighted [year] [name of copyright owner]"
26
 *
27
 * If you wish your version of this file to be governed by only the CDDL
28
 * or only the GPL Version 2, indicate your decision by adding
29
 * "[Contributor] elects to include this software in this distribution
30
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
31
 * single choice of license, a recipient has the option to distribute
32
 * your version of this file under either the CDDL, the GPL Version 2 or
33
 * to extend the choice of license to its licensees as provided above.
34
 * However, if you add GPL Version 2 code and therefore, elected the GPL
35
 * Version 2 license, then the option applies only if the new code is
36
 * made subject to such option by the copyright holder.
37
 *
38
 * Contributor(s):
39
 *
40
 * Portions Copyrighted 2012 Sun Microsystems, Inc.
41
 */
42
package org.netbeans.modules.refactoring.php.ui.tree;
43
44
import javax.swing.Icon;
45
import org.netbeans.modules.refactoring.api.RefactoringElement;
46
import org.netbeans.modules.refactoring.spi.ui.TreeElement;
47
import org.netbeans.modules.refactoring.spi.ui.TreeElementFactory;
48
import org.openide.util.Lookup;
49
50
/**
51
 *
52
 * @author Ondrej Brejla <obrejla@netbeans.org>
53
 */
54
public class RefactoringTreeElement implements TreeElement {
55
56
    private RefactoringElement refactoringElement;
57
    private Icon icon;
58
59
    RefactoringTreeElement(RefactoringElement element) {
60
        final Lookup lookup = element.getLookup();
61
        this.refactoringElement = element;
62
        icon = lookup.lookup(Icon.class);
63
    }
64
65
    @Override
66
    public TreeElement getParent(boolean isLogical) {
67
        return TreeElementFactory.getTreeElement(refactoringElement.getParentFile());
68
    }
69
70
    @Override
71
    public Icon getIcon() {
72
        return icon;
73
    }
74
75
    @Override
76
    public String getText(boolean isLogical) {
77
        return refactoringElement.getDisplayText();
78
    }
79
80
    @Override
81
    public Object getUserObject() {
82
        return refactoringElement;
83
    }
84
}
(-)a/php.refactoring/src/org/netbeans/modules/refactoring/php/ui/tree/TreeElementFactoryImpl.java (+102 lines)
Line 0 Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU
10
 * General Public License Version 2 only ("GPL") or the Common
11
 * Development and Distribution License("CDDL") (collectively, the
12
 * "License"). You may not use this file except in compliance with the
13
 * License. You can obtain a copy of the License at
14
 * http://www.netbeans.org/cddl-gplv2.html
15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16
 * specific language governing permissions and limitations under the
17
 * License.  When distributing the software, include this License Header
18
 * Notice in each file and include the License file at
19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
20
 * particular file as subject to the "Classpath" exception as provided
21
 * by Oracle in the GPL Version 2 section of the License file that
22
 * accompanied this code. If applicable, add the following below the
23
 * License Header, with the fields enclosed by brackets [] replaced by
24
 * your own identifying information:
25
 * "Portions Copyrighted [year] [name of copyright owner]"
26
 *
27
 * Contributor(s):
28
 *
29
 * The Original Software is NetBeans. The Initial Developer of the Original
30
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
31
 * Microsystems, Inc. All Rights Reserved.
32
 *
33
 * If you wish your version of this file to be governed by only the CDDL
34
 * or only the GPL Version 2, indicate your decision by adding
35
 * "[Contributor] elects to include this software in this distribution
36
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
37
 * single choice of license, a recipient has the option to distribute
38
 * your version of this file under either the CDDL, the GPL Version 2 or
39
 * to extend the choice of license to its licensees as provided above.
40
 * However, if you add GPL Version 2 code and therefore, elected the GPL
41
 * Version 2 license, then the option applies only if the new code is
42
 * made subject to such option by the copyright holder.
43
 */
44
45
package org.netbeans.modules.refactoring.php.ui.tree;
46
47
import java.util.Map;
48
import java.util.WeakHashMap;
49
import org.netbeans.api.project.Project;
50
import org.netbeans.api.project.SourceGroup;
51
import org.netbeans.modules.refactoring.api.RefactoringElement;
52
import org.netbeans.modules.refactoring.spi.ui.TreeElement;
53
import org.netbeans.modules.refactoring.spi.ui.TreeElementFactoryImplementation;
54
import org.openide.filesystems.FileObject;
55
56
/**
57
 *
58
 * @author Ondrej Brejla <obrejla@netbeans.org>
59
 */
60
@org.openide.util.lookup.ServiceProvider(service=org.netbeans.modules.refactoring.spi.ui.TreeElementFactoryImplementation.class, position=1983)
61
public class TreeElementFactoryImpl implements TreeElementFactoryImplementation {
62
63
    public Map<Object, TreeElement> map = new WeakHashMap<Object, TreeElement>();
64
65
    @Override
66
    public TreeElement getTreeElement(Object o) {
67
        TreeElement result;
68
        if (o instanceof SourceGroup) {
69
            result = map.get(((SourceGroup)o).getRootFolder());
70
        } else {
71
            result = map.get(o);
72
        }
73
        if (result == null) {
74
            if (o instanceof FileObject) {
75
                FileObject fo = (FileObject) o;
76
                if (fo.isFolder()) {
77
                    result = new FolderTreeElement(fo);
78
                } else {
79
                    result = new FileTreeElement(fo);
80
                }
81
            } else if (o instanceof Project) {
82
                result = new ProjectTreeElement((Project) o);
83
            } else if (o instanceof RefactoringElement) {
84
                RefactoringElement refactoringElement = (RefactoringElement) o;
85
                result = new RefactoringTreeElement(refactoringElement);
86
            }
87
            if (result != null) {
88
                if (o instanceof SourceGroup) {
89
                    map.put(((SourceGroup)o).getRootFolder(), result);
90
                } else {
91
                    map.put(o, result);
92
                }
93
            }
94
        }
95
        return result;
96
    }
97
98
    @Override
99
    public void cleanUp() {
100
        map.clear();
101
    }
102
}

Return to bug 219904