1 19 20 28 29 package org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype; 30 31 32 import java.awt.Dimension ; 33 import java.io.IOException ; 34 import java.util.HashMap ; 35 import java.util.List ; 36 import java.util.Map ; 37 38 import org.netbeans.api.project.FileOwnerQuery; 39 import org.netbeans.api.project.Project; 40 import org.netbeans.modules.xml.wsdl.model.Operation; 41 import org.netbeans.modules.xml.wsdl.model.PortType; 42 import org.netbeans.modules.xml.wsdl.model.WSDLComponent; 43 import org.netbeans.modules.xml.wsdl.model.WSDLModel; 44 import org.netbeans.modules.xml.wsdl.ui.actions.ActionHelper; 45 import org.netbeans.modules.xml.wsdl.ui.view.OperationConfigurationPanel; 46 import org.netbeans.modules.xml.wsdl.ui.view.OperationType; 47 import org.netbeans.modules.xml.wsdl.ui.view.PartAndElementOrTypeTableModel; 48 import org.netbeans.modules.xml.wsdl.ui.wizard.OperationGenerator; 49 import org.netbeans.modules.xml.wsdl.ui.wizard.WizardPortTypeConfigurationStep; 50 import org.netbeans.modules.xml.xam.ModelSource; 51 import org.openide.DialogDescriptor; 52 import org.openide.DialogDisplayer; 53 import org.openide.filesystems.FileObject; 54 import org.openide.util.HelpCtx; 55 import org.openide.util.NbBundle; 56 import org.openide.util.datatransfer.NewType; 57 58 62 public class PortTypeOperationNewType extends NewType { 63 private PortType mPortType = null; 64 65 public PortTypeOperationNewType(WSDLComponent message) { 66 mPortType = (PortType) message; 67 } 68 69 70 @Override 71 public String getName() { 72 return NbBundle.getMessage(PortTypeOperationNewType.class, "LBL_NewType_PortTypeOperation"); 73 } 74 75 76 @Override 77 public void create() throws IOException { 78 WSDLModel model = mPortType.getModel(); 79 80 81 ModelSource modelSource = model.getModelSource(); 82 FileObject wsdlFile = (FileObject) modelSource.getLookup().lookup(FileObject.class); 83 if(wsdlFile != null) { 84 Project project = FileOwnerQuery.getOwner(wsdlFile); 85 if(project != null) { 86 OperationPanel panel = new OperationPanel(project, model); 87 88 panel.setPreferredSize(new Dimension (550, 600)); 89 DialogDescriptor dd = new DialogDescriptor(panel, 90 NbBundle.getMessage(PortTypeNewType.class, "LBL_Create_New_Operation"), 91 true, 92 DialogDescriptor.OK_CANCEL_OPTION, 93 DialogDescriptor.OK_OPTION, 94 DialogDescriptor.DEFAULT_ALIGN, 95 new HelpCtx(PortTypeOperationNewType.class), 96 null); 97 panel.setDialogDescriptor(dd); 98 99 if(DialogDisplayer.getDefault().notify(dd) == DialogDescriptor.OK_OPTION) { 100 OperationConfigurationPanel opPanel = panel.getOperationConfigurationPanel(); 101 Map configurationMap = new HashMap (); 102 103 String operationName = opPanel.getOperationName(); 104 OperationType ot = opPanel.getOperationType(); 105 configurationMap.put(WizardPortTypeConfigurationStep.OPERATION_NAME, operationName); 106 configurationMap.put(WizardPortTypeConfigurationStep.OPERATION_TYPE, ot); 107 108 String inputMessageName = opPanel.getInputMessageName(); 109 String outputMessageName = opPanel.getOutputMessageName(); 110 String faultMessageName = opPanel.getFaultMessageName(); 111 112 configurationMap.put(WizardPortTypeConfigurationStep.OPERATION_INPUT_MESSAGE, inputMessageName); 113 configurationMap.put(WizardPortTypeConfigurationStep.OPERATION_OUTPUT_MESSAGE, outputMessageName); 114 configurationMap.put(WizardPortTypeConfigurationStep.OPERATION_FAULT_MESSAGE, faultMessageName); 115 116 List <PartAndElementOrTypeTableModel.PartAndElementOrType> inputParts = opPanel.getInputMessageParts(); 117 List <PartAndElementOrTypeTableModel.PartAndElementOrType> outputParts = opPanel.getOutputMessageParts(); 118 List <PartAndElementOrTypeTableModel.PartAndElementOrType> faultParts = opPanel.getFaultMessageParts(); 119 Map <String , String > namespaceToPrefixMap = opPanel.getNamespaceToPrefixMap(); 120 121 configurationMap.put(WizardPortTypeConfigurationStep.NAMESPACE_TO_PREFIX_MAP, namespaceToPrefixMap); 122 123 if(opPanel.isNewInputMessage()) { 125 configurationMap.put(WizardPortTypeConfigurationStep.OPERATION_INPUT, inputParts); 126 } 127 128 if(opPanel.isNewOutputMessage()) { 130 configurationMap.put(WizardPortTypeConfigurationStep.OPERATION_OUTPUT, outputParts); 131 } 132 133 if(opPanel.isNewFaultMessage()) { 135 configurationMap.put(WizardPortTypeConfigurationStep.OPERATION_FAULT, faultParts); 136 } 137 model.startTransaction(); 138 OperationGenerator opGen = new OperationGenerator(model, this.mPortType, configurationMap); 139 opGen.execute(); 140 141 model.endTransaction(); 144 Operation operation = opGen.getOperation(); 145 ActionHelper.selectNode(operation); 146 } 147 } 148 } 149 } 150 } 151 | Popular Tags |