From 46d41a307c2f768ec91591a94ece1d73ee04cd41 Mon Sep 17 00:00:00 2001 From: Jens Baumgart Date: Fri, 16 Apr 2010 16:43:57 +0200 Subject: [PATCH] Fix bug in Import Git repository wizard The select all and unselect all button now become disabled if the project list is empty. Bug: 309008 Signed-off-by: Jens Baumgart --- .../ui/internal/clone/GitProjectsImportPage.java | 34 ++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitProjectsImportPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitProjectsImportPage.java index 8c18bf4a..e6134a41 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitProjectsImportPage.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitProjectsImportPage.java @@ -60,6 +60,7 @@ import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; @@ -209,6 +210,10 @@ public class GitProjectsImportPage extends WizardPage { private Button shareCheckBox; + private Button selectAll; + + private Button deselectAll; + private boolean share; /** @@ -303,6 +308,20 @@ public class GitProjectsImportPage extends WizardPage { return super.isElementVisible(viewer, element); } + @Override + public void setPattern(String patternString) { + super.setPattern(patternString); + // TODO: is there a better way to react on changes in the tree? + // disable select all button when tree becomes empty due to + // filtering + Display.getDefault().asyncExec(new Runnable() { + public void run() { + enableSelectAllButtons(); + } + }); + + } + }; FilteredTree filteredTree = new FilteredTree(listComposite, SWT.CHECK @@ -391,7 +410,7 @@ public class GitProjectsImportPage extends WizardPage { buttonsComposite.setLayoutData(new GridData( GridData.VERTICAL_ALIGN_BEGINNING)); - Button selectAll = new Button(buttonsComposite, SWT.PUSH); + selectAll = new Button(buttonsComposite, SWT.PUSH); selectAll.setText(UIText.WizardProjectsImportPage_selectAll); selectAll.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { @@ -407,7 +426,7 @@ public class GitProjectsImportPage extends WizardPage { Dialog.applyDialogFont(selectAll); setButtonLayoutData(selectAll); - Button deselectAll = new Button(buttonsComposite, SWT.PUSH); + deselectAll = new Button(buttonsComposite, SWT.PUSH); deselectAll.setText(UIText.WizardProjectsImportPage_deselectAll); deselectAll.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { @@ -534,9 +553,20 @@ public class GitProjectsImportPage extends WizardPage { } else { setMessage(UIText.WizardProjectsImportPage_ImportProjectsDescription); } + enableSelectAllButtons(); setPageComplete(checkedItems.size() > 0); } + private void enableSelectAllButtons() { + if (projectsList.getTree().getItemCount()>0){ + selectAll.setEnabled(true); + deselectAll.setEnabled(true); + } else { + selectAll.setEnabled(false); + deselectAll.setEnabled(false); + } + } + /** * Collect the list of .project files that are under directory into files. * -- 2.11.4.GIT