diff --git a/plugin.xml b/plugin.xml index 3d64dd2..ec2e4de 100644 --- a/plugin.xml +++ b/plugin.xml @@ -9,9 +9,9 @@ + + + + + + + + + + - - - - - - - - - - - - - - @@ -96,11 +85,6 @@ name="TraceDebugger"> - - diff --git a/src/org/ntlab/traceDebugger/BreakPointViewRelatedDelta.java b/src/org/ntlab/traceDebugger/BreakPointViewRelatedDelta.java new file mode 100644 index 0000000..45f4b3a --- /dev/null +++ b/src/org/ntlab/traceDebugger/BreakPointViewRelatedDelta.java @@ -0,0 +1,140 @@ +package org.ntlab.traceDebugger; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.resource.ImageRegistry; +import org.eclipse.swt.widgets.Composite; + +public class BreakPointViewRelatedDelta extends BreakPointView { + private IAction stepBackIntoAction; + private IAction stepBackOverAction; + private IAction stepBackReturnAction; + private IAction backResumeAction; + private DebuggingController debuggingController = DebuggingController.getInstance(); + public static final String ID = "org.ntlab.traceDebugger.breakPointViewRelatedDelta"; + public static final String STEP_BACK_INTO_ELCL = "StepBackInto_ELCL"; + public static final String STEP_BACK_INTO_DLCL = "StepBackInto_DLCL"; + public static final String STEP_BACK_OVER_ELCL = "StepOverInto_ELCL"; + public static final String STEP_BACK_OVER_DLCL = "StepOverInto_DLCL"; + public static final String STEP_BACK_RETURN_ELCL = "StepReturnInto_ELCL"; + public static final String STEP_BACK_RETURN_DLCL = "StepReturnInto_DLCL"; + public static final String BACK_RESUME_ELCL = "BackResume_ELCL"; + public static final String BACK_RESUME_DLCL = "BackResume_DLCL"; + + public BreakPointViewRelatedDelta() { + // TODO Auto-generated constructor stub + System.out.println("BreakPointViewRelatedDelta�N���X���������ꂽ��!"); + } + + @Override + public void createPartControl(Composite parent) { + // TODO Auto-generated method stub + System.out.println("BreakPointViewRelatedDelta#createPartControl(Composite)���Ă΂ꂽ��!"); + super.createPartControl(parent); + TraceDebuggerPlugin.setActiveView(ID, this); + } + + @Override + public void setFocus() { + // TODO Auto-generated method stub + TraceDebuggerPlugin.setActiveView(ID, this); + viewer.getControl().setFocus(); + } + + @Override + protected void createActions() { + super.createActions(); + ImageRegistry registry = TraceDebuggerPlugin.getDefault().getImageRegistry(); + backResumeAction = new Action() { + @Override + public void run() { + debuggingController.backResumeAction(); + } + }; + backResumeAction.setText("Back Resume"); + backResumeAction.setToolTipText("Back Resume"); + ImageDescriptor backResumeIcon = registry.getDescriptor(BACK_RESUME_DLCL); + backResumeAction.setImageDescriptor(backResumeIcon); + + stepBackIntoAction = new Action() { + @Override + public void run() { + debuggingController.stepBackIntoAction(); + } + }; + stepBackIntoAction.setText("Step Back Into"); + stepBackIntoAction.setToolTipText("Step Back Into"); + ImageDescriptor stepBackIntoIcon = registry.getDescriptor(STEP_BACK_INTO_DLCL); + stepBackIntoAction.setImageDescriptor(stepBackIntoIcon); + + stepBackOverAction = new Action() { + @Override + public void run() { + debuggingController.stepBackOverAction(); + } + }; + stepBackOverAction.setText("Step Back Over"); + stepBackOverAction.setToolTipText("Step Back Over"); + ImageDescriptor stepBackOverIcon = registry.getDescriptor(STEP_BACK_OVER_DLCL); + stepBackOverAction.setImageDescriptor(stepBackOverIcon); + + stepBackReturnAction = new Action() { + @Override + public void run() { + debuggingController.stepBackReturnAction(); + } + }; + stepBackReturnAction.setText("Step Back Return"); + stepBackReturnAction.setToolTipText("Step Back Return"); + ImageDescriptor stepBackReturnIcon = registry.getDescriptor(STEP_BACK_RETURN_DLCL); + stepBackReturnAction.setImageDescriptor(stepBackReturnIcon); + } + + @Override + protected void createToolBar() { + super.createToolBar(); + IToolBarManager mgr = getViewSite().getActionBars().getToolBarManager(); + mgr.add(backResumeAction); + mgr.add(stepBackIntoAction); + mgr.add(stepBackOverAction); + mgr.add(stepBackReturnAction); + } + + @Override + protected void createMenuBar() { + super.createMenuBar(); + IMenuManager mgr = getViewSite().getActionBars().getMenuManager(); + mgr.add(backResumeAction); + mgr.add(stepBackIntoAction); + mgr.add(stepBackOverAction); + mgr.add(stepBackReturnAction); + } + + @Override + public void updateImages(boolean isRunning) { + super.updateImages(isRunning); + ImageRegistry registry = TraceDebuggerPlugin.getDefault().getImageRegistry(); + if (isRunning) { + ImageDescriptor stepBackIntoImage = registry.getDescriptor(STEP_BACK_INTO_ELCL); + stepBackIntoAction.setImageDescriptor(stepBackIntoImage); + ImageDescriptor stepBackOverImage = registry.getDescriptor(STEP_BACK_OVER_ELCL); + stepBackOverAction.setImageDescriptor(stepBackOverImage); + ImageDescriptor stepBackReturnImage = registry.getDescriptor(STEP_BACK_RETURN_ELCL); + stepBackReturnAction.setImageDescriptor(stepBackReturnImage); + ImageDescriptor backResumeImage = registry.getDescriptor(BACK_RESUME_ELCL); + backResumeAction.setImageDescriptor(backResumeImage); + } else { + ImageDescriptor stepBackIntoImage = registry.getDescriptor(STEP_BACK_INTO_DLCL); + stepBackIntoAction.setImageDescriptor(stepBackIntoImage); + ImageDescriptor stepBackOverImage = registry.getDescriptor(STEP_BACK_OVER_DLCL); + stepBackOverAction.setImageDescriptor(stepBackOverImage); + ImageDescriptor stepBackReturnImage = registry.getDescriptor(STEP_BACK_RETURN_DLCL); + stepBackReturnAction.setImageDescriptor(stepBackReturnImage); + ImageDescriptor backResumeImage = registry.getDescriptor(BACK_RESUME_DLCL); + backResumeAction.setImageDescriptor(backResumeImage); + } + } +} diff --git a/src/org/ntlab/traceDebugger/BreakPointViewRelatedReverse.java b/src/org/ntlab/traceDebugger/BreakPointViewRelatedReverse.java deleted file mode 100644 index 1035202..0000000 --- a/src/org/ntlab/traceDebugger/BreakPointViewRelatedReverse.java +++ /dev/null @@ -1,140 +0,0 @@ -package org.ntlab.traceDebugger; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.IToolBarManager; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.resource.ImageRegistry; -import org.eclipse.swt.widgets.Composite; - -public class BreakPointViewRelatedReverse extends BreakPointView { - private IAction stepBackIntoAction; - private IAction stepBackOverAction; - private IAction stepBackReturnAction; - private IAction backResumeAction; - private DebuggingController debuggingController = DebuggingController.getInstance(); - public static final String ID = "org.ntlab.traceDebugger.breakPointViewRelatedReverse"; - public static final String STEP_BACK_INTO_ELCL = "StepBackInto_ELCL"; - public static final String STEP_BACK_INTO_DLCL = "StepBackInto_DLCL"; - public static final String STEP_BACK_OVER_ELCL = "StepOverInto_ELCL"; - public static final String STEP_BACK_OVER_DLCL = "StepOverInto_DLCL"; - public static final String STEP_BACK_RETURN_ELCL = "StepReturnInto_ELCL"; - public static final String STEP_BACK_RETURN_DLCL = "StepReturnInto_DLCL"; - public static final String BACK_RESUME_ELCL = "BackResume_ELCL"; - public static final String BACK_RESUME_DLCL = "BackResume_DLCL"; - - public BreakPointViewRelatedReverse() { - // TODO Auto-generated constructor stub - System.out.println("BreakPointViewRelatedReverse�N���X���������ꂽ��!"); - } - - @Override - public void createPartControl(Composite parent) { - // TODO Auto-generated method stub - System.out.println("BreakPointViewRelatedReverse#createPartControl(Composite)���Ă΂ꂽ��!"); - super.createPartControl(parent); - TraceDebuggerPlugin.setActiveView(ID, this); - } - - @Override - public void setFocus() { - // TODO Auto-generated method stub - TraceDebuggerPlugin.setActiveView(ID, this); - viewer.getControl().setFocus(); - } - - @Override - protected void createActions() { - super.createActions(); - ImageRegistry registry = TraceDebuggerPlugin.getDefault().getImageRegistry(); - backResumeAction = new Action() { - @Override - public void run() { - debuggingController.backResumeAction(); - } - }; - backResumeAction.setText("Back Resume"); - backResumeAction.setToolTipText("Back Resume"); - ImageDescriptor backResumeIcon = registry.getDescriptor(BACK_RESUME_DLCL); - backResumeAction.setImageDescriptor(backResumeIcon); - - stepBackIntoAction = new Action() { - @Override - public void run() { - debuggingController.stepBackIntoAction(); - } - }; - stepBackIntoAction.setText("Step Back Into"); - stepBackIntoAction.setToolTipText("Step Back Into"); - ImageDescriptor stepBackIntoIcon = registry.getDescriptor(STEP_BACK_INTO_DLCL); - stepBackIntoAction.setImageDescriptor(stepBackIntoIcon); - - stepBackOverAction = new Action() { - @Override - public void run() { - debuggingController.stepBackOverAction(); - } - }; - stepBackOverAction.setText("Step Back Over"); - stepBackOverAction.setToolTipText("Step Back Over"); - ImageDescriptor stepBackOverIcon = registry.getDescriptor(STEP_BACK_OVER_DLCL); - stepBackOverAction.setImageDescriptor(stepBackOverIcon); - - stepBackReturnAction = new Action() { - @Override - public void run() { - debuggingController.stepBackReturnAction(); - } - }; - stepBackReturnAction.setText("Step Back Return"); - stepBackReturnAction.setToolTipText("Step Back Return"); - ImageDescriptor stepBackReturnIcon = registry.getDescriptor(STEP_BACK_RETURN_DLCL); - stepBackReturnAction.setImageDescriptor(stepBackReturnIcon); - } - - @Override - protected void createToolBar() { - super.createToolBar(); - IToolBarManager mgr = getViewSite().getActionBars().getToolBarManager(); - mgr.add(backResumeAction); - mgr.add(stepBackIntoAction); - mgr.add(stepBackOverAction); - mgr.add(stepBackReturnAction); - } - - @Override - protected void createMenuBar() { - super.createMenuBar(); - IMenuManager mgr = getViewSite().getActionBars().getMenuManager(); - mgr.add(backResumeAction); - mgr.add(stepBackIntoAction); - mgr.add(stepBackOverAction); - mgr.add(stepBackReturnAction); - } - - @Override - public void updateImages(boolean isRunning) { - super.updateImages(isRunning); - ImageRegistry registry = TraceDebuggerPlugin.getDefault().getImageRegistry(); - if (isRunning) { - ImageDescriptor stepBackIntoImage = registry.getDescriptor(STEP_BACK_INTO_ELCL); - stepBackIntoAction.setImageDescriptor(stepBackIntoImage); - ImageDescriptor stepBackOverImage = registry.getDescriptor(STEP_BACK_OVER_ELCL); - stepBackOverAction.setImageDescriptor(stepBackOverImage); - ImageDescriptor stepBackReturnImage = registry.getDescriptor(STEP_BACK_RETURN_ELCL); - stepBackReturnAction.setImageDescriptor(stepBackReturnImage); - ImageDescriptor backResumeImage = registry.getDescriptor(BACK_RESUME_ELCL); - backResumeAction.setImageDescriptor(backResumeImage); - } else { - ImageDescriptor stepBackIntoImage = registry.getDescriptor(STEP_BACK_INTO_DLCL); - stepBackIntoAction.setImageDescriptor(stepBackIntoImage); - ImageDescriptor stepBackOverImage = registry.getDescriptor(STEP_BACK_OVER_DLCL); - stepBackOverAction.setImageDescriptor(stepBackOverImage); - ImageDescriptor stepBackReturnImage = registry.getDescriptor(STEP_BACK_RETURN_DLCL); - stepBackReturnAction.setImageDescriptor(stepBackReturnImage); - ImageDescriptor backResumeImage = registry.getDescriptor(BACK_RESUME_DLCL); - backResumeAction.setImageDescriptor(backResumeImage); - } - } -} diff --git a/src/org/ntlab/traceDebugger/TraceDebuggerPerspective.java b/src/org/ntlab/traceDebugger/TraceDebuggerPerspective.java index 23f2605..eee7a31 100644 --- a/src/org/ntlab/traceDebugger/TraceDebuggerPerspective.java +++ b/src/org/ntlab/traceDebugger/TraceDebuggerPerspective.java @@ -12,15 +12,15 @@ String editorArea = layout.getEditorArea(); // �E�Ƀu���[�N�|�C���g�̃r���[��z�u - IFolderLayout right = layout.createFolder("right", IPageLayout.RIGHT, 0.5f, editorArea); - right.addView(BreakPointView.ID); + IFolderLayout breakpointViewArea = layout.createFolder("BreakPointViewArea", IPageLayout.RIGHT, 0.5f, editorArea); + breakpointViewArea.addView(BreakPointView.ID); // ����ɃR�[���X�^�b�N�̃r���[��z�u - IFolderLayout topLeft = layout.createFolder("topLeft", IPageLayout.TOP, 0.25f, editorArea); - topLeft.addView(CallStackView.ID); + IFolderLayout callStackViewArea = layout.createFolder("CallStackViewArea", IPageLayout.TOP, 0.25f, editorArea); + callStackViewArea.addView(CallStackView.ID); // �E��ɕϐ��̃r���[��z�u - IFolderLayout topRight = layout.createFolder("topRight", IPageLayout.TOP, 0.25f, "right"); - topRight.addView(VariableView.ID); + IFolderLayout variableViewArea = layout.createFolder("VariableViewArea", IPageLayout.TOP, 0.25f, "BreakPointViewArea"); + variableViewArea.addView(VariableView.ID); } } diff --git a/src/org/ntlab/traceDebugger/TraceDebuggerPerspectiveRelatedDelta.java b/src/org/ntlab/traceDebugger/TraceDebuggerPerspectiveRelatedDelta.java index 6f4679b..f08f732 100644 --- a/src/org/ntlab/traceDebugger/TraceDebuggerPerspectiveRelatedDelta.java +++ b/src/org/ntlab/traceDebugger/TraceDebuggerPerspectiveRelatedDelta.java @@ -12,23 +12,23 @@ String editorArea = layout.getEditorArea(); // �E�Ƀu���[�N�|�C���g�̃r���[��z�u - IFolderLayout right = layout.createFolder("right", IPageLayout.RIGHT, 0.5f, editorArea); - right.addView(BreakPointViewRelatedReverse.ID); - - // �E���Ƀg���[�X�|�C���g�̃r���[��z�u - IFolderLayout rightBottom = layout.createFolder("rightBottom", IPageLayout.BOTTOM, 0.5f, "right"); - rightBottom.addView(TracePointsView.ID); - - // �E��ɕϐ��̃r���[��z�u - IFolderLayout topRight = layout.createFolder("topRight", IPageLayout.TOP, 0.25f, editorArea); - topRight.addView(VariableViewRelatedDelta.ID); + IFolderLayout breakpointViewArea = layout.createFolder("BreakpointViewArea", IPageLayout.RIGHT, 0.5f, editorArea); + breakpointViewArea.addView(BreakPointViewRelatedDelta.ID); // ����ɃR�[���c���[�̃r���[��z�u - IFolderLayout topLeft = layout.createFolder("topLeft", IPageLayout.LEFT, 0.25f, "topRight"); - topLeft.addView(CallTreeView.ID); + IFolderLayout callTreeViewArea = layout.createFolder("CallTreeViewArea", IPageLayout.BOTTOM, 0.25f, "BreakpointViewArea"); + callTreeViewArea.addView(CallTreeView.ID); + + // �E���Ƀg���[�X�|�C���g�̃r���[��z�u + IFolderLayout tracePointsViewArea = layout.createFolder("TracePointsViewArea", IPageLayout.BOTTOM, 0.5f, "CallTreeViewArea"); + tracePointsViewArea.addView(TracePointsView.ID); + + // �E��ɕϐ��̃r���[��z�u + IFolderLayout variableViewArea = layout.createFolder("VariableViewArea", IPageLayout.TOP, 0.25f, editorArea); + variableViewArea.addView(VariableViewRelatedDelta.ID); // ����ɃR�[���X�^�b�N�̃r���[��z�u - IFolderLayout topLeft2 = layout.createFolder("topLeft2", IPageLayout.TOP, 0.25f, "topLeft"); - topLeft2.addView(CallStackViewRelatedDelta.ID); + IFolderLayout callStackViewArea = layout.createFolder("CallStackViewArea", IPageLayout.LEFT, 0.25f, "VariableViewArea"); + callStackViewArea.addView(CallStackViewRelatedDelta.ID); } } diff --git a/src/org/ntlab/traceDebugger/TraceDebuggerPerspectiveRelatedReverse.java b/src/org/ntlab/traceDebugger/TraceDebuggerPerspectiveRelatedReverse.java deleted file mode 100644 index 85662e9..0000000 --- a/src/org/ntlab/traceDebugger/TraceDebuggerPerspectiveRelatedReverse.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.ntlab.traceDebugger; - -import org.eclipse.ui.IFolderLayout; -import org.eclipse.ui.IPageLayout; -import org.eclipse.ui.IPerspectiveFactory; - -public class TraceDebuggerPerspectiveRelatedReverse implements IPerspectiveFactory { - - @Override - public void createInitialLayout(IPageLayout layout) { - // �G�f�B�^�̏ꏊ���擾 - String editorArea = layout.getEditorArea(); - - // �E�Ƀu���[�N�|�C���g�̃r���[��z�u - IFolderLayout right = layout.createFolder("right", IPageLayout.RIGHT, 0.5f, editorArea); - right.addView(BreakPointViewRelatedReverse.ID); - - // �E���Ƀg���[�X�|�C���g�̃r���[��z�u - IFolderLayout rightBottom = layout.createFolder("rightBottom", IPageLayout.BOTTOM, 0.5f, "right"); - rightBottom.addView(TracePointsView.ID); - - // ����ɃR�[���X�^�b�N�̃r���[��z�u - IFolderLayout topLeft = layout.createFolder("topLeft", IPageLayout.TOP, 0.25f, editorArea); - topLeft.addView(CallStackView.ID); - - // �E��ɕϐ��̃r���[��z�u - IFolderLayout topRight = layout.createFolder("topRight", IPageLayout.RIGHT, 0.25f, "topLeft"); - topRight.addView(VariableViewRelatedReverse.ID); - } -} diff --git a/src/org/ntlab/traceDebugger/TraceDebuggerPlugin.java b/src/org/ntlab/traceDebugger/TraceDebuggerPlugin.java index a83fe1e..d14f836 100644 --- a/src/org/ntlab/traceDebugger/TraceDebuggerPlugin.java +++ b/src/org/ntlab/traceDebugger/TraceDebuggerPlugin.java @@ -113,14 +113,14 @@ @Override protected void initializeImageRegistry(ImageRegistry reg) { - reg.put(BreakPointViewRelatedReverse.STEP_BACK_INTO_ELCL, getImageDescriptor("/icons/debug/stepbackinto_elcl.png")); - reg.put(BreakPointViewRelatedReverse.STEP_BACK_INTO_DLCL, getImageDescriptor("/icons/debug/stepbackinto_dlcl.png")); - reg.put(BreakPointViewRelatedReverse.STEP_BACK_OVER_ELCL, getImageDescriptor("/icons/debug/stepbackover_elcl.png")); - reg.put(BreakPointViewRelatedReverse.STEP_BACK_OVER_DLCL, getImageDescriptor("/icons/debug/stepbackover_dlcl.png")); - reg.put(BreakPointViewRelatedReverse.STEP_BACK_RETURN_ELCL, getImageDescriptor("/icons/debug/stepbackreturn_elcl.png")); - reg.put(BreakPointViewRelatedReverse.STEP_BACK_RETURN_DLCL, getImageDescriptor("/icons/debug/stepbackreturn_dlcl.png")); - reg.put(BreakPointViewRelatedReverse.BACK_RESUME_ELCL, getImageDescriptor("/icons/debug/backresume_elcl.png")); - reg.put(BreakPointViewRelatedReverse.BACK_RESUME_DLCL, getImageDescriptor("/icons/debug/backresume_dlcl.png")); + reg.put(BreakPointViewRelatedDelta.STEP_BACK_INTO_ELCL, getImageDescriptor("/icons/debug/stepbackinto_elcl.png")); + reg.put(BreakPointViewRelatedDelta.STEP_BACK_INTO_DLCL, getImageDescriptor("/icons/debug/stepbackinto_dlcl.png")); + reg.put(BreakPointViewRelatedDelta.STEP_BACK_OVER_ELCL, getImageDescriptor("/icons/debug/stepbackover_elcl.png")); + reg.put(BreakPointViewRelatedDelta.STEP_BACK_OVER_DLCL, getImageDescriptor("/icons/debug/stepbackover_dlcl.png")); + reg.put(BreakPointViewRelatedDelta.STEP_BACK_RETURN_ELCL, getImageDescriptor("/icons/debug/stepbackreturn_elcl.png")); + reg.put(BreakPointViewRelatedDelta.STEP_BACK_RETURN_DLCL, getImageDescriptor("/icons/debug/stepbackreturn_dlcl.png")); + reg.put(BreakPointViewRelatedDelta.BACK_RESUME_ELCL, getImageDescriptor("/icons/debug/backresume_elcl.png")); + reg.put(BreakPointViewRelatedDelta.BACK_RESUME_DLCL, getImageDescriptor("/icons/debug/backresume_dlcl.png")); } public static ImageDescriptor getImageDescriptor(String path) { diff --git a/src/org/ntlab/traceDebugger/VariableViewRelatedDelta.java b/src/org/ntlab/traceDebugger/VariableViewRelatedDelta.java index a36eba1..27d7739 100644 --- a/src/org/ntlab/traceDebugger/VariableViewRelatedDelta.java +++ b/src/org/ntlab/traceDebugger/VariableViewRelatedDelta.java @@ -21,12 +21,15 @@ import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkbenchPage; import org.ntlab.traceAnalysisPlatform.tracer.trace.MethodExecution; +import org.ntlab.traceAnalysisPlatform.tracer.trace.MethodInvocation; import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint; import org.ntlab.traceDebugger.Variable.VariableType; import org.ntlab.traceDebugger.analyzerProvider.Alias; import org.ntlab.traceDebugger.analyzerProvider.DeltaMarkerManager; +import org.ntlab.traceDebugger.analyzerProvider.VariableUpdatePointFinder; -public class VariableViewRelatedDelta extends VariableViewRelatedReverse { +public class VariableViewRelatedDelta extends VariableView { + protected IAction jumpAction; private IAction deltaActionForContainerToComponent; private IAction deltaActionForThisToAnother; public static final String ID = "org.ntlab.traceDebugger.variableViewRelatedDelta"; @@ -53,7 +56,38 @@ @Override protected void createActions() { - super.createActions(); + super.createActions(); + jumpAction = new Action() { + public void run() { + TracePoint tp = null; + TracePoint before = DebuggingController.getInstance().getCurrentTp(); + VariableType variableType = selectedVariable.getVariableType(); + if (variableType.equals(VariableType.USE_VALUE)) { + String containerId = selectedVariable.getContainerId(); + String fieldName = selectedVariable.getFullyQualifiedVariableName(); + tp = VariableUpdatePointFinder.getInstance().getPoint(containerId, fieldName, before); + } else if (variableType.equals(VariableType.USE_RETURN)) { + String receiverId = selectedVariable.getContainerId(); + String valueId = selectedVariable.getValueId(); + String receiverClassName = selectedVariable.getContainerClassName(); + VariableUpdatePointFinder finder = VariableUpdatePointFinder.getInstance(); + if (receiverClassName.contains("Iterator") || receiverClassName.contains("Itr") + || receiverClassName.contains("Collections$UnmodifiableCollection$1")) { + tp = finder.getIteratorPoint(receiverId); + if (tp == null) return; + MethodInvocation mi = ((MethodInvocation)tp.getStatement()); + receiverId = mi.getCalledMethodExecution().getThisObjId(); + } + tp = finder.getDefinitionInvocationPoint(receiverId, valueId, before); + } + if (tp == null) return; + DebuggingController controller = DebuggingController.getInstance(); + controller.jumpToTheTracePoint(tp, false); + } + }; + jumpAction.setText("Jump to Definition"); + jumpAction.setToolTipText("Jump to Definition"); + deltaActionForContainerToComponent = new Action() { @Override public void run() { diff --git a/src/org/ntlab/traceDebugger/VariableViewRelatedReverse.java b/src/org/ntlab/traceDebugger/VariableViewRelatedReverse.java deleted file mode 100644 index 93653f8..0000000 --- a/src/org/ntlab/traceDebugger/VariableViewRelatedReverse.java +++ /dev/null @@ -1,100 +0,0 @@ -package org.ntlab.traceDebugger; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.action.IMenuListener; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.jface.action.Separator; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Menu; -import org.eclipse.ui.IWorkbenchActionConstants; -import org.ntlab.traceAnalysisPlatform.tracer.trace.MethodInvocation; -import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint; -import org.ntlab.traceDebugger.Variable.VariableType; -import org.ntlab.traceDebugger.analyzerProvider.VariableUpdatePointFinder; - -public class VariableViewRelatedReverse extends VariableView { - protected IAction jumpAction; - public static final String ID = "org.ntlab.traceDebugger.variableViewRelatedReverse"; - - public VariableViewRelatedReverse() { - // TODO Auto-generated constructor stub - System.out.println("VariableViewRelatedReverse�N���X���������ꂽ��!"); - } - - @Override - public void createPartControl(Composite parent) { - // TODO Auto-generated method stub - System.out.println("VariableViewRelatedReverse#createPartControl(Composite)���Ă΂ꂽ��!"); - super.createPartControl(parent); - TraceDebuggerPlugin.setActiveView(ID, this); - } - - @Override - public void setFocus() { - // TODO Auto-generated method stub - TraceDebuggerPlugin.setActiveView(ID, this); - viewer.getControl().setFocus(); - } - - @Override - protected void createActions() { - jumpAction = new Action() { - public void run() { - TracePoint tp = null; - TracePoint before = DebuggingController.getInstance().getCurrentTp(); - VariableType variableType = selectedVariable.getVariableType(); - if (variableType.equals(VariableType.USE_VALUE)) { - String containerId = selectedVariable.getContainerId(); - String fieldName = selectedVariable.getFullyQualifiedVariableName(); - tp = VariableUpdatePointFinder.getInstance().getPoint(containerId, fieldName, before); - } else if (variableType.equals(VariableType.USE_RETURN)) { - String receiverId = selectedVariable.getContainerId(); - String valueId = selectedVariable.getValueId(); - String receiverClassName = selectedVariable.getContainerClassName(); - VariableUpdatePointFinder finder = VariableUpdatePointFinder.getInstance(); - if (receiverClassName.contains("Iterator") || receiverClassName.contains("Itr") - || receiverClassName.contains("Collections$UnmodifiableCollection$1")) { - tp = finder.getIteratorPoint(receiverId); - if (tp == null) return; - MethodInvocation mi = ((MethodInvocation)tp.getStatement()); - receiverId = mi.getCalledMethodExecution().getThisObjId(); - } - tp = finder.getDefinitionInvocationPoint(receiverId, valueId, before); - } - if (tp == null) return; - DebuggingController controller = DebuggingController.getInstance(); - controller.jumpToTheTracePoint(tp, false); - } - }; - jumpAction.setText("Jump to Definition"); - jumpAction.setToolTipText("Jump to Definition"); - } - - @Override - protected void createPopupMenu() { - MenuManager menuMgr = new MenuManager("#PopupMenu"); - menuMgr.setRemoveAllWhenShown(true); - menuMgr.addMenuListener(new IMenuListener() { - @Override - public void menuAboutToShow(IMenuManager manager) { - // �E�N���b�N����x�ɌĂяo����� - VariableType variableType = selectedVariable.getVariableType(); - if (variableType.equals(VariableType.USE_VALUE)) { - manager.add(jumpAction); - jumpAction.setText("Jump to Definition"); - jumpAction.setToolTipText("Jump to Definition"); - } else if (variableType.equals(VariableType.USE_RETURN)) { - manager.add(jumpAction); - jumpAction.setText("Jump to Addition"); - jumpAction.setToolTipText("Jump to Addition"); - } - manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); - } - }); - Menu menu = menuMgr.createContextMenu(viewer.getControl()); - viewer.getControl().setMenu(menu); - getSite().registerContextMenu(menuMgr, viewer); - } -}