Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Tanasenko2014-09-15 21:02:14 +0000
committerAnton Tanasenko2014-09-15 21:02:14 +0000
commit945074588a36c4a967c4af26d4f87d0c9cbff136 (patch)
tree07ca391b981141d7ccfe624d01a3b8efac9c2f6d /org.eclipse.m2e.core.ui
parente27e54f824d395d4a0995cacfae0c90ff48c8627 (diff)
downloadm2e-core-945074588a36c4a967c4af26d4f87d0c9cbff136.tar.gz
m2e-core-945074588a36c4a967c4af26d4f87d0c9cbff136.tar.xz
m2e-core-945074588a36c4a967c4af26d4f87d0c9cbff136.zip
444084 Fix performance of NestedProjectsComposite checkBox selections
Followup for menus as well as MavenImportWizard Change-Id: Ib5910efc31d0166ff191526ca9c3c143adf24378 Signed-off-by: Anton Tanasenko <atg.sleepless@gmail.com>
Diffstat (limited to 'org.eclipse.m2e.core.ui')
-rw-r--r--org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/NestedProjectsComposite.java8
-rw-r--r--org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java15
2 files changed, 16 insertions, 7 deletions
diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/NestedProjectsComposite.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/NestedProjectsComposite.java
index e7b4b6e5..c52eea4d 100644
--- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/NestedProjectsComposite.java
+++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/NestedProjectsComposite.java
@@ -452,14 +452,14 @@ public class NestedProjectsComposite extends Composite implements IMenuListener
private final Action selectTree = new Action(Messages.UpdateDepenciesDialog_selectTree) {
public void run() {
- codebaseViewer.setSubtreeChecked(getSelection(), true);
+ setSubtreeChecked(getSelection(), true);
updateSelectedProjects();
}
};
private final Action deselectTree = new Action(Messages.UpdateDepenciesDialog_deselectTree) {
public void run() {
- codebaseViewer.setSubtreeChecked(getSelection(), false);
+ setSubtreeChecked(getSelection(), false);
updateSelectedProjects();
}
};
@@ -495,9 +495,7 @@ public class NestedProjectsComposite extends Composite implements IMenuListener
projects = getMavenCodebases();
codebaseViewer.setInput(projects);
codebaseViewer.expandAll();
- for(IProject project : projects) {
- codebaseViewer.setSubtreeChecked(project, false);
- }
+ codebaseViewer.setCheckedElements(new Object[0]);
updateSelectedProjects();
}
diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java
index aa619039..3588d116 100644
--- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java
+++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java
@@ -561,12 +561,23 @@ public class MavenImportWizardPage extends AbstractMavenWizardPage {
workingSetName.setEnabled(enabled);
}
+ private void setSubtreeChecked(Object obj, boolean checked) {
+ // CheckBoxTreeViewer#setSubtreeChecked is severely inefficient
+ projectTreeViewer.setChecked(obj, checked);
+ Object[] children = ((ITreeContentProvider) projectTreeViewer.getContentProvider()).getChildren(obj);
+ if(children != null) {
+ for(Object child : children) {
+ setSubtreeChecked(child, checked);
+ }
+ }
+ }
+
void setAllChecked(boolean state) {
@SuppressWarnings("unchecked")
List<MavenProjectInfo> input = (List<MavenProjectInfo>) projectTreeViewer.getInput();
if(input != null) {
for(MavenProjectInfo mavenProjectInfo : input) {
- projectTreeViewer.setSubtreeChecked(mavenProjectInfo, state);
+ setSubtreeChecked(mavenProjectInfo, state);
}
updateCheckedState();
}
@@ -736,7 +747,7 @@ public class MavenImportWizardPage extends AbstractMavenWizardPage {
void setProjectSubtreeChecked(boolean checked) {
ITreeSelection selection = (ITreeSelection) projectTreeViewer.getSelection();
- projectTreeViewer.setSubtreeChecked(selection.getFirstElement(), checked);
+ setSubtreeChecked(selection.getFirstElement(), checked);
updateCheckedState();
setPageComplete();
}

Back to the top