diff options
Diffstat (limited to 'bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLMenuActionContributor.java')
-rw-r--r-- | bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLMenuActionContributor.java | 1254 |
1 files changed, 0 insertions, 1254 deletions
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLMenuActionContributor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLMenuActionContributor.java deleted file mode 100644 index 7d01dbf36..000000000 --- a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLMenuActionContributor.java +++ /dev/null @@ -1,1254 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsdl.ui.internal.actions; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.eclipse.gef.EditPartViewer; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.jface.action.Separator; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.window.Window; -import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.IEditorPart; -import org.eclipse.wst.wsdl.Binding; -import org.eclipse.wst.wsdl.BindingOperation; -import org.eclipse.wst.wsdl.Definition; -import org.eclipse.wst.wsdl.Fault; -import org.eclipse.wst.wsdl.Import; -import org.eclipse.wst.wsdl.Input; -import org.eclipse.wst.wsdl.Message; -import org.eclipse.wst.wsdl.Operation; -import org.eclipse.wst.wsdl.Output; -import org.eclipse.wst.wsdl.Part; -import org.eclipse.wst.wsdl.Port; -import org.eclipse.wst.wsdl.PortType; -import org.eclipse.wst.wsdl.Service; -import org.eclipse.wst.wsdl.WSDLElement; -import org.eclipse.wst.wsdl.internal.impl.WSDLElementImpl; -import org.eclipse.wst.wsdl.internal.util.WSDLSwitch; -import org.eclipse.wst.wsdl.ui.internal.WSDLEditor; -import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin; -import org.eclipse.wst.wsdl.ui.internal.commands.AddInputCommand; -import org.eclipse.wst.wsdl.ui.internal.commands.AddMessageCommand; -import org.eclipse.wst.wsdl.ui.internal.commands.AddOperationCommand; -import org.eclipse.wst.wsdl.ui.internal.commands.AddOutputCommand; -import org.eclipse.wst.wsdl.ui.internal.extension.IMenuActionContributor; -import org.eclipse.wst.wsdl.ui.internal.graph.editparts.WSDLTreeNodeEditPart; -import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject; -import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil; -import org.eclipse.wst.wsdl.ui.internal.util.CreateWSDLElementHelper; -import org.eclipse.wst.wsdl.ui.internal.util.NameUtil; -import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil; -import org.eclipse.wst.wsdl.ui.internal.widgets.NewComponentDialog; -import org.eclipse.wst.wsdl.ui.internal.widgets.NewComponentWithChildDialog; -import org.eclipse.wst.wsdl.ui.internal.wizards.BindingWizard; -import org.eclipse.wst.wsdl.ui.internal.wizards.PortWizard; -import org.eclipse.wst.wsdl.util.WSDLConstants; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - - -public class WSDLMenuActionContributor implements IMenuActionContributor -{ - protected AddEEMenuActionContributor addEEMenuActionContributor; - IEditorPart editorPart; - - public WSDLMenuActionContributor(IEditorPart editorPart) - { - addEEMenuActionContributor = new AddEEMenuActionContributor(); - this.editorPart = editorPart; - } - - protected static List createList(Action action) - { - List list = new ArrayList(); - list.add(action); - return list; - } - - private class OpenSchemaOnSelectionHelper extends Action { - Object object; - - public OpenSchemaOnSelectionHelper(Object object) { - setText(WSDLEditorPlugin.getWSDLString("_UI_OPEN_IMPORT")); - this.object = object; - - if (object instanceof Import) { - String location = ((Import) object).getLocationURI(); - - if (location == null || location.trim().equals("")) - setEnabled(false); - } - } - - public void run() { - Definition definition = ((WSDLElement) object).getEnclosingDefinition(); - org.eclipse.wst.wsdl.ui.internal.util.OpenOnSelectionHelper helper = new org.eclipse.wst.wsdl.ui.internal.util.OpenOnSelectionHelper(definition); - helper.openEditor((org.eclipse.emf.ecore.EObject) object); - } - } - - public void contributeMenuActions(final IMenuManager menu, final Node node, Object object) - { - final IMenuManager addMenu; - boolean addEditAction = false; - final boolean isEditable = (node instanceof IDOMNode); - if (object instanceof WSDLElement && node != null && isEditable) - { - addEditAction = true; - addMenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_CHILD"), "addchild"); //$NON-NLS-1$ //$NON-NLS-2$ - menu.add(addMenu); - Definition definition = ((WSDLElement) object).getEnclosingDefinition(); - - final String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI); - - if (object instanceof Import) { - menu.add(new OpenSchemaOnSelectionHelper(object)); - } - - WSDLSwitch wsdlSwitch = new WSDLSwitch() - { - public Object caseBinding(Binding binding) - { - if (isEditable) - { - menu.add(new AddBindingOperationAction(node, "NewBindingOperation", prefix)); //$NON-NLS-1$ - menu.add(new Separator()); - } - - menu.add(createSetPortTypeMenu(binding, isEditable)); - menu.add(new GenerateBindingContentAction(binding, isEditable)); - return null; - } - - public Object caseBindingOperation(BindingOperation bindingOperation) - { - if (isEditable) - { - menu.add(new AddBindingInputAction(editorPart, node, prefix)); - menu.add(new AddBindingOutputAction(editorPart, node, prefix)); - menu.add(new AddBindingFaultAction(node, prefix)); - } - return null; - } - - public Object caseDefinition(Definition definition) - { - menu.add(new EditNamespacesAction(definition)); - menu.add(new Separator()); - - if (isEditable) - { - menu.add(new AddMessageAction(definition, null, node, prefix, ((WSDLEditor) editorPart).getXMLDocument())); - menu.add(new AddServiceAction(definition, null, node, prefix, ((WSDLEditor) editorPart).getXMLDocument())); - menu.add(new AddPortTypeAction(definition, null, node, prefix, ((WSDLEditor) editorPart).getXMLDocument())); - menu.add(new AddBindingAction(definition, ((WSDLEditor) editorPart).getXMLDocument()));//, null, node, prefix)); - menu.add(new AddImportAction(editorPart, definition, node, prefix)); - } - return null; - } - - public Object caseFault(Fault fault) - { - menu.add(createSetMessageMenu(fault, isEditable)); - //menu.add(createAddBindingMenuForIOF(fault)); - return null; - } - - public Object caseInput(Input input) - { - menu.add(createSetMessageMenu(input, isEditable)); - //menu.add(createAddBindingMenuForIOF(input)); - return null; - } - - public Object caseOutput(Output output) - { - menu.add(createSetMessageMenu(output, isEditable)); - //menu.add(createAddBindingMenuForIOF(output)); - return null; - } - - public Object caseMessage(Message message) - { - if (isEditable) - { - menu.add(new AddPartAction(editorPart, message, node, prefix)); - } - return null; - } - - public Object caseOperation(Operation operation) - { - if (isEditable) - { - menu.add(new AddInputAction(editorPart, node, operation, prefix)); - menu.add(new AddOutputAction(editorPart, node, operation, prefix)); - menu.add(new AddFaultAction(editorPart, node, operation, prefix)); - } - //menu.add(createAddBindingMenuForOperation(operation)); - return null; - } - - public Object casePart(Part part) - { - menu.add(createSetPartMenu(part, (Element) node, "element", isEditable)); //$NON-NLS-1$ - menu.add(createSetPartMenu(part, (Element) node, "type", isEditable)); //$NON-NLS-1$ - return null; - } - - public Object casePort(Port port) - { - if (node instanceof Element) - { - menu.add(createSetBindingMenu(port, (Element) node, isEditable)); - if (port.getEBinding() != null) - { - menu.add(createSetPortTypeMenu(port.getEBinding(), isEditable)); - } - } - return null; - } - - public Object casePortType(PortType portType) - { - if (isEditable) - { - menu.add(new AddOperationAction(editorPart, portType, node, prefix)); - } - return null; - } - - public Object caseService(Service service) - { - if (isEditable) - { - menu.add(new AddPortAction(service)); - } - return null; - } - - //public Object caseTypes(Types types) - //{ - // return createTypesAdapter(); - // } - }; - wsdlSwitch.doSwitch((WSDLElement) object); - } - else if (object instanceof WSDLGroupObject) - { - addMenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_CHILD"), "addchild"); //$NON-NLS-1$ //$NON-NLS-2$ - menu.add(addMenu); - - WSDLGroupObject groupObject = (WSDLGroupObject) object; - Definition definition = groupObject.getDefinition(); - - final String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI); - - //for (Iterator i = actionList.iterator(); i.hasNext(); ) - //{ - // Action action = (Action)i.next(); - // manager.add(action); - //} - - switch (groupObject.getType()) - { - case WSDLGroupObject.MESSAGES_GROUP : - { - menu.add(new AddMessageAction(groupObject.getDefinition(), null, node, prefix, ((WSDLEditor) editorPart).getXMLDocument())); - break; - } - case WSDLGroupObject.SERVICES_GROUP : - { - menu.add(new AddServiceAction(groupObject.getDefinition(), null, node, prefix, ((WSDLEditor) editorPart).getXMLDocument())); - break; - } - case WSDLGroupObject.PORT_TYPES_GROUP : - { - menu.add(new AddPortTypeAction(groupObject.getDefinition(), null, node, prefix, ((WSDLEditor) editorPart).getXMLDocument())); - break; - } - case WSDLGroupObject.BINDINGS_GROUP : - { - menu.add(new AddBindingAction(groupObject.getDefinition(), ((WSDLEditor) editorPart).getXMLDocument()));//, null, node, prefix)); - break; - } - case WSDLGroupObject.IMPORTS_GROUP : - { - menu.add(new AddImportAction(editorPart, groupObject.getDefinition(), node, prefix)); - break; - } - } - } - - menu.add(new Separator()); - - addEEMenuActionContributor.contributeMenuActions(menu, node, object); - - menu.add(new Separator()); - - if (object instanceof WSDLElement && node != null && addEditAction && node != null && isEditable) - { - //////////////////////////////////////// Currently, only allow Copy and Paste on Operations - if (object instanceof Operation) { - // Add Cut, Copy Actions - // Note: The Cut, Copy, Paste Actions are Model Driven. The Delete Action is still - // currently DOM driven. - // menu.add(new CutAction((WSDLElement) object, editorPart)); - menu.add(new CopyGlobalAction((WSDLElement) object, editorPart)); - } - - Action pasteAction = new PasteGlobalAction((WSDLElement) object, editorPart); - if (pasteAction.isEnabled()) { - menu.add(pasteAction); - } - - menu.add(new Separator()); - //////////////////////////////////////// Currently, only allow Copy and Paste on Operations - - // Get the list of selected elements. Use this list for the DeleteAction. - IStructuredSelection selectionList = (IStructuredSelection) ((WSDLEditor) editorPart).getSelectionManager().getSelection(); - Action deleteAtion = new DeleteWSDLAndXSDAction(selectionList.toList(), node, (WSDLEditor) editorPart); - menu.add(deleteAtion); - deleteAtion.setEnabled(isEditable); - } - - // Allow Rename through a dialog mechanism..... This should be changed when - // direct editing is ready - if (object instanceof WSDLElement && isEditable) { - RenameDialogAction renameDialog = new RenameDialogAction((WSDLElement) object); - if (renameDialog.showRenameDialog()) - menu.add(renameDialog); - } - } - - /* - protected MenuManager createAddBindingMenuForOperation(Operation operation) - { - MenuManager subMenu = new MenuManager("Add Binding"); - - Definition definition = operation.getEnclosingDefinition(); - ComponentReferenceUtil util = new ComponentReferenceUtil(definition); - - String operationName = operation.getName(); - if (operationName != null) - { - for (Iterator i = util.getBindings(operation).iterator(); i.hasNext(); ) - { - Binding binding = (Binding)i.next(); - - BindingOperation matchingBindingOperation = null; - - for (Iterator j = binding.getBindingOperations().iterator(); j.hasNext(); ) - { - BindingOperation bindingOperation = (BindingOperation)j.next(); - if (operationName.equals(bindingOperation.getName())) - { - matchingBindingOperation = bindingOperation; - break; - } - } - - if (matchingBindingOperation == null) - { - Element bindingElement = WSDLUtil.getInstance().getElementForObject(binding); - subMenu.add(new AddBindingOperationAction(bindingElement, operation, prefix)); - } - } - } - return subMenu; - }*/ - - /* - protected MenuManager createAddBindingMenuForIOF(WSDLElement iof) - { - MenuManager subMenu = new MenuManager("Add Binding"); - - Definition definition = iof.getEnclosingDefinition(); - Operation operation = (Operation)iof.eContainer(); - - ComponentReferenceUtil util = new ComponentReferenceUtil(definition); - - String operationName = operation.getName(); - if (operationName != null) - { - for (Iterator i = util.getBindings(operation).iterator(); i.hasNext(); ) - { - Binding binding = (Binding)i.next(); - - boolean hasName = false; - for (Iterator j = binding.getBindingOperations().iterator(); j.hasNext(); ) - { - BindingOperation bindingOperation = (BindingOperation)j.next(); - if (operationName.equals(bindingOperation.getName())) - { - hasName = true; - break; - } - } - - if (!hasName) - { - // TODO... should we add the operation to all of the bindings? - // - Element bindingElement = WSDLUtil.getInstance().getElementForObject(binding); - subMenu.add(new AddBindingOperationAction(bindingElement, operationName)); - } - } - } - return subMenu; - } - */ - - protected MenuManager createSetBindingMenu(Port port, Element portElement, boolean isEditable) - { - MenuManager submenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_SET_BINDING")); - - Definition definition = port.getEnclosingDefinition(); - String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI); - Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(definition); - - SetNewComponentAction setNewAction = new SetNewComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_BINDING"), definitionElement, prefix, "binding", port); - setNewAction.setEditor(editorPart); - setNewAction.setEnabled(true); - submenu.add(setNewAction); - - SetExistingComponentAction action = new SetExistingComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_EXISTING_BINDING"), definitionElement, prefix, "binding", port); - action.setEditor(editorPart); - action.setEnabled(isEditable); - submenu.add(action); - - return submenu; - } - - protected MenuManager createSetPortTypeMenu(Binding binding, boolean isEditable) - { - MenuManager submenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_SET_PORTTYPE")); - - if (binding != null) - { - Definition definition = binding.getEnclosingDefinition(); - Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(definition); - String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI); - - SetNewComponentAction setNewAction = new SetNewComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_PORTTYPE"), definitionElement, prefix, "portType", binding); - setNewAction.setEditor(editorPart); - setNewAction.setEnabled(true); - submenu.add(setNewAction); - - SetExistingComponentAction action = new SetExistingComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_EXISTING_PORTTYPE"), definitionElement, prefix, "portType", binding); - action.setEditor(editorPart); - action.setEnabled(isEditable); - submenu.add(action); - } - return submenu; - } - - protected MenuManager createSetMessageMenu(WSDLElement wsdlElement, boolean isEditable) - { - Definition definition = wsdlElement.getEnclosingDefinition(); - Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(definition); - Element referencingElement = WSDLEditorUtil.getInstance().getElementForObject(wsdlElement); - - MenuManager submenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_SET_MESSAGE")); - if (definitionElement != null && referencingElement != null) - { - String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI); - - SetNewComponentAction setNewAction = new SetNewComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_MESSAGE"), definitionElement, prefix, "message", wsdlElement); - setNewAction.setEditor(editorPart); - setNewAction.setEnabled(true); - submenu.add(setNewAction); - - SetExistingComponentAction action = new SetExistingComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_EXISTING_MESSAGE"), definitionElement, prefix, "message", wsdlElement); - action.setEditor(editorPart); - action.setEnabled(isEditable); - submenu.add(action); - } - - return submenu; - } - - protected MenuManager createSetPartMenu(Part part, Element portElement, String referenceKind, boolean isEditable) - { - Definition definition = part.getEnclosingDefinition(); - String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI); - Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(definition); - - String actionName; - MenuManager submenu = null; - if (referenceKind.equalsIgnoreCase("element")) // NON NLS - { - actionName = WSDLEditorPlugin.getWSDLString("_UI_ACTION_EXISTING_ELEMENT"); - submenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_SET_ELEMENT")); - - SetNewComponentAction setNewElementAction = new SetNewComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_ELEMENT"), definitionElement, prefix, "element", part); - setNewElementAction.setEditor(editorPart); - setNewElementAction.setEnabled(true); - setNewElementAction.setReferenceKind(referenceKind); - submenu.add(setNewElementAction); - } - else - { - actionName = WSDLEditorPlugin.getWSDLString("_UI_ACTION_EXISTING_TYPE"); - submenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_SET_TYPE")); - - SetNewComponentAction setNewComplexAction = new SetNewComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_COMPLEX_TYPE"), definitionElement, prefix, "complex type", part); - setNewComplexAction.setEditor(editorPart); - setNewComplexAction.setEnabled(true); - setNewComplexAction.setReferenceKind(referenceKind); - setNewComplexAction.setTypeKind("complex"); - Image image = XSDEditorPlugin.getXSDImage("icons/XSDComplexType.gif"); - setNewComplexAction.setImageDescriptor(ImageDescriptor.createFromImage(image)); - submenu.add(setNewComplexAction); - - SetNewComponentAction setNewSimpleAction = new SetNewComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_SIMPLE_TYPE"), definitionElement, prefix, "simple type", part); - setNewSimpleAction.setEditor(editorPart); - setNewSimpleAction.setEnabled(true); - setNewSimpleAction.setReferenceKind(referenceKind); - setNewSimpleAction.setTypeKind("simple"); - image = XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif"); - setNewSimpleAction.setImageDescriptor(ImageDescriptor.createFromImage(image)); - - submenu.add(setNewSimpleAction); - } - - - SetExistingComponentAction action = new SetExistingComponentAction(actionName, definitionElement, prefix, actionName, part); - action.setReferenceKind(referenceKind); - action.setEditor(editorPart); - action.setEnabled(isEditable); - submenu.add(action); - - return submenu; - } - - private WSDLElement showPasteAction(WSDLElement element, IEditorPart ePart) { - WSDLElement parentElement = null; - - if (ePart instanceof WSDLEditor) { - WSDLElement clipboardElement = ((WSDLEditor) ePart).getClipboardContents(); - - if (element instanceof PortType) { - if (clipboardElement instanceof Operation) { - parentElement = element; - } - } - if (element instanceof Operation) { - if (clipboardElement instanceof Operation) { - parentElement = (WSDLElement) ((Operation) element).eContainer(); - } - } - } - - return parentElement; - } -} - -class AddBindingOperationAction extends AddElementAction -{ - protected String name; - protected Operation operation; - - public AddBindingOperationAction(Node parentNode, String name, String prefix) - { - // super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD") + " " + WSDLEditorPlugin.getWSDLString("_UI_LABEL_BINDING_OPERATION"), "icons/operationbinding_obj.gif", parentNode, prefix, "operation"); - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_BINDING_OPERATION"), "icons/operationbinding_obj.gif", parentNode, prefix, "operation"); - this.name = name; - } - - public AddBindingOperationAction(Node parentNode, Operation operation, String prefix) - { - this(parentNode, operation.getName(), prefix); - this.operation = operation; - } - - protected void addAttributes(Element newElement) - { - newElement.setAttribute("name", name); - } - - protected void performAddElement() - { - super.performAddElement(); - - if (operation != null) - { - if (operation.getInput() != null) - { - new AddBindingInputAction(editorPart, newElement, prefix).run(); - } - if (operation.getOutput() != null) - { - new AddBindingOutputAction(editorPart, newElement, prefix).run(); - } - for (Iterator i = operation.getEFaults().iterator(); i.hasNext();) - { - Fault fault = (Fault) i.next(); - new AddBindingFaultAction(newElement, fault, prefix).run(); - } - format(operation.getElement()); - } - } -} - - -class AddOperationAction extends AddElementAction -{ - protected String name = "NewOperation"; - protected PortType portType; - protected boolean createSubComponents = false; - - public AddOperationAction(IEditorPart editorPart, PortType portType, Node parentNode, String prefix) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_OPERATION"), "icons/operation_obj.gif", parentNode, prefix, "operation"); - setEditorPart(editorPart); - setDefinition(portType.getEnclosingDefinition()); - this.portType = portType; - } - - public boolean showDialog() - { - name = NameUtil.buildUniqueOperationName(portType); - name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_OPERATION"), name, NameUtil.getUsedOperationNames(portType)); - return name != null; - } - -// protected void addAttributes(Element newElement) -// { -// newElement.setAttribute("name", name); -// } - - protected void performAddElement() - { - if (createSubComponents) { - CreateWSDLElementHelper.operationName = name; - CreateWSDLElementHelper.PART_TYPE_OR_DEFINITION = CreateWSDLElementHelper.getPartInfo(portType); - Operation operation = CreateWSDLElementHelper.createOperation(portType); - format(operation.getElement()); - selectObject(operation); - expandEditParts(operation,true); - } - else { - Definition def = portType.getEnclosingDefinition(); - - // Add Operation - AddOperationCommand opAction = new AddOperationCommand(portType, name); - opAction.run(); - Operation operation = (Operation) opAction.getWSDLElement(); - - // Add Output - AddOutputCommand outAction = new AddOutputCommand(operation, NameUtil.buildUniqueInputName(portType, operation.getName(), "")); - outAction.run(); - - // Add Input - AddInputCommand inAction = new AddInputCommand(operation, NameUtil.buildUniqueOutputName(portType, operation.getName(), "")); - inAction.run(); - - format(operation.getElement()); - - selectObject(operation); - expandEditParts(operation, true); - } - } - - private void expandEditParts(Object element, boolean expandChildren) { - if (element != null) { - EditPartViewer editPartViewer = ((WSDLEditor) editorPart).getGraphViewer().getComponentViewer(); - Map editPartMap = editPartViewer.getEditPartRegistry(); - WSDLTreeNodeEditPart wsdlEditPart = (WSDLTreeNodeEditPart) editPartMap.get(element); - wsdlEditPart.setExpanded(true); - - if (expandChildren) { - Iterator iterator = WSDLEditorUtil.getModelGraphViewChildren(element).iterator(); - - while (iterator.hasNext()) { - expandEditParts(iterator.next(), expandChildren); - } - } - } - } - - public String showDialogHelper(String title, String defaultName, List usedNames) - { - String result = defaultName; - NewComponentWithChildDialog dialog = new NewComponentWithChildDialog(WSDLEditorPlugin.getShell(), title, defaultName, usedNames); - int rc = dialog.createAndOpen(); - if (rc == IDialogConstants.OK_ID) - { - result = dialog.getName(); - createSubComponents = dialog.createSubComponents(); - } - else - { - result = null; - } - return result; - } -} - -abstract class AddIOFAction extends AddElementAction -{ - protected Operation operation; - - public AddIOFAction(IEditorPart editorPart, String text, String imageDescriptorKey, Node parentNode, String prefix, String localName, Operation operation) - { - super(text, imageDescriptorKey, parentNode, prefix, localName); - this.operation = operation; - setEditorPart(editorPart); - setDefinition(operation.getEnclosingDefinition()); - } - - abstract protected void performAddElementToBindingOperation(BindingOperation bindingOperation, Element bindingOperationElement); - - /* - protected void addAttributes(Element newElement) - { - newElement.setAttribute("message", ""); - } - */ - - protected void performAddElement() - { - if (operation != null) - { - Definition definition = operation.getEnclosingDefinition(); - ComponentReferenceUtil util = new ComponentReferenceUtil(definition); - - for (Iterator i = util.getBindingOperations(operation).iterator(); i.hasNext();) - { - BindingOperation bindingOperation = (BindingOperation) i.next(); - Element bindingOperationElement = WSDLEditorUtil.getInstance().getElementForObject(bindingOperation); - if (bindingOperationElement != null) - { - performAddElementToBindingOperation(bindingOperation, bindingOperationElement); - } - } - format(operation.getElement()); - } - } -} - -class AddInputAction extends AddIOFAction -{ - public AddInputAction(IEditorPart editorPart, Node parentNode, Operation operation, String prefix) - { - super(editorPart, WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_INPUT"), "icons/input_obj.gif", parentNode, prefix, "input", operation); - } - - protected void performAddElementToBindingOperation(BindingOperation bindingOperation, Element bindingOperationElement) - { - if (bindingOperation.getBindingInput() == null) - { - new AddBindingInputAction(editorPart, bindingOperationElement, prefix).run(); - } - } - - protected void performAddElement() { - PortType portType = (PortType) ((WSDLElementImpl) operation).getContainer(); - CreateWSDLElementHelper.PART_TYPE_OR_DEFINITION = CreateWSDLElementHelper.getPartInfo(portType); - Input input = CreateWSDLElementHelper.createInput(portType, operation, null); - format(input.getElement()); - selectObject(input); - } -} - -class AddOutputAction extends AddIOFAction -{ - public AddOutputAction(IEditorPart editorPart, Node parentNode, Operation operation, String prefix) - { - super(editorPart, WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_OUTPUT"), "icons/output_obj.gif", parentNode, prefix, "output", operation); - } - - protected void performAddElementToBindingOperation(BindingOperation bindingOperation, Element bindingOperationElement) - { - if (bindingOperation.getBindingOutput() == null) - { - new AddBindingOutputAction(editorPart, bindingOperationElement, prefix).run(); - } - } - - protected void performAddElement() { - // Determine Part info - PortType portType = (PortType) ((WSDLElementImpl) operation).getContainer(); - CreateWSDLElementHelper.PART_TYPE_OR_DEFINITION = CreateWSDLElementHelper.getPartInfo(portType); - Output output = CreateWSDLElementHelper.createOutput(portType, operation); - format(output.getElement()); - selectObject(output); - } -} - -class AddFaultAction extends AddIOFAction -{ - protected String name = "NewFault"; - public AddFaultAction(IEditorPart editorPart, Node parentNode, Operation operation, String prefix) - { - super(editorPart, WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_FAULT"), "icons/fault_obj.gif", parentNode, prefix, "fault", operation); - name = NameUtil.buildUniqueFaultName(operation); - } - - public boolean showDialog() - { - name = NameUtil.buildUniqueFaultName(operation); - name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_FAULT"), name, NameUtil.getUsedFaultNames(operation)); - return name != null; - } - - /* - protected void addAttributes(Element newElement) - { - newElement.setAttribute("message", ""); - newElement.setAttribute("name", name); - } - */ - - protected void performAddElementToBindingOperation(BindingOperation bindingOperation, Element bindingOperationElement) - { - if (bindingOperation.getBindingFault(name) == null) - { - new AddBindingFaultAction(bindingOperationElement, prefix).run(); - } - } - - protected void performAddElement() { - CreateWSDLElementHelper.faultName = name; - CreateWSDLElementHelper.PART_TYPE_OR_DEFINITION = CreateWSDLElementHelper.getPartInfo(operation); - Fault fault = CreateWSDLElementHelper.createFault(operation); - format(fault.getElement()); - selectObject(fault); - } -} - -class AddBindingInputAction extends AddElementAction -{ - public AddBindingInputAction(IEditorPart editorPart, Node parentNode, String prefix) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_INPUT"), "icons/input_obj.gif", parentNode, prefix, "input"); - setEditorPart(editorPart); - } -} - -class AddBindingOutputAction extends AddElementAction -{ - public AddBindingOutputAction(IEditorPart editorPart, Node parentNode, String prefix) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_OUTPUT"), "icons/output_obj.gif", parentNode, prefix, "output"); - setEditorPart(editorPart); - } -} - -class AddBindingFaultAction extends AddElementAction -{ - protected Fault fault; - - public AddBindingFaultAction(Node parentNode, String prefix) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_FAULT"), "icons/fault_obj.gif", parentNode, prefix, "fault"); - } - - public AddBindingFaultAction(Node parentNode, Fault fault, String prefix) - { - this(parentNode, prefix); - this.fault = fault; - } - - protected void addAttributes(Element newElement) - { - if (fault == null) - { - newElement.setAttribute("name", "NewFault"); - } - else - { - newElement.setAttribute("name", fault.getName()); - } - } -} - -class AddMessageAction extends AddElementAction -{ - protected Definition definition; - protected String name; - - public AddMessageAction(Definition definition, String name, Node parentNode, String prefix) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_MESSAGE"), "icons/message_obj.gif", parentNode, prefix, "message"); - this.definition = definition; - this.name = name; - setComputeTopLevelRefChild(true); - } - - public AddMessageAction(Definition definition, String name, Node parentNode, String prefix, Document document) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_MESSAGE"), "icons/message_obj.gif", parentNode, prefix, "message"); - this.definition = definition; - this.name = name; - this.setDefinition(definition); - this.document = document; - setComputeTopLevelRefChild(true); - } - - public boolean showDialog() - { - name = NameUtil.buildUniqueMessageName(definition, name); - name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_MESSAGE"), name, NameUtil.getUsedMessageNames(definition)); - return name != null; - } - -// protected void addAttributes(Element newElement) -// { -// newElement.setAttribute("name", name); -// } - - protected void performAddElement() { - NodeList list = document.getChildNodes(); - if (parentNode == null|| list.getLength() == 0) { - createDefinitionStub(); - } - - AddMessageCommand action = new AddMessageCommand(definition, name); - action.run(); - Message message = (Message) action.getWSDLElement(); - CreateWSDLElementHelper.createPart(message); - format(message.getElement()); - selectObject(message); - } - - public String getName() - { - return name; - } -} - -class AddPartAction extends AddElementAction -{ - protected Message message; - protected String name; - - public AddPartAction(IEditorPart editorPart, Message message, Node parentNode, String prefix) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_PART"), "icons/part_obj.gif", parentNode, prefix, "part"); - this.message = message; - setEditorPart(editorPart); - setDefinition(message.getEnclosingDefinition()); - } - - public boolean showDialog() - { - name = NameUtil.buildUniquePartName(message, message.getQName().getLocalPart()); - name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_PART"), name, NameUtil.getUsedPartNames(message)); - return name != null; - } - - protected void addAttributes(Element newElement) - { - newElement.setAttribute("name", name); - String xsdPrefix = message.getEnclosingDefinition().getPrefix(WSDLConstants.XSD_NAMESPACE_URI); - if (xsdPrefix == null) - { - Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(message.getEnclosingDefinition()); - new AddNamespaceDeclarationsAction(definitionElement, WSDLConstants.XSD_NAMESPACE_URI, "xsd").run(); - xsdPrefix = message.getEnclosingDefinition().getPrefix(WSDLConstants.XSD_NAMESPACE_URI); - } - - String defaultTypeName = "string"; - if (xsdPrefix != null && xsdPrefix.length() > 0) - { - defaultTypeName = xsdPrefix + ":" + defaultTypeName; - } - newElement.setAttribute("type", defaultTypeName); - } -} - -class AddServiceAction extends AddElementAction -{ - protected String name; - protected Definition definition; - - public AddServiceAction(Definition definition, String name, Node parentNode, String prefix) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_SERVICE"), "icons/service_obj.gif", parentNode, prefix, "service"); - this.definition = definition; - this.name = name; - setComputeTopLevelRefChild(true); - } - - public AddServiceAction(Definition definition, String name, Node parentNode, String prefix, Document document) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_SERVICE"), "icons/service_obj.gif", parentNode, prefix, "service"); - this.definition = definition; - this.name = name; - this.setDefinition(definition); - this.document = document; - setComputeTopLevelRefChild(true); - } - - public boolean showDialog() - { - if (name == null) - { - name = NameUtil.buildUniqueServiceName(definition); - } - name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_SERVICE"), name, NameUtil.getUsedServiceNames(definition)); - return name != null; - } - - protected void addAttributes(Element newElement) - { - newElement.setAttribute("name", name); - } - - protected void performAddElement() { - NodeList list = document.getChildNodes(); - if (parentNode == null || list.getLength() == 0) { - createDefinitionStub(); - } - - super.performAddElement(); - } -} - -class AddPortTypeAction extends AddElementAction -{ - protected String name; - protected Definition definition; - - public AddPortTypeAction(Definition definition, String name, Node parentNode, String prefix) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_PORTTYPE"), "icons/porttype_obj.gif", parentNode, prefix, "portType"); - this.definition = definition; - this.name = name; - setComputeTopLevelRefChild(true); - } - - public AddPortTypeAction(Definition definition, String name, Node parentNode, String prefix, Document document) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_PORTTYPE"), "icons/porttype_obj.gif", parentNode, prefix, "portType"); - this.definition = definition; - this.name = name; - this.setDefinition(definition); - this.document = document; - setComputeTopLevelRefChild(true); - } - - public boolean showDialog() - { - name = NameUtil.buildUniquePortTypeName(definition, name); - name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_PORTTYPE"), name, NameUtil.getUsedPortTypeNames(definition)); - return name != null; - } - - protected void addAttributes(Element newElement) - { - newElement.setAttribute("name", name); - } - - public String getPortTypeName() - { - return name; - } - - protected void performAddElement() { - NodeList list = document.getChildNodes(); - if (parentNode == null || list.getLength() == 0) { - createDefinitionStub(); - } - - super.performAddElement(); - } -} - -class AddBindingAction extends Action -{ - protected Definition definition; - protected Document document; - - public AddBindingAction(Definition definition, Document document) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_BINDING"), ImageDescriptor.createFromFile(WSDLEditorPlugin.class, "icons/binding_obj.gif")); //$NON-NLS-1$ - //setToolTipText(WSDLEditorPlugin.getInstance().getWSDLString("_UI_LABEL_BINDING_WIZARD")); //$NON-NLS-1$ - this.definition = definition; - this.document = document; - } - - public void run() - { - BindingWizard wizard = new BindingWizard(definition, document); - WizardDialog wizardDialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard); - wizardDialog.create(); - - int result = wizardDialog.open(); - - if (result == Window.OK) - { - //todo... - } - } -} - -class AddPortAction extends Action -{ - protected Service service; - - public AddPortAction(Service service) - { - super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_PORT"), ImageDescriptor.createFromFile(WSDLEditorPlugin.class, "icons/binding_obj.gif")); //$NON-NLS-1$ - //setToolTipText(WSDLEditorPlugin.getInstance().getWSDLString("_UI_LABEL_BINDING_WIZARD")); //$NON-NLS-1$ - this.service = service; - } - - public void run() - { - PortWizard wizard = new PortWizard(service); - WizardDialog wizardDialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard); - wizardDialog.create(); - - int result = wizardDialog.open(); - if (result == Window.OK) - { - //todo... - } - } -} - -class GenerateBindingContentAction extends Action -{ - protected Binding binding; - public GenerateBindingContentAction(Binding binding, boolean isEditable) - { - super(WSDLEditorPlugin.getWSDLString("_UI_GENERATE_BINDING_CONTENT")); - this.binding = binding; - setEnabled(isEditable); - } - - public void run() - { - BindingWizard wizard = new BindingWizard(binding.getEnclosingDefinition(), binding, BindingWizard.KIND_REGENERATE_BINDING); - wizard.setBindingName(ComponentReferenceUtil.getName(binding)); - wizard.setPortTypeName(ComponentReferenceUtil.getPortTypeReference(binding)); - WizardDialog wizardDialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard); - wizardDialog.create(); - wizardDialog.open(); - } -} - -//This is a temporary class to allow renaming. This should be replaced when direct -//renaming is ready -class RenameDialogAction extends Action { - private WSDLElement element; - private String defaultName = "NewName"; - private List usedNames = new ArrayList(); - private boolean useSmartRename = false; - private boolean showDialog = false; - - public RenameDialogAction(WSDLElement selection) { - setText(WSDLEditorPlugin.getWSDLString("_UI_ACTION_RENAME")); - element = selection; - initialize(); - } - - public void run() { - String result; - - NewComponentDialog dialog = new NewComponentDialog(WSDLEditorPlugin.getShell(), WSDLEditorPlugin.getWSDLString("_UI_ACTION_RENAME"), defaultName, usedNames); - int rc = dialog.createAndOpen(); - if (rc == IDialogConstants.OK_ID) - { - result = dialog.getName(); - if (useSmartRename) { - SmartRenameAction smartRename = new SmartRenameAction(element, result); - smartRename.run(); - } - else { - RenameAction rename = new RenameAction(element, result); - rename.run(); - } - } - } - - public void initialize() { - if (element instanceof Fault) { - usedNames = NameUtil.getUsedFaultNames((Operation) ((Fault) element).eContainer()); - defaultName = ((Fault) element).getName(); - - showDialog = true; - useSmartRename = true; - } - else if (element instanceof Message) { - usedNames = NameUtil.getUsedMessageNames(element.getEnclosingDefinition()); - defaultName = ((Message) element).getQName().getLocalPart(); - - showDialog = true; - useSmartRename = true; - } - else if (element instanceof Operation) { - usedNames = NameUtil.getUsedOperationNames((PortType) ((Operation) element).eContainer()); - defaultName = ((Operation) element).getName(); - - showDialog = true; - useSmartRename = true; - } - else if (element instanceof Part) { - usedNames = NameUtil.getUsedPartNames((Message) ((Part) element).eContainer()); - defaultName = ((Part) element).getName(); - - showDialog = true; - useSmartRename = true; - } - else if (element instanceof PortType) { - usedNames = NameUtil.getUsedPortTypeNames(element.getEnclosingDefinition()); - defaultName = ((PortType) element).getQName().getLocalPart(); - - showDialog = true; - useSmartRename = false; - } - else if (element instanceof Port) { - usedNames = NameUtil.getUsedPortNames((Service) ((Port) element).eContainer()); - defaultName = ((Port) element).getName(); - - showDialog = true; - useSmartRename = true; - } - else if (element instanceof Binding) { - usedNames = NameUtil.getUsedBindingNames(element.getEnclosingDefinition()); - defaultName = ((Binding) element).getQName().getLocalPart(); - - showDialog = true; - useSmartRename = false; - } - else if (element instanceof Service) { - usedNames = NameUtil.getUsedServiceNames(element.getEnclosingDefinition()); - defaultName = ((Service) element).getQName().getLocalPart(); - - showDialog = true; - useSmartRename = false; - } - usedNames.remove(defaultName); - } - - public boolean showRenameDialog() { - return showDialog; - } -}
\ No newline at end of file |