Bug 121057 - [jres] 'Execution Environments' preference page not updated
after JRE addition

Change-Id: I2a9ddda6ca82e1318b79faa7afa7c35db52f7161
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/ExecutionEnvironmentsPreferencePage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/ExecutionEnvironmentsPreferencePage.java
index 0741e9f..dd20120 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/ExecutionEnvironmentsPreferencePage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/ExecutionEnvironmentsPreferencePage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2012 IBM Corporation and others.
+ * Copyright (c) 2005, 2015 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -102,6 +102,41 @@
 	public void init(IWorkbench workbench) {
 	}
 	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.DialogPage(boolean)
+	 */
+	@Override
+	public void setVisible(boolean visible) {
+		if (visible) {
+			if (fProfilesViewer.getSelection() != null && !fProfilesViewer.getSelection().isEmpty()) {
+				handleEESelectionAndJREViewer(fProfilesViewer.getStructuredSelection());
+			}
+		}
+		super.setVisible(visible);
+
+	}
+
+	/*
+	 * Set the JREs for selected Execution Environment
+	 */
+	private void handleEESelectionAndJREViewer(IStructuredSelection selection) {
+		IExecutionEnvironment env = (IExecutionEnvironment) (selection).getFirstElement();
+		fJREsViewer.setInput(env);
+		String description = env.getDescription();
+		if (description == null) {
+			description = ""; //$NON-NLS-1$
+		}
+		fDescription.setText(description);
+		IVMInstall jre = (IVMInstall) fDefaults.get(env);
+		if (jre != null) {
+			fJREsViewer.setCheckedElements(new Object[] { jre });
+		} else {
+			fJREsViewer.setCheckedElements(new Object[0]);
+		}
+	}
+
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
 	 */
@@ -188,19 +223,7 @@
 					
 		fProfilesViewer.addSelectionChangedListener(new ISelectionChangedListener() {
 			public void selectionChanged(SelectionChangedEvent event) {
-				IExecutionEnvironment env = (IExecutionEnvironment) ((IStructuredSelection)event.getSelection()).getFirstElement();
-				fJREsViewer.setInput(env);
-				String description = env.getDescription();
-				if (description == null) {
-					description = ""; //$NON-NLS-1$
-				}
-				fDescription.setText(description);
-				IVMInstall jre = (IVMInstall) fDefaults.get(env);
-				if (jre != null) {
-					fJREsViewer.setCheckedElements(new Object[]{jre});
-				} else {
-					fJREsViewer.setCheckedElements(new Object[0]);
-				}
+				handleEESelectionAndJREViewer((IStructuredSelection) event.getSelection());
 			}
 		});