Browse Source

various bug fixes

terfloth@itemis.de 12 years ago
parent
commit
afb45db730

+ 18 - 10
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/debugmodel/SCTDebugThread.java

@@ -10,6 +10,8 @@
  */
 package org.yakindu.sct.simulation.core.debugmodel;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Set;
 
 import org.eclipse.debug.core.DebugException;
@@ -31,7 +33,8 @@ public class SCTDebugThread extends SCTDebugElement implements IThread {
 
 	private final Region region;
 	private final IExecutionFacade facade;
-	private SCTStackFrame stackFrame;
+	private List<SCTStackFrame> stateStack;
+	private Vertex lastActiveState;
 
 	public SCTDebugThread(SCTDebugTarget target, IExecutionFacade facade,
 			String resourceString, Region region) {
@@ -54,15 +57,20 @@ public class SCTDebugThread extends SCTDebugElement implements IThread {
 				break;
 			}
 		}
-		if (activeState != null) {
-			if (stackFrame == null || stackFrame.getState() != activeState) {
-				stackFrame = new SCTStackFrame(this, activeState,
-						getResourceString());
-			}
-		} else {
-			stackFrame = null;
-		}
-		return new IStackFrame[] { stackFrame };
+	
+		if (activeState != null && lastActiveState != activeState) {
+			lastActiveState = activeState;
+			EObject container = activeState;
+			stateStack = new ArrayList<SCTStackFrame>();
+			while ( container != null ) {
+				if (container instanceof RegularState) {
+					stateStack.add(new SCTStackFrame(this, (RegularState)container,
+						getResourceString()));
+				}
+				container = container.eContainer();
+			}			
+		} 
+		return stateStack.toArray(new IStackFrame[]{});
 	}
 
 	public boolean hasStackFrames() throws DebugException {

+ 6 - 4
plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/launch/tabs/StatechartLaunchConfigurationTab.java

@@ -183,10 +183,12 @@ public class StatechartLaunchConfigurationTab extends JavaLaunchTab implements
 
 	protected Set<String> getOperationClasses() {
 		String operationClasses = this.operationClass.getText();
-		String[] split = operationClasses.split(",");
-		Set<String> result = new HashSet<String>(split.length);
-		for (String string : split) {
-			result.add(string.trim());
+		Set<String> result = new HashSet<String>();
+		if ( operationClasses.trim().length() > 0 ) {
+			String[] split = operationClasses.split(",");
+			for (String string : split) {
+				result.add(string.trim());
+			}
 		}
 		return result;
 	}

+ 1 - 3
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/partitioning/DiagramPartitioningEditor.java

@@ -59,8 +59,6 @@ import org.yakindu.sct.ui.editor.StatechartImages;
 public abstract class DiagramPartitioningEditor extends DiagramDocumentEditor implements ISelectionChangedListener,
 		IEditingDomainProvider {
 
-	private static final String SUBDIAGRAM = "Subdiagram - ";
-
 	private DiagramPartitioningBreadcrumbViewer viewer;
 
 	private DiagramPartitioningDocumentProvider documentProvider;
@@ -109,7 +107,7 @@ public abstract class DiagramPartitioningEditor extends DiagramDocumentEditor im
 		AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider(
 				new SGraphItemProviderAdapterFactory());
 		setTitleImage(labelProvider.getImage(element));
-		setPartName(SUBDIAGRAM + labelProvider.getText(element));
+		setPartName(labelProvider.getText(element));
 
 	}