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 (-9 / +60 lines)
Lines 37-42 Link Here
37
import org.eclipse.swt.events.SelectionEvent;
37
import org.eclipse.swt.events.SelectionEvent;
38
import org.eclipse.swt.events.TraverseEvent;
38
import org.eclipse.swt.events.TraverseEvent;
39
import org.eclipse.swt.events.TraverseListener;
39
import org.eclipse.swt.events.TraverseListener;
40
import org.eclipse.swt.graphics.Image;
40
import org.eclipse.swt.layout.GridData;
41
import org.eclipse.swt.layout.GridData;
41
import org.eclipse.swt.layout.GridLayout;
42
import org.eclipse.swt.layout.GridLayout;
42
import org.eclipse.swt.widgets.Button;
43
import org.eclipse.swt.widgets.Button;
Lines 45-50 Link Here
45
import org.eclipse.swt.widgets.FileDialog;
46
import org.eclipse.swt.widgets.FileDialog;
46
import org.eclipse.swt.widgets.Label;
47
import org.eclipse.swt.widgets.Label;
47
import org.eclipse.swt.widgets.Text;
48
import org.eclipse.swt.widgets.Text;
49
import org.eclipse.swt.widgets.Tree;
50
import org.eclipse.swt.widgets.TreeColumn;
48
51
49
import org.eclipse.core.runtime.CoreException;
52
import org.eclipse.core.runtime.CoreException;
50
import org.eclipse.core.runtime.IPath;
53
import org.eclipse.core.runtime.IPath;
Lines 71-78 Link Here
71
import org.eclipse.jface.viewers.CheckStateChangedEvent;
74
import org.eclipse.jface.viewers.CheckStateChangedEvent;
72
import org.eclipse.jface.viewers.CheckboxTreeViewer;
75
import org.eclipse.jface.viewers.CheckboxTreeViewer;
73
import org.eclipse.jface.viewers.ICheckStateListener;
76
import org.eclipse.jface.viewers.ICheckStateListener;
77
import org.eclipse.jface.viewers.ILabelProviderListener;
74
import org.eclipse.jface.viewers.ITreeContentProvider;
78
import org.eclipse.jface.viewers.ITreeContentProvider;
75
import org.eclipse.jface.viewers.LabelProvider;
79
import org.eclipse.jface.viewers.ITableLabelProvider;
76
import org.eclipse.jface.viewers.Viewer;
80
import org.eclipse.jface.viewers.Viewer;
77
import org.eclipse.jface.viewers.ViewerComparator;
81
import org.eclipse.jface.viewers.ViewerComparator;
78
import org.eclipse.jface.wizard.WizardPage;
82
import org.eclipse.jface.wizard.WizardPage;
Lines 118-123 Link Here
118
		String projectName;
122
		String projectName;
119
123
120
		Object parent;
124
		Object parent;
125
		
126
		String parentName;
121
127
122
		int level;
128
		int level;
123
129
Lines 156-161 Link Here
156
			IProjectDescription newDescription = null;
162
			IProjectDescription newDescription = null;
157
			try {
163
			try {
158
				if (projectArchiveFile != null) {
164
				if (projectArchiveFile != null) {
165
					String label = structureProvider.getFullPath(projectArchiveFile);
166
					int sepIndex = label.lastIndexOf('/');
167
					if (sepIndex == -1) {
168
						// there is no parent, so we will just use the empty string
169
						parentName = ""; //$NON-NLS-1$
170
					} else {
171
						parentName = label.substring(0, sepIndex);
172
					}
173
					
159
					InputStream stream = structureProvider
174
					InputStream stream = structureProvider
160
							.getContents(projectArchiveFile);
175
							.getContents(projectArchiveFile);
161
					if (stream != null) {
176
					if (stream != null) {
Lines 165-170 Link Here
165
						stream.close();
180
						stream.close();
166
					}
181
					}
167
				} else {
182
				} else {
183
					parentName = projectSystemFile.getParent();
184
					
168
					IPath path = new Path(projectSystemFile.getPath());
185
					IPath path = new Path(projectSystemFile.getPath());
169
					// if the file is in the default location, use the directory
186
					// if the file is in the default location, use the directory
170
					// name as the project name
187
					// name as the project name
Lines 219-224 Link Here
219
		public String getProjectName() {
236
		public String getProjectName() {
220
			return projectName;
237
			return projectName;
221
		}
238
		}
239
240
		/**
241
		 * Gets the name of the project's containing parent.
242
		 * 
243
		 * @return the project's container
244
		 */
245
		public String getParentName() {
246
			return parentName;
247
		}
222
	}
248
	}
223
249
224
	// dialog store id constants
250
	// dialog store id constants
Lines 354-359 Link Here
354
				| GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
380
				| GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
355
		projectsList.getControl().setLayoutData(listData);
381
		projectsList.getControl().setLayoutData(listData);
356
382
383
		Tree projectsTree = projectsList.getTree();
384
		// create a column for the project and its parent container
385
		TreeColumn projectColumn = new TreeColumn(projectsTree, SWT.LEAD);
386
		projectColumn.setWidth(150);
387
		projectColumn.setText(DataTransferMessages.WizardProjectsImportPage_ProjectNameColumnHeader);
388
		
389
		TreeColumn parentColumn = new TreeColumn(projectsTree, SWT.LEAD);
390
		parentColumn.setWidth(150);
391
		parentColumn.setText(DataTransferMessages.WizardProjectsImportPage_ProjectParentColumnHeader);
392
357
		projectsList.setContentProvider(new ITreeContentProvider() {
393
		projectsList.setContentProvider(new ITreeContentProvider() {
358
394
359
			/*
395
			/*
Lines 413-426 Link Here
413
449
414
		});
450
		});
415
451
416
		projectsList.setLabelProvider(new LabelProvider() {
452
		projectsList.setLabelProvider(new ITableLabelProvider() {
417
			/*
453
			public Image getColumnImage(Object element, int columnIndex) {
418
			 * (non-Javadoc)
454
				return null;
419
			 * 
455
			}
420
			 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
456
421
			 */
457
			public String getColumnText(Object element, int columnIndex) {
422
			public String getText(Object element) {
458
				if (columnIndex == 0) {
423
				return ((ProjectRecord) element).getProjectName();
459
					return ((ProjectRecord) element).getProjectName();
460
				}
461
				return ((ProjectRecord) element).getParentName();
462
			}
463
464
			public void addListener(ILabelProviderListener listener) {
465
			}
466
467
			public void dispose() {
468
			}
469
470
			public boolean isLabelProperty(Object element, String property) {
471
				return false;
472
			}
473
474
			public void removeListener(ILabelProviderListener listener) {
424
			}
475
			}
425
		});
476
		});
426
477

Return to bug 81895