blob: 63120cfcca90c17b8c66b87d0f331fb06505a2e4 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2006 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 org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
import org.eclipse.wst.wsdl.WSDLElement;
import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Binding;
import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Description;
import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11EndPoint;
import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11MessageReference;
import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11ParameterForPart;
import org.eclipse.wst.wsdl.ui.internal.asd.facade.IASDObject;
import org.eclipse.wst.wsdl.ui.internal.asd.facade.IDescription;
import org.eclipse.wst.wsdl.ui.internal.asd.facade.IParameter;
import org.eclipse.wst.wsdl.ui.internal.edit.W11BindingReferenceEditManager;
import org.eclipse.wst.wsdl.ui.internal.edit.W11InterfaceReferenceEditManager;
import org.eclipse.wst.wsdl.ui.internal.edit.W11MessageReferenceEditManager;
import org.eclipse.wst.wsdl.ui.internal.edit.WSDLXSDElementReferenceEditManager;
import org.eclipse.wst.wsdl.ui.internal.edit.WSDLXSDTypeReferenceEditManager;
import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager;
import org.eclipse.wst.xsd.ui.internal.editor.XSDElementReferenceEditManager;
import org.eclipse.wst.xsd.ui.internal.editor.XSDTypeReferenceEditManager;
public class ReferenceEditManagerHelper {
public static ComponentReferenceEditManager getBindingReferenceEditManager(IASDObject asdObject) {
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
if (page.getActiveEditor().getAdapter(W11InterfaceReferenceEditManager.class) != null) {
return (ComponentReferenceEditManager) page.getActiveEditor().getAdapter(W11BindingReferenceEditManager.class);
}
else {
IEditorInput input = page.getActiveEditor().getEditorInput();
if (input instanceof IFileEditorInput && asdObject instanceof W11EndPoint) {
WSDLElement element = (WSDLElement) ((W11EndPoint) asdObject).getTarget();
IDescription description = (IDescription) WSDLAdapterFactoryHelper.getInstance().adapt(element.getEnclosingDefinition());
return new W11BindingReferenceEditManager((W11Description) description, ((IFileEditorInput) input).getFile());
}
}
return null;
}
public static ComponentReferenceEditManager getInterfaceReferenceEditManager(IASDObject asdObject) {
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
if (page.getActiveEditor().getAdapter(W11InterfaceReferenceEditManager.class) != null) {
return (ComponentReferenceEditManager) page.getActiveEditor().getAdapter(W11InterfaceReferenceEditManager.class);
}
else {
IEditorInput input = page.getActiveEditor().getEditorInput();
if (input instanceof IFileEditorInput && asdObject instanceof W11Binding) {
WSDLElement element = (WSDLElement) ((W11Binding) asdObject ).getTarget();
IDescription description = (IDescription) WSDLAdapterFactoryHelper.getInstance().adapt(element.getEnclosingDefinition());
return new W11InterfaceReferenceEditManager((W11Description) description, ((IFileEditorInput) input).getFile());
}
}
return null;
}
public static ComponentReferenceEditManager getMessageReferenceEditManager(IASDObject asdObject) {
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
if (page.getActiveEditor().getAdapter(W11MessageReferenceEditManager.class) != null) {
return (ComponentReferenceEditManager) page.getActiveEditor().getAdapter(W11MessageReferenceEditManager.class);
}
else {
IEditorInput input = page.getActiveEditor().getEditorInput();
if (input instanceof IFileEditorInput && asdObject instanceof W11MessageReference) {
WSDLElement element = (WSDLElement) ((W11MessageReference) asdObject).getTarget();
IDescription description = (IDescription) WSDLAdapterFactoryHelper.getInstance().adapt(element.getEnclosingDefinition());
return new W11MessageReferenceEditManager((W11Description) description, ((IFileEditorInput) input).getFile());
}
}
return null;
}
public static ComponentReferenceEditManager getXSDElementReferenceEditManager(IASDObject asdObject) {
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
if (page.getActiveEditor().getAdapter(XSDElementReferenceEditManager.class) != null) {
return (ComponentReferenceEditManager) page.getActiveEditor().getAdapter(XSDElementReferenceEditManager.class);
}
else {
IEditorInput input = page.getActiveEditor().getEditorInput();
if (input instanceof IFileEditorInput && asdObject instanceof W11ParameterForPart) {
WSDLElement element = (WSDLElement) ((W11ParameterForPart) asdObject).getTarget();
IDescription description = (IDescription) WSDLAdapterFactoryHelper.getInstance().adapt(element.getEnclosingDefinition());
return new WSDLXSDElementReferenceEditManager(((IFileEditorInput) input).getFile(), null, description);
}
}
return null;
}
public static ComponentReferenceEditManager getXSDTypeReferenceEditManager(IASDObject asdObject) {
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
if (page.getActiveEditor().getAdapter(XSDTypeReferenceEditManager.class) != null) {
return (ComponentReferenceEditManager) page.getActiveEditor().getAdapter(XSDTypeReferenceEditManager.class);
}
else {
IEditorInput input = page.getActiveEditor().getEditorInput();
if (input instanceof IFileEditorInput && asdObject instanceof IParameter && asdObject instanceof WSDLBaseAdapter) {
WSDLElement element = (WSDLElement) ((WSDLBaseAdapter) asdObject).getTarget();
IDescription description = (IDescription) WSDLAdapterFactoryHelper.getInstance().adapt(element.getEnclosingDefinition());
return new WSDLXSDTypeReferenceEditManager(((IFileEditorInput) input).getFile(), null, description);
}
}
return null;
}
}