blob: 683e0780c63b6dccf8bbf2df3c52becc37ad6cf1 [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.actions;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.wst.wsdl.Definition;
import org.eclipse.wst.wsdl.ui.internal.Messages;
import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
import org.eclipse.wst.wsdl.ui.internal.asd.ASDEditorPlugin;
import org.eclipse.wst.wsdl.ui.internal.asd.actions.BaseSelectionAction;
import org.eclipse.wst.wsdl.ui.internal.util.OpenOnSelectionHelper;
public class OpenInNewEditor extends BaseSelectionAction
{
public static final String ID = "org.eclipse.wst.wsdl.ui.OpenInNewEditor"; //$NON-NLS-1$
public OpenInNewEditor(IWorkbenchPart part)
{
super(part);
setText(Messages._UI_ACTION_OPEN_IN_NEW_EDITOR); //$NON-NLS-1$
setId(ID);
setImageDescriptor(ASDEditorPlugin.getImageDescriptorFromPlugin("wsdl_file_obj.gif")); //$NON-NLS-1$
}
protected boolean calculateEnabled()
{
return true;
}
public void run()
{
if (getSelectedObjects().size() > 0)
{
Object o = getSelectedObjects().get(0);
// should make this generic and be able to get the owner from a facade object
if (o instanceof WSDLBaseAdapter)
{
WSDLBaseAdapter baseAdapter = (WSDLBaseAdapter)o;
IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
Object object = editorPart.getAdapter(Definition.class);
if (object instanceof Definition)
{
EObject eObject = (EObject)baseAdapter.getTarget();
OpenOnSelectionHelper openHelper = new OpenOnSelectionHelper((Definition)object);
openHelper.openEditor(eObject);
}
}
}
}
}