01: /*
02: * The contents of this file are subject to the terms of the Common Development
03: * and Distribution License (the License). You may not use this file except in
04: * compliance with the License.
05: *
06: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
07: * or http://www.netbeans.org/cddl.txt.
08: *
09: * 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-2007 Sun
17: * Microsystems, Inc. All Rights Reserved.
18: */
19: package org.netbeans.modules.bpel.nodes.refactoring;
20:
21: import java.util.Collection;
22: import org.netbeans.modules.bpel.nodes.actions.FindUsagesAction;
23: import org.netbeans.modules.refactoring.spi.ui.ActionsImplementationProvider;
24: import org.openide.nodes.Node;
25: import org.openide.util.Lookup;
26: import org.openide.util.actions.SystemAction;
27:
28: /**
29: *
30: * @author Vitaly Bychkov
31: * @version 1.0
32: */
33: public class FindUsagesActionImplementationProvider extends
34: ActionsImplementationProvider {
35:
36: private FindUsagesAction findUsagesAction;
37:
38: /** Creates a new instance of FindUsagesActionImplementationProvider */
39: public FindUsagesActionImplementationProvider() {
40: findUsagesAction = SystemAction.get(FindUsagesAction.class);
41: }
42:
43: @Override
44: public boolean canFindUsages(Lookup lookup) {
45: Node[] nodes = getNodes(lookup);
46:
47: return nodes != null && findUsagesAction.enable(nodes);//super.canFindUsages(lookup);
48: }
49:
50: @Override
51: public void doFindUsages(Lookup lookup) {
52: //super.doFindUsages(lookup);
53: Node[] nodes = getNodes(lookup);
54:
55: if (nodes != null) {
56: findUsagesAction.performAction(nodes);
57: }
58: }
59:
60: private Node[] getNodes(Lookup lookup) {
61: Node[] nodes = null;
62:
63: Collection<? extends Node> nodesCollection = null;
64: if (lookup != null) {
65: nodesCollection = lookup.lookupAll(Node.class);
66: }
67:
68: if (nodesCollection != null) {
69: nodes = nodesCollection.toArray(new Node[nodesCollection
70: .size()]);
71: }
72:
73: return nodes;
74: }
75:
76: }
|