Add marker when thread, network table double clicked
authorjaeyong lee <jae-yong.lee@samsung.com>
Thu, 11 Aug 2016 07:13:13 +0000 (16:13 +0900)
committergihun chang <gihun.chang@samsung.com>
Thu, 11 Aug 2016 08:07:14 +0000 (17:07 +0900)
 * related JIRA issues : SRADA-1008, SRADA-1009

Change-Id: If9b28f197495dac765fa1229e79632863d23c08f

org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkTable.java

index 3487961..94bf71b 100644 (file)
@@ -33,8 +33,11 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 
+import org.eclipse.nebula.widgets.grid.Grid;
 import org.eclipse.nebula.widgets.grid.GridColumn;
 import org.eclipse.nebula.widgets.grid.GridItem;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.widgets.Composite;
@@ -54,10 +57,25 @@ import org.tizen.dynamicanalyzer.ui.file.manager.FileDataManager;
 import org.tizen.dynamicanalyzer.ui.file.model.FileAccessor;
 import org.tizen.dynamicanalyzer.ui.file.model.FileEvent;
 import org.tizen.dynamicanalyzer.ui.file.model.FileSelectedData;
+import org.tizen.dynamicanalyzer.ui.memory.MemoryChartView;
+import org.tizen.dynamicanalyzer.ui.memory.MemoryPage;
+import org.tizen.dynamicanalyzer.ui.network.NetworkChartView;
+import org.tizen.dynamicanalyzer.ui.network.NetworkPage;
+import org.tizen.dynamicanalyzer.ui.opengl.GLPage;
+import org.tizen.dynamicanalyzer.ui.opengl.chart.GLChartView;
+import org.tizen.dynamicanalyzer.ui.page.BaseView;
+import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;
+import org.tizen.dynamicanalyzer.ui.thread.ThreadPage;
+import org.tizen.dynamicanalyzer.ui.thread.chart.ThreadChartView;
+import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartView;
 import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
+import org.tizen.dynamicanalyzer.ui.toolbar.Toolbar;
 import org.tizen.dynamicanalyzer.ui.widgets.table.DAApiListTableComposite;
 import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat;
 import org.tizen.dynamicanalyzer.util.Logger;
+import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
+import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
 import org.tizen.dynamicanalyzer.utils.Formatter;
 
 public class FileApiListTable extends DAApiListTableComposite {
@@ -101,6 +119,67 @@ public class FileApiListTable extends DAApiListTableComposite {
                        public void widgetDefaultSelected(SelectionEvent e) {
                        }
                });
+               
+               table.addMouseListener(new MouseListener() {
+                       
+                       @Override
+                       public void mouseUp(MouseEvent e) {
+                               // TODO Auto-generated method stub
+                               
+                       }
+                       
+                       @Override
+                       public void mouseDown(MouseEvent e) {
+                               // TODO Auto-generated method stub
+                               
+                       }
+                       
+                       @Override
+                       public void mouseDoubleClick(MouseEvent e) {
+                               GridItem[] ti = ((Grid) e.widget).getSelection();
+                               if (null == ti || ti.length == 0) {
+                                       return;
+                               }
+                               List<Object> markerData = ((DATableDataFormat) ti[0].getData()).getData();
+                               long markerTime = Long.parseLong((String)markerData.get(1));
+                               addMarker(markerTime);
+                       }
+               });
+       }
+       
+       private void addMarker(long markerTime) {
+               double startMarkerTime = markerTime / (TimelineConstants.MEGA_DOUBLE);
+               
+               TimelineChartView TLchartView = (TimelineChartView) AnalyzerUtil.getView(TimelinePage.pageID, TimelineChartView.class.getName());
+               NetworkChartView NETchartView = (NetworkChartView) AnalyzerUtil.getView(NetworkPage.pageID, NetworkChartView.class.getName());
+               ThreadChartView THRchartView = (ThreadChartView) AnalyzerUtil.getView(ThreadPage.pageID, ThreadChartView.class.getName());
+               FileChartView FLchartView = (FileChartView) AnalyzerUtil.getView(FilePage.pageID, FileChartView.class.getName());
+               GLChartView GLchartview = (GLChartView) AnalyzerUtil.getView(GLPage.pageID, GLChartView.class.getName());
+               MemoryChartView MMchartView = (MemoryChartView) AnalyzerUtil.getView(MemoryPage.pageID, MemoryChartView.class.getName());
+               
+               //1. add marker to rangedatamanager
+               RangeDataManager.getInstance().addMarkerTime(markerTime);
+               
+               //2. add marker to toolbar
+               Toolbar.INSTANCE.addMarkerTime(startMarkerTime);
+               
+               if(TLchartView != null)
+                       TLchartView.updateView();
+               if(NETchartView != null)
+                       NETchartView.updateView();
+               if(THRchartView != null)
+                       THRchartView.updateView();
+               if(FLchartView != null)
+                       FLchartView.updateView();
+               if(GLchartview != null)
+                       GLchartview.updateView();
+               if(MMchartView != null)
+                       MMchartView.updateView();
+               
+               AnalyzerUtil.getMainTab().getTopComposite().updateView();
+               /// draw marker clearly
+               BaseView baseView = (BaseView) WorkbenchUtil.getViewPart(BaseView.ID);
+               baseView.getTopComposite().updateView();
        }
 
        @Override
index 5590baf..815b6a5 100644 (file)
@@ -32,8 +32,11 @@ import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
 
+import org.eclipse.nebula.widgets.grid.Grid;
 import org.eclipse.nebula.widgets.grid.GridColumn;
 import org.eclipse.nebula.widgets.grid.GridItem;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.widgets.Composite;
@@ -45,13 +48,28 @@ import org.tizen.dynamicanalyzer.error.ErrorCodeManager;
 import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
 import org.tizen.dynamicanalyzer.model.FilterProperty;
 import org.tizen.dynamicanalyzer.model.TableInput;
+import org.tizen.dynamicanalyzer.ui.file.FileChartView;
+import org.tizen.dynamicanalyzer.ui.file.FilePage;
+import org.tizen.dynamicanalyzer.ui.memory.MemoryChartView;
+import org.tizen.dynamicanalyzer.ui.memory.MemoryPage;
 import org.tizen.dynamicanalyzer.ui.network.data.NetworkAPIDBManager;
 import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
 import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
 import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSelectionType;
+import org.tizen.dynamicanalyzer.ui.opengl.GLPage;
+import org.tizen.dynamicanalyzer.ui.opengl.chart.GLChartView;
+import org.tizen.dynamicanalyzer.ui.page.BaseView;
+import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;
+import org.tizen.dynamicanalyzer.ui.thread.ThreadPage;
+import org.tizen.dynamicanalyzer.ui.thread.chart.ThreadChartView;
+import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartView;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
 import org.tizen.dynamicanalyzer.ui.toolbar.Toolbar;
 import org.tizen.dynamicanalyzer.ui.widgets.table.DAApiListTableComposite;
 import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat;
+import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
+import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
 import org.tizen.dynamicanalyzer.utils.Formatter;
 
 public class NetworkTable extends DAApiListTableComposite {
@@ -94,6 +112,67 @@ public class NetworkTable extends DAApiListTableComposite {
                        public void widgetDefaultSelected(SelectionEvent e) {
                        }
                });
+               
+               table.addMouseListener(new MouseListener() {
+                       
+                       @Override
+                       public void mouseUp(MouseEvent e) {
+                               // TODO Auto-generated method stub
+                               
+                       }
+                       
+                       @Override
+                       public void mouseDown(MouseEvent e) {
+                               // TODO Auto-generated method stub
+                               
+                       }
+                       
+                       @Override
+                       public void mouseDoubleClick(MouseEvent e) {
+                               GridItem[] ti = ((Grid) e.widget).getSelection();
+                               if (null == ti || ti.length == 0) {
+                                       return;
+                               }
+                               List<Object> markerData = ((DATableDataFormat) ti[0].getData()).getData();
+                               long markerTime = Long.parseLong((String)markerData.get(1));
+                               addMarker(markerTime);
+                       }
+               });
+       }
+       
+       private void addMarker(long markerTime) {
+               double startMarkerTime = markerTime / (TimelineConstants.MEGA_DOUBLE);
+               
+               TimelineChartView TLchartView = (TimelineChartView) AnalyzerUtil.getView(TimelinePage.pageID, TimelineChartView.class.getName());
+               NetworkChartView NETchartView = (NetworkChartView) AnalyzerUtil.getView(NetworkPage.pageID, NetworkChartView.class.getName());
+               ThreadChartView THRchartView = (ThreadChartView) AnalyzerUtil.getView(ThreadPage.pageID, ThreadChartView.class.getName());
+               FileChartView FLchartView = (FileChartView) AnalyzerUtil.getView(FilePage.pageID, FileChartView.class.getName());
+               GLChartView GLchartview = (GLChartView) AnalyzerUtil.getView(GLPage.pageID, GLChartView.class.getName());
+               MemoryChartView MMchartView = (MemoryChartView) AnalyzerUtil.getView(MemoryPage.pageID, MemoryChartView.class.getName());
+               
+               //1. add marker to rangedatamanager
+               RangeDataManager.getInstance().addMarkerTime(markerTime);
+               
+               //2. add marker to toolbar
+               Toolbar.INSTANCE.addMarkerTime(startMarkerTime);
+               
+               if(TLchartView != null)
+                       TLchartView.updateView();
+               if(NETchartView != null)
+                       NETchartView.updateView();
+               if(THRchartView != null)
+                       THRchartView.updateView();
+               if(FLchartView != null)
+                       FLchartView.updateView();
+               if(GLchartview != null)
+                       GLchartview.updateView();
+               if(MMchartView != null)
+                       MMchartView.updateView();
+               
+               AnalyzerUtil.getMainTab().getTopComposite().updateView();
+               /// draw marker clearly
+               BaseView baseView = (BaseView) WorkbenchUtil.getViewPart(BaseView.ID);
+               baseView.getTopComposite().updateView();
        }
 
        @Override