1 19 20 package org.netbeans.modules.j2ee.ejbcore.ui.logicalview.entres; 21 22 import java.io.IOException ; 23 import javax.lang.model.element.TypeElement; 24 import javax.swing.Action ; 25 import org.netbeans.api.java.source.ElementHandle; 26 import org.netbeans.api.project.FileOwnerQuery; 27 import org.netbeans.api.project.Project; 28 import org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment; 29 import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule; 30 import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eePlatform; 31 import org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider; 32 import org.netbeans.modules.j2ee.ejbcore._RetoucheUtil; 33 import org.openide.ErrorManager; 34 import org.openide.filesystems.FileObject; 35 import org.openide.nodes.Node; 36 import org.openide.util.NbBundle; 37 import org.openide.util.HelpCtx; 38 import org.openide.util.Lookup; 39 import org.openide.util.actions.NodeAction; 40 41 42 47 public class CallEjbAction extends NodeAction { 48 49 protected void performAction(Node[] nodes) { 50 try { 51 ElementHandle<TypeElement> elementHandle = _RetoucheUtil.getJavaClassFromNode(nodes[0]); 52 FileObject fileObject = nodes[0].getLookup().lookup(FileObject.class); 53 CallEjbDialog callEjbDialog = new CallEjbDialog(); 54 callEjbDialog.open(fileObject, elementHandle.getQualifiedName(), NbBundle.getMessage(CallEjbAction.class, "LBL_CallEjbAction")); } catch (IOException ioe) { 56 ErrorManager.getDefault().notify(ioe); 57 } 58 } 59 60 public String getName() { 61 return NbBundle.getMessage(CallEjbAction.class, "LBL_CallEjbAction"); 62 } 63 64 public HelpCtx getHelpCtx() { 65 return HelpCtx.DEFAULT_HELP; 66 } 69 70 protected boolean asynchronous() { 71 return false; 72 } 73 74 protected boolean enable(Node[] nodes) { 75 if (nodes == null || nodes.length != 1) { 76 return false; 77 } 78 ElementHandle<TypeElement> elementHandle = null; 79 try { 80 elementHandle = _RetoucheUtil.getJavaClassFromNode(nodes[0]); 81 } catch (IOException ioe) { 82 ErrorManager.getDefault().notify(ioe); 83 return false; 84 } 85 if (elementHandle == null) { 86 return false; 87 } 88 FileObject srcFile = nodes[0].getLookup().lookup(FileObject.class); 89 Project project = FileOwnerQuery.getOwner(srcFile); 90 J2eeModuleProvider j2eeModuleProvider = (J2eeModuleProvider) project.getLookup ().lookup (J2eeModuleProvider.class); 91 if (j2eeModuleProvider != null) { 92 String serverInstanceId = j2eeModuleProvider.getServerInstanceID(); 93 if (serverInstanceId == null) { 94 return true; 95 } 96 J2eePlatform platform = Deployment.getDefault().getJ2eePlatform(serverInstanceId); 97 if (platform == null) { 98 return true; 99 } 100 if (!platform.getSupportedModuleTypes().contains(J2eeModule.EJB)) { 101 return false; 102 } 103 } 104 try { 105 return !_RetoucheUtil.isInterface(srcFile, elementHandle); 106 } catch (IOException ioe) { 107 ErrorManager.getDefault().notify(ioe); 108 } 109 return false; 110 } 111 112 119 120 public Action createContextAwareInstance(Lookup actionContext) { 121 boolean enable = enable(actionContext.lookup(new Lookup.Template<Node>(Node.class)).allInstances().toArray(new Node[0])); 122 return enable ? this : null; 123 } 124 125 } 126 | Popular Tags |