Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 301187 | Differences between
and this patch

Collapse All | Expand All

(-)ui/org/eclipse/jdt/internal/ui/navigator/JavaDropAdapterAssistant.java (-1 / +30 lines)
Lines 29-36 Link Here
29
29
30
import org.eclipse.jface.viewers.ISelection;
30
import org.eclipse.jface.viewers.ISelection;
31
import org.eclipse.jface.viewers.IStructuredSelection;
31
import org.eclipse.jface.viewers.IStructuredSelection;
32
import org.eclipse.jface.window.Window;
32
33
33
import org.eclipse.ui.actions.CopyFilesAndFoldersOperation;
34
import org.eclipse.ui.actions.CopyFilesAndFoldersOperation;
35
import org.eclipse.ui.ide.dialogs.ImportTypeDialog;
34
import org.eclipse.ui.navigator.CommonDropAdapter;
36
import org.eclipse.ui.navigator.CommonDropAdapter;
35
import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
37
import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
36
import org.eclipse.ui.views.navigator.LocalSelectionTransfer;
38
import org.eclipse.ui.views.navigator.LocalSelectionTransfer;
Lines 91-98 Link Here
91
					return Status.CANCEL_STATUS;
93
					return Status.CANCEL_STATUS;
92
94
93
				getShell().forceActive();
95
				getShell().forceActive();
96
				CopyFilesAndFoldersOperation operation = new CopyFilesAndFoldersOperation(getShell());
94
				final Object data= FileTransfer.getInstance().nativeToJava(dropAdapter.getCurrentTransfer());
97
				final Object data= FileTransfer.getInstance().nativeToJava(dropAdapter.getCurrentTransfer());
95
				new CopyFilesAndFoldersOperation(getShell()).copyFiles((String[]) data, targetContainer);
98
				String[] names= (String[]) data;
99
				// if the target is a group and all sources are files, then
100
				// automatically create links
101
				int type;
102
				ImportTypeDialog dialog = new ImportTypeDialog(getShell(), dropAdapter.getCurrentOperation(), names, targetContainer);
103
				dialog.setResource(targetContainer);
104
				if (dialog.open() == Window.OK)
105
					type = dialog.getSelection();
106
				else
107
					type = ImportTypeDialog.IMPORT_NONE;
108
				switch (type) {
109
				case ImportTypeDialog.IMPORT_COPY:
110
					operation.copyFiles(names, targetContainer);
111
					break;
112
				case ImportTypeDialog.IMPORT_VIRTUAL_FOLDERS_AND_LINKS:
113
					if (dialog.getVariable() != null)
114
						operation.setRelativeVariable(dialog.getVariable());
115
					operation.createGroupAndLinks(names, targetContainer);
116
					break;
117
				case ImportTypeDialog.IMPORT_LINK:
118
					if (dialog.getVariable() != null)
119
						operation.setRelativeVariable(dialog.getVariable());
120
					operation.linkFiles(names, targetContainer);
121
					break;
122
				case ImportTypeDialog.IMPORT_NONE:
123
					break;
124
				}
96
			} catch (JavaModelException e) {
125
			} catch (JavaModelException e) {
97
				String title = PackagesMessages.DropAdapter_errorTitle;
126
				String title = PackagesMessages.DropAdapter_errorTitle;
98
				String message = PackagesMessages.DropAdapter_errorMessage;
127
				String message = PackagesMessages.DropAdapter_errorMessage;
(-)ui/org/eclipse/jdt/internal/ui/packageview/FileTransferDropAdapter.java (-2 / +31 lines)
Lines 23-30 Link Here
23
23
24
import org.eclipse.jface.util.TransferDropTargetListener;
24
import org.eclipse.jface.util.TransferDropTargetListener;
25
import org.eclipse.jface.viewers.StructuredViewer;
25
import org.eclipse.jface.viewers.StructuredViewer;
26
import org.eclipse.jface.window.Window;
26
27
27
import org.eclipse.ui.actions.CopyFilesAndFoldersOperation;
28
import org.eclipse.ui.actions.CopyFilesAndFoldersOperation;
29
import org.eclipse.ui.ide.dialogs.ImportTypeDialog;
28
30
29
import org.eclipse.jdt.core.IJavaElement;
31
import org.eclipse.jdt.core.IJavaElement;
30
import org.eclipse.jdt.core.IJavaProject;
32
import org.eclipse.jdt.core.IJavaProject;
Lines 109-115 Link Here
109
	 */
111
	 */
110
	public boolean performDrop(final Object data) {
112
	public boolean performDrop(final Object data) {
111
		try {
113
		try {
112
			int operation= getCurrentOperation();
114
			final int operation= getCurrentOperation();
113
115
114
			if (data == null || !(data instanceof String[]) || operation != DND.DROP_COPY)
116
			if (data == null || !(data instanceof String[]) || operation != DND.DROP_COPY)
115
				return false;
117
				return false;
Lines 124-130 Link Here
124
			Display.getCurrent().asyncExec(new Runnable() {
126
			Display.getCurrent().asyncExec(new Runnable() {
125
				public void run() {
127
				public void run() {
126
					getShell().forceActive();
128
					getShell().forceActive();
127
					new CopyFilesAndFoldersOperation(getShell()).copyFiles((String[]) data, target);
129
					CopyFilesAndFoldersOperation copyOperation = new CopyFilesAndFoldersOperation(getShell());
130
					String[] names= (String[]) data;
131
					// if the target is a group and all sources are files, then
132
					// automatically create links
133
					int type;
134
					ImportTypeDialog dialog = new ImportTypeDialog(getShell(), operation, names, target);
135
					dialog.setResource(target);
136
					if (dialog.open() == Window.OK)
137
						type = dialog.getSelection();
138
					else
139
						type = ImportTypeDialog.IMPORT_NONE;
140
					switch (type) {
141
					case ImportTypeDialog.IMPORT_COPY:
142
						copyOperation.copyFiles(names, target);
143
						break;
144
					case ImportTypeDialog.IMPORT_VIRTUAL_FOLDERS_AND_LINKS:
145
						if (dialog.getVariable() != null)
146
							copyOperation.setRelativeVariable(dialog.getVariable());
147
						copyOperation.createGroupAndLinks(names, target);
148
						break;
149
					case ImportTypeDialog.IMPORT_LINK:
150
						if (dialog.getVariable() != null)
151
							copyOperation.setRelativeVariable(dialog.getVariable());
152
						copyOperation.linkFiles(names, target);
153
						break;
154
					case ImportTypeDialog.IMPORT_NONE:
155
						break;
156
					}				
128
				}
157
				}
129
			});
158
			});
130
159

Return to bug 301187