/******************************************************************************* * Copyright (c) 2009, 2010 Progress Software Corporation. * 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 ******************************************************************************/ package org.fusesource.tools.messaging.cnf.actions; import org.eclipse.core.resources.IFile; import org.eclipse.jface.action.IAction; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IObjectActionDelegate; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.ide.IDE; import org.fusesource.tools.messaging.cnf.model.BaseGroupComponent; import org.fusesource.tools.messaging.cnf.model.ListenerComponent; import org.fusesource.tools.messaging.editors.MessageEditorInput; public class OpenMessagesEditorAction implements IObjectActionDelegate { private ListenerComponent selectedNode; public OpenMessagesEditorAction() { } public void OpenMessagesEditor(ListenerComponent listenerComp) throws PartInitException { if (listenerComp == null) { return; } IFile fileToOpen = ((BaseGroupComponent) listenerComp.getParent()).getFile(); if (fileToOpen == null) { return; } MessageEditorInput editorInput = new MessageEditorInput(fileToOpen, listenerComp.getListener()); IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IDE.openEditor(page, editorInput, "org.fusesource.tools.messaging.editors.MessagesEditor"); } public void setActivePart(IAction arg0, IWorkbenchPart arg1) { } public void run(IAction arg0) { try { OpenMessagesEditor(selectedNode); } catch (PartInitException e) { MessageDialog.openError(Display.getDefault().getActiveShell(), "Failed to open messages Editor", e .getMessage()); e.printStackTrace(); } } public void selectionChanged(IAction arg0, ISelection arg1) { Object firstElement = ((StructuredSelection) arg1).getFirstElement(); if ((firstElement instanceof ListenerComponent)) { selectedNode = (ListenerComponent) firstElement; } } }