diff --git a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/CallStackView.java b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/CallStackView.java index bac8744..1aa814d 100644 --- a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/CallStackView.java +++ b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/CallStackView.java @@ -12,14 +12,17 @@ import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.ISharedImages; +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.ViewPart; import org.ntlab.onlineAccessor.JDIInstanceMethodCaller; -public class CallStackView extends ViewPart { - private static TreeViewer viewer; +public class CallStackView extends ViewPart { + private TreeViewer viewer; private IAction refreshAction; - private static CallStackModels callStackModels = new CallStackModels(); + private CallStackModels callStackModels = new CallStackModels(); private JavaEditorOperator javaEditorOperator = new JavaEditorOperator(); public static final String ID = "org.ntlab.reverseDebugger.callStackView"; @@ -48,8 +51,9 @@ if (value instanceof CallStackModel) { CallStackModel callStackModel = (CallStackModel)value; JDIInstanceMethodCaller methodExecution = callStackModel.getMethodCaller(); - SeedAliasView.createSeedAliasesByMethodExecution(methodExecution); - SeedAliasView.refresh(); + SeedAliasView seedAliasView = ((SeedAliasView)getOtherView(SeedAliasView.ID)); + seedAliasView.createSeedAliasesByMethodExecution(methodExecution); + seedAliasView.refresh(); javaEditorOperator.openSrcFileOfMethodExecution(methodExecution, callStackModel.getCallLineNo()); } } @@ -88,13 +92,14 @@ mgr.add(refreshAction); } - public static void updateByAlias(JDIInstanceMethodCaller alias) { + public void updateByAlias(JDIInstanceMethodCaller alias) { callStackModels.updateByAlias(alias); } - public static void refresh() { + public void refresh() { if (callStackModels.getCallStackModels().isEmpty()) { - JDIInstanceMethodCaller currentMe = SeedAliasView.getDebuggingMethodExecution(); + SeedAliasView seedAliasView = ((SeedAliasView)getOtherView(SeedAliasView.ID)); + JDIInstanceMethodCaller currentMe = seedAliasView.getDebuggingMethodExecution(); callStackModels.updateByDebuggerStopMethodExecution(currentMe); } TreeNode[] nodes = callStackModels.getCallStackModelsTreeNodes(); @@ -105,8 +110,17 @@ viewer.expandAll(); } - public static void reset() { + public void reset() { callStackModels.reset(); refresh(); } + + private IViewPart getOtherView(String viewId) { + IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + try { + return workbenchPage.showView(viewId); + } catch (PartInitException e) { + throw new RuntimeException(e); + } + } }