/******************************************************************************* * Copyright (c) 2007, 2014 compeople AG 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: * compeople AG - initial API and implementation *******************************************************************************/ package org.eclipse.riena.sample.app.client.rcpmail; import org.eclipse.jface.action.Action; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; public class OpenViewAction extends Action { private final IWorkbenchWindow window; private int instanceNum = 0; private final String viewId; public OpenViewAction(final IWorkbenchWindow window, final String label, final String viewId) { this.window = window; this.viewId = viewId; setText(label); // The id is used to refer to the action in a menu or toolbar setId(ICommandIds.CMD_OPEN); // Associate the action with a pre-defined command, to allow key bindings. setActionDefinitionId(ICommandIds.CMD_OPEN); setImageDescriptor(org.eclipse.riena.sample.app.client.rcpmail.Activator .getImageDescriptor("/icons/sample2.gif")); //$NON-NLS-1$ } @Override public void run() { if (window != null) { try { window.getActivePage().showView(viewId, Integer.toString(instanceNum++), IWorkbenchPage.VIEW_ACTIVATE); } catch (final PartInitException e) { MessageDialog.openError(window.getShell(), "Error", "Error opening view:" + e.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ } } } }