Browse Source

fixed NPE in Error Dialog

andreas muelder 7 years ago
parent
commit
52be068829

+ 80 - 77
plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/dialogs/SimulationLaunchErrorDialog.java

@@ -1,77 +1,80 @@
-/**
- * Copyright (c) 2011 committers of YAKINDU 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
- * http://www.eclipse.org/legal/epl-v10.html
- * Contributors:
- * 	committers of YAKINDU - initial API and implementation
- * 
- */
-package org.yakindu.sct.simulation.ui.dialogs;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * 
- * @author andreas muelder - Initial contribution and API
- * 
- */
-public class SimulationLaunchErrorDialog extends ErrorDialog {
-
-	protected List<IDebugTarget> targets;
-
-	private static final int RELAUNCH_ID = 42;
-
-	public SimulationLaunchErrorDialog(Shell parentShell, String dialogTitle, String message, IStatus status,
-			List<IDebugTarget> target) {
-		super(parentShell, dialogTitle, message, status, IStatus.WARNING | IStatus.ERROR | IStatus.INFO);
-		this.targets = target;
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		super.createButtonsForButtonBar(parent);
-		getButton(IDialogConstants.OK_ID).setText("Terminate");
-		createButton(parent, RELAUNCH_ID, "Relaunch", false);
-	}
-
-	@Override
-	protected void createDetailsButton(Composite parent) {
-		// No Detail section required
-	}
-
-	protected Button createButton(Composite parent, int id, String label, boolean defaultButton) {
-		Button button = super.createButton(parent, id, label, defaultButton);
-		return button;
-	}
-
-	protected void buttonPressed(final int id) {
-		try {
-			if (id == IDialogConstants.OK_ID) {
-				for (IDebugTarget target : targets) {
-					target.getLaunch().terminate();
-				}
-			} else if (id == RELAUNCH_ID) {
-				for (IDebugTarget target : targets) {
-					target.getLaunch().terminate();
-					ILaunchConfiguration launchConfiguration = target.getLaunch().getLaunchConfiguration();
-					DebugUITools.launch(launchConfiguration, target.getLaunch().getLaunchMode());
-				}
-			}
-		} catch (DebugException e) {
-			e.printStackTrace();
-		}
-		okPressed();
-	}
-}
+/**
+ * Copyright (c) 2011 committers of YAKINDU 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ * Contributors:
+ * 	committers of YAKINDU - initial API and implementation
+ * 
+ */
+package org.yakindu.sct.simulation.ui.dialogs;
+
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.model.IDebugTarget;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class SimulationLaunchErrorDialog extends ErrorDialog {
+
+	protected List<IDebugTarget> targets;
+
+	private static final int RELAUNCH_ID = 42;
+
+	public SimulationLaunchErrorDialog(Shell parentShell, String dialogTitle, String message, IStatus status,
+			List<IDebugTarget> target) {
+		super(parentShell, dialogTitle, message, status, IStatus.WARNING | IStatus.ERROR | IStatus.INFO);
+		this.targets = target;
+	}
+
+	protected void createButtonsForButtonBar(Composite parent) {
+		super.createButtonsForButtonBar(parent);
+		getButton(IDialogConstants.OK_ID).setText("Terminate");
+		createButton(parent, RELAUNCH_ID, "Relaunch", false);
+	}
+
+	@Override
+	protected void createDetailsButton(Composite parent) {
+		// No Detail section required
+	}
+
+	protected Button createButton(Composite parent, int id, String label, boolean defaultButton) {
+		Button button = super.createButton(parent, id, label, defaultButton);
+		return button;
+	}
+
+	protected void buttonPressed(final int id) {
+		try {
+			if (id == IDialogConstants.OK_ID) {
+				for (IDebugTarget target : targets) {
+					if (target != null)
+						target.getLaunch().terminate();
+				}
+			} else if (id == RELAUNCH_ID) {
+				for (IDebugTarget target : targets) {
+					if (target != null) {
+						target.getLaunch().terminate();
+						ILaunchConfiguration launchConfiguration = target.getLaunch().getLaunchConfiguration();
+						DebugUITools.launch(launchConfiguration, target.getLaunch().getLaunchMode());
+					}
+				}
+			}
+		} catch (DebugException e) {
+			e.printStackTrace();
+		}
+		okPressed();
+	}
+}