|
Lines 11-16
Link Here
|
| 11 |
package org.eclipse.pde.internal.ui.preferences; |
11 |
package org.eclipse.pde.internal.ui.preferences; |
| 12 |
|
12 |
|
| 13 |
import java.lang.reflect.InvocationTargetException; |
13 |
import java.lang.reflect.InvocationTargetException; |
|
|
14 |
import java.util.Dictionary; |
| 15 |
import java.util.Hashtable; |
| 14 |
import java.util.Locale; |
16 |
import java.util.Locale; |
| 15 |
import java.util.Set; |
17 |
import java.util.Set; |
| 16 |
import java.util.StringTokenizer; |
18 |
import java.util.StringTokenizer; |
|
Lines 23-30
Link Here
|
| 23 |
import org.eclipse.jdt.launching.JavaRuntime; |
25 |
import org.eclipse.jdt.launching.JavaRuntime; |
| 24 |
import org.eclipse.jface.dialogs.Dialog; |
26 |
import org.eclipse.jface.dialogs.Dialog; |
| 25 |
import org.eclipse.jface.operation.IRunnableWithProgress; |
27 |
import org.eclipse.jface.operation.IRunnableWithProgress; |
|
|
28 |
import org.eclipse.pde.core.IModel; |
| 29 |
import org.eclipse.pde.core.IModelProviderEvent; |
| 30 |
import org.eclipse.pde.internal.core.ExternalModelManager; |
| 26 |
import org.eclipse.pde.internal.core.IEnvironmentVariables; |
31 |
import org.eclipse.pde.internal.core.IEnvironmentVariables; |
|
|
32 |
import org.eclipse.pde.internal.core.ModelProviderEvent; |
| 27 |
import org.eclipse.pde.internal.core.PDECore; |
33 |
import org.eclipse.pde.internal.core.PDECore; |
|
|
34 |
import org.eclipse.pde.internal.core.PDEState; |
| 28 |
import org.eclipse.pde.internal.ui.IHelpContextIds; |
35 |
import org.eclipse.pde.internal.ui.IHelpContextIds; |
| 29 |
import org.eclipse.pde.internal.ui.PDEPlugin; |
36 |
import org.eclipse.pde.internal.ui.PDEPlugin; |
| 30 |
import org.eclipse.pde.internal.ui.PDEUIMessages; |
37 |
import org.eclipse.pde.internal.ui.PDEUIMessages; |
|
Lines 217-227
Link Here
|
| 217 |
} |
224 |
} |
| 218 |
|
225 |
|
| 219 |
public boolean performOk() { |
226 |
public boolean performOk() { |
|
|
227 |
if (checkChanged()) |
| 228 |
updateState(); |
| 220 |
applyTargetEnvironmentGroup(); |
229 |
applyTargetEnvironmentGroup(); |
| 221 |
applyJREGroup(); |
230 |
applyJREGroup(); |
| 222 |
return true; |
231 |
return true; |
| 223 |
} |
232 |
} |
| 224 |
|
233 |
|
|
|
234 |
private boolean checkChanged() { |
| 235 |
String locale = fNLCombo.getText(); |
| 236 |
int dash = locale.indexOf("-"); //$NON-NLS-1$ |
| 237 |
if (dash != -1) |
| 238 |
locale = locale.substring(0, dash); |
| 239 |
locale = locale.trim(); |
| 240 |
return !( |
| 241 |
preferences.getString(OS).equals(fOSCombo.getText()) && |
| 242 |
preferences.getString(WS).equals(fWSCombo.getText()) && |
| 243 |
preferences.getString(NL).equals(locale) && |
| 244 |
preferences.getString(ARCH).equals(fArchCombo.getText())); |
| 245 |
} |
| 246 |
|
| 247 |
private void updateState() { |
| 248 |
Dictionary props = new Hashtable(6); |
| 249 |
props.put("osgi.os", fOSCombo.getText()); //$NON-NLS-1$ |
| 250 |
props.put ("osgi.ws", fWSCombo.getText()); //$NON-NLS-1$ |
| 251 |
props.put ("osgi.nl", fNLCombo.getText()); //$NON-NLS-1$ |
| 252 |
props.put ("osgi.arch", fArchCombo.getText()); //$NON-NLS-1$ |
| 253 |
PDEState state = PDECore.getDefault().getModelManager().getState(); |
| 254 |
state.setPlatformProperties(props); |
| 255 |
state.resolveState(false); |
| 256 |
ExternalModelManager registry = PDECore.getDefault().getExternalModelManager(); |
| 257 |
registry.fireModelProviderEvent(new ModelProviderEvent(registry, IModelProviderEvent.TARGET_CHANGED, |
| 258 |
new IModel[0], new IModel[0], new IModel[0])); |
| 259 |
} |
| 260 |
|
| 225 |
private void applyJREGroup() { |
261 |
private void applyJREGroup() { |
| 226 |
try { |
262 |
try { |
| 227 |
if (!fDefaultJRE.equals(VMHelper.getDefaultVMInstallName())) |
263 |
if (!fDefaultJRE.equals(VMHelper.getDefaultVMInstallName())) |