/* * Copyright (c) 2010-2012 Research In Motion Limited. All rights reserved. * * This program and the accompanying materials are made available * under the terms of the Eclipse Public License, Version 1.0, * which accompanies this distribution and is available at * * http://www.eclipse.org/legal/epl-v10.html * */ package net.rim.ejde.internal.ui.views; import net.rim.ejde.internal.core.RimIDEUtil; import net.rim.ide.core.IDEError; import net.rim.ide.core.VarContentsHelper.MenuItem; import org.apache.log4j.Logger; import org.eclipse.jface.dialogs.MessageDialog; public class MenuAction extends BasicAction { private static final Logger log = Logger.getLogger( MenuAction.class ); private MenuItem _menuItem; public MenuAction( BasicDebugView view, String text, int image, String hint ) { super( view, text, image, hint ); } public MenuAction( BasicDebugView view, MenuItem menuItem ) { super( view, RimIDEUtil.convertAddressMark( menuItem.text ), 0, EMPTY_STRING, menuItem.isCheck ? AS_CHECK_BOX : AS_UNSPECIFIED ); _menuItem = menuItem; setEnabled( _menuItem.enabled ); setChecked( _menuItem.isSelected ); } public MenuItem getMenuItem() { return _menuItem; } public void setMenuItem( MenuItem item ) { _menuItem = item; setText( _menuItem.text ); setEnabled( _menuItem.enabled ); } public void run() { if( _menuItem == null ) return; try { _menuItem.action.invoked(); } catch( IDEError e ) { log.error( e.getMessage(), e ); MessageDialog.openError( _view.getSite().getShell(), _view.getTitle(), e.toString() ); } } }