From e34c4afc9ab8ca9ffe3f1fa062a1c8b65d8dfe14 Mon Sep 17 00:00:00 2001 From: David Inglis Date: Fri, 21 Nov 2003 15:06:17 +0000 Subject: [PATCH] fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=46486 --- build/org.eclipse.cdt.make.ui/plugin.xml | 81 +++++++++++++++++-- .../make/ui/actions/AbstractTargetAction.java | 22 ++++- 2 files changed, 94 insertions(+), 9 deletions(-) diff --git a/build/org.eclipse.cdt.make.ui/plugin.xml b/build/org.eclipse.cdt.make.ui/plugin.xml index 09eae320c28..cf411450d64 100644 --- a/build/org.eclipse.cdt.make.ui/plugin.xml +++ b/build/org.eclipse.cdt.make.ui/plugin.xml @@ -102,20 +102,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -287,7 +356,9 @@ - + diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/actions/AbstractTargetAction.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/actions/AbstractTargetAction.java index b6803f1fa0c..e154c6716ba 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/actions/AbstractTargetAction.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/actions/AbstractTargetAction.java @@ -9,9 +9,11 @@ package org.eclipse.cdt.make.ui.actions; import org.eclipse.cdt.core.model.ICContainer; +import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.cdt.make.internal.ui.MakeUIPlugin; import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IResource; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; @@ -54,10 +56,22 @@ public abstract class AbstractTargetAction boolean enabled = false; if (selection instanceof IStructuredSelection) { IStructuredSelection sel = (IStructuredSelection) selection; - if (sel.getFirstElement() instanceof ICContainer) { - fContainer = (IContainer) ((ICContainer) sel.getFirstElement()).getUnderlyingResource(); - } else if (sel.getFirstElement() instanceof IContainer) { - fContainer = (IContainer) sel.getFirstElement(); + Object obj = sel.getFirstElement(); + if (obj instanceof ICElement) { + if ( obj instanceof ICContainer) { + fContainer = (IContainer) ((ICContainer) obj).getUnderlyingResource(); + } else { + obj = ((ICElement)obj).getResource(); + if ( obj != null) { + fContainer = ((IResource)obj).getParent(); + } + } + } else if (obj instanceof IResource) { + if (obj instanceof IContainer) { + fContainer = (IContainer) obj; + } else { + fContainer = ((IResource)obj).getParent(); + } } else { fContainer = null; }