Bug 578534 - "Expand all" is disabled in target preference page
Change-Id: I85b9814d6f8d9dc809466181beea169b8053cb8c
Signed-off-by: Vikas Chandra <Vikas.Chandra@in.ibm.com>
Reviewed-on: https://git.eclipse.org/r/c/pde/eclipse.pde.ui/+/190290
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/target/TargetDefinitionContentPage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/target/TargetDefinitionContentPage.java
index 0c40a8f..1f5ea9f 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/target/TargetDefinitionContentPage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/target/TargetDefinitionContentPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2016 IBM Corporation and others.
+ * Copyright (c) 2009, 2022 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -21,6 +21,8 @@
import java.util.*;
import java.util.List;
import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.jobs.IJobChangeEvent;
+import org.eclipse.core.runtime.jobs.JobChangeAdapter;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.debug.ui.StringVariableSelectionDialog;
@@ -233,7 +235,7 @@
super.targetChanged(definition);
if (definition != null) {
// When If the page isn't open yet, try running a UI job so the dialog has time to finish opening
- new UIJob(PDEUIMessages.TargetDefinitionContentPage_0) {
+ UIJob resolveJob = new UIJob(PDEUIMessages.TargetDefinitionContentPage_0) {
@Override
public IStatus runInUIThread(IProgressMonitor monitor) {
ITargetDefinition definition = getTargetDefinition();
@@ -261,7 +263,24 @@
}
return Status.OK_STATUS;
}
- }.schedule();
+ };
+ resolveJob.schedule();
+ resolveJob.addJobChangeListener(new JobChangeAdapter() {
+ @Override
+ public void done(IJobChangeEvent event) {
+ UIJob job = new UIJob("") { //$NON-NLS-1$
+ @Override
+ public IStatus runInUIThread(IProgressMonitor monitor) {
+ if (fLocationTree != null) {
+ fLocationTree.setExpandCollapseState(true);
+ }
+ return Status.OK_STATUS;
+ }
+ };
+ job.setSystem(true);
+ job.schedule();
+ }
+ });
String name = definition.getName();
if (name == null) {
name = EMPTY_STRING;