From: dongkyu6 lee Date: Tue, 31 May 2016 05:04:01 +0000 (+0900) Subject: [SRADA-XXX] Rearrange Table width and align in Dlog Table X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f92f6f47a3c514379246145e51d3f736b13ff11d;p=sdk%2Ftools%2Fdynamic-analyzer.git [SRADA-XXX] Rearrange Table width and align in Dlog Table - delete UpdateTable for align - Add sorting table Change-Id: Ib3a4e1822c238381fac2f10b71c99005987159f8 --- 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 210df1e..7d0e669 100644 --- 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 @@ -26,8 +26,8 @@ package org.tizen.dynamicanalyzer.ui.timeline.dlog; import java.util.ArrayList; -import java.util.Collections; import java.util.List; +import java.util.regex.Pattern; import org.eclipse.nebula.widgets.grid.Grid; import org.eclipse.nebula.widgets.grid.GridItem; @@ -53,38 +53,40 @@ 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.ui.widgets.table.TableColumnSizePackListener; 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; import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard; +import org.tizen.sdblib.util.StringUtil; public class DlogTable extends DATableComposite { private String[] columnNames = {"Time", "Level", "Pid", "Tid", "Tag", "Message" }; //6col - private int[] columnSizes = { 80, 60, 70, 70, 100, 1200}; - private int[] columnAlignment = { SWT.LEFT, SWT.LEFT, SWT.LEFT, SWT.LEFT, SWT.LEFT, SWT.LEFT }; + private int[] columnSizes = { 70, 50, 60, 60, 80, 600}; + private int[] columnAlignment = { SWT.CENTER, SWT.CENTER, SWT.CENTER, SWT.CENTER, SWT.LEFT, SWT.LEFT }; private boolean[] columnVisibility = { true, true, true, true, true, true }; - 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 int[] sortTypes = { AnalyzerConstants.SORT_TYPE_NUM, AnalyzerConstants.SORT_TYPE_STRING, AnalyzerConstants.SORT_TYPE_NUM, + AnalyzerConstants.SORT_TYPE_NUM,AnalyzerConstants.SORT_TYPE_STRING, AnalyzerConstants.SORT_TYPE_STRING }; private List tableClone = new ArrayList(); private List filteredDlog = new ArrayList(); private static boolean isFilter = false; public DlogTable(Composite parent, int compStyle, int tableStyle) { - // TODO Auto-generated constructor stub super(parent, compStyle, tableStyle); - + setSortTypes(sortTypes); + setColumnAlignment(columnAlignment); setColumns(columnNames); setColumnSize(columnSizes); setColumnVisibility(columnVisibility); - setColumnAlignment(columnAlignment); - setComparator(new DefaultTableComparator()); - - //setDataType(FunctionEntryDBTable.COLUMN.START_TIME.index); - //setContextMenu(AnalyzerConstants.CONTEXT_TABLE_RANGE); - initDlogListeners(); + + setComparator(new DefaultTableComparator()); + + parent.addControlListener(new TableColumnSizePackListener(this, columnSizes)); + + initDlogListeners(); } public boolean initDlogListeners(){ @@ -221,6 +223,16 @@ public class DlogTable extends DATableComposite { @Override protected List makeTableInput() { List output = new ArrayList(); + if(Global.getProject() == null) { + return output; + } + + if(Global.getProject().isSaveProject() == false) { + if(!DLogDataManager.getInstance().getDlogKill()){ + return output; + } + } + List dlogData = new ArrayList(); dlogData = DLogDataManager.getInstance().parserDlogs(); @@ -238,16 +250,26 @@ public class DlogTable extends DATableComposite { String strTime = Formatter.toTimeFormat(data.getTime()); text.add(strTime); - tabledata.add(data.getTime()); + tabledata.add(convertTimeStringToLong(strTime)); text.add(data.getLevel()); tabledata.add(data.getLevel()); text.add(data.getPid()); - tabledata.add(data.getPid()); + try { + tabledata.add(Integer.parseInt(data.getPid())); + } + catch (Exception ex) { + tabledata.add(data.getPid()); + } text.add(data.getTid()); - tabledata.add(data.getTid()); + try { + tabledata.add(Integer.parseInt(data.getTid())); + } + catch (Exception ex) { + tabledata.add(data.getTid()); + } text.add(data.getTag()); tabledata.add(data.getTag()); @@ -271,77 +293,6 @@ public class DlogTable extends DATableComposite { tableClone = output; return output; } - - @Override - public void updateTable() { - if(Global.getProject().isSaveProject() == false) { - if(!DLogDataManager.getInstance().getDlogKill()){ - return; - } - } - - List output = null; - output = makeTableInput(); - - if (null == output) { - return; - } - - table.removeAll(); - - if (null != comparator) { - Collections.sort(output, comparator); - } - - List selectionList = new ArrayList(); - boolean isSelectionItem = false; - int focusIndex = -1; - int size = output.size(); - - for (int i = 0; i < size; i++) { - GridItem gridItem = new GridItem(table, SWT.NONE); - DATableDataFormat gridData = (DATableDataFormat) output.get(i).getData(); - gridItem.setData(gridData); - - List text = output.get(i).getText(); - int columnCount = text.size(); - for (int index = 0; index < columnCount; index++) { - String textData = text.get(index); - if (null != textData) { - gridItem.setText(index, text.get(index)); - } - } - - if (output.get(i).isInRange() && output.get(i).isSecondSelection()) { - gridItem.setBackground(intersectColor); - } else if (output.get(i).isSecondSelection()) { - gridItem.setBackground(secondSelectionColor); - } else if (output.get(i).isInRange()) { - gridItem.setBackground(rangeColor); - } - - if (gridData != null) { - long seqNum = gridData.getSelectionKey(); - - if (-1 != focusSeq && seqNum == focusSeq) { - focusIndex = i; - } - } - } - - int[] sels = new int[selectionList.size()]; - for (int i = 0; i < selectionList.size(); i++) { - sels[i] = selectionList.get(i); - } - - if (isSelectionItem) { - table.setSelection(sels); - if (table.isFocusControl() && focusIndex > 0) { - table.setFocusItem(table.getItem(focusIndex)); - } - } - table.update(); - } private void filteringDlog(String input){ @@ -380,4 +331,25 @@ public class DlogTable extends DATableComposite { UICommonConstants.RANGE_MARKER_INDEX)).setInterval(startTime, endTime); } + + private long convertTimeStringToLong(String timestring) { + long timelong = 0; + Pattern pattern = Pattern.compile("(\\d+):(\\d{2}).(\\d{3})"); + String[] matches = StringUtil.split(timestring, pattern); + + if (matches == null || matches.length != 3) + return timelong; + try{ + long min = Long.parseLong(matches[0]) * 60 * 1000; + long sec = Long.parseLong(matches[1]) * 1000; + long millsec = Long.parseLong(matches[2]); + timelong = min + sec + millsec; + + return timelong; + } + catch (Exception ex){ + return 0; + } + } + }