diff --git a/src/org/ntlab/traceDebugger/BreakPointView.java b/src/org/ntlab/traceDebugger/BreakPointView.java index aa45fba..375fccd 100644 --- a/src/org/ntlab/traceDebugger/BreakPointView.java +++ b/src/org/ntlab/traceDebugger/BreakPointView.java @@ -93,11 +93,13 @@ createToolBar(); createMenuBar(); createPopupMenu(); + TraceDebuggerPlugin.setActiveView(ID, this); } @Override public void setFocus() { // TODO Auto-generated method stub + TraceDebuggerPlugin.setActiveView(ID, this); viewer.getControl().setFocus(); } diff --git a/src/org/ntlab/traceDebugger/CallStackView.java b/src/org/ntlab/traceDebugger/CallStackView.java index 4cf4d8d..1febba0 100644 --- a/src/org/ntlab/traceDebugger/CallStackView.java +++ b/src/org/ntlab/traceDebugger/CallStackView.java @@ -20,10 +20,8 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Menu; 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.traceAnalysisPlatform.tracer.trace.MethodExecution; @@ -68,10 +66,10 @@ MethodExecution methodExecution = callStackModel.getMethodExecution(); TracePoint tp = callStackModel.getTracePoint(); JavaEditorOperator.openSrcFileOfMethodExecution(methodExecution, callStackModel.getCallLineNo()); - CallTreeView callTreeView = (CallTreeView)(getOtherView(CallTreeView.ID)); + CallTreeView callTreeView = (CallTreeView)TraceDebuggerPlugin.getActiveView(CallTreeView.ID); callTreeView.highlight(methodExecution); - VariableView variableView = (VariableView)(getOtherView(VariableView.ID)); + VariableView variableView = (VariableView)TraceDebuggerPlugin.getActiveView(VariableView.ID); variableView.updateVariablesByTracePoint(tp, false); AbstractAnalyzer analyzer = TraceDebuggerPlugin.getAnalyzer(); if (analyzer instanceof DeltaExtractionAnalyzer) { @@ -92,11 +90,13 @@ createToolBar(); createMenuBar(); createPopupMenu(); + TraceDebuggerPlugin.setActiveView(ID, this); } @Override public void setFocus() { // TODO Auto-generated method stub + TraceDebuggerPlugin.setActiveView(ID, this); viewer.getControl().setFocus(); } @@ -123,8 +123,7 @@ String calleeId = callee.getThisObjId(); TracePoint before = callee.getCallerTracePoint(); Variable variable = new Variable("tmp", callerClassName, callerId, calleeClassName, calleeId, before, false); - String secandaryId = TraceDebuggerPlugin.assignUniqueIdForNewView(); - DeltaMarkerView newDeltaMarkerView = (DeltaMarkerView)(getNewView(DeltaMarkerView.ID, secandaryId, IWorkbenchPage.VIEW_ACTIVATE)); + DeltaMarkerView newDeltaMarkerView = (DeltaMarkerView)TraceDebuggerPlugin.createNewView(DeltaMarkerView.ID, IWorkbenchPage.VIEW_ACTIVATE); newDeltaMarkerView.extractDelta(variable, false); } } @@ -200,22 +199,4 @@ callStackModels.highlight(methodExecution); viewer.refresh(); } - - private IViewPart getOtherView(String viewId) { - IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); - try { - return workbenchPage.showView(viewId); - } catch (PartInitException e) { - throw new RuntimeException(e); - } - } - - private IViewPart getNewView(String viewId, String secondaryId, int mode) { - IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); - try { - return workbenchPage.showView(viewId, secondaryId, mode); - } catch (PartInitException e) { - throw new RuntimeException(e); - } - } } diff --git a/src/org/ntlab/traceDebugger/CallTreeView.java b/src/org/ntlab/traceDebugger/CallTreeView.java index a9b1873..21d32b2 100644 --- a/src/org/ntlab/traceDebugger/CallTreeView.java +++ b/src/org/ntlab/traceDebugger/CallTreeView.java @@ -12,10 +12,6 @@ import org.eclipse.jface.viewers.TreeNodeContentProvider; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.widgets.Composite; -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.traceAnalysisPlatform.tracer.trace.MethodExecution; import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint; @@ -57,8 +53,8 @@ TracePoint tp = methodExecution.getEntryPoint(); DebuggingController controller = DebuggingController.getInstance(); controller.jumpToTheTracePoint(tp, false); - CallStackView callStackView = (CallStackView)getOtherView(CallStackView.ID); - VariableView variableView = ((VariableView)getOtherView(VariableView.ID)); + CallStackView callStackView = (CallStackView)TraceDebuggerPlugin.getActiveView(CallStackView.ID); + VariableView variableView = ((VariableView)TraceDebuggerPlugin.getActiveView(VariableView.ID)); AbstractAnalyzer analyzer = TraceDebuggerPlugin.getAnalyzer(); if (analyzer instanceof DeltaExtractionAnalyzer) { DeltaMarkerView deltaMarkerView = (DeltaMarkerView)TraceDebuggerPlugin.getActiveView(DeltaMarkerView.ID); @@ -73,11 +69,13 @@ createActions(); createToolBar(); createMenuBar(); + TraceDebuggerPlugin.setActiveView(ID, this); } @Override public void setFocus() { // TODO Auto-generated method stub + TraceDebuggerPlugin.setActiveView(ID, this); viewer.getControl().setFocus(); } @@ -117,13 +115,4 @@ viewer.setInput(callTreeModels.getCallTreeModelList()); viewer.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/src/org/ntlab/traceDebugger/DeltaMarkerView.java b/src/org/ntlab/traceDebugger/DeltaMarkerView.java index d7bd689..d86e406 100644 --- a/src/org/ntlab/traceDebugger/DeltaMarkerView.java +++ b/src/org/ntlab/traceDebugger/DeltaMarkerView.java @@ -15,9 +15,7 @@ import org.eclipse.swt.widgets.Shell; 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.ide.IDE; import org.eclipse.ui.part.ViewPart; @@ -76,6 +74,7 @@ createToolBar(); createMenuBar(); createPopupMenu(); + TraceDebuggerPlugin.setActiveView(ID, this); } private void createActions() { @@ -97,8 +96,8 @@ @Override public void setFocus() { // TODO Auto-generated method stub - TraceDebuggerPlugin.addActiveView(ID, this); - CallTreeView callTreeView = (CallTreeView)getOtherView(CallTreeView.ID); + TraceDebuggerPlugin.setActiveView(ID, this); + CallTreeView callTreeView = (CallTreeView)TraceDebuggerPlugin.getActiveView(CallTreeView.ID); callTreeView.update(deltaMarkerManager); updateOtherViewsByMarker(selectionMarker); viewer.getControl().setFocus(); @@ -127,7 +126,7 @@ @Override public void dispose() { deltaMarkerManager.clearAllMarkers(); - CallTreeView callTreeView = ((CallTreeView)getOtherView(CallTreeView.ID)); + CallTreeView callTreeView = ((CallTreeView)TraceDebuggerPlugin.getActiveView(CallTreeView.ID)); callTreeView.reset(); super.dispose(); } @@ -158,11 +157,11 @@ controller.jumpToTheTracePoint(jumpPoint, isReturned); IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IDE.openEditor(page, marker); - CallTreeView callTreeView = ((CallTreeView)getOtherView(CallTreeView.ID)); + CallTreeView callTreeView = ((CallTreeView)TraceDebuggerPlugin.getActiveView(CallTreeView.ID)); callTreeView.highlight(selectionME); - CallStackView callStackView = (CallStackView)getOtherView(CallStackView.ID); + CallStackView callStackView = (CallStackView)TraceDebuggerPlugin.getActiveView(CallStackView.ID); callStackView.highlight(coordinatorPoint.getMethodExecution()); - VariableView variableView = (VariableView)getOtherView(VariableView.ID); + VariableView variableView = (VariableView)TraceDebuggerPlugin.getActiveView(VariableView.ID); variableView.markAndExpandVariablesByDeltaMarkers(deltaMarkerManager.getMarkers()); } catch (CoreException e) { e.printStackTrace(); @@ -188,24 +187,15 @@ MethodExecution bottomME = creationPoint.getMethodExecution(); DebuggingController controller = DebuggingController.getInstance(); controller.jumpToTheTracePoint(creationPoint, false); - VariableView variableView = (VariableView)(getOtherView(VariableView.ID)); + VariableView variableView = (VariableView)(TraceDebuggerPlugin.getActiveView(VariableView.ID)); variableView.markAndExpandVariablesByDeltaMarkers(deltaMarkerManager.getMarkers()); - CallStackView callStackView = (CallStackView)getOtherView(CallStackView.ID); + CallStackView callStackView = (CallStackView)TraceDebuggerPlugin.getActiveView(CallStackView.ID); callStackView.highlight(coordinatorME); - CallTreeView callTreeView = (CallTreeView)getOtherView(CallTreeView.ID); + CallTreeView callTreeView = (CallTreeView)TraceDebuggerPlugin.getActiveView(CallTreeView.ID); callTreeView.update(deltaMarkerManager); callTreeView.highlight(bottomME); - TracePointsView tracePointsView = (TracePointsView)getOtherView(TracePointsView.ID); + TracePointsView tracePointsView = (TracePointsView)TraceDebuggerPlugin.getActiveView(TracePointsView.ID); tracePointsView.addTracePoint(creationPoint); } } - - 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/src/org/ntlab/traceDebugger/TraceDebuggerPlugin.java b/src/org/ntlab/traceDebugger/TraceDebuggerPlugin.java index 3ded418..df3ec60 100644 --- a/src/org/ntlab/traceDebugger/TraceDebuggerPlugin.java +++ b/src/org/ntlab/traceDebugger/TraceDebuggerPlugin.java @@ -4,6 +4,9 @@ import java.util.Map; import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.ntlab.traceDebugger.analyzerProvider.AbstractAnalyzer; import org.osgi.framework.BundleContext; @@ -70,11 +73,17 @@ TraceDebuggerPlugin.analyzer = analyzer; } - public static void addActiveView(String viewId, IViewPart activeView) { + public static void setActiveView(String viewId, IViewPart activeView) { viewIdToActiveView.put(viewId, activeView); } - - public static String assignUniqueIdForNewView() { - return "View" + (uniqueIdForViews++); - } + + public static IViewPart createNewView(String viewId, int mode) { + String secondaryId = "View" + (uniqueIdForViews++); + IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + try { + return workbenchPage.showView(viewId, secondaryId, mode); + } catch (PartInitException e) { + throw new RuntimeException(e); + } + } } diff --git a/src/org/ntlab/traceDebugger/TracePointsView.java b/src/org/ntlab/traceDebugger/TracePointsView.java index f499298..7933aba 100644 --- a/src/org/ntlab/traceDebugger/TracePointsView.java +++ b/src/org/ntlab/traceDebugger/TracePointsView.java @@ -23,10 +23,6 @@ import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; -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.traceAnalysisPlatform.tracer.trace.MethodExecution; import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint; @@ -99,11 +95,13 @@ createToolBar(); createMenuBar(); createPopupMenu(); + TraceDebuggerPlugin.setActiveView(ID, this); } @Override public void setFocus() { // TODO Auto-generated method stub + TraceDebuggerPlugin.setActiveView(ID, this); viewer.getControl().setFocus(); } @@ -189,8 +187,8 @@ MethodExecution currentME = tp.getMethodExecution(); int lineNo = tp.getStatement().getLineNo(); JavaEditorOperator.openSrcFileOfMethodExecution(currentME, lineNo); - CallStackView callStackView = ((CallStackView)getOtherView(CallStackView.ID)); - VariableView variableView = ((VariableView)getOtherView(VariableView.ID)); + CallStackView callStackView = ((CallStackView)TraceDebuggerPlugin.getActiveView(CallStackView.ID)); + VariableView variableView = ((VariableView)TraceDebuggerPlugin.getActiveView(VariableView.ID)); AbstractAnalyzer analyzer = TraceDebuggerPlugin.getAnalyzer(); if (analyzer instanceof DeltaExtractionAnalyzer) { @@ -206,18 +204,9 @@ MethodExecution coordinatorME = DeltaMarkerManager.getMethodExecution(coordinatorMarker); callStackView.highlight(coordinatorME); } - CallTreeView callTreeView = ((CallTreeView)getOtherView(CallTreeView.ID)); + CallTreeView callTreeView = ((CallTreeView)TraceDebuggerPlugin.getActiveView(CallTreeView.ID)); callTreeView.highlight(currentME); } } - } - - private IViewPart getOtherView(String viewId) { - IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); - try { - return workbenchPage.showView(viewId); - } catch (PartInitException e) { - throw new RuntimeException(e); - } - } + } } \ No newline at end of file diff --git a/src/org/ntlab/traceDebugger/VariableView.java b/src/org/ntlab/traceDebugger/VariableView.java index 7467f16..01755e2 100644 --- a/src/org/ntlab/traceDebugger/VariableView.java +++ b/src/org/ntlab/traceDebugger/VariableView.java @@ -30,11 +30,8 @@ import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeColumn; import org.eclipse.swt.widgets.TreeItem; -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.traceAnalysisPlatform.tracer.trace.MethodExecution; import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint; @@ -123,11 +120,13 @@ createToolBar(); createMenuBar(); createPopupMenu(); + TraceDebuggerPlugin.setActiveView(ID, this); } @Override public void setFocus() { // TODO Auto-generated method stub + TraceDebuggerPlugin.setActiveView(ID, this); viewer.getControl().setFocus(); } @@ -147,8 +146,7 @@ deltaAction = new Action() { @Override public void run() { - String secandaryId = TraceDebuggerPlugin.assignUniqueIdForNewView(); - DeltaMarkerView newDeltaMarkerView = (DeltaMarkerView)(getNewView(DeltaMarkerView.ID, secandaryId, IWorkbenchPage.VIEW_ACTIVATE)); + DeltaMarkerView newDeltaMarkerView = (DeltaMarkerView)TraceDebuggerPlugin.createNewView(DeltaMarkerView.ID, IWorkbenchPage.VIEW_ACTIVATE); newDeltaMarkerView.extractDelta(selectedVariable, true); } }; @@ -158,8 +156,7 @@ deltaActionForContainerToComponent = new Action() { @Override public void run() { - String secandaryId = TraceDebuggerPlugin.assignUniqueIdForNewView(); - DeltaMarkerView newDeltaMarkerView = (DeltaMarkerView)(getNewView(DeltaMarkerView.ID, secandaryId, IWorkbenchPage.VIEW_ACTIVATE)); + DeltaMarkerView newDeltaMarkerView = (DeltaMarkerView)TraceDebuggerPlugin.createNewView(DeltaMarkerView.ID, IWorkbenchPage.VIEW_ACTIVATE); newDeltaMarkerView.extractDelta(selectedVariable, true); } }; @@ -169,8 +166,7 @@ deltaActionForThisToAnother = new Action() { @Override public void run() { - String secandaryId = TraceDebuggerPlugin.assignUniqueIdForNewView(); - DeltaMarkerView newDeltaMarkerView = (DeltaMarkerView)(getNewView(DeltaMarkerView.ID, secandaryId, IWorkbenchPage.VIEW_ACTIVATE)); + DeltaMarkerView newDeltaMarkerView = (DeltaMarkerView)TraceDebuggerPlugin.createNewView(DeltaMarkerView.ID, IWorkbenchPage.VIEW_ACTIVATE); newDeltaMarkerView.extractDelta(selectedVariable, false); } }; @@ -192,8 +188,7 @@ String valueType = selectedVariable.getValueClassName(); TracePoint tp = DebuggingController.getInstance().getCurrentTp(); Variable variable = new Variable("tmp", containerType, containerId, valueType, valueId, tp, false); - String secandaryId = TraceDebuggerPlugin.assignUniqueIdForNewView(); - DeltaMarkerView newDeltaMarkerView = (DeltaMarkerView)(getNewView(DeltaMarkerView.ID, secandaryId, IWorkbenchPage.VIEW_ACTIVATE)); + DeltaMarkerView newDeltaMarkerView = (DeltaMarkerView)TraceDebuggerPlugin.createNewView(DeltaMarkerView.ID, IWorkbenchPage.VIEW_ACTIVATE); newDeltaMarkerView.extractDelta(variable, true); } }; @@ -338,23 +333,5 @@ for (TreeNode child : children) { collectNodes(child, expandedNodes); } - } - - private IViewPart getOtherView(String viewId) { - IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); - try { - return workbenchPage.showView(viewId); - } catch (PartInitException e) { - throw new RuntimeException(e); - } - } - - private IViewPart getNewView(String viewId, String secondaryId, int mode) { - IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); - try { - return workbenchPage.showView(viewId, secondaryId, mode); - } catch (PartInitException e) { - throw new RuntimeException(e); - } } }