Bug 552783 - [Moka] When there is no server specified in preference the
wrong preference page is open

Change-Id: If8b818d72e1f2ea5a7a2315033c854e752218fe6
Signed-off-by: Pauline DEVILLE <pauline.deville@cea.fr>
diff --git a/plugins/org.eclipse.papyrus.moka.kernel.debug/src/org/eclipse/papyrus/moka/debug/service/DebugService.java b/plugins/org.eclipse.papyrus.moka.kernel.debug/src/org/eclipse/papyrus/moka/debug/service/DebugService.java
index b8e55ee..944defe 100644
--- a/plugins/org.eclipse.papyrus.moka.kernel.debug/src/org/eclipse/papyrus/moka/debug/service/DebugService.java
+++ b/plugins/org.eclipse.papyrus.moka.kernel.debug/src/org/eclipse/papyrus/moka/debug/service/DebugService.java
@@ -15,7 +15,7 @@
  *****************************************************************************/
 package org.eclipse.papyrus.moka.debug.service;
 
-import static org.eclipse.papyrus.moka.kernel.IKernelPreferences.KERNEL_PREFERENCES_ID;
+import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MQTT_SERVER_PORT;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -24,15 +24,13 @@
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.ReentrantLock;
 
-import org.eclipse.core.runtime.preferences.ConfigurationScope;
 import org.eclipse.debug.core.DebugException;
+import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.paho.client.mqttv3.MqttException;
 import org.eclipse.papyrus.moka.debug.engine.IDebuggableExecutionEngine;
 import org.eclipse.papyrus.moka.debug.engine.IDebuggableExecutionEngineThread;
+import org.eclipse.papyrus.moka.kernel.MokaKernelActivator;
 import org.eclipse.papyrus.moka.kernel.service.ExecutionEngineService;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
-
-import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MQTT_SERVER_PORT;
 
 public abstract class DebugService<T, C> extends ExecutionEngineService<IDebuggableExecutionEngine<T, C>>
 		implements IDebugService<T, C> {
@@ -105,7 +103,7 @@
 	}
 
 	private void initClient() {
-		ScopedPreferenceStore store = new ScopedPreferenceStore(ConfigurationScope.INSTANCE, KERNEL_PREFERENCES_ID);
+		IPreferenceStore store = MokaKernelActivator.getDefault().getPreferenceStore();
 		String port = store.getString(MQTT_SERVER_PORT);
 		client = new DebugServiceClient("tcp://localhost:" + port, "Debug Service Client", this);
 		client.run();
diff --git a/plugins/org.eclipse.papyrus.moka.kernel.debug/src/org/eclipse/papyrus/moka/debugtarget/ExecutionEngineDebugTarget.java b/plugins/org.eclipse.papyrus.moka.kernel.debug/src/org/eclipse/papyrus/moka/debugtarget/ExecutionEngineDebugTarget.java
index 1784713..21bff7b 100644
--- a/plugins/org.eclipse.papyrus.moka.kernel.debug/src/org/eclipse/papyrus/moka/debugtarget/ExecutionEngineDebugTarget.java
+++ b/plugins/org.eclipse.papyrus.moka.kernel.debug/src/org/eclipse/papyrus/moka/debugtarget/ExecutionEngineDebugTarget.java
@@ -15,7 +15,6 @@
  *****************************************************************************/
 package org.eclipse.papyrus.moka.debugtarget;
 
-import static org.eclipse.papyrus.moka.kernel.IKernelPreferences.KERNEL_PREFERENCES_ID;
 import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MQTT_SERVER_PORT;
 
 import java.util.ArrayList;
@@ -26,7 +25,6 @@
 import java.util.concurrent.locks.ReentrantLock;
 
 import org.eclipse.core.resources.IMarkerDelta;
-import org.eclipse.core.runtime.preferences.ConfigurationScope;
 import org.eclipse.debug.core.DebugEvent;
 import org.eclipse.debug.core.DebugException;
 import org.eclipse.debug.core.ILaunch;
@@ -35,10 +33,11 @@
 import org.eclipse.debug.core.model.IMemoryBlock;
 import org.eclipse.debug.core.model.IProcess;
 import org.eclipse.debug.core.model.IThread;
+import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.papyrus.moka.debug.engine.IDebuggableExecutionEngine;
 import org.eclipse.papyrus.moka.debug.messages.ThreadRequest;
+import org.eclipse.papyrus.moka.kernel.MokaKernelActivator;
 import org.eclipse.papyrus.moka.kernel.process.ExecutionEngineProcess;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
 
 public class ExecutionEngineDebugTarget extends ExecutionEngineDebugElement implements IExecutionEngineDebugTarget {
 
@@ -87,7 +86,7 @@
 	}
 
 	private void initClient() {
-		ScopedPreferenceStore store = new ScopedPreferenceStore(ConfigurationScope.INSTANCE, KERNEL_PREFERENCES_ID);
+		IPreferenceStore store = MokaKernelActivator.getDefault().getPreferenceStore();
 		String port = store.getString(MQTT_SERVER_PORT);
 		client = new ExecutionEngineDebugTargetClient("tcp://localhost:" + port, "Debug Target", this);
 		client.run();
diff --git a/plugins/org.eclipse.papyrus.moka.kernel/src/org/eclipse/papyrus/moka/kernel/IKernelPreferences.java b/plugins/org.eclipse.papyrus.moka.kernel/src/org/eclipse/papyrus/moka/kernel/IKernelPreferences.java
index 0e8bed3..5ef32e1 100644
--- a/plugins/org.eclipse.papyrus.moka.kernel/src/org/eclipse/papyrus/moka/kernel/IKernelPreferences.java
+++ b/plugins/org.eclipse.papyrus.moka.kernel/src/org/eclipse/papyrus/moka/kernel/IKernelPreferences.java
@@ -17,6 +17,6 @@
 
 public interface IKernelPreferences {
 	
-	final static String KERNEL_PREFERENCES_ID = "org.eclipse.papyrus.moka.kernel";
+	final static String KERNEL_PREFERENCES_ID = "org.eclipse.papyrus.moka.kernel.preferences";
 
 }
diff --git a/plugins/org.eclipse.papyrus.moka.kernel/src/org/eclipse/papyrus/moka/kernel/process/ServerMqttProcess.java b/plugins/org.eclipse.papyrus.moka.kernel/src/org/eclipse/papyrus/moka/kernel/process/ServerMqttProcess.java
index 9129615..d044ee4 100644
--- a/plugins/org.eclipse.papyrus.moka.kernel/src/org/eclipse/papyrus/moka/kernel/process/ServerMqttProcess.java
+++ b/plugins/org.eclipse.papyrus.moka.kernel/src/org/eclipse/papyrus/moka/kernel/process/ServerMqttProcess.java
@@ -15,15 +15,6 @@
  *****************************************************************************/
 package org.eclipse.papyrus.moka.kernel.process;
 
-import org.eclipse.core.runtime.preferences.ConfigurationScope;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchesListener2;
-import org.eclipse.debug.core.model.IStreamsProxy;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
-
-import static org.eclipse.papyrus.moka.kernel.IKernelPreferences.KERNEL_PREFERENCES_ID;
 import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MQTT_SERVER_PATH;
 import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MQTT_SERVER_PORT;
 
@@ -34,6 +25,14 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchesListener2;
+import org.eclipse.debug.core.model.IStreamsProxy;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.moka.kernel.MokaKernelActivator;
+
 public class ServerMqttProcess extends BaseProcess<Process> implements ILaunchesListener2 {
 
 	protected IOException exception;
@@ -97,7 +96,7 @@
 
 	@Override
 	public void run() {
-		ScopedPreferenceStore store = new ScopedPreferenceStore(ConfigurationScope.INSTANCE, KERNEL_PREFERENCES_ID);
+		IPreferenceStore store = MokaKernelActivator.getDefault().getPreferenceStore();
 		File serverExecutable = new File(store.getString(MQTT_SERVER_PATH));
 		if (serverExecutable.exists() && serverExecutable.isFile()) {
 			ProcessBuilder builder = new ProcessBuilder().inheritIO();
diff --git a/plugins/org.eclipse.papyrus.moka.ui/src/org/eclipse/papyrus/moka/launch/ExecutionEngineLaunchDelegate.java b/plugins/org.eclipse.papyrus.moka.ui/src/org/eclipse/papyrus/moka/launch/ExecutionEngineLaunchDelegate.java
index 452f0b8..f646f3a 100644
--- a/plugins/org.eclipse.papyrus.moka.ui/src/org/eclipse/papyrus/moka/launch/ExecutionEngineLaunchDelegate.java
+++ b/plugins/org.eclipse.papyrus.moka.ui/src/org/eclipse/papyrus/moka/launch/ExecutionEngineLaunchDelegate.java
@@ -15,7 +15,6 @@
  *****************************************************************************/
 package org.eclipse.papyrus.moka.launch;
 
-import static org.eclipse.papyrus.moka.kernel.IKernelPreferences.KERNEL_PREFERENCES_ID;
 import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MODEL_VALIDATION_ON_LAUNCH;
 import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MQTT_SERVER_PATH;
 import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MQTT_SERVER_PORT;
@@ -27,12 +26,12 @@
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.core.runtime.jobs.IJobChangeListener;
 import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.preferences.ConfigurationScope;
 import org.eclipse.debug.core.ILaunch;
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
 import org.eclipse.debug.core.model.LaunchConfigurationDelegate;
 import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.papyrus.infra.core.resource.ModelSet;
 import org.eclipse.papyrus.infra.core.services.ServiceException;
 import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
@@ -40,6 +39,7 @@
 import org.eclipse.papyrus.moka.animation.css.MokaCSSDiagram;
 import org.eclipse.papyrus.moka.debugtarget.ExecutionEngineDebugTarget;
 import org.eclipse.papyrus.moka.kernel.IKernelPreferences;
+import org.eclipse.papyrus.moka.kernel.MokaKernelActivator;
 import org.eclipse.papyrus.moka.kernel.engine.EngineConfiguration;
 import org.eclipse.papyrus.moka.kernel.engine.EngineRegistry;
 import org.eclipse.papyrus.moka.kernel.process.ExecutionEngineProcess;
@@ -52,7 +52,6 @@
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.dialogs.PreferencesUtil;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
 import org.eclipse.uml2.uml.Class;
 
 public class ExecutionEngineLaunchDelegate extends LaunchConfigurationDelegate implements ILaunchConfigurationDelegate {
@@ -84,7 +83,7 @@
 
 	private boolean canRunServer() {
 		boolean canRunServer = false;
-		ScopedPreferenceStore store = new ScopedPreferenceStore(ConfigurationScope.INSTANCE, KERNEL_PREFERENCES_ID);
+		IPreferenceStore store = MokaKernelActivator.getDefault().getPreferenceStore();
 		if (store != null) {
 			canRunServer = !store.getString(MQTT_SERVER_PATH).isEmpty() && store.getInt(MQTT_SERVER_PORT) > 0;
 		}
@@ -96,8 +95,7 @@
 		// validation is run. If there are errors, the system ask the user if he/she
 		// still wants to run the simulation.
 		// Return true if the simulation must continue, false otherwise
-		ScopedPreferenceStore store = new ScopedPreferenceStore(ConfigurationScope.INSTANCE,
-				IKernelPreferences.KERNEL_PREFERENCES_ID);
+		IPreferenceStore store = MokaKernelActivator.getDefault().getPreferenceStore();
 		boolean mustValidate = store.getBoolean(MODEL_VALIDATION_ON_LAUNCH);
 		boolean continueSimulation = true;
 		if (mustValidate) {
diff --git a/plugins/org.eclipse.papyrus.moka.ui/src/org/eclipse/papyrus/moka/ui/preferences/PapyrusSimulationPreferencePage.java b/plugins/org.eclipse.papyrus.moka.ui/src/org/eclipse/papyrus/moka/ui/preferences/PapyrusSimulationPreferencePage.java
index 14a5f8a..b5077a5 100644
--- a/plugins/org.eclipse.papyrus.moka.ui/src/org/eclipse/papyrus/moka/ui/preferences/PapyrusSimulationPreferencePage.java
+++ b/plugins/org.eclipse.papyrus.moka.ui/src/org/eclipse/papyrus/moka/ui/preferences/PapyrusSimulationPreferencePage.java
@@ -15,20 +15,18 @@
  *****************************************************************************/
 package org.eclipse.papyrus.moka.ui.preferences;
 
+import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MODEL_VALIDATION_ON_LAUNCH;
+import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MQTT_SERVER_PATH;
+import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MQTT_SERVER_PORT;
+
 import org.eclipse.jface.preference.BooleanFieldEditor;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
 import org.eclipse.jface.preference.FileFieldEditor;
+import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.IntegerFieldEditor;
-import org.eclipse.papyrus.moka.kernel.IKernelPreferences;
+import org.eclipse.papyrus.moka.kernel.MokaKernelActivator;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
-
-import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MQTT_SERVER_PATH;
-import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MQTT_SERVER_PORT;
-import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MODEL_VALIDATION_ON_LAUNCH;
-
-import org.eclipse.core.runtime.preferences.ConfigurationScope;
 
 public class PapyrusSimulationPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
 
@@ -45,8 +43,8 @@
 	}
 
 	public void init(IWorkbench workbench) {
-		setPreferenceStore(
-				new ScopedPreferenceStore(ConfigurationScope.INSTANCE, IKernelPreferences.KERNEL_PREFERENCES_ID));
+		IPreferenceStore store = MokaKernelActivator.getDefault().getPreferenceStore();
+		setPreferenceStore(store);
 		setDescription(DESCRIPTION);
 	}
 
diff --git a/plugins/org.eclipse.papyrus.moka.ui/src/org/eclipse/papyrus/moka/ui/validation/ValidationDiagnosticDialog.java b/plugins/org.eclipse.papyrus.moka.ui/src/org/eclipse/papyrus/moka/ui/validation/ValidationDiagnosticDialog.java
index f628b64..7c138c0 100644
--- a/plugins/org.eclipse.papyrus.moka.ui/src/org/eclipse/papyrus/moka/ui/validation/ValidationDiagnosticDialog.java
+++ b/plugins/org.eclipse.papyrus.moka.ui/src/org/eclipse/papyrus/moka/ui/validation/ValidationDiagnosticDialog.java
@@ -17,13 +17,11 @@
 
 import static org.eclipse.papyrus.moka.kernel.process.IServerMqttPreferences.MODEL_VALIDATION_ON_LAUNCH;
 
-import java.io.IOException;
-
-import org.eclipse.core.runtime.preferences.ConfigurationScope;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.papyrus.infra.services.markerlistener.dialogs.DiagnosticDialog;
-import org.eclipse.papyrus.moka.kernel.IKernelPreferences;
+import org.eclipse.papyrus.moka.kernel.MokaKernelActivator;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
@@ -82,12 +80,11 @@
 	@Override
 	protected void buttonPressed(int id) {
 		if (id == IDialogConstants.OK_ID || id == IDialogConstants.CANCEL_ID) {
-			ScopedPreferenceStore store = new ScopedPreferenceStore(ConfigurationScope.INSTANCE,
-					IKernelPreferences.KERNEL_PREFERENCES_ID);
+			IPreferenceStore store = MokaKernelActivator.getDefault().getPreferenceStore();
 			store.setValue(MODEL_VALIDATION_ON_LAUNCH, !dontValidateAnymoreBeforeLaunchButton);
 			try {
-				store.save();
-			} catch (IOException e) {
+				((ScopedPreferenceStore) store).save();
+			} catch (Exception e) {
 				e.printStackTrace();
 			}
 		}