Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/OpenOnSelectionHelper.java')
-rw-r--r--bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/OpenOnSelectionHelper.java404
1 files changed, 0 insertions, 404 deletions
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/OpenOnSelectionHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/OpenOnSelectionHelper.java
deleted file mode 100644
index 118dd7bdd..000000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/OpenOnSelectionHelper.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 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.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.Method;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.wst.wsdl.Binding;
-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.Output;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.Port;
-import org.eclipse.wst.wsdl.WSDLElement;
-import org.eclipse.wst.wsdl.internal.impl.ImportImpl;
-import org.eclipse.wst.wsdl.internal.util.WSDLSwitch;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.util.WSDLConstants;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.ADTReadOnlyFileEditorInput;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDHyperlinkTargetLocator;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDPackage;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class OpenOnSelectionHelper extends WSDLSwitch
-{
- Definition definition;
- Attr attr = null;
- Element element = null;
-
- public OpenOnSelectionHelper(Definition definition)
- {
- this.definition = definition;
- }
-
- public void openEditor(EObject eObject)
- {
- String[] array = computeSpecification(eObject);
- if (array != null)
- {
- openEditor(array[0], array[1]);
- }
- }
-
- public void openEditor(Node node)
- {
- String[] array = computeSpecification(node);
- if (array != null)
- {
- openEditor(array[0], array[1]);
- }
- }
-
- protected void openEditor(String resource, String spec)
- {
- String pattern = "platform:/resource"; //$NON-NLS-1$
- IWorkbenchPage workbenchPage = WSDLEditorPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getActivePage();
- IEditorPart editorPart = workbenchPage.getActiveEditor();
- String currentEditorId = editorPart.getEditorSite().getId();
-
- if (resource != null && resource.startsWith(pattern))
- {
- try
- {
- Path path = new Path(resource.substring(pattern.length()));
- IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-
-
- if (editorPart.getEditorInput() instanceof IFileEditorInput &&
- ((IFileEditorInput)editorPart.getEditorInput()).getFile().equals(file))
- {
- workbenchPage.getNavigationHistory().markLocation(editorPart);
- }
- else
- {
- try
- {
- // TODO: Use content type as below
- if (resource.endsWith("xsd")) //$NON-NLS-1$
- {
- editorPart = workbenchPage.openEditor(new FileEditorInput(file), WSDLEditorPlugin.XSD_EDITOR_ID);
- }
- else
- {
- // Since we are already in the wsdleditor
- editorPart = workbenchPage.openEditor(new FileEditorInput(file), editorPart.getEditorSite().getId());
- }
- }
- catch (PartInitException initEx)
- {
- }
- }
-
- Class theClass = editorPart.getClass();
- Class[] methodArgs = { String.class };
- Method method = theClass.getMethod("openOnSelection", methodArgs); //$NON-NLS-1$
- Object args[] = { spec };
- method.invoke(editorPart, args);
- workbenchPage.getNavigationHistory().markLocation(editorPart);
- }
- catch (Exception e)
- {
- }
- }
- else if (resource != null && resource.startsWith("http"))
- {
- IEditorPart newEditorPart = null;
- boolean doOpenWsdlEditor = true;
- if (resource.endsWith("xsd")) //$NON-NLS-1$
- {
- doOpenWsdlEditor = false;
- }
- try
- {
- IEditorReference[] refs = workbenchPage.getEditorReferences();
- int length = refs.length;
- // Need to find if an editor on that schema has already been opened
- for (int i = 0; i < length; i++)
- {
- IEditorInput input = refs[i].getEditorInput();
- if (input instanceof ADTReadOnlyFileEditorInput)
- {
- ADTReadOnlyFileEditorInput readOnlyEditorInput = (ADTReadOnlyFileEditorInput) input;
- if (readOnlyEditorInput.getUrlString().equals(resource) &&
- (!doOpenWsdlEditor && readOnlyEditorInput.getEditorID().equals(WSDLEditorPlugin.XSD_EDITOR_ID)
- || (doOpenWsdlEditor && readOnlyEditorInput.getEditorID().equals(WSDLEditorPlugin.WSDL_EDITOR_ID))))
- {
- newEditorPart = refs[i].getEditor(true);
- workbenchPage.activate(refs[i].getPart(true));
- break;
- }
- }
- }
- if (newEditorPart == null)
- {
- ADTReadOnlyFileEditorInput readOnlyStorageEditorInput = new ADTReadOnlyFileEditorInput(resource);
- IContentType contentType = null;
- InputStream iStream = null;
- try
- {
- iStream = readOnlyStorageEditorInput.getStorage().getContents();
- contentType = Platform.getContentTypeManager().findContentTypeFor(iStream, resource);
- }
- catch (CoreException coreException)
- {
-
- }
- finally
- {
- }
- // content type more reliable check
- if (contentType != null && contentType.equals(XSDEditorPlugin.XSD_CONTENT_TYPE_ID) || resource.endsWith("xsd")) //$NON-NLS-1$
- {
- readOnlyStorageEditorInput.setEditorID(WSDLEditorPlugin.XSD_EDITOR_ID);
- workbenchPage.openEditor(readOnlyStorageEditorInput, WSDLEditorPlugin.XSD_EDITOR_ID, true, 0); //$NON-NLS-1$
- }
- else
- {
- readOnlyStorageEditorInput.setEditorID(currentEditorId);
- workbenchPage.openEditor(readOnlyStorageEditorInput, currentEditorId, true, 0); //$NON-NLS-1$
- }
- }
- }
- catch (PartInitException pie)
- {
- }
- catch (IOException ioe)
- {
- }
- }
- }
-
- public String[] computeSpecification(EObject eObject)
- {
- String[] result = null;
- Object referencedObject = doSwitch(eObject);
- if (referencedObject instanceof EObject)
- {
- EObject referencedEObject = (EObject)referencedObject;
- if (referencedEObject != eObject ||
- referencedEObject.eResource() != definition.eResource())
- {
-
- Resource resource = referencedEObject.eResource();
- if (resource != null)
- {
- result = new String[2];
- result[0] = resource.getURI().toString();
- result[1] = resource.getURIFragment(referencedEObject);
- }
- }
- }
- return result;
- }
-
- public String[] computeSpecification(Node node)
- {
- String[] result = null;
- switch (node.getNodeType())
- {
- case Node.ELEMENT_NODE :
- {
- element = (Element)node;
- break;
- }
- case Node.ATTRIBUTE_NODE :
- {
- attr = (Attr)node;
- element = attr.getOwnerElement();
- break;
- }
- case Node.TEXT_NODE :
- {
- Node parent = node.getParentNode();
- element = (parent instanceof Element) ? (Element)parent : null;
- break;
- }
- }
- if (element != null)
- {
- Object object = WSDLEditorUtil.getInstance().findModelObjectForElement(definition, element);
- if (object instanceof EObject)
- {
- result = computeSpecification((EObject)object);
- }
- }
- return result;
- }
-
- public Object caseBinding(Binding binding)
- {
- Object result = binding;
- if (isMatchingAttribute(WSDLConstants.TYPE_ATTRIBUTE))
- {
- result = binding.getEPortType();
- }
- return result;
- }
-
- public Object caseDefinition(Definition definition)
- {
- return definition;
- }
-
- public Object casePart(Part part)
- {
- Object result = part;
- if (attr != null)
- {
- if (isMatchingAttribute(WSDLConstants.TYPE_ATTRIBUTE))
- {
- result = part.getTypeDefinition();
- }
- else if (isMatchingAttribute(WSDLConstants.ELEMENT_ATTRIBUTE))
- {
- result = part.getElementDeclaration();
- }
- }
- else if (part.getEnclosingDefinition() == definition)
- {
- result = part.getTypeDefinition() != null ? (Object)part.getTypeDefinition() : (Object)part.getElementDeclaration();
- }
- return result;
- }
-
- public Object casePort(Port port)
- {
- Object result = port;
- if (isMatchingAttribute(WSDLConstants.BINDING_ATTRIBUTE))
- {
- result = port.getEBinding();
-
- }
- return result;
- }
-
- public Object caseFault(Fault fault)
- {
- Object result = fault;
- if (isMatchingAttribute(WSDLConstants.MESSAGE_ATTRIBUTE))
- {
- result = fault.getMessage();
- }
- return result;
- }
-
- public Object caseInput(Input input)
- {
- Object result = input;
- if (isMatchingAttribute(WSDLConstants.MESSAGE_ATTRIBUTE))
- {
- result = input.getMessage();
- }
- return result;
- }
-
- public Object caseOutput(Output output)
- {
- Object result = output;
-
- if (isMatchingAttribute(WSDLConstants.MESSAGE_ATTRIBUTE))
- {
- result = output.getMessage();
- }
- return result;
- }
-
- public Object caseImport(Import theImport)
- {
- Object result = null;
-
- // For now, look at the file extension. When bugzilla 118293 is fixed, look at
- // the Import's eDefinition and eSchema instead.
- Path importPath = new Path(theImport.getLocationURI());
- String extension = importPath.getFileExtension();
- if (extension.equalsIgnoreCase("xsd")) { //$NON-NLS-1$
- if (theImport.getESchema() == null) {
- ((ImportImpl)theImport).importDefinitionOrSchema();
- }
-
- result = theImport.getESchema();
- }
- else if (extension.equalsIgnoreCase("wsdl") || extension.endsWith("wsdl")) { //$NON-NLS-1$
- if (theImport.getEDefinition() == null) {
- ((ImportImpl)theImport).importDefinitionOrSchema();
- }
-
- result = theImport.getEDefinition();
- }
-
-
-// if (theImport.getESchema() != null) {
-// result = theImport.getESchema();
-// }
-// else if (theImport.getEDefinition() != null) {
-// result = theImport.getEDefinition();
-// }
-// else {
-// // Need to resolve imports because the model doesn't automatically
-// // do it for us
-// ((ImportImpl)theImport).importDefinitionOrSchema();
-// result = theImport.getESchema();
-// }
-
- return result;
- }
-
- public Object caseWSDLElement(WSDLElement wsdlElement)
- {
- return wsdlElement;
- }
-
- private boolean isMatchingAttribute(String value)
- {
- return attr != null && value.equals(attr.getName());
- }
-
- public Object defaultCase(EObject object)
- {
- EClass theEClass = object.eClass();
-
- if (theEClass.eContainer() == XSDPackage.eINSTANCE)
- {
- // Handle navigation between inline schema components.
-
- XSDHyperlinkTargetLocator xsdHyperlinkTargetLocator = new XSDHyperlinkTargetLocator();
- String attributeName = attr != null ? attr.getName(): null;
- return xsdHyperlinkTargetLocator.locate((XSDConcreteComponent) object, attributeName);
- }
-
- return super.defaultCase(object);
- }
-}

Back to the top