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); + } + } } diff --git a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/ObjectFlowAliasView.java b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/ObjectFlowAliasView.java index b00a98f..0c28d4d 100644 --- a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/ObjectFlowAliasView.java +++ b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/ObjectFlowAliasView.java @@ -18,17 +18,20 @@ import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.ui.ISharedImages; +import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbenchActionConstants; +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 ObjectFlowAliasView extends ViewPart { - private static TableViewer viewer; + private TableViewer viewer; private IAction refreshAction; private IAction findSeedAliasesAction; private JDIInstanceMethodCaller selectObjectFlowAlias; - private static ObjectFlowAliases objectFlowAliases = new ObjectFlowAliases(); + private ObjectFlowAliases objectFlowAliases = new ObjectFlowAliases(); private JavaEditorOperator javaEditorOperator = new JavaEditorOperator(); public static final String ID = "org.ntlab.reverseDebugger.objectFlowAliasView"; @@ -151,26 +154,37 @@ getSite().registerContextMenu(menuMgr, viewer); } - public static void createObjectFlow(JDIInstanceMethodCaller seedAlias) { + public void createObjectFlow(JDIInstanceMethodCaller seedAlias) { objectFlowAliases.createObjectFlow(seedAlias); } private void findSeedAliases() { if (selectObjectFlowAlias != null) { - SeedAliasView.createSeedAliasesByAlias(selectObjectFlowAlias); - SeedAliasView.refresh(); - CallStackView.updateByAlias(selectObjectFlowAlias); - CallStackView.refresh(); + SeedAliasView seedAliasView = ((SeedAliasView)getOtherView(SeedAliasView.ID)); + seedAliasView.createSeedAliasesByAlias(selectObjectFlowAlias); + seedAliasView.refresh(); + CallStackView callStackView = ((CallStackView)getOtherView(CallStackView.ID)); + callStackView.updateByAlias(selectObjectFlowAlias); + callStackView.refresh(); javaEditorOperator.openSrcFileOfAlias(selectObjectFlowAlias); } } - public static void refresh() { + public void refresh() { viewer.setInput(objectFlowAliases.getObjectFlowSingleList(true)); } - public static void reset() { + public void reset() { objectFlowAliases.reset(); viewer.setInput(objectFlowAliases.getObjectFlowSingleList(true)); } + + private IViewPart getOtherView(String viewId) { + IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + try { + return workbenchPage.showView(viewId); + } catch (PartInitException e) { + throw new RuntimeException(e); + } + } } diff --git a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/SeedAliasView.java b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/SeedAliasView.java index d78affe..56f18da 100644 --- a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/SeedAliasView.java +++ b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/SeedAliasView.java @@ -18,19 +18,22 @@ import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.ui.ISharedImages; +import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbenchActionConstants; +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 SeedAliasView extends ViewPart { - private static TableViewer viewer; +public class SeedAliasView extends ViewPart { + private TableViewer viewer; private IAction refreshAction; private IAction resetAction; private IAction getObjectFlowAction; - private static JDIInstanceMethodCaller selectSeedAlias; - private static SeedAliases seedAliases = new SeedAliases(); - private static JavaEditorOperator javaEditorOperator = new JavaEditorOperator(); + private JDIInstanceMethodCaller selectSeedAlias; + private SeedAliases seedAliases = new SeedAliases(); + private JavaEditorOperator javaEditorOperator = new JavaEditorOperator(); public static final String ID = "org.ntlab.reverseDebugger.seedAliasView"; public SeedAliasView() { @@ -59,7 +62,7 @@ viewer.setContentProvider(new ArrayContentProvider()); viewer.setLabelProvider(new SeedAliasLabelProvider()); viewer.setInput(seedAliases.getSeedAliases()); - CallStackView.refresh(); + ((CallStackView)getOtherView(CallStackView.ID)).refresh(); // �I�������J�����ɑΉ�����V�[�h�G�C���A�X���t�B�[���h�ɋL�^���Ă������X�i�[��o�^ (�I��������ɉE�N���b�N�ŃI�u�W�F�N�g�t���[�����s������ۂɕK�v) viewer.addSelectionChangedListener(new ISelectionChangedListener() { @@ -69,7 +72,7 @@ Object element = sel.getFirstElement(); if (element instanceof JDIInstanceMethodCaller) { selectSeedAlias = (JDIInstanceMethodCaller)element; - VariableView.updateVariablesByAlias(selectSeedAlias); + ((VariableView)getOtherView(VariableView.ID)).updateVariablesByAlias(selectSeedAlias); javaEditorOperator.openSrcFileOfAlias(selectSeedAlias); } } @@ -146,46 +149,56 @@ getSite().registerContextMenu(menuMgr, viewer); } - public static JDIInstanceMethodCaller getDebuggingMethodExecution() { + public JDIInstanceMethodCaller getDebuggingMethodExecution() { return seedAliases.getDebuggingMethodExecution(); } - public static void createSeedAliasesByAlias(JDIInstanceMethodCaller alias) { + public void createSeedAliasesByAlias(JDIInstanceMethodCaller alias) { seedAliases.createSeedAliasesByAlias(alias); - VariableView.updateVariablesByAlias(alias); + ((VariableView)getOtherView(VariableView.ID)).updateVariablesByAlias(alias); } - public static void createSeedAliasesByMethodExecution(JDIInstanceMethodCaller methodExecution) { + public void createSeedAliasesByMethodExecution(JDIInstanceMethodCaller methodExecution) { seedAliases.createSeedAliasesByMethodExecution(methodExecution); - VariableView.updateVariablesByMethodExecution(methodExecution); + ((VariableView)getOtherView(VariableView.ID)).updateVariablesByMethodExecution(methodExecution); } - public static void refresh() { + public void refresh() { if (seedAliases.getSeedAliases().isEmpty()) { seedAliases.initSeedAliases(); JDIInstanceMethodCaller debuggingMethodExecution = seedAliases.getDebuggingMethodExecution(); int debuggingLineNo = seedAliases.getDebuggingLineNo(); javaEditorOperator.openSrcFileOfMethodExecution(debuggingMethodExecution, debuggingLineNo); - CallStackView.reset(); - VariableView.updateVariablesByMethodExecution(debuggingMethodExecution); + ((CallStackView)getOtherView(CallStackView.ID)).reset(); + ((VariableView)getOtherView(VariableView.ID)).updateVariablesByMethodExecution(debuggingMethodExecution); } viewer.refresh(); } private void reset() { seedAliases.reset(); - ObjectFlowAliasView.reset(); + ((ObjectFlowAliasView)getOtherView(ObjectFlowAliasView.ID)).reset(); refresh(); } private void getObjectFlow() { if (selectSeedAlias != null) { - ObjectFlowAliasView.createObjectFlow(selectSeedAlias); - ObjectFlowAliasView.refresh(); + ObjectFlowAliasView objectFlowAliasView = ((ObjectFlowAliasView)getOtherView(ObjectFlowAliasView.ID)); + objectFlowAliasView.createObjectFlow(selectSeedAlias); + objectFlowAliasView.refresh(); } } - public static JDIInstanceMethodCaller getSelectSeedAlias() { + public JDIInstanceMethodCaller getSelectSeedAlias() { return selectSeedAlias; } + + private IViewPart getOtherView(String viewId) { + IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + try { + return workbenchPage.showView(viewId); + } catch (PartInitException e) { + throw new RuntimeException(e); + } + } } diff --git a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/VariableView.java b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/VariableView.java index 0c45893..03ca045 100644 --- a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/VariableView.java +++ b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/VariableView.java @@ -8,15 +8,18 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeColumn; +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 VariableView extends ViewPart { - private static TreeViewer viewer; +public class VariableView extends ViewPart { + private TreeViewer viewer; // private IAction refreshAction; // private IAction resetAction; - private static JDIInstanceMethodCaller selectedAlias; - private static Variables variables = new Variables(); + private Variables variables = new Variables(); public static final String ID = "org.ntlab.reverseDebugger.variableView"; public VariableView() { @@ -43,7 +46,8 @@ } viewer.setContentProvider(new TreeNodeContentProvider()); viewer.setLabelProvider(new VariableLabelProvider()); - JDIInstanceMethodCaller methodExecution = SeedAliasView.getDebuggingMethodExecution(); + SeedAliasView seedAliasView = ((SeedAliasView)getOtherView(SeedAliasView.ID)); + JDIInstanceMethodCaller methodExecution = seedAliasView.getDebuggingMethodExecution(); if (methodExecution != null) { variables.getAllObjectDataByMethodExecution(methodExecution); viewer.setInput(variables.getVariablesTreeNodes()); @@ -108,13 +112,22 @@ // } // } - public static void updateVariablesByMethodExecution(JDIInstanceMethodCaller methodExecution) { + public void updateVariablesByMethodExecution(JDIInstanceMethodCaller methodExecution) { variables.getAllObjectDataByMethodExecution(methodExecution); viewer.setInput(variables.getVariablesTreeNodes()); } - public static void updateVariablesByAlias(JDIInstanceMethodCaller alias) { + public void updateVariablesByAlias(JDIInstanceMethodCaller alias) { variables.getAllObjectDataByAlias(alias); viewer.setInput(variables.getVariablesTreeNodes()); } + + private IViewPart getOtherView(String viewId) { + IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + try { + return workbenchPage.showView(viewId); + } catch (PartInitException e) { + throw new RuntimeException(e); + } + } }