From ff251c7c565cf775fd6b821646747c225afbc5d7 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Thu, 29 May 2008 23:21:58 +0000 Subject: [PATCH] [234721] [dnd] When dragging a file from windows file explorer into RSE, a refresh error is given. --- .../ui/view/SystemDNDTransferRunnable.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemDNDTransferRunnable.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemDNDTransferRunnable.java index 9c294790a9c..ce14ce4c3c0 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemDNDTransferRunnable.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemDNDTransferRunnable.java @@ -21,6 +21,7 @@ * David McKnight (IBM) - [224313] [api] Create RSE Events for MOVE and COPY holding both source and destination fields * David McKnight (IBM) - [228587] [dnd] NPE From Refresh on Copy/Paste * David McKnight (IBM) - [232889] Dragging and dropping files from a remote unix system to a local project does not work + * David McKnight (IBM) - [234721] [dnd] When dragging a file from windows file explorer into RSE, a refresh error is given. *******************************************************************************/ package org.eclipse.rse.internal.ui.view; @@ -58,7 +59,6 @@ import org.eclipse.rse.ui.RSEUIPlugin; import org.eclipse.rse.ui.SystemBasePlugin; import org.eclipse.rse.ui.internal.model.SystemScratchpad; import org.eclipse.rse.ui.messages.SystemMessageDialog; -import org.eclipse.rse.ui.view.ISystemViewElementAdapter; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.progress.UIJob; @@ -664,13 +664,23 @@ public class SystemDNDTransferRunnable extends WorkspaceJob { doRefresh = true; } - ISystemViewElementAdapter adapter = (ISystemViewElementAdapter)((IAdaptable)src).getAdapter(ISystemViewElementAdapter.class); + ISystemDragDropAdapter adapter = null; + if (src instanceof IAdaptable) { + adapter = (ISystemDragDropAdapter)((IAdaptable)src).getAdapter(ISystemDragDropAdapter.class); + } + else { + adapter = (ISystemDragDropAdapter)Platform.getAdapterManager().getAdapter(src, ISystemDragDropAdapter.class); + } + if (adapter != null){ oldNames[t] = adapter.getAbsoluteName(src); } else if (src instanceof IResource){ // could be an eclipse resource oldNames[t] = ((IResource)src).getFullPath().toOSString(); } + else if (src instanceof String){ // local os resource + oldNames[t] = (String)src; + } else { oldNames[t] = ""; // source resource unknown //$NON-NLS-1$ }