From: Lee Date: Thu, 29 Nov 2012 09:47:44 +0000 (+0900) Subject: [Title] image viewer fixed X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6b288feb0d274b3b72aa0239f56b7dbc2860d924;p=sdk%2Ftools%2Fdynamic-analyzer.git [Title] image viewer fixed [Desc.] image viewer fixed [Issue] - --- diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java index 40db59d..3b451de 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java @@ -57,8 +57,10 @@ public class FileApiListTable extends DATableComposite { @Override public void widgetSelected(SelectionEvent e) { GridItem[] items = table.getSelection(); + DATableDataFormat dataFormat = (DATableDataFormat) items[0].getData(); + String time = dataFormat.getData().get(LogCenterConstants.TIME_INDEX); DASelectionData selData = new DASelectionData( - FileApiListView.ID, 0, 0, items, table); + FileApiListView.ID, Long.parseLong(time), 0, items, table); AnalyzerManager.getCurrentPage().updatePage(selData); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FilePage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FilePage.java index 99438b6..7edb267 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FilePage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FilePage.java @@ -80,9 +80,10 @@ public class FilePage extends DAPageComposite { DATabComposite tabView = new DATabComposite(rightForm, SWT.NONE); addView(tabView); { - SnapshotView currentView = new SnapshotView( + SnapshotView snapshotView = new SnapshotView( tabView.getContentComposite(), SWT.NONE, false); - tabView.addView(currentView); + snapshotView.setObservingViews(new String[] { FileApiListView.ID }); + tabView.addView(snapshotView); CallstackView callstack = new CallstackView( tabView.getContentComposite(), SWT.NONE); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/snapshot/ImageViewer.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/snapshot/ImageViewer.java index 6c216b3..8d6097b 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/snapshot/ImageViewer.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/snapshot/ImageViewer.java @@ -56,7 +56,8 @@ import org.tizen.dynamicanalyzer.common.SnapshotConstants; import org.tizen.dynamicanalyzer.model.ImageInfo; import org.tizen.dynamicanalyzer.resources.ColorResources; import org.tizen.dynamicanalyzer.resources.ImageResources; -import org.tizen.dynamicanalyzer.ui.widgets.DATabComposite; +import org.tizen.dynamicanalyzer.services.RecordStateSourceProvider; +import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; public class ImageViewer extends Composite { @@ -103,10 +104,11 @@ public class ImageViewer extends Composite { } private final int MOUSE_EXIT = 0; - private final int MOUSE_LEFT = 1; - private final int MOUSE_RIGHT = 2; - private final int MOUSE_DOWN_LEFT = 3; - private final int MOUSE_DOWN_RIGHT = 4; + private final int MOUSE_HOVER = 1; + private final int MOUSE_LEFT = 2; + private final int MOUSE_RIGHT = 3; + private final int MOUSE_DOWN_LEFT = 4; + private final int MOUSE_DOWN_RIGHT = 5; private Image image; private Canvas canvas; @@ -298,55 +300,90 @@ public class ImageViewer extends Composite { } childShell.close(); childShell = null; - // ready = false; } state = MOUSE_EXIT; canvas.redraw(); } else if (event.type == SWT.MouseMove) { + String runState = AnalyzerUtil.getRecordState(); + if (runState.equals(RecordStateSourceProvider.RECORD_RECORDING)) { + return; + } if (!mouseDown) { Rectangle rect = canvas.getBounds(); + Rectangle leftImageBounds = ImageResources.SNAPSHOT_LEFT_HOVER + .getBounds(); + Rectangle rightImageBounds = ImageResources.SNAPSHOT_RIGHT_HOVER + .getBounds(); int prevState = state; - if (event.x < rect.x + rect.width / 2) { + if (event.x < rect.x + leftImageBounds.width) { state = MOUSE_LEFT; - } else if (event.x > rect.x + rect.width / 2) { + } else if (event.x > rect.x + + (rect.width - rightImageBounds.width)) { state = MOUSE_RIGHT; + } else if (event.x > rect.x + && event.x < event.x + rect.width) { + state = MOUSE_HOVER; } else { state = MOUSE_EXIT; } + if (prevState != state) { canvas.redraw(); } } } else if (event.type == SWT.MouseDown) { + String runState = AnalyzerUtil.getRecordState(); + if (runState.equals(RecordStateSourceProvider.RECORD_RECORDING)) { + return; + } mouseDown = true; Rectangle rect = canvas.getBounds(); + Rectangle leftImageBounds = ImageResources.SNAPSHOT_LEFT_HOVER + .getBounds(); + Rectangle rightImageBounds = ImageResources.SNAPSHOT_RIGHT_HOVER + .getBounds(); int prevState = state; - if (event.x < rect.x + rect.width / 2) { + if (event.x < rect.x + leftImageBounds.width) { state = MOUSE_DOWN_LEFT; - } else if (event.x > rect.x + rect.width / 2) { + } else if (event.x > rect.x + + (rect.width - rightImageBounds.width)) { state = MOUSE_DOWN_RIGHT; + } else if (event.x > rect.x && event.x < event.x + rect.width) { + state = MOUSE_HOVER; } else { state = MOUSE_EXIT; } + if (prevState != state) { canvas.redraw(); } } else if (event.type == SWT.MouseUp) { + String runState = AnalyzerUtil.getRecordState(); + if (runState.equals(RecordStateSourceProvider.RECORD_RECORDING)) { + return; + } mouseDown = false; Rectangle rect = canvas.getBounds(); + Rectangle leftImageBounds = ImageResources.SNAPSHOT_LEFT_HOVER + .getBounds(); + Rectangle rightImageBounds = ImageResources.SNAPSHOT_RIGHT_HOVER + .getBounds(); int prevState = state; - if (event.x < rect.x + rect.width / 2) { + if (event.x < rect.x + leftImageBounds.width) { if (state == MOUSE_DOWN_LEFT && leftEnable) { leftArrowAction(); setButtonCondition(); } state = MOUSE_LEFT; - } else if (event.x > rect.x + rect.width / 2) { + } else if (event.x > rect.x + + (rect.width - rightImageBounds.width)) { if (state == MOUSE_DOWN_RIGHT && rightEnable) { rightArrowAction(); setButtonCondition(); } state = MOUSE_RIGHT; + } else if (event.x > rect.x && event.x < event.x + rect.width) { + state = MOUSE_HOVER; } else { state = MOUSE_EXIT; } @@ -386,14 +423,12 @@ public class ImageViewer extends Composite { private void widgetSelected(String timeStr) { long time = Long.parseLong(timeStr); AnalyzerManager.getCurrentPage().updatePage( - new DASelectionData(DATabComposite.ID, time, time, - null, null)); + new DASelectionData(SnapshotView.ID, time, time, null, null)); } private void leftArrowAction() { List imageList = AnalyzerManager.getImageList(); ImageInfo imgInfo = imageList.get(--currentImageIndex); - System.out.println("left"); drawSnapshot(imgInfo.getTime()); widgetSelected(imgInfo.getTime()); } @@ -404,7 +439,6 @@ public class ImageViewer extends Composite { return; } ImageInfo imgInfo = imageList.get(++currentImageIndex); - System.out.println("right"); drawSnapshot(imgInfo.getTime()); widgetSelected(imgInfo.getTime()); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/snapshot/SnapshotView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/snapshot/SnapshotView.java index 0a143d0..ddf4291 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/snapshot/SnapshotView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/snapshot/SnapshotView.java @@ -29,11 +29,14 @@ package org.tizen.dynamicanalyzer.ui.info.snapshot; import java.util.ArrayList; import java.util.List; +import org.eclipse.nebula.widgets.grid.Grid; +import org.eclipse.nebula.widgets.grid.GridItem; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.common.DASelectionData; @@ -45,7 +48,11 @@ import org.tizen.dynamicanalyzer.nl.InformationViewLabels; import org.tizen.dynamicanalyzer.resources.ColorResources; import org.tizen.dynamicanalyzer.services.RecordStateSourceProvider; import org.tizen.dynamicanalyzer.sql.SqlManager; +import org.tizen.dynamicanalyzer.ui.page.ViewAction; import org.tizen.dynamicanalyzer.ui.widgets.ViewContainer; +import org.tizen.dynamicanalyzer.ui.widgets.table.DATableComposite; +import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat; +import org.tizen.dynamicanalyzer.ui.widgets.table.DATreeComposite; import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; import org.tizen.dynamicanalyzer.widgets.graph.bar.FourBarGraph; import org.tizen.dynamicanalyzer.widgets.graph.circular.CircularGraph; @@ -58,7 +65,8 @@ public class SnapshotView extends DAView { CircularGraph processGraph; FourBarGraph cpuGrp; private static String rss = "0"; //$NON-NLS-1$ -// private static String time = "0"; //$NON-NLS-1$ + private String[] observingViews = null; + private static List cpuUsage; private static long maxCpuUsage = 100; private static long maxMem = 100; @@ -89,14 +97,14 @@ public class SnapshotView extends DAView { Composite processComp = new Composite(contents, SWT.NONE); data = new FormData(); data.top = new FormAttachment(snapshot, 3); -// data.left = new FormAttachment(50, 0); + // data.left = new FormAttachment(50, 0); data.right = new FormAttachment(100, 0); - data.width = 90; + data.width = 90; data.height = 90; processComp.setLayoutData(data); processComp.setBackground(ColorResources.WHITE); processComp.setLayout(new FillLayout()); - + processGraph = new CircularGraph(processComp, SWT.NONE, CircularGraph.TYPE_CUSTOM); processGraph.setGraphBgColor(ColorResources.PROCESS_GRAPH_BG_COLOR); @@ -113,7 +121,7 @@ public class SnapshotView extends DAView { data = new FormData(); data.top = new FormAttachment(snapshot, 3); data.right = new FormAttachment(processComp, -3); - data.width = 90; + data.width = 90; data.height = 90; cpuGrp.setLayoutData(data); cpuGrp.setBgColor(ColorResources.CPU_BAR_GRAPH_BG_COLOR); @@ -130,16 +138,22 @@ public class SnapshotView extends DAView { data = new FormData(); data.top = new FormAttachment(snapshot, 3); data.right = new FormAttachment(cpuGrp, -3); - data.left = new FormAttachment(0, 0); + data.left = new FormAttachment(0, 0); data.height = 75; emptyComp.setLayoutData(data); } + public void setObservingViews(String[] viewIds) { + observingViews = viewIds; + } + + public String[] getObservingViews() { + return observingViews; + } + private void computeData() { String query = "select * from system where time = (select max(time) from system where time <= " //$NON-NLS-1$ + startTime + ");"; //$NON-NLS-1$ - // FIXME : debug log - // System.out.println(startTime); if (null == AnalyzerManager .getLogCenterById(LogCenterConstants.LOG_DEVICE)) { return; @@ -169,28 +183,49 @@ public class SnapshotView extends DAView { rss = input.get(LogCenterConstants.DEVICE_RSS_MEMORY_INDEX + 1); long totalMem = AnalyzerManager.getProject().getSystemMemorySize(); -// time = input.get(LogCenterConstants.TIME_INDEX + 1); - // cpuUsage = cpus; maxMem = totalMem; processMem = Long.parseLong(rss); - } @Override public void updateView(DASelectionData selData) { - setTimeStartEnd(selData.getStartTime(), selData.getEndTime()); - updateView(); + String runState = AnalyzerUtil.getRecordState(); + if (runState.equals(RecordStateSourceProvider.RECORD_RECORDING)) { + return; + } + setStartTime(selData.getStartTime()); + if (selData.getViewId().equals(SnapshotView.ID)) { + updateView(false); + } else { + updateView(true); + } + } + + private void updateView(final boolean isSnapshot) { + computeData(); + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + processGraph.update(maxMem, processMem); + cpuGrp.setMaxSize(maxCpuUsage); + cpuGrp.setCurrentValue(cpuUsage); + if (isSnapshot) { + snapshot.drawSnapshot(Long.toString(startTime)); + } + } + }); } @Override public void updateView() { - String state = AnalyzerUtil.getRecordState(); - if (state.equals(RecordStateSourceProvider.RECORD_RECORDING)) { - } else { - computeData(); + String runState = AnalyzerUtil.getRecordState(); + if (!runState.equals(RecordStateSourceProvider.RECORD_RECORDING)) { + setStartTimeFromObservingView(); } + computeData(); + Display.getDefault().syncExec(new Runnable() { @Override public void run() { @@ -202,6 +237,34 @@ public class SnapshotView extends DAView { }); } + private void setStartTimeFromObservingView() { + if (null == observingViews) { + return; + } + int size = observingViews.length; + for (int i = 0; i < size; i++) { + ViewAction view = AnalyzerManager.getCurrentPage().getView( + observingViews[i]); + Control control = view.getControl(); + Grid table = null; + if (control instanceof DATableComposite) { + table = ((DATableComposite) control).getTable(); + } else if (control instanceof DATreeComposite) { + table = ((DATreeComposite) control).getTable(); + } else { + continue; + } + if (table.getSelectionCount() > 0) { + GridItem[] selection = table.getSelection(); + List startData = ((DATableDataFormat) selection[0] + .getData()).getData(); + long startTime = Long.parseLong(startData + .get(LogCenterConstants.TIME_INDEX)); + setStartTime(startTime); + } + } + } + @Override public void updateLog(LogPackage logPack) { Logs logs = logPack.getLogs(LogCenterConstants.LOG_DEVICE); @@ -223,14 +286,16 @@ public class SnapshotView extends DAView { rss = input.get(LogCenterConstants.DEVICE_RSS_MEMORY_INDEX); long totalMem = AnalyzerManager.getProject().getSystemMemorySize(); -// time = input.get(LogCenterConstants.TIME_INDEX); maxMem = totalMem; processMem = Long.parseLong(rss); + String time = input.get(LogCenterConstants.TIME_INDEX); + long start = Long.parseLong(time); + setStartTime(start); } @Override public void clear() { -// time = "0"; //$NON-NLS-1$ + // time = "0"; //$NON-NLS-1$ cpuUsage.clear(); maxMem = 100; processMem = 0; @@ -238,7 +303,7 @@ public class SnapshotView extends DAView { updateView(); } - public void setTimeStartEnd(long start, long end) { + public void setStartTime(long start) { startTime = start; } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/SummaryPage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/SummaryPage.java index 8af3621..b05e80d 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/SummaryPage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/SummaryPage.java @@ -89,9 +89,11 @@ public class SummaryPage extends DAPageComposite { DATabComposite tabView = new DATabComposite(upperForm, SWT.NONE); addView(tabView); { - SnapshotView currentView = new SnapshotView( + SnapshotView snapshotView = new SnapshotView( tabView.getContentComposite(), SWT.NONE, false); - tabView.addView(currentView); + tabView.addView(snapshotView); + snapshotView.setObservingViews(new String[] { FailedApiListView.ID, + LeakView.ID, WarningListView.ID }); CallstackView callstack = new CallstackView( tabView.getContentComposite(), SWT.NONE); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiTable.java index 7612fc6..4279c3f 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiTable.java @@ -64,8 +64,10 @@ public class FailedApiTable extends DATableComposite { @Override public void widgetSelected(SelectionEvent e) { GridItem[] items = table.getSelection(); + DATableDataFormat dataFormat = (DATableDataFormat) items[0].getData(); + String time = dataFormat.getData().get(LogCenterConstants.TIME_INDEX); DASelectionData selData = new DASelectionData( - FailedApiListView.ID, 0, 0, items, table); + FailedApiListView.ID, Long.parseLong(time), 0, items, table); AnalyzerManager.getCurrentPage().updatePage(selData); AnalyzerManager.getCurrentPage().controlSelection( FailedApiListView.ID); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakTable.java index 2a68ee7..7f4b766 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakTable.java @@ -87,8 +87,14 @@ public class LeakTable extends DATreeComposite { @Override public void widgetSelected(SelectionEvent e) { GridItem[] items = tree.getSelection(); - DASelectionData selData = new DASelectionData(LeakView.ID, 0, - 0, items, tree); + + DATableDataFormat dataFormat = (DATableDataFormat) items[0] + .getData(); + String time = dataFormat.getData().get( + LogCenterConstants.TIME_INDEX); + + DASelectionData selData = new DASelectionData(LeakView.ID, Long + .parseLong(time), 0, items, tree); AnalyzerManager.getCurrentPage().updatePage(selData); AnalyzerManager.getCurrentPage().controlSelection(LeakView.ID); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningTable.java index 0ba47dd..3aa6601 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningTable.java @@ -62,8 +62,12 @@ public class WarningTable extends DATableComposite { @Override public void widgetSelected(SelectionEvent e) { GridItem[] items = table.getSelection(); + + DATableDataFormat dataFormat = (DATableDataFormat) items[0].getData(); + String time = dataFormat.getData().get(LogCenterConstants.TIME_INDEX); + DASelectionData selData = new DASelectionData( - WarningListView.ID, 0, 0, items, table); + WarningListView.ID, Long.parseLong(time), 0, items, table); AnalyzerManager.getCurrentPage().updatePage(selData); AnalyzerManager.getCurrentPage().controlSelection( WarningListView.ID); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadPage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadPage.java index f688ff0..f5ad5bf 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadPage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadPage.java @@ -78,9 +78,10 @@ public class ThreadPage extends DAPageComposite { DATabComposite tabView = new DATabComposite(rightForm, SWT.NONE); addView(tabView); { - SnapshotView currentView = new SnapshotView( + SnapshotView snapshotView = new SnapshotView( tabView.getContentComposite(), SWT.NONE, false); - tabView.addView(currentView); + snapshotView.setObservingViews(new String[] { ThreadAPIListView.ID }); + tabView.addView(snapshotView); CallstackView callstack = new CallstackView( tabView.getContentComposite(), SWT.NONE); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/DATimelineTabComposite.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/DATimelineTabComposite.java index e367422..6ef6446 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/DATimelineTabComposite.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/DATimelineTabComposite.java @@ -79,7 +79,7 @@ public class DATimelineTabComposite extends DATabComposite { } } rangeView.setTimeStartEnd(data.getStartTime(), data.getEndTime()); - snapshotView.setTimeStartEnd(data.getStartTime(), data.getEndTime()); + snapshotView.setStartTime(data.getStartTime()); super.updateView(data); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TimelinePage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TimelinePage.java index 0b17e63..c0ffef0 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TimelinePage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TimelinePage.java @@ -65,23 +65,23 @@ public class TimelinePage extends DAPageComposite { leftForm = new SashForm(this, SWT.HORIZONTAL); // index 0 : TIMELINE_INDEX - TimelineView timelineComp = new TimelineView(leftForm, - SWT.NONE); + TimelineView timelineComp = new TimelineView(leftForm, SWT.NONE); addView(timelineComp); rightForm = new SashForm(leftForm, SWT.VERTICAL); // index 1 : INFO_INDEX - DATabComposite tabView = new DATabComposite(rightForm,SWT.NONE); + DATabComposite tabView = new DATabComposite(rightForm, SWT.NONE); addView(tabView); { - SnapshotView currentView = new SnapshotView( + SnapshotView snapshotView = new SnapshotView( tabView.getContentComposite(), SWT.NONE, false); - tabView.addView(currentView); + snapshotView.setObservingViews(new String[] { CallTraceView.ID }); + tabView.addView(snapshotView); CallstackView callstack = new CallstackView( tabView.getContentComposite(), SWT.NONE); - callstack.setObservingViews(new String[] {CallTraceView.ID}); + callstack.setObservingViews(new String[] { CallTraceView.ID }); tabView.addView(callstack); RangeView rangeView = new RangeView(tabView.getContentComposite(), @@ -115,8 +115,6 @@ public class TimelinePage extends DAPageComposite { @Override public void controlMoved(ControlEvent e) { - // TODO Auto-generated method stub - } }); }