/* * ----------------------------------------------------------------------- * File: $HeadURL$ * Revision $LastChangedRevision$ * Last Modified: $LastChangedDate$ * Last Change by: $LastChangedBy$ * ----------------------------------------------------------------------- * Copyright (C) 2007 Keith Stribley <devel@thanlwinsoft.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA * ----------------------------------------------------------------------- */ /** * */ package org.thanlwinsoft.languagetest.eclipse; import org.eclipse.jface.action.IMenuCreator; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.swt.SWT; import org.eclipse.swt.events.HelpListener; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.ui.IPerspectiveDescriptor; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction; import org.thanlwinsoft.languagetest.MessageUtil; /** * @author keith * */ public class ShowViewAction implements IWorkbenchAction { private String viewId = null; private String label = ""; private boolean enabled = true; private String perspectiveId = null; public ShowViewAction(String viewId, String label) { this.viewId = viewId; this.label = label; } public ShowViewAction(String perspectiveId, String viewId, String label) { this.viewId = viewId; this.label = label; this.perspectiveId = perspectiveId; } /* (non-Javadoc) * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose() */ public void dispose() { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener) */ public void addPropertyChangeListener(IPropertyChangeListener listener) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#getAccelerator() */ public int getAccelerator() { // TODO Auto-generated method stub return 0; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#getActionDefinitionId() */ public String getActionDefinitionId() { return null; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#getDescription() */ public String getDescription() { return MessageUtil.getString("ShowView"); } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#getDisabledImageDescriptor() */ public ImageDescriptor getDisabledImageDescriptor() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#getHelpListener() */ public HelpListener getHelpListener() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#getHoverImageDescriptor() */ public ImageDescriptor getHoverImageDescriptor() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#getId() */ public String getId() { return viewId; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#getImageDescriptor() */ public ImageDescriptor getImageDescriptor() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#getMenuCreator() */ public IMenuCreator getMenuCreator() { return new IMenuCreator() { private Menu menu = null; private MenuItem item = null; public void dispose() { if (item != null) item.dispose(); item = null; } public Menu getMenu(Control parent) { if (menu == null || item == null) { menu = new Menu(parent); item = new MenuItem(menu, SWT.PUSH); item.setText(getText()); } return menu; } public Menu getMenu(Menu parent) { if (menu == null || item == null) { item = new MenuItem(parent, SWT.PUSH); item.setText(getText()); } return menu; }}; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#getStyle() */ public int getStyle() { return 0; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#getText() */ public String getText() { return label; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#getToolTipText() */ public String getToolTipText() { return label; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#isChecked() */ public boolean isChecked() { return false; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#isEnabled() */ public boolean isEnabled() { return enabled; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#isHandled() */ public boolean isHandled() { return true; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener) */ public void removePropertyChangeListener(IPropertyChangeListener listener) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#run() */ public void run() { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); try { if (perspectiveId != null && page.getPerspective().getId().equals(perspectiveId) == false) { IPerspectiveDescriptor pd = PlatformUI.getWorkbench().getPerspectiveRegistry() .findPerspectiveWithId(perspectiveId); if (pd != null) page.setPerspective(pd); } page.showView(viewId); } catch (PartInitException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#runWithEvent(org.eclipse.swt.widgets.Event) */ public void runWithEvent(Event event) { run(); } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setAccelerator(int) */ public void setAccelerator(int keycode) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setActionDefinitionId(java.lang.String) */ public void setActionDefinitionId(String id) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setChecked(boolean) */ public void setChecked(boolean checked) { } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setDescription(java.lang.String) */ public void setDescription(String text) { this.label = text; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setDisabledImageDescriptor(org.eclipse.jface.resource.ImageDescriptor) */ public void setDisabledImageDescriptor(ImageDescriptor newImage) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setEnabled(boolean) */ public void setEnabled(boolean enabled) { this.enabled = enabled; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setHelpListener(org.eclipse.swt.events.HelpListener) */ public void setHelpListener(HelpListener listener) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setHoverImageDescriptor(org.eclipse.jface.resource.ImageDescriptor) */ public void setHoverImageDescriptor(ImageDescriptor newImage) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setId(java.lang.String) */ public void setId(String id) { this.viewId = id; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setImageDescriptor(org.eclipse.jface.resource.ImageDescriptor) */ public void setImageDescriptor(ImageDescriptor newImage) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setMenuCreator(org.eclipse.jface.action.IMenuCreator) */ public void setMenuCreator(IMenuCreator creator) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setText(java.lang.String) */ public void setText(String text) { this.label = text; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#setToolTipText(java.lang.String) */ public void setToolTipText(String text) { } }