blob: a80a1fa95c13ad77729861c12d65aaf05dd721cd [file] [log] [blame]
package org.eclipse.cdt.make.ui.views;
/*
* (c) Copyright QNX Software Systems Ltd. 2002.
* All Rights Reserved.
*/
import java.util.List;
import org.eclipse.cdt.make.internal.ui.MakeUIImages;
import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
import org.eclipse.cdt.make.ui.dialogs.MakeTargetDialog;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.actions.SelectionListenerAction;
public class AddTargetAction extends SelectionListenerAction {
Shell shell;
IResource resource;
public AddTargetAction(Shell shell) {
super("Add Build Target");
this.shell = shell;
setToolTipText("Add Build Target");
MakeUIImages.setImageDescriptors(this, "tool16", MakeUIImages.IMG_TOOLS_MAKE_TARGET_ADD);
}
public void run() {
if (canAdd()) {
try {
MakeTargetDialog dialog = new MakeTargetDialog(shell, (IContainer) getStructuredSelection().getFirstElement());
dialog.open();
} catch (CoreException e) {
MakeUIPlugin.errorDialog(shell, "Internal Error", "", e);
}
}
}
protected boolean updateSelection(IStructuredSelection selection) {
return super.updateSelection(selection) && canAdd();
}
private boolean canAdd() {
List elements = getStructuredSelection().toList();
if (elements.size() > 1 || elements.size() < 1) {
return false;
}
if (elements.get(0) instanceof IContainer) {
return true;
}
return false;
}
}