package org.craftyourmod.mineclipse.ui.actions;
import org.craftyourmod.mineclipse.core.filemanager.BinaryFile;
import org.craftyourmod.mineclipse.ui.Activator;
import org.craftyourmod.mineclipse.ui.Messages;
import org.craftyourmod.mineclipse.ui.views.FileManagerView;
import org.craftyourmod.mineclipse.ui.wizards.AddBinaryWizard;
import org.craftyourmod.mineclipse.ui.wizards.AddSourceWizard;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.ui.actions.ActionContext;
import org.eclipse.wb.swt.ResourceManager;
public class AddElementAction extends Action {
private final FileManagerView view;
public AddElementAction(final FileManagerView view) {
setToolTipText(Messages.AddElement_Tooltip);
setText(Messages.AddElementAction_Text);
setImageDescriptor(ResourceManager.getPluginImageDescriptor(
"org.craftyourmod.mineclipse.ui", "icons/newfile_wiz.gif")); //$NON-NLS-1$ //$NON-NLS-2$
this.view = view;
}
@Override
public void run() {
Object s = view.getSelection().getPaths()[0].getLastSegment();
if (s.equals("BINS") || (s instanceof BinaryFile)) { //$NON-NLS-1$
WizardDialog wiz = new WizardDialog(Activator.getDefault()
.getWorkbench().getActiveWorkbenchWindow().getShell(),
new AddBinaryWizard());
wiz.setBlockOnOpen(true);
wiz.open();
} else {
WizardDialog wiz = new WizardDialog(Activator.getDefault()
.getWorkbench().getActiveWorkbenchWindow().getShell(),
new AddSourceWizard());
wiz.setBlockOnOpen(true);
wiz.open();
}
}
public boolean isAvailable(final ActionContext context) {
if (context.getSelection() instanceof IStructuredSelection) {
IStructuredSelection s = (IStructuredSelection) context
.getSelection();/*
* if (s.equals("BINS") || (s instanceof
* BinaryFile) || (s instanceof SourceFile)
* || s.equals("SRCS"))
*/
return true;
}
return context != null;
}
}