opengl : remove dupilication select query in API table 30/27130/1
authorHyunjong.park <phjwithyou.park@samsung.com>
Fri, 5 Sep 2014 01:45:07 +0000 (10:45 +0900)
committerHyunjong.park <phjwithyou.park@samsung.com>
Fri, 5 Sep 2014 01:45:07 +0000 (10:45 +0900)
Signed-off-by: Hyunjong.park <phjwithyou.park@samsung.com>
Change-Id: Ied709d63424a4e0f762062a0a4e790628f351670

org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLDetailsView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/DB/GLAPIDBTableManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/api/GLAPITable.java

index 489d8d1..dadf01b 100644 (file)
@@ -47,6 +47,7 @@ import org.tizen.dynamicanalyzer.resources.ColorResources;
 import org.tizen.dynamicanalyzer.resources.FontResources;
 import org.tizen.dynamicanalyzer.swap.model.data.GLES20LogData;
 import org.tizen.dynamicanalyzer.ui.opengl.data.GLDataManager;
+import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLAPIData;
 import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLAPINameDefine;
 import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLCurrentFrameDataManger;
 import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLES20ErrorDefine;
@@ -125,7 +126,7 @@ public class GLDetailsView extends DAViewComposite {
                GLSelectionData data = (GLSelectionData) vdata;
                String id = vdata.getViewID();
                if (id.equals(GLPage.chartViewID)) {
-                       updateChartInfo(data);
+                       updateTableInfo(data);
                } else if (id.equals(GLPage.apiListViewID)) {
                        updateAPITableInfo(data);
                } else if (id.equals(GLPage.contextViewID)) {
@@ -139,18 +140,21 @@ public class GLDetailsView extends DAViewComposite {
                }
        }
 
-       private void updateChartInfo(GLSelectionData data) {
-               int frameIndex = data.getFrameTimeIndex();
-               GLCurrentFrameDataManger glFrameData = GLDataManager.getInstance()
-                               .getAPIDataMagerInstance().selectOpenGLAPIData(frameIndex);
-               if (null == glFrameData) {
+       private void updateTableInfo(GLSelectionData data) {
+               List<List<Object>> apiList = GLDataManager.getInstance().getCurrentAPITableData();
+               if (null == apiList || apiList.size() == 0 || apiList.get(0).size() == 0) {
                        return;
                }
 
+               GLCurrentFrameDataManger glFrameData = new GLCurrentFrameDataManger();
+               for (List<Object> listItem : apiList) {
+                       glFrameData.addAPIData(new GLAPIData(listItem));
+               }
+
                StringBuffer strDetailView = new StringBuffer();
                strDetailView.append(CommonConstants.NEW_LINE);
                strDetailView.append(leftFormAttachment + GLPageLabels.GL_DETAILS_VIEW_FRAME
-                               + String.valueOf(frameIndex) + heightFormAttachment);
+                               + getSelectedFrameIndex(data) + heightFormAttachment);
                strDetailView.append(leftFormAttachment + GLPageLabels.GL_DETAILS_VIEW_ELAPSED_TIME
                                + glFrameData.getFrametime() + "(μs)" + heightFormAttachment);//$NON-NLS-1$
                strDetailView.append(leftFormAttachment + glFrameData.getAPIDataList().size()
@@ -160,6 +164,16 @@ public class GLDetailsView extends DAViewComposite {
                detailText.setText(strDetailView.toString());
        }
 
+       private String getSelectedFrameIndex(GLSelectionData data) {
+               int startFrameIndex = data.getFrameTimeIndex();
+               int endFrameIndex = data.getSecondFrameIndex();
+               if (startFrameIndex == endFrameIndex) {
+                       return String.valueOf(startFrameIndex);
+               } else {
+                       return String.format("%d - %d", startFrameIndex, endFrameIndex);//$NON-NLS-1$
+               }
+       }
+
        private void updateAPITableInfo(GLSelectionData data) {
                GridItem[] gridItems = (GridItem[]) data.getData();
                DATableDataFormat tableDataFormat = (DATableDataFormat) gridItems[0].getData();
index 03b12f8..ede1546 100644 (file)
@@ -37,7 +37,6 @@ import org.tizen.dynamicanalyzer.database.DBConstants;
 import org.tizen.dynamicanalyzer.database.DBTable;
 import org.tizen.dynamicanalyzer.database.SqlConnectionManager;
 import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLAPIData;
-import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLCurrentFrameDataManger;
 
 public class GLAPIDBTableManager extends DBTable {
        private static final String TABLENAME = "GL_API";//$NON-NLS-1$
@@ -69,20 +68,6 @@ public class GLAPIDBTableManager extends DBTable {
        public final static int TABLE_CALLER_PC_ADDRESS_INDEX = 11;
        public final static int TABLE_LIB_NAME_INDEX = 12;
 
-       private static final String SELECT_API_TABLE_QUERY_FROM_FRAME_TIME_CHART = "select "//$NON-NLS-1$
-                       + SEQ + CommonConstants.COMMA + FRAME_INDEX + CommonConstants.COMMA
-                       + CONTEXT_ID
-                       + CommonConstants.COMMA + TIME + CommonConstants.COMMA + API_ID
-                       + CommonConstants.COMMA
-                       + ARGUMENT + CommonConstants.COMMA + RET + CommonConstants.COMMA
-                       + ELAPSED_TIME
-                       + CommonConstants.COMMA + ERROR + CommonConstants.COMMA + PID
-                       + CommonConstants.COMMA
-                       + TID + CommonConstants.COMMA + CALLER_PC_ADDRESS + CommonConstants.COMMA
-                       + LIB_NAME
-                       + " from "//$NON-NLS-1$
-                       + TABLENAME + " where " + FRAME_INDEX + " = '%s'";
-
        private static final String SELECT_API_TABLE_QUERY_FROM_FRAME_RATE_CHART = "select "//$NON-NLS-1$
                        + SEQ + CommonConstants.COMMA + FRAME_INDEX + CommonConstants.COMMA
                        + CONTEXT_ID
@@ -130,19 +115,6 @@ public class GLAPIDBTableManager extends DBTable {
                insertData(insertDataList);
        }
 
-       public GLCurrentFrameDataManger selectOpenGLAPIData(int frameIndex) {
-               String query = String.format(SELECT_API_TABLE_QUERY_FROM_FRAME_TIME_CHART, frameIndex);
-               List<List<Object>> result = SqlConnectionManager.executeQuery(query);
-               if (null == result || result.size() == 0 || result.get(0).size() == 0) {
-                       return null;
-               }
-               GLCurrentFrameDataManger frameData = new GLCurrentFrameDataManger();
-               for (List<Object> apiList : result) {
-                       frameData.addAPIData(new GLAPIData(apiList));
-               }
-               return frameData;
-       }
-
        public List<List<Object>> selectOpenGLAPIData(int frameStartIndex, int frameEndIndex) {
                String query = String.format(SELECT_API_TABLE_QUERY_FROM_FRAME_RATE_CHART, frameStartIndex,
                                frameEndIndex);
index b1f586f..4f98bad 100644 (file)
@@ -69,6 +69,9 @@ public class GLDataManager extends PageDataManager {
        private boolean isSelectFrameRateChart = true;
        private long apiTimeOfPreFrameIndex = 0;
        private String selectedAPIAtTable = CommonConstants.EMPTY;
+       private List<List<Object>> currentAPITableData = null;
+       private int chartSelectedStartIndexForAPITable = -1;
+       private int chartSelectedEndIndexForAPITable = -1;
 
        private GLAPIDBTableManager apiDBTable = null;
        private GLFrameRateDBTableManager frameRateDBTable = null;
@@ -105,9 +108,12 @@ public class GLDataManager extends PageDataManager {
                frameRateDataList = new ArrayList<GLFrameRateInfo>();
                sharingContextList = new ArrayList<GLSharingContextType>();
                statisticsDataManger = new GLStatisticsDataManager();
+               currentAPITableData = new ArrayList<List<Object>>();
                startFrameRateTime = 1;
                selectedContextID = -1;
                currentFrameIndex = 1;
+               chartSelectedStartIndexForAPITable = -1;
+               chartSelectedEndIndexForAPITable = -1;
                isSelectFrameRateChart = true;
                apiTimeOfPreFrameIndex = 0;
                selectedAPIAtTable = CommonConstants.EMPTY;
@@ -173,7 +179,8 @@ public class GLDataManager extends PageDataManager {
                for (LogData data : glesLogs.getRawLogs()) {
                        GLES20LogData logData = (GLES20LogData) data;
                        if (checkFailedAPI(logData)) {
-                               SummaryDataManager.getInstance().getFailedApiDataMaker().makeData(logData);
+                               SummaryDataManager.getInstance().getFailedApiDataMaker()
+                                               .makeData(logData);
                        }
                }
        }
@@ -182,7 +189,8 @@ public class GLDataManager extends PageDataManager {
                int currentFrameIndexOfState = currentFrameIndex;
                for (LogData data : glesLogs.getRawLogs()) {
                        GLES20LogData logData = (GLES20LogData) data;
-                       stateDataManager.extractGLAPIParameter(logData, currentFrameIndexOfState);
+                       stateDataManager.extractGLAPIParameter(logData,
+                                       currentFrameIndexOfState);
                        if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
                                currentFrameIndexOfState++;
                        }
@@ -194,7 +202,8 @@ public class GLDataManager extends PageDataManager {
                List<GLAPIData> insetAPIDataList = new ArrayList<GLAPIData>();
                for (LogData data : glesLogs.getRawLogs()) {
                        GLES20LogData logData = (GLES20LogData) data;
-                       insetAPIDataList.add(new GLAPIData(logData, currentFrameIndexOfAPI));
+                       insetAPIDataList
+                                       .add(new GLAPIData(logData, currentFrameIndexOfAPI));
                        if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
                                currentFrameIndexOfAPI++;
                        }
@@ -214,10 +223,12 @@ public class GLDataManager extends PageDataManager {
                GLCurrentFrameDataManger currentFrameData = new GLCurrentFrameDataManger();
                for (LogData data : glesLogs.getRawLogs()) {
                        GLES20LogData logData = (GLES20LogData) data;
-                       currentFrameData.addAPIData(new GLAPIData(logData, currentFrameIndexOfFrameTime));
+                       currentFrameData.addAPIData(new GLAPIData(logData,
+                                       currentFrameIndexOfFrameTime));
                        if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
-                               makeFrameTimeData(insetFrameTimeChartDataList, currentFrameData,
-                                               currentFrameIndexOfFrameTime, apiTimeOfPreFrameIndex, logData.getTime());
+                               makeFrameTimeData(insetFrameTimeChartDataList,
+                                               currentFrameData, currentFrameIndexOfFrameTime,
+                                               apiTimeOfPreFrameIndex, logData.getTime());
                                currentFrameIndexOfFrameTime++;
                                apiTimeOfPreFrameIndex = logData.getTime();
                        }
@@ -234,7 +245,8 @@ public class GLDataManager extends PageDataManager {
                                hasFailedAPIofCurrentFrame = true;
                        }
                        if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
-                               makeFrameRateChartDataList(logData, currentFrameIndexOfFrameRate,
+                               makeFrameRateChartDataList(logData,
+                                               currentFrameIndexOfFrameRate,
                                                hasFailedAPIofCurrentFrame);
                                hasFailedAPIofCurrentFrame = false;
                                currentFrameIndexOfFrameRate++;
@@ -292,13 +304,17 @@ public class GLDataManager extends PageDataManager {
                }
        }
 
-       private void makeFrameTimeData(List<List<Object>> insetFrameTimeChartDataList,
-                       GLCurrentFrameDataManger glCurrentFrameData, int currentFrameIndexOfFrameTime,
-                       long apiTimeOfPreFrameIndex, long apiTime) {
-               long frameValue = (apiTime - apiTimeOfPreFrameIndex) / TimelineConstants.KILO_LONG;
+       private void makeFrameTimeData(
+                       List<List<Object>> insetFrameTimeChartDataList,
+                       GLCurrentFrameDataManger glCurrentFrameData,
+                       int currentFrameIndexOfFrameTime, long apiTimeOfPreFrameIndex,
+                       long apiTime) {
+               long frameValue = (apiTime - apiTimeOfPreFrameIndex)
+                               / TimelineConstants.KILO_LONG;
                List<Object> framTimeChartData = new ArrayList<Object>();
                framTimeChartData.add(currentFrameIndexOfFrameTime);
-               framTimeChartData.add(GLUtil.getTimeLineTime(glCurrentFrameData.getFirstLogData()));
+               framTimeChartData.add(GLUtil.getTimeLineTime(glCurrentFrameData
+                               .getFirstLogData()));
                framTimeChartData.add((int) frameValue);
                framTimeChartData.add(glCurrentFrameData.hasError());
                framTimeChartData.add(glCurrentFrameData.getStartSeq());
@@ -309,8 +325,8 @@ public class GLDataManager extends PageDataManager {
        }
 
        public void updateSharingContextList() {
-               this.sharingContextList = GLDataManager.getInstance().getStateSharingDBTableManage()
-                               .selectSharingData();
+               this.sharingContextList = GLDataManager.getInstance()
+                               .getStateSharingDBTableManage().selectSharingData();
        }
 
        public boolean isSharingData(long itemContextId) {
@@ -319,8 +335,10 @@ public class GLDataManager extends PageDataManager {
                }
                for (int i = 0; i < sharingContextList.size(); i++) {
                        long contextId = sharingContextList.get(i).getContextId();
-                       long sharingContextId = sharingContextList.get(i).getSharingContextId();
-                       if (contextId == selectedContextID && sharingContextId == itemContextId) {
+                       long sharingContextId = sharingContextList.get(i)
+                                       .getSharingContextId();
+                       if (contextId == selectedContextID
+                                       && sharingContextId == itemContextId) {
                                return true;
                        }
                }
@@ -347,6 +365,24 @@ public class GLDataManager extends PageDataManager {
                this.selectedContextID = selectedContextID;
        }
 
+       public List<List<Object>> getCurrentAPITableData(int frameStartIndex,
+                       int frameEndIndex) {
+               if (currentAPITableData != null
+                               && chartSelectedStartIndexForAPITable == frameStartIndex
+                               && chartSelectedEndIndexForAPITable == frameEndIndex) {
+                       return currentAPITableData;
+               }
+               chartSelectedStartIndexForAPITable = frameStartIndex;
+               chartSelectedEndIndexForAPITable = frameEndIndex;
+               currentAPITableData = getAPIDataMagerInstance().selectOpenGLAPIData(
+                               frameStartIndex, frameEndIndex);
+               return currentAPITableData;
+       }
+
+       public List<List<Object>> getCurrentAPITableData() {
+               return currentAPITableData;
+       }
+
        public GLAPIDBTableManager getAPIDataMagerInstance() {
                return apiDBTable;
        }
index 9f6aad5..b4abf8a 100644 (file)
@@ -63,7 +63,8 @@ public class GLAPITable extends DATableComposite {
                                if (items == null || items.length == 0) {
                                        return;
                                }
-                               DATableDataFormat dataFormat = (DATableDataFormat) items[0].getData();
+                               DATableDataFormat dataFormat = (DATableDataFormat) items[0]
+                                               .getData();
                                if (dataFormat.getLogData() instanceof GLAPIData == false) {
                                        return;
                                }
@@ -71,9 +72,11 @@ public class GLAPITable extends DATableComposite {
                                long time = glAPIType.getTime();
                                int frameIndex = glAPIType.getFrameIndex();
                                long contextId = glAPIType.getContextID();
-                               GLDataManager.getInstance().setSelectedAPIAtTable(glAPIType.getApiName());
-                               GLSelectionData selData = new GLSelectionData(GLPage.apiListViewID, time, time,
-                                               items, table, frameIndex, contextId);
+                               GLDataManager.getInstance().setSelectedAPIAtTable(
+                                               glAPIType.getApiName());
+                               GLSelectionData selData = new GLSelectionData(
+                                               GLPage.apiListViewID, time, time, items, table,
+                                               frameIndex, contextId);
                                AnalyzerManager.getCurrentPage().updateView(selData);
                                AnalyzerManager.updateView(GLPage.apiListViewID, selData);
 
@@ -88,9 +91,8 @@ public class GLAPITable extends DATableComposite {
        protected List<TableInput> makeTableInput() {
 
                List<TableInput> input = new ArrayList<TableInput>();
-
-               List<List<Object>> apiList = GLDataManager.getInstance().getAPIDataMagerInstance()
-                               .selectOpenGLAPIData(startFrameIndex, endFrameIndex);
+               List<List<Object>> apiList = GLDataManager.getInstance()
+                               .getCurrentAPITableData(startFrameIndex, endFrameIndex);
                if (null == apiList) {
                        return null;
                }
@@ -105,15 +107,16 @@ public class GLAPITable extends DATableComposite {
                        text.add(Integer.toString(glApiType.getFrameIndex()));
                        text.add(String.valueOf(Formatter.toTimeFormat(glApiType.getTime())));
                        text.add(glApiType.getApiName());
-                       text.add(GLConstantDefine.convertEnumValue(glApiType.getArgs(), CommonConstants.COMMA,
-                                       null));
+                       text.add(GLConstantDefine.convertEnumValue(glApiType.getArgs(),
+                                       CommonConstants.COMMA, null));
                        text.add(glApiType.getReturn());
                        text.add(String.valueOf(glApiType.getElapsedTime()));
                        text.add(GLES20ErrorDefine.getError(glApiType.getErrno()));
                        text.add(String.valueOf(glApiType.getPid()));
                        text.add(String.valueOf(glApiType.getTid()));
 
-                       DATableDataFormat tableData = new DATableDataFormat(Long.parseLong(seq));
+                       DATableDataFormat tableData = new DATableDataFormat(
+                                       Long.parseLong(seq));
                        List<Object> compareData = new ArrayList<Object>();
                        for (int j = 0; j < text.size(); j++) {
                                compareData.add(text.get(j));
@@ -125,10 +128,12 @@ public class GLAPITable extends DATableComposite {
                        tableInput.setText(text);
                        tableInput.setData(glApiType);
                        tableInput.setData(tableData);
-                       if (!GLES20ErrorDefine.getError(glApiType.getErrno()).contains("SUCCESS")) {//$NON-NLS-1$
+                       if (!GLES20ErrorDefine.getError(glApiType.getErrno()).contains(
+                                       "SUCCESS")) {//$NON-NLS-1$
                                tableInput.setFailed(true);
                        }
-                       if (GLDataManager.getInstance().getSelectedAPIAtTable().equals(glApiType.getApiName())) {
+                       if (GLDataManager.getInstance().getSelectedAPIAtTable()
+                                       .equals(glApiType.getApiName())) {
                                tableInput.setSecondSelection(true);
                        }
                        input.add(tableInput);
@@ -161,13 +166,14 @@ public class GLAPITable extends DATableComposite {
                        int frameIndex = glAPIType.getFrameIndex();
                        long contextId = glAPIType.getContextID();
 
-                       GLSelectionData selData = new GLSelectionData(GLPage.apiListViewID, time, time, items,
-                                       table, frameIndex, contextId);
+                       GLSelectionData selData = new GLSelectionData(GLPage.apiListViewID,
+                                       time, time, items, table, frameIndex, contextId);
                        AnalyzerManager.getCurrentPage().updateView(selData);
                }
        }
 
-       public void updateTableFromContext(int startFrameIndex, int endFrameIndex, String seq) {
+       public void updateTableFromContext(int startFrameIndex, int endFrameIndex,
+                       String seq) {
                if (startFrameIndex >= 0) {
                        this.startFrameIndex = startFrameIndex;
                }
@@ -177,7 +183,8 @@ public class GLAPITable extends DATableComposite {
                for (int ii = 0; ii < nSize; ii++) {
                        if (table.getItem(ii).getText(0).equals(seq)) {
                                table.setSelection(ii);
-                               table.getVerticalBar().setSelection(getScrollSelectionIndex(table, ii));
+                               table.getVerticalBar().setSelection(
+                                               getScrollSelectionIndex(table, ii));
                                updateTable();
                        }
                }
@@ -194,8 +201,8 @@ public class GLAPITable extends DATableComposite {
                int frameIndex = glAPIType.getFrameIndex();
                long contextId = glAPIType.getContextID();
 
-               GLSelectionData selData = new GLSelectionData(GLPage.apiListViewID, time, time, items,
-                               table, frameIndex, contextId);
+               GLSelectionData selData = new GLSelectionData(GLPage.apiListViewID,
+                               time, time, items, table, frameIndex, contextId);
                AnalyzerManager.getCurrentPage().updateView(selData);
        }