KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > ejbcore > ui > logicalview > ejb > action > AbstractExposeMethodAction


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.ejbcore.ui.logicalview.ejb.action;
21
22 import javax.lang.model.element.ExecutableElement;
23 import javax.swing.Action JavaDoc;
24 import org.netbeans.modules.j2ee.ejbcore._RetoucheUtil;
25 import org.openide.nodes.Node;
26 import org.openide.util.HelpCtx;
27 import org.openide.util.Lookup;
28 import org.openide.util.NbBundle;
29 import org.openide.util.actions.NodeAction;
30
31 /**
32  *
33  * @author Chris Webster
34  * @author Martin Adamek
35  */

36 abstract class AbstractExposeMethodAction extends NodeAction {
37     
38     protected void performAction(Node[] nodes) {
39         for (int i = 0; i < nodes.length; i++) {
40            expose(_RetoucheUtil.getMethodFromNode(nodes[i]));
41         }
42     }
43     
44     protected abstract boolean canExpose(ExecutableElement method);
45     protected abstract void expose(ExecutableElement method);
46     
47     public HelpCtx getHelpCtx() {
48         return HelpCtx.DEFAULT_HELP;
49     }
50     
51     protected boolean asynchronous() {
52         return false;
53     }
54     
55     protected boolean enable(Node[] nodes) {
56         return allNodesCanPromote(nodes);
57     }
58
59     private boolean allNodesCanPromote(Node[] nodes) {
60         //TODO: RETOUCHE
61
// for (int i = 0; i < nodes.length; i++) {
62
// Collection/*<Object>*/ lookupIt = nodes[i].getLookup().lookup(new Lookup.Template(Method.class)).allInstances();
63
// if (lookupIt.isEmpty()) {
64
// return false;
65
// }
66
// Iterator/*<Object>*/ it = lookupIt.iterator();
67
// while (it.hasNext()) {
68
// Method item = (Method)it.next();
69
// boolean signatureOk =
70
// Modifier.isPublic(item.getModifiers()) &&
71
// !Modifier.isStatic(item.getModifiers());
72
// boolean canPromote = signatureOk && canExpose(item);
73
// if (!canPromote) {
74
// return false;
75
// }
76
// }
77
// }
78
return true;
79     }
80     
81     protected void initialize() {
82          super.initialize();
83          putProperty(Action.SHORT_DESCRIPTION, NbBundle.getMessage(AbstractExposeMethodAction.class, "HINT_Action"));
84     }
85     
86     public javax.swing.Action JavaDoc createContextAwareInstance(org.openide.util.Lookup actionContext) {
87         boolean enable = enable(actionContext.lookup(new Lookup.Template<Node>(Node.class)).allInstances().toArray(new Node[0]));
88         return enable ? super.createContextAwareInstance(actionContext) : null;
89     }
90 }
91
Popular Tags