diff options
Diffstat (limited to 'build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/AddTargetAction.java')
-rw-r--r-- | build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/AddTargetAction.java | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/AddTargetAction.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/AddTargetAction.java index ca40fc7967e..db72b23bc80 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/AddTargetAction.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/AddTargetAction.java @@ -5,26 +5,51 @@ package org.eclipse.cdt.make.ui.views; * All Rights Reserved. */ +import java.util.List; + import org.eclipse.cdt.make.internal.ui.MakeUIImages; +import org.eclipse.cdt.make.ui.dialogs.BuildTargetDialog; +import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IResource; +import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.actions.SelectionListenerAction; - -public class AddTargetAction extends SelectionListenerAction { +public class AddTargetAction extends SelectionListenerAction { Shell shell; IResource resource; - public AddTargetAction (Shell shell) { + 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()) { + BuildTargetDialog dialog = new BuildTargetDialog(shell, (IContainer) getStructuredSelection().getFirstElement()); + dialog.setOpenMode(BuildTargetDialog.OPEN_MODE_CREATE_NEW); + dialog.open(); + } + } + + 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; + } + } |