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 81895 | Differences between
and this patch

Collapse All | Expand All

(-)Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java (+18 lines)
Lines 145-150 Link Here
145
			WizardProjectsImportPage wpip = getNewWizard();
145
			WizardProjectsImportPage wpip = getNewWizard();
146
			HashSet projects = new HashSet();
146
			HashSet projects = new HashSet();
147
			projects.add("HelloWorld");
147
			projects.add("HelloWorld");
148
			HashSet projectParents = new HashSet();
149
			projectParents.add("HelloWorld");
148
150
149
			wpip.getProjectFromDirectoryRadio().setSelection((false)); // We
151
			wpip.getProjectFromDirectoryRadio().setSelection((false)); // We
150
																		// want
152
																		// want
Lines 156-167 Link Here
156
158
157
			ProjectRecord[] selectedProjects = wpip.getValidProjects();
159
			ProjectRecord[] selectedProjects = wpip.getValidProjects();
158
			ArrayList projectNames = new ArrayList();
160
			ArrayList projectNames = new ArrayList();
161
			ArrayList parentNames = new ArrayList();
159
			for (int i = 0; i < selectedProjects.length; i++) {
162
			for (int i = 0; i < selectedProjects.length; i++) {
160
				projectNames.add(selectedProjects[i].getProjectName());
163
				projectNames.add(selectedProjects[i].getProjectName());
164
				parentNames.add(selectedProjects[i].getParentName());
161
			}
165
			}
162
166
163
			assertTrue("Not all projects were found correctly in zip",
167
			assertTrue("Not all projects were found correctly in zip",
164
					projectNames.containsAll(projects));
168
					projectNames.containsAll(projects));
169
			assertTrue("Not all project parent names were extracted correctly from zip",
170
					parentNames.containsAll(projectParents));
165
		} catch (IOException e) {
171
		} catch (IOException e) {
166
			fail(e.toString());
172
			fail(e.toString());
167
		}
173
		}
Lines 175-180 Link Here
175
			WizardProjectsImportPage wpip = getNewWizard();
181
			WizardProjectsImportPage wpip = getNewWizard();
176
			HashSet projects = new HashSet();
182
			HashSet projects = new HashSet();
177
			projects.add("HelloWorld");
183
			projects.add("HelloWorld");
184
			HashSet projectParents = new HashSet();
185
			projectParents.add("HelloWorld");
178
186
179
			wpip.getProjectFromDirectoryRadio().setSelection((false)); // We
187
			wpip.getProjectFromDirectoryRadio().setSelection((false)); // We
180
																		// want
188
																		// want
Lines 185-197 Link Here
185
			wpip.updateProjectsList(archiveFile.getPath());
193
			wpip.updateProjectsList(archiveFile.getPath());
186
194
187
			ProjectRecord[] selectedProjects = wpip.getValidProjects();
195
			ProjectRecord[] selectedProjects = wpip.getValidProjects();
196
			ArrayList parentNames = new ArrayList();
188
			ArrayList projectNames = new ArrayList();
197
			ArrayList projectNames = new ArrayList();
189
			for (int i = 0; i < selectedProjects.length; i++) {
198
			for (int i = 0; i < selectedProjects.length; i++) {
190
				projectNames.add(selectedProjects[i].getProjectName());
199
				projectNames.add(selectedProjects[i].getProjectName());
200
				parentNames.add(selectedProjects[i].getParentName());
191
			}
201
			}
192
202
193
			assertTrue("Not all projects were found correctly in tar",
203
			assertTrue("Not all projects were found correctly in tar",
194
					projectNames.containsAll(projects));
204
					projectNames.containsAll(projects));
205
			assertTrue("Not all project parent names were extracted correctly from tar",
206
					parentNames.containsAll(projectParents));
195
		} catch (IOException e) {
207
		} catch (IOException e) {
196
			fail(e.toString());
208
			fail(e.toString());
197
		}
209
		}
Lines 204-221 Link Here
204
			WizardProjectsImportPage wpip = getNewWizard();
216
			WizardProjectsImportPage wpip = getNewWizard();
205
			HashSet projects = new HashSet();
217
			HashSet projects = new HashSet();
206
			projects.add("HelloWorld");
218
			projects.add("HelloWorld");
219
			HashSet projectParents = new HashSet();
220
			projectParents.add(wsPath.toOSString());
207
			// We're importing a directory
221
			// We're importing a directory
208
			wpip.getProjectFromDirectoryRadio().setSelection((true));
222
			wpip.getProjectFromDirectoryRadio().setSelection((true));
209
			wpip.updateProjectsList(wsPath.toOSString());
223
			wpip.updateProjectsList(wsPath.toOSString());
210
224
211
			ProjectRecord[] selectedProjects = wpip.getValidProjects();
225
			ProjectRecord[] selectedProjects = wpip.getValidProjects();
212
			ArrayList projectNames = new ArrayList();
226
			ArrayList projectNames = new ArrayList();
227
			ArrayList parentNames = new ArrayList();
213
			for (int i = 0; i < selectedProjects.length; i++) {
228
			for (int i = 0; i < selectedProjects.length; i++) {
214
				projectNames.add(selectedProjects[i].getProjectName());
229
				projectNames.add(selectedProjects[i].getProjectName());
230
				parentNames.add(selectedProjects[i].getParentName());
215
			}
231
			}
216
232
217
			assertTrue("Not all projects were found correctly in directory",
233
			assertTrue("Not all projects were found correctly in directory",
218
					projectNames.containsAll(projects));
234
					projectNames.containsAll(projects));
235
			assertTrue("Not all project parents were extracted correctly from directory",
236
					parentNames.containsAll(projectParents));
219
		} catch (IOException e) {
237
		} catch (IOException e) {
220
			fail(e.toString());
238
			fail(e.toString());
221
		}
239
		}
(-)src/org/eclipse/ui/internal/wizards/datatransfer/messages.properties (+2 lines)
Lines 81-86 Link Here
81
WizardProjectsImportPage_ArchiveSelectTitle=Select &archive file:
81
WizardProjectsImportPage_ArchiveSelectTitle=Select &archive file:
82
WizardProjectsImportPage_SelectArchiveDialogTitle=Select archive containing the projects to import
82
WizardProjectsImportPage_SelectArchiveDialogTitle=Select archive containing the projects to import
83
WizardProjectsImportPage_ProjectsListTitle=&Projects:
83
WizardProjectsImportPage_ProjectsListTitle=&Projects:
84
WizardProjectsImportPage_ProjectNameColumnHeader=Project Name
85
WizardProjectsImportPage_ProjectParentColumnHeader=Parent Container
84
WizardProjectsImportPage_ProcessingMessage=Processing results
86
WizardProjectsImportPage_ProcessingMessage=Processing results
85
WizardProjectsImportPage_SelectDialogTitle=Select root directory of the projects to import
87
WizardProjectsImportPage_SelectDialogTitle=Select root directory of the projects to import
86
WizardProjectsImportPage_SearchingMessage=Searching for projects
88
WizardProjectsImportPage_SearchingMessage=Searching for projects
(-)src/org/eclipse/ui/internal/wizards/datatransfer/DataTransferMessages.java (+2 lines)
Lines 79-84 Link Here
79
	public static String WizardExternalProjectImportPage_description;
79
	public static String WizardExternalProjectImportPage_description;
80
	public static String WizardExternalProjectImportPage_notAProject;
80
	public static String WizardExternalProjectImportPage_notAProject;
81
	public static String WizardProjectsImportPage_ProjectsListTitle;
81
	public static String WizardProjectsImportPage_ProjectsListTitle;
82
	public static String WizardProjectsImportPage_ProjectNameColumnHeader;
83
	public static String WizardProjectsImportPage_ProjectParentColumnHeader;
82
	public static String WizardProjectsImportPage_ProcessingMessage;
84
	public static String WizardProjectsImportPage_ProcessingMessage;
83
	public static String WizardProjectsImportPage_SelectDialogTitle;
85
	public static String WizardProjectsImportPage_SelectDialogTitle;
84
	public static String WizardProjectsImportPage_SearchingMessage;
86
	public static String WizardProjectsImportPage_SearchingMessage;
(-)src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java (-34 / +81 lines)
Lines 29-51 Link Here
29
import java.util.zip.ZipException;
29
import java.util.zip.ZipException;
30
import java.util.zip.ZipFile;
30
import java.util.zip.ZipFile;
31
31
32
import org.eclipse.osgi.util.NLS;
32
import org.eclipse.core.resources.IProject;
33
33
import org.eclipse.core.resources.IProjectDescription;
34
import org.eclipse.swt.SWT;
34
import org.eclipse.core.resources.IResource;
35
import org.eclipse.swt.events.FocusAdapter;
35
import org.eclipse.core.resources.IWorkspace;
36
import org.eclipse.swt.events.SelectionAdapter;
36
import org.eclipse.core.resources.ResourcesPlugin;
37
import org.eclipse.swt.events.SelectionEvent;
38
import org.eclipse.swt.events.TraverseEvent;
39
import org.eclipse.swt.events.TraverseListener;
40
import org.eclipse.swt.layout.GridData;
41
import org.eclipse.swt.layout.GridLayout;
42
import org.eclipse.swt.widgets.Button;
43
import org.eclipse.swt.widgets.Composite;
44
import org.eclipse.swt.widgets.DirectoryDialog;
45
import org.eclipse.swt.widgets.FileDialog;
46
import org.eclipse.swt.widgets.Label;
47
import org.eclipse.swt.widgets.Text;
48
49
import org.eclipse.core.runtime.CoreException;
37
import org.eclipse.core.runtime.CoreException;
50
import org.eclipse.core.runtime.IPath;
38
import org.eclipse.core.runtime.IPath;
51
import org.eclipse.core.runtime.IProgressMonitor;
39
import org.eclipse.core.runtime.IProgressMonitor;
Lines 55-67 Link Here
55
import org.eclipse.core.runtime.Platform;
43
import org.eclipse.core.runtime.Platform;
56
import org.eclipse.core.runtime.Status;
44
import org.eclipse.core.runtime.Status;
57
import org.eclipse.core.runtime.SubProgressMonitor;
45
import org.eclipse.core.runtime.SubProgressMonitor;
58
59
import org.eclipse.core.resources.IProject;
60
import org.eclipse.core.resources.IProjectDescription;
61
import org.eclipse.core.resources.IResource;
62
import org.eclipse.core.resources.IWorkspace;
63
import org.eclipse.core.resources.ResourcesPlugin;
64
65
import org.eclipse.jface.dialogs.Dialog;
46
import org.eclipse.jface.dialogs.Dialog;
66
import org.eclipse.jface.dialogs.ErrorDialog;
47
import org.eclipse.jface.dialogs.ErrorDialog;
67
import org.eclipse.jface.dialogs.IDialogConstants;
48
import org.eclipse.jface.dialogs.IDialogConstants;
Lines 71-82 Link Here
71
import org.eclipse.jface.viewers.CheckStateChangedEvent;
52
import org.eclipse.jface.viewers.CheckStateChangedEvent;
72
import org.eclipse.jface.viewers.CheckboxTreeViewer;
53
import org.eclipse.jface.viewers.CheckboxTreeViewer;
73
import org.eclipse.jface.viewers.ICheckStateListener;
54
import org.eclipse.jface.viewers.ICheckStateListener;
55
import org.eclipse.jface.viewers.ILabelProviderListener;
56
import org.eclipse.jface.viewers.ITableLabelProvider;
74
import org.eclipse.jface.viewers.ITreeContentProvider;
57
import org.eclipse.jface.viewers.ITreeContentProvider;
75
import org.eclipse.jface.viewers.LabelProvider;
76
import org.eclipse.jface.viewers.Viewer;
58
import org.eclipse.jface.viewers.Viewer;
77
import org.eclipse.jface.viewers.ViewerComparator;
59
import org.eclipse.jface.viewers.ViewerComparator;
78
import org.eclipse.jface.wizard.WizardPage;
60
import org.eclipse.jface.wizard.WizardPage;
79
61
import org.eclipse.osgi.util.NLS;
62
import org.eclipse.swt.SWT;
63
import org.eclipse.swt.events.FocusAdapter;
64
import org.eclipse.swt.events.SelectionAdapter;
65
import org.eclipse.swt.events.SelectionEvent;
66
import org.eclipse.swt.events.TraverseEvent;
67
import org.eclipse.swt.events.TraverseListener;
68
import org.eclipse.swt.graphics.Image;
69
import org.eclipse.swt.layout.GridData;
70
import org.eclipse.swt.layout.GridLayout;
71
import org.eclipse.swt.widgets.Button;
72
import org.eclipse.swt.widgets.Composite;
73
import org.eclipse.swt.widgets.DirectoryDialog;
74
import org.eclipse.swt.widgets.FileDialog;
75
import org.eclipse.swt.widgets.Label;
76
import org.eclipse.swt.widgets.Text;
77
import org.eclipse.swt.widgets.Tree;
78
import org.eclipse.swt.widgets.TreeColumn;
80
import org.eclipse.ui.actions.WorkspaceModifyOperation;
79
import org.eclipse.ui.actions.WorkspaceModifyOperation;
81
import org.eclipse.ui.dialogs.IOverwriteQuery;
80
import org.eclipse.ui.dialogs.IOverwriteQuery;
82
import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
81
import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
Lines 118-123 Link Here
118
		String projectName;
117
		String projectName;
119
118
120
		Object parent;
119
		Object parent;
120
		
121
		String parentName;
121
122
122
		int level;
123
		int level;
123
124
Lines 156-161 Link Here
156
			IProjectDescription newDescription = null;
157
			IProjectDescription newDescription = null;
157
			try {
158
			try {
158
				if (projectArchiveFile != null) {
159
				if (projectArchiveFile != null) {
160
					String label = structureProvider.getFullPath(projectArchiveFile);
161
					int sepIndex = label.lastIndexOf('/');
162
					if (sepIndex == -1) {
163
						// there is no parent, so we will just use the empty string
164
						parentName = ""; //$NON-NLS-1$
165
					} else {
166
						parentName = label.substring(0, sepIndex);
167
					}
168
					
159
					InputStream stream = structureProvider
169
					InputStream stream = structureProvider
160
							.getContents(projectArchiveFile);
170
							.getContents(projectArchiveFile);
161
					if (stream != null) {
171
					if (stream != null) {
Lines 165-170 Link Here
165
						stream.close();
175
						stream.close();
166
					}
176
					}
167
				} else {
177
				} else {
178
					parentName = projectSystemFile.getParent();
179
					
168
					IPath path = new Path(projectSystemFile.getPath());
180
					IPath path = new Path(projectSystemFile.getPath());
169
					// if the file is in the default location, use the directory
181
					// if the file is in the default location, use the directory
170
					// name as the project name
182
					// name as the project name
Lines 219-224 Link Here
219
		public String getProjectName() {
231
		public String getProjectName() {
220
			return projectName;
232
			return projectName;
221
		}
233
		}
234
235
		/**
236
		 * Gets the name of the project's containing parent.
237
		 * 
238
		 * @return the project's container
239
		 */
240
		public String getParentName() {
241
			return parentName;
242
		}
222
	}
243
	}
223
244
224
	// dialog store id constants
245
	// dialog store id constants
Lines 354-359 Link Here
354
				| GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
375
				| GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
355
		projectsList.getControl().setLayoutData(listData);
376
		projectsList.getControl().setLayoutData(listData);
356
377
378
		Tree projectsTree = projectsList.getTree();
379
		projectsTree.setHeaderVisible(true);
380
		// create a column for the project and its parent container
381
		TreeColumn projectColumn = new TreeColumn(projectsTree, SWT.LEAD);
382
		projectColumn.setWidth(150);
383
		projectColumn.setText(DataTransferMessages.WizardProjectsImportPage_ProjectNameColumnHeader);
384
		
385
		TreeColumn parentColumn = new TreeColumn(projectsTree, SWT.LEAD);
386
		parentColumn.setWidth(150);
387
		parentColumn.setText(DataTransferMessages.WizardProjectsImportPage_ProjectParentColumnHeader);
388
357
		projectsList.setContentProvider(new ITreeContentProvider() {
389
		projectsList.setContentProvider(new ITreeContentProvider() {
358
390
359
			/*
391
			/*
Lines 413-426 Link Here
413
445
414
		});
446
		});
415
447
416
		projectsList.setLabelProvider(new LabelProvider() {
448
		projectsList.setLabelProvider(new ITableLabelProvider() {
417
			/*
449
			public Image getColumnImage(Object element, int columnIndex) {
418
			 * (non-Javadoc)
450
				return null;
419
			 * 
451
			}
420
			 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
452
421
			 */
453
			public String getColumnText(Object element, int columnIndex) {
422
			public String getText(Object element) {
454
				if (columnIndex == 0) {
423
				return ((ProjectRecord) element).getProjectName();
455
					return ((ProjectRecord) element).getProjectName();
456
				}
457
				return ((ProjectRecord) element).getParentName();
458
			}
459
460
			public void addListener(ILabelProviderListener listener) {
461
			}
462
463
			public void dispose() {
464
			}
465
466
			public boolean isLabelProperty(Object element, String property) {
467
				return false;
468
			}
469
470
			public void removeListener(ILabelProviderListener listener) {
424
			}
471
			}
425
		});
472
		});
426
473

Return to bug 81895