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());
}
});