mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-31 12:55:40 +02:00
Fix Common Navigator drop to project
This commit is contained in:
parent
490f5ddb11
commit
8aa62a205d
2 changed files with 10 additions and 4 deletions
|
@ -1554,6 +1554,7 @@
|
||||||
<or>
|
<or>
|
||||||
<instanceof value="org.eclipse.cdt.core.model.ISourceReference"/>
|
<instanceof value="org.eclipse.cdt.core.model.ISourceReference"/>
|
||||||
<instanceof value="org.eclipse.cdt.core.model.ICContainer"/>
|
<instanceof value="org.eclipse.cdt.core.model.ICContainer"/>
|
||||||
|
<instanceof value="org.eclipse.cdt.core.model.ICProject"/>
|
||||||
</or>
|
</or>
|
||||||
</possibleDropTargets>
|
</possibleDropTargets>
|
||||||
</dropAssistant>
|
</dropAssistant>
|
||||||
|
|
|
@ -12,6 +12,7 @@ package org.eclipse.cdt.internal.ui.navigator;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -43,6 +44,7 @@ import org.eclipse.cdt.core.model.CModelException;
|
||||||
import org.eclipse.cdt.core.model.CoreModel;
|
import org.eclipse.cdt.core.model.CoreModel;
|
||||||
import org.eclipse.cdt.core.model.ICContainer;
|
import org.eclipse.cdt.core.model.ICContainer;
|
||||||
import org.eclipse.cdt.core.model.ICElement;
|
import org.eclipse.cdt.core.model.ICElement;
|
||||||
|
import org.eclipse.cdt.core.model.ICProject;
|
||||||
import org.eclipse.cdt.core.model.ISourceReference;
|
import org.eclipse.cdt.core.model.ISourceReference;
|
||||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||||
|
|
||||||
|
@ -74,7 +76,7 @@ public class CNavigatorDropAdapterAssistant extends CommonDropAdapterAssistant {
|
||||||
DropTargetEvent event, Object target) {
|
DropTargetEvent event, Object target) {
|
||||||
|
|
||||||
// special case: drop in C source folder
|
// special case: drop in C source folder
|
||||||
if (target instanceof ICContainer) {
|
if (target instanceof ICContainer || target instanceof ICProject) {
|
||||||
final Object data= event.data;
|
final Object data= event.data;
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
return Status.CANCEL_STATUS;
|
return Status.CANCEL_STATUS;
|
||||||
|
@ -150,7 +152,7 @@ public class CNavigatorDropAdapterAssistant extends CommonDropAdapterAssistant {
|
||||||
TransferData transferType) {
|
TransferData transferType) {
|
||||||
|
|
||||||
// special case: drop in C source folder
|
// special case: drop in C source folder
|
||||||
if (target instanceof ICContainer) {
|
if (target instanceof ICContainer || target instanceof ICProject) {
|
||||||
IContainer destination= getDestination(target);
|
IContainer destination= getDestination(target);
|
||||||
if (LocalSelectionTransfer.getTransfer().isSupportedType(transferType)) {
|
if (LocalSelectionTransfer.getTransfer().isSupportedType(transferType)) {
|
||||||
IResource[] selectedResources= getSelectedResources();
|
IResource[] selectedResources= getSelectedResources();
|
||||||
|
@ -224,9 +226,12 @@ public class CNavigatorDropAdapterAssistant extends CommonDropAdapterAssistant {
|
||||||
ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
|
ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
|
||||||
ICElement[] cElements= getCElements(selection);
|
ICElement[] cElements= getCElements(selection);
|
||||||
|
|
||||||
if (!canMoveElements(cElements))
|
if (Arrays.asList(cElements).contains(target)) {
|
||||||
return Status.CANCEL_STATUS;
|
return Status.CANCEL_STATUS;
|
||||||
|
}
|
||||||
|
if (!canMoveElements(cElements)) {
|
||||||
|
return Status.CANCEL_STATUS;
|
||||||
|
}
|
||||||
if (target instanceof ISourceReference) {
|
if (target instanceof ISourceReference) {
|
||||||
return Status.OK_STATUS;
|
return Status.OK_STATUS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue