KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > earproject > ui > LogicalViewProvider


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.j2ee.earproject.ui;
21
22 import java.util.Collections JavaDoc;
23 import java.util.List JavaDoc;
24 import org.netbeans.api.project.FileOwnerQuery;
25 import org.netbeans.api.project.Project;
26 import org.netbeans.modules.j2ee.earproject.EarProject;
27 import org.netbeans.modules.j2ee.earproject.UpdateHelper;
28 import org.netbeans.modules.j2ee.earproject.ui.actions.AddModuleAction;
29 import org.netbeans.spi.project.support.ant.AntBasedProjectType;
30 import org.netbeans.spi.project.support.ant.PropertyEvaluator;
31 import org.netbeans.spi.project.support.ant.ReferenceHelper;
32 import org.openide.filesystems.FileObject;
33 import org.openide.nodes.Children;
34 import org.openide.nodes.Node;
35 import org.openide.util.actions.SystemAction;
36
37 /**
38  * Provides a logical view of a Enterprise Application Project.
39  *
40  * @author vkraemer
41  */

42 public final class LogicalViewProvider extends J2eeArchiveLogicalViewProvider {
43     
44     private final EarProject earProject;
45     private final static List JavaDoc<? extends SystemAction> specialActions =
46             Collections.singletonList(SystemAction.get(AddModuleAction.class));
47     
48     /** Creates a new instance of EarLogicalViewProvider */
49     public LogicalViewProvider(EarProject earProject, UpdateHelper helper,
50             PropertyEvaluator evaluator, ReferenceHelper resolver,
51             AntBasedProjectType abpt) {
52         super(earProject, helper, evaluator, resolver, specialActions, abpt);
53         this.earProject = earProject;
54     }
55     
56     public Node createLogicalView() {
57         Node retVal = super.createLogicalView();
58         Children kids = retVal.getChildren();
59         kids.add(new Node[] { new LogicalViewNode(helper.getAntProjectHelper()) });
60         return retVal;
61     }
62     
63     public Node findPath(Node root, Object JavaDoc target) {
64         // XXX this is incorrect - must handle case that target instanceof DataObject
65
// (since that is likely to be what is in lookup)
66
FileObject pd = earProject.getProjectDirectory();
67         if (pd.equals(target)) {
68             return root;
69         }
70         Node retVal = super.findPath(root, target);
71         if (null != retVal) {
72             return retVal;
73         }
74         if (!(target instanceof FileObject)) {
75             return retVal;
76         }
77         
78         // check to see if this target could be a submodule
79
Project p = FileOwnerQuery.getOwner((FileObject) target);
80         if (null == p) {
81             return retVal;
82         }
83 // Node[] nodes = root.getChildren().getNodes(true);
84
// for (int i = nodes.length-1; i >= 0; i--) {
85
// if (nodes[i] instanceof ModuleNode) {
86
// ModuleNode mn = (ModuleNode) nodes[i];
87
// }
88
// }
89
return retVal;
90     }
91     
92 }
93
Popular Tags