diff options
| author | Brian de Alwis | 2013-05-09 18:14:39 +0000 |
|---|---|---|
| committer | Gerrit Code Review @ Eclipse.org | 2013-10-24 15:40:20 +0000 |
| commit | 5ea1ac97127f926f3e91e1dac1a4540900982db4 (patch) | |
| tree | cb5237af1d8359f248d3f87d2d90addfa2001d3d | |
| parent | dd1eb23f7a495613ae8b04a910b496900b0eca3b (diff) | |
| download | eclipse.platform.ui-5ea1ac97127f926f3e91e1dac1a4540900982db4.tar.gz eclipse.platform.ui-5ea1ac97127f926f3e91e1dac1a4540900982db4.tar.xz eclipse.platform.ui-5ea1ac97127f926f3e91e1dac1a4540900982db4.zip | |
Bug 407418 - "Import Existing Project" wizard should allow filtering of already-installed projects
3 files changed, 41 insertions, 0 deletions
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/DataTransferMessages.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/DataTransferMessages.java index 99645df8c0b..2ddbe84412f 100644 --- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/DataTransferMessages.java +++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/DataTransferMessages.java @@ -102,6 +102,7 @@ public class DataTransferMessages extends NLS { public static String WizardProjectsImportPage_projectsInWorkspace; public static String WizardProjectsImportPage_noProjectsToImport; public static String WizardProjectsImportPage_projectLabel; + public static String WizardProjectsImportPage_hideConflictingProjects; // --- Export Wizards --- public static String DataTransfer_export; diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java index 75f6dc78da9..00980d737a4 100644 --- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java +++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java @@ -65,6 +65,7 @@ import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerComparator; +import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.SWT; import org.eclipse.swt.events.FocusAdapter; @@ -286,6 +287,25 @@ public class WizardProjectsImportPage extends WizardDataTransferPage { } } + /** + * A filter to remove conflicting projects + */ + class ConflictingProjectFilter extends ViewerFilter { + + /* + * (non-Javadoc) + * + * @see + * org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers + * .Viewer, java.lang.Object, java.lang.Object) + */ + public boolean select(Viewer viewer, Object parentElement, + Object element) { + return !((ProjectRecord) element).hasConflicts; + } + + } + // dialog store id constants private final static String STORE_DIRECTORIES = "WizardProjectsImportPage.STORE_DIRECTORIES";//$NON-NLS-1$ private final static String STORE_ARCHIVES = "WizardProjectsImportPage.STORE_ARCHIVES";//$NON-NLS-1$ @@ -351,6 +371,10 @@ public class WizardProjectsImportPage extends WizardDataTransferPage { private IStructuredSelection currentSelection; + private Button hideConflictingProjects; + + private ConflictingProjectFilter conflictingProjectsFilter = new ConflictingProjectFilter(); + /** * Creates a new project creation wizard page. * @@ -447,6 +471,21 @@ public class WizardProjectsImportPage extends WizardDataTransferPage { copyFiles = copyCheckbox.getSelection(); } }); + + hideConflictingProjects = new Button(optionsGroup, SWT.CHECK); + hideConflictingProjects + .setText(DataTransferMessages.WizardProjectsImportPage_hideConflictingProjects); + hideConflictingProjects.setLayoutData(new GridData( + GridData.FILL_HORIZONTAL)); + hideConflictingProjects.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + projectsList.removeFilter(conflictingProjectsFilter); + if (hideConflictingProjects.getSelection()) { + projectsList.addFilter(conflictingProjectsFilter); + } + } + }); + Dialog.applyDialogFont(hideConflictingProjects); } /** diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/messages.properties b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/messages.properties index 16c29a91e91..f5a324793a3 100644 --- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/messages.properties +++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/messages.properties @@ -103,6 +103,7 @@ WizardProjectsImportPage_SearchForNestedProjects=Searc&h for nested projects WizardProjectsImportPage_CopyProjectsIntoWorkspace=&Copy projects into workspace # The first parameter is the project folder name and the second is the name from the project description WizardProjectsImportPage_projectLabel={0} ({1}) +WizardProjectsImportPage_hideConflictingProjects=Hide conflicting projects # --- Export Wizards --- DataTransfer_export = Export |
