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;