/*
* -----------------------------------------------------------------------
* 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.wizards;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PlatformUI;
/**
* @author keith
*
*/
public class NewLangModuleAction implements IWorkbenchWindowActionDelegate
{
private IWorkbenchWindow window;
private ISelection selection;
/**
* The constructor.
*/
public NewLangModuleAction()
{
}
/**
* The action has been activated. The argument of the
* method represents the 'real' action sitting
* in the workbench UI.
* @see IWorkbenchWindowActionDelegate#run
*/
public void run(IAction action)
{
// Create the wizard
if (window == null)
{
window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
}
NewLangModuleWizard wizard = new NewLangModuleWizard();
WizardDialog wizardDialog =
new WizardDialog(window.getWorkbench().getActiveWorkbenchWindow().getShell(),
wizard);
if (selection != null && selection instanceof IStructuredSelection)
{
// Object o = ((IStructuredSelection)selection).getFirstElement();
// if (o instanceof IResource)
// {
// IContainer container = null;
// if (o instanceof IContainer)
// {
// container = (IContainer)o;
// }
// else
// {
// container = ((IResource)o).getParent();
// }
// }
wizard.init(window.getWorkbench(), (IStructuredSelection)selection);
}
wizardDialog.setMinimumPageSize(400, 300);
wizardDialog.open();
}
/**
* Selection in the workbench has been changed. We
* can change the state of the 'real' action here
* if we want, but this can only happen after
* the delegate has been created.
* @see IWorkbenchWindowActionDelegate#selectionChanged
*/
public void selectionChanged(IAction action, ISelection selection)
{
this.selection = selection;
}
/**
* We can use this method to dispose of any system
* resources we previously allocated.
* @see IWorkbenchWindowActionDelegate#dispose
*/
public void dispose()
{
}
/**
* We will cache window object in order to
* be able to provide parent shell for the message dialog.
* @see IWorkbenchWindowActionDelegate#init
*/
public void init(IWorkbenchWindow window)
{
this.window = window;
}
}