From: ggh1933.go Date: Thu, 12 May 2016 04:26:14 +0000 (+0900) Subject: [SRADA-467]Add DlogTable on TimeLinePage - 03 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b4baa5f6cbd2ae54420b00aa9ed4e000fe7e04b7;p=sdk%2Ftools%2Fdynamic-analyzer.git [SRADA-467]Add DlogTable on TimeLinePage - 03 - Add Filter function by Tag and Level - Filter triggered by popup menu(right click on Table) Change-Id: I03d834d9e144c30d18c292f7aef30f9727536dc4 --- diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/dlog/DADlogReceiver.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/dlog/DADlogReceiver.java index 0677b60..b8ddf28 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/dlog/DADlogReceiver.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/dlog/DADlogReceiver.java @@ -4,19 +4,12 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.regex.Pattern; - -import org.eclipse.swt.widgets.Display; import org.tizen.dynamicanalyzer.common.Global; import org.tizen.dynamicanalyzer.communicator.CommunicatorUtils; import org.tizen.dynamicanalyzer.communicator.DeviceInfo; -import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage; -import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartView; -import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineTableView; -import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; import org.tizen.sdblib.receiver.MultiLineReceiver; import org.tizen.sdblib.util.StringUtil; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/dlog/DlogTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/dlog/DlogTable.java index 4299490..840df98 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/dlog/DlogTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/dlog/DlogTable.java @@ -7,19 +7,26 @@ 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.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.MenuItem; +import org.eclipse.swt.widgets.Shell; import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.model.TableInput; import org.tizen.dynamicanalyzer.ui.common.UICommonConstants; +import org.tizen.dynamicanalyzer.ui.page.BaseView; 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.widgets.table.DATableComposite; import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat; import org.tizen.dynamicanalyzer.ui.widgets.table.DefaultTableComparator; +import org.tizen.dynamicanalyzer.util.WorkbenchUtil; import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; import org.tizen.dynamicanalyzer.utils.Formatter; import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotIntervalMarker; @@ -31,14 +38,13 @@ public class DlogTable extends DATableComposite { private int[] columnSizes = { 80, 80, 80, 80, 300, 1200}; private int[] columnAlignment = { SWT.LEFT, SWT.LEFT, SWT.LEFT, SWT.LEFT, SWT.LEFT, SWT.LEFT }; private boolean[] columnVisibility = { true, true, true, true, true, true }; - private int[] sortTypes = { AnalyzerConstants.SORT_TYPE_NONE, AnalyzerConstants.SORT_TYPE_STRING, AnalyzerConstants.SORT_TYPE_NONE, - AnalyzerConstants.SORT_TYPE_NONE,AnalyzerConstants.SORT_TYPE_STRING, AnalyzerConstants.SORT_TYPE_NONE }; + private int[] sortTypes = { AnalyzerConstants.SORT_TYPE_NONE, AnalyzerConstants.SORT_TYPE_NONE, AnalyzerConstants.SORT_TYPE_NONE, + AnalyzerConstants.SORT_TYPE_NONE,AnalyzerConstants.SORT_TYPE_NONE, AnalyzerConstants.SORT_TYPE_NONE }; private DADlogReceiver dlogRecv = new DADlogReceiver(); private List tableClone = new ArrayList(); + private List filteredDlog = new ArrayList(); private static boolean isFilter = false; - private static List dlogfilteredData = new ArrayList(); - public DlogTable(Composite parent, int compStyle, int tableStyle) { // TODO Auto-generated constructor stub super(parent, compStyle, tableStyle); @@ -52,7 +58,11 @@ public class DlogTable extends DATableComposite { //setDataType(FunctionEntryDBTable.COLUMN.START_TIME.index); //setContextMenu(AnalyzerConstants.CONTEXT_TABLE_RANGE); - + initDlogListeners(); + } + + public boolean initDlogListeners(){ + table.addSelectionListener(new SelectionListener() { @Override @@ -73,18 +83,120 @@ public class DlogTable extends DATableComposite { public void widgetDefaultSelected(SelectionEvent e) { } }); + + table.addMouseListener(new MouseListener() { + + @Override + public void mouseUp(final MouseEvent MouseEvent) { + // TODO Auto-generated method stub + + // START : Mouse Right Click on table cell + if(MouseEvent.button == 3){ + + Shell shell = table.getParent().getShell(); + Menu dropmenu = new Menu(shell, SWT.POP_UP); + shell.setMenu(dropmenu); + MenuItem item0 = new MenuItem(dropmenu, SWT.NONE); + MenuItem item1 = new MenuItem(dropmenu, SWT.NONE); + MenuItem item2 = new MenuItem(dropmenu, SWT.NONE); + + item0.setText("Filter by Selected Tag"); + item1.setText("Filter by Selected Level"); + item2.setText("All DLogs show"); + + item0.addSelectionListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + // TODO Auto-generated method stub + + GridItem[] ti = ((Grid) MouseEvent.widget).getSelection(); + if (null == ti || ti.length == 0) { + return; + } + String startData = ((DATableDataFormat) ti[0].getData()).getData().get(4).toString(); + filteringDlog(startData); + + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + // TODO Auto-generated method stub + + } + }); + + item1.addSelectionListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + // TODO Auto-generated method stub + + GridItem[] ti = ((Grid) MouseEvent.widget).getSelection(); + if (null == ti || ti.length == 0) { + return; + } + String startData = ((DATableDataFormat) ti[0].getData()).getData().get(1).toString(); + filteringDlog(startData); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + // TODO Auto-generated method stub + + } + }); + + item2.addSelectionListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + // TODO Auto-generated method stub + isFilter = false; + table.update(); + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + BaseView baseView = (BaseView) WorkbenchUtil.getViewPart(BaseView.ID); + baseView.getTopComposite().updateView(); + } + }); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + // TODO Auto-generated method stub + + } + }); + + dropmenu.setLocation(MouseEvent.x, MouseEvent.y); + dropmenu.setVisible(true); + } + // END : Mouse Right Click on table cell + } + + @Override + public void mouseDown(MouseEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseDoubleClick(MouseEvent e) { + // TODO Auto-generated method stub + } + }); + + return true; } - @Override protected List makeTableInput() { List output = new ArrayList(); List dlogData = new ArrayList(); - if(isFilter){ - dlogData = dlogfilteredData; - } - else if(dlogRecv.getDlogs()!=null){ + if(dlogRecv.getDlogs()!=null){ dlogData = dlogRecv.parserDlogs(); } else { @@ -94,6 +206,10 @@ public class DlogTable extends DATableComposite { int seqnum = 0; + if(isFilter){ + output = filteredDlog; + return output; + } for(DADlogData data : dlogData){ List text = new ArrayList(); List tabledata = new ArrayList(); @@ -227,11 +343,11 @@ public class DlogTable extends DATableComposite { } table.update(); } - /// 0504 Success find me~! - /// 1. Add TextEditor for input filter Text - /// 2. Effect for selection - /// 3. cutting Table by filtering + private void filteringDlog(String input){ + + filteredDlog.clear(); + if(tableClone != null){ for(TableInput table : tableClone){ if(table.getText().get(4).contains(input)){ @@ -241,11 +357,19 @@ public class DlogTable extends DATableComposite { //private String level; //private String tag; //private String message; - //dlogfilteredData.add(0,dlogRecv.getDlogs()); - System.out.println("============find me!!"+table.getText()+"=================="); + filteredDlog.add(table); + isFilter = true; } } } + table.update(); + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + BaseView baseView = (BaseView) WorkbenchUtil.getViewPart(BaseView.ID); + baseView.getTopComposite().updateView(); + } + }); } private void DlogTimeMarker(long startTime, long endTime){