From a88ce61768a53d2b9fc09da4271040e495c1ee56 Mon Sep 17 00:00:00 2001 From: kamuru Date: Thu, 10 Oct 2013 13:28:41 +0900 Subject: [PATCH] [Title] add state value navigation function [Desc.] [Issue] http://172.21.17.25/redmine/issues/10620 --- .../widgets/button/DACustomButton.java | 5 +- .../button/DACustomButtonClickEventListener.java | 1 + .../widgets/button/DACustomButtonRenderer.java | 2 +- .../button/toggle/DACustomToggleButton.java | 115 +++---- .../dynamicanalyzer/widgets/chart/DAChart.java | 32 +- .../widgets/chart/DAChartTooltip.java | 2 +- .../widgets/chartBoard/DAChartBoardItemCell.java | 25 +- .../widgets/chartBoard/DAChartBoardManager.java | 12 +- .../widgets/helper/ColorResources.java | 4 +- .../dynamicanalyzer/widgets/timer/TimerClock.java | 0 .../dynamicanalyzer/handlers/OpenTraceHandler.java | 1 + .../handlers/ReplayTraceHandler.java | 1 + .../org/tizen/dynamicanalyzer/nl/GLPageLabels.java | 2 +- .../dynamicanalyzer/nl/GLPageLabels.properties | 2 +- .../tizen/dynamicanalyzer/sql/DBTableManager.java | 10 +- .../ui/opengl/data/GLDataMaker.java | 316 +++++++++--------- .../ui/opengl/data/GLSelectionData.java | 16 +- .../eventListner/BoundLineEventListener.java | 18 +- .../GLFrameChartMouseEventListener.java | 3 +- .../ui/opengl/ui/apiList/GLAPIListTable.java | 75 +++-- .../ui/opengl/ui/apiList/GLAPIListView.java | 10 +- .../ui/opengl/ui/context/GLContextTreeTable.java | 366 +++++++++++++-------- .../dynamicanalyzer/ui/toolbar/ToolbarArea.java | 1 + 23 files changed, 561 insertions(+), 458 deletions(-) mode change 100755 => 100644 org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButton.java mode change 100755 => 100644 org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/timer/TimerClock.java diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButton.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButton.java old mode 100755 new mode 100644 index 0402ec0..8374a3d --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButton.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButton.java @@ -196,8 +196,6 @@ public class DACustomButton extends Canvas { this.addListener(SWT.MouseExit, buttonMouseListener); this.addListener(SWT.MouseDown, buttonMouseListener); this.addListener(SWT.MouseUp, buttonMouseListener); - this.addListener(SWT.MouseMove, buttonMouseListener); - this.addListener(SWT.MouseHover, buttonMouseListener); } /** @@ -241,7 +239,8 @@ public class DACustomButton extends Canvas { * Sets default state colors */ private void setDefaultColors() { - attr.setColor(STATE_DISABLE, ColorResources.BUTTON_STATE_DISABLE); + attr.setColor(STATE_DISABLE, + ColorResources.BUTTON_STATE_DISABLE); attr.setColor(STATE_PUSH, ColorResources.BUTTON_STATE_PUSH); attr.setColor(STATE_HOVER, ColorResources.BUTTON_STATE_HOVER); attr.setColor(STATE_NORMAL, ColorResources.BUTTON_STATE_NORMAL); diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButtonClickEventListener.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButtonClickEventListener.java index 6471e79..42fc7b6 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButtonClickEventListener.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButtonClickEventListener.java @@ -46,6 +46,7 @@ public abstract class DACustomButtonClickEventListener implements Listener { } else { return; } + String tooltip = button.getToolTipText(); button.setToolTipText(null); handleClickEvent(button); diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButtonRenderer.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButtonRenderer.java index d10921c..4274d65 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButtonRenderer.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/DACustomButtonRenderer.java @@ -80,7 +80,7 @@ public class DACustomButtonRenderer implements IDACustomButtonRenderer { return; } gc.drawImage(icon, parentRect.x + 2, - parentRect.height - icon.getBounds().height / 2); + parentRect.height /2 - icon.getBounds().height / 2); } protected void drawButton(GC gc, Rectangle rect, int state, diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/toggle/DACustomToggleButton.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/toggle/DACustomToggleButton.java index a8b3739..1977774 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/toggle/DACustomToggleButton.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/button/toggle/DACustomToggleButton.java @@ -43,6 +43,54 @@ public class DACustomToggleButton extends DACustomButton { private boolean toggle = false; private boolean toggleByButton = false; + protected Listener toggleButtonMouseListener = new Listener() { + + @Override + public void handleEvent(Event event) { + if (state == STATE_DISABLE) { + return; + } + + if (event.type == SWT.MouseEnter) { + if (toggle) { + changeButtonState(STATE_TOGGLE_HOVER); + } else { + changeButtonState(STATE_HOVER); + } + } + + if (event.type == SWT.MouseExit) { + if (toggle) { + changeButtonState(STATE_TOGGLE); + } else { + changeButtonState(STATE_NORMAL); + } + } + + if (event.type == SWT.MouseDown) { + if (toggle) { + if (null != attr.getImage(STATE_TOGGLE_PUSH)) { + changeButtonState(STATE_TOGGLE_PUSH); + } else { + changeButtonState(STATE_PUSH); + } + } else { + changeButtonState(STATE_PUSH); + } + } + + if (event.type == SWT.MouseUp) { // FIXME + toggle = !toggle; + toggleByButton = !toggleByButton; + if (toggle) { + changeButtonState(STATE_TOGGLE_HOVER); + } else { + changeButtonState(STATE_HOVER); + } + } + } + }; + public DACustomToggleButton(Composite parent, Image normal, Image push, Image hover, Image disable, Image toggle, Image toggleHover) { super(parent, normal, push, hover, disable); @@ -91,6 +139,16 @@ public class DACustomToggleButton extends DACustomButton { attr.setDrawType(TYPE_GRADATION); } + @Override + protected void addListeners() { + if (null != toggleButtonMouseListener) { + this.addListener(SWT.MouseEnter, toggleButtonMouseListener); + this.addListener(SWT.MouseExit, toggleButtonMouseListener); + this.addListener(SWT.MouseDown, toggleButtonMouseListener); + this.addListener(SWT.MouseUp, toggleButtonMouseListener); + } + } + public void setToggled(boolean toggled) { toggle = toggled; if (toggled) { @@ -115,61 +173,4 @@ public class DACustomToggleButton extends DACustomButton { return toggle; } - @Override - protected void addListeners() { - if (null != toggleButtonMouseListener) { - this.addListener(SWT.MouseEnter, toggleButtonMouseListener); - this.addListener(SWT.MouseExit, toggleButtonMouseListener); - this.addListener(SWT.MouseDown, toggleButtonMouseListener); - this.addListener(SWT.MouseUp, toggleButtonMouseListener); - } - } - - protected Listener toggleButtonMouseListener = new Listener() { - - @Override - public void handleEvent(Event event) { - if (state == STATE_DISABLE) { - return; - } - - if (event.type == SWT.MouseEnter) { - if (toggle) { - changeButtonState(STATE_TOGGLE_HOVER); - } else { - changeButtonState(STATE_HOVER); - } - } - - if (event.type == SWT.MouseExit) { - if (toggle) { - changeButtonState(STATE_TOGGLE); - } else { - changeButtonState(STATE_NORMAL); - } - } - - if (event.type == SWT.MouseDown) { - if (toggle) { - if (null != attr.getImage(STATE_TOGGLE_PUSH)) { - changeButtonState(STATE_TOGGLE_PUSH); - } else { - changeButtonState(STATE_PUSH); - } - } else { - changeButtonState(STATE_PUSH); - } - } - - if (event.type == SWT.MouseUp) { // FIXME - toggle = !toggle; - toggleByButton = !toggleByButton; - if (toggle) { - changeButtonState(STATE_TOGGLE_HOVER); - } else { - changeButtonState(STATE_HOVER); - } - } - } - }; } diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChart.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChart.java index 9bd372b..7b4d263 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChart.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChart.java @@ -43,7 +43,6 @@ import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; public class DAChart extends Canvas { - private String name; Composite parent = null; private List seriesList = new ArrayList(); private DAChartPlot plot = null; @@ -54,28 +53,21 @@ public class DAChart extends Canvas { public static final int CHART_STYLE_SCREENSHOT=1; public static final int CHART_STYLE_MULTI=2; - private DAChart(String name, Composite parent) { + private DAChart(Composite parent) { super(parent, SWT.TRANSPARENT | SWT.DOUBLE_BUFFERED | SWT.NO_BACKGROUND); this.parent = parent; - this.name = name; addListeners(); - } - public DAChart(Composite parent, String name) { - this(name, parent); plot = new DAChartPlot(this); - // TODO Auto-generated constructor stub } public DAChart(Composite parent, String name, DAChartSeries series) { - this(parent, name); + this(parent); seriesList.add(series); - - // TODO Auto-generated constructor stub } public DAChart(Composite parent, String name, int chartStyle) { - this(name, parent); + this(parent); switch (chartStyle) { case CHART_STYLE_NORMAL: plot = new DAChartPlot(this); @@ -90,10 +82,6 @@ public class DAChart extends Canvas { default: break; } - - - - // TODO Auto-generated constructor stub } private void addListeners() { @@ -102,14 +90,6 @@ public class DAChart extends Canvas { // showTooltip(true); //FIXME : delete } - public String getChartName() { - return name; - } - -// public void replacePlot(DACustomChartPlot plot) { -// this.plot = plot; -// } - public DAChartPlot getPlot() { return plot; } @@ -119,7 +99,7 @@ public class DAChart extends Canvas { } public DAChartSeries getSeries(int index) { - if (null == seriesList) { + if (seriesList == null) { return null; } if (seriesList.size() < index) { @@ -162,7 +142,6 @@ public class DAChart extends Canvas { @Override public void paintControl(PaintEvent e) { - // TODO Auto-generated method stub redrawChart(); chartRenderer.draw(e.gc, (DAChart) e.widget, chartBuffer); } @@ -209,13 +188,10 @@ public class DAChart extends Canvas { @Override public void controlMoved(ControlEvent e) { - // TODO Auto-generated method stub - } @Override public void controlResized(ControlEvent e) { - // TODO Auto-generated method stub redrawBuffer(); } }; diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartTooltip.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartTooltip.java index c6d1faa..53c930b 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartTooltip.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartTooltip.java @@ -50,7 +50,7 @@ public class DAChartTooltip { private static final int MAX_HEIGHT = 100; private DACustomChartTooltipInfo tooltipInfo = null; - private class DACustomChartTooltipInfo { + private static class DACustomChartTooltipInfo { public int height = 0; public int width = 0; public List tooltipTexts; diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemCell.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemCell.java index 50c4740..d5ecbb1 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemCell.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemCell.java @@ -73,8 +73,8 @@ class DAChartBoardItemCell extends Composite { Image icon, int chartStyle) { super(parent, SWT.NONE); this.parent = parent; - setItemName(name); - setItemIcon(icon); + itemName = name; + itemIcon = icon; this.setBackground(ColorResources.CHART_BOARD_ITEM_LINE); this.setLayout(new FormLayout()); @@ -110,8 +110,6 @@ class DAChartBoardItemCell extends Composite { @Override public void mouseUp(MouseEvent e) { - // TODO Auto-generated method stub - } @Override @@ -280,6 +278,9 @@ class DAChartBoardItemCell extends Composite { gc.drawImage(itemIcon, nameCellRect.width / 2 - iconRect.width / 2, startY); startY += iconRect.height; + } else { + //FIXME temporary + startY += 10; } } @@ -327,22 +328,6 @@ class DAChartBoardItemCell extends Composite { this.nameCellSelectImage = nameCellSelectImage; } - public String getItemName() { - return itemName; - } - - public void setItemName(String itemName) { - this.itemName = itemName; - } - - public Image getItemIcon() { - return itemIcon; - } - - public void setItemIcon(Image itemIcon) { - this.itemIcon = itemIcon; - } - private void redrawFoldBackground() { if (null == childFoldButton) { return; diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardManager.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardManager.java index bf35e53..45dd67a 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardManager.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardManager.java @@ -25,8 +25,6 @@ */ package org.tizen.dynamicanalyzer.widgets.chartBoard; -import org.tizen.dynamicanalyzer.widgets.timeline.DATimelineRenderer; - public class DAChartBoardManager { public final static int SCALE_100 = 1; public final static int SCALE_400 = 4; @@ -67,10 +65,6 @@ public class DAChartBoardManager { return visibleStartTime; } - public void setVisibleStartTime(double visibleStartTime) { - this.visibleStartTime = visibleStartTime; - } - public double getVisibleEndTime() { return visibleStartTime + thumb; } @@ -92,7 +86,7 @@ public class DAChartBoardManager { } public void scrollbarSelectionChanged(int sel) { - visibleStartTime = (double) sel / 1000.0; + visibleStartTime = sel / 1000.0; board.notifyScrollChanged(visibleStartTime); } @@ -135,7 +129,7 @@ public class DAChartBoardManager { return 0; } double ret = (double) chartWidth - / (double) ((DATimelineRenderer.DEFAULT_INTERVAL * scale)); + / (double) ((board.getInterval() * scale)); return ret; } @@ -146,7 +140,7 @@ public class DAChartBoardManager { if (0 == visibleStartTime) { return ret; - } else if (visibleStartTime + oldThumb == totalEndTime) { + } else if (Math.abs(totalEndTime - visibleStartTime - oldThumb) < 0.000000001) { ret = totalEndTime - newThumb; } else { ret = (visibleStartTime + (oldThumb / 2)) - (newThumb / 2); diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/helper/ColorResources.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/helper/ColorResources.java index f03a689..d0f8e08 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/helper/ColorResources.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/helper/ColorResources.java @@ -183,6 +183,7 @@ public class ColorResources { public static Color POPUP_MENU_OUTLINE_STORKE1 = getColor("popup_menu_outline_stroke1", new RGB(145, 145, 145)); //$NON-NLS-1$ public static Color POPUP_MENU_OUTLINE_STORKE2 = getColor("popup_menu_outline_stroke2", new RGB(255, 255, 255)); //$NON-NLS-1$ + // // /** device and application combo specific colors start **/ // public static final Color DEVICE_APPLICATION_ENABLE = WHITE; @@ -469,4 +470,5 @@ public class ColorResources { return colorRegistry.get(colorName); } -} + +} diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/timer/TimerClock.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/timer/TimerClock.java old mode 100755 new mode 100644 diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java index 81fa8b7..d431cfd 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java @@ -72,6 +72,7 @@ import org.tizen.dynamicanalyzer.ui.widgets.DADialog; import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; import org.tizen.dynamicanalyzer.widgets.combo.DACustomCombo; + public class OpenTraceHandler extends AbstractHandler { public static final String ID = OpenTraceHandler.class.getName(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ReplayTraceHandler.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ReplayTraceHandler.java index ea48da0..1e2f5fc 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ReplayTraceHandler.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ReplayTraceHandler.java @@ -42,6 +42,7 @@ import org.tizen.dynamicanalyzer.uirecorder.UIRecorderTool; import org.tizen.dynamicanalyzer.widgets.timer.IAlarm; import org.tizen.dynamicanalyzer.widgets.timer.TimerClock; + public class ReplayTraceHandler extends AbstractHandler { public static final String ID = ReplayTraceHandler.class.getName(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/GLPageLabels.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/GLPageLabels.java index da07971..66ae1f9 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/GLPageLabels.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/GLPageLabels.java @@ -49,7 +49,7 @@ public class GLPageLabels extends NLS { public static String GL_CONTEXT_VIEW_TITLE; public static String GL_CONTEXT_VIEW_NAME; public static String GL_CONTEXT_VIEW_VALUE; - public static String GL_CONTEXT_VIEW_PREV; + public static String GL_CONTEXT_VIEW_NAVI; public static String GL_CONTEXT_V0; public static String GL_CONTEXT_V1; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/GLPageLabels.properties b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/GLPageLabels.properties index 262f758..81fd144 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/GLPageLabels.properties +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/GLPageLabels.properties @@ -14,7 +14,7 @@ GL_API_LIST_VIEW_ERROR=Error GL_CONTEXT_VIEW_TITLE=State GL_CONTEXT_VIEW_NAME=Name GL_CONTEXT_VIEW_VALUE=Value -GL_CONTEXT_VIEW_PREV=Prev. +GL_CONTEXT_VIEW_NAVI=Navigate GL_CONTEXT_V0=V0 diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/DBTableManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/DBTableManager.java index 07af819..a8225a3 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/DBTableManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/DBTableManager.java @@ -53,6 +53,7 @@ public class DBTableManager { private static final String TABLE_NAME_LIB_OBJ = "LibraryObject";//$NON-NLS-1$ private static final String TABLE_NAME_APINAME = "ApiName";//$NON-NLS-1$ private static final String TABLE_NAME_GLES20_CONTEXT_DATA = "Gles20ContextData";//$NON-NLS-1$ + private static final String TABLE_NAME_GLES20_CAHNGE_INFO = "Gles20ChangeInfo";//$NON-NLS-1$ private static List tableInfos; @@ -67,6 +68,7 @@ public class DBTableManager { public static final int TABLE_INDEX_LIB_OBJ = 8; public static final int TABLE_INDEX_APINAME = 9; public static final int TABLE_INDEX_GLES20_CONTEXT_DATA = 10; + public static final int TABLE_INDEX_GLES20_CHANGE_INFO = 11; public static final String EMPTY = CommonConstants.EMPTY; public static final String TEXT = "VARCHAR(256)";//$NON-NLS-1$ @@ -305,8 +307,8 @@ public class DBTableManager { tableInfos.set(TABLE_INDEX_APINAME, apiName); } - // "gles20 context data" table info block { + // gles20 context data table info GLContextDBEnum[] glContextDBEnum = GLContextDBEnum.values(); int length = glContextDBEnum.length; @@ -327,6 +329,12 @@ public class DBTableManager { TABLE_NAME_GLES20_CONTEXT_DATA, names, options, types); tableInfos.set(TABLE_INDEX_GLES20_CONTEXT_DATA, Gles20ContextTableInfo); + +// // gles20 context change info +// DBTableInfo Gles20ChangeInfoTableInfo = new DBTableInfo( +// TABLE_NAME_GLES20_CAHNGE_INFO, names, options, types); +// tableInfos.set(TABLE_INDEX_GLES20_CHANGE_INFO, +// Gles20ChangeInfoTableInfo); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLDataMaker.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLDataMaker.java index f51a44e..a216d78 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLDataMaker.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLDataMaker.java @@ -146,6 +146,8 @@ public class GLDataMaker { private List glFrameDataList; private CurrentContextValueList currentContextValueList; private ArrayList> contextValueDBInputList; + public static ArrayList> contextValueChangeList; + private ArrayList> contextChangeInfoDBInputList; private List gvaV0ValueList; private List gvaV1ValueList; @@ -210,6 +212,13 @@ public class GLDataMaker { contextValueDBInputList = new ArrayList>(); + contextValueChangeList = new ArrayList>(); + for(int i = 0; i < CONTEXT_VALUE_SIZE; i++) { + contextValueChangeList.add(new ArrayList()); + } + + contextChangeInfoDBInputList = new ArrayList>(); + gvaV0ValueList = new ArrayList(); gvaV1ValueList = new ArrayList(); gvaV2ValueList = new ArrayList(); @@ -260,6 +269,11 @@ public class GLDataMaker { currentContextValueList.add(EMPTY); } + contextValueChangeList.clear(); + for(int i = 0; i < CONTEXT_VALUE_SIZE; i++) { + contextValueChangeList.add(new ArrayList()); + } + currentContextValueList.set(GLContextDBEnum.VBO_BINDING.ordinal(), "(0/0)"); currentContextValueList.set(GLContextDBEnum.VIEWPORT_X.ordinal(), ZERO); @@ -322,6 +336,7 @@ public class GLDataMaker { contextValueDBInputList.clear(); + contextChangeInfoDBInputList.clear(); gvaV0ValueList.clear(); gvaV1ValueList.clear(); @@ -449,25 +464,25 @@ public class GLDataMaker { currentFrameData.hasError()); glFrameDataList.add(new GLFrameData(++currentFrameIndex)); - } else if(apiName.equals(API_GL_BLEND_COLOR)) { - currentContextValueList.set(GLContextDBEnum.BLEND_COLOR.ordinal(), parameters[0]+DELIMITER+parameters[1]+DELIMITER+parameters[2]+DELIMITER+parameters[3]); + } else if (apiName.equals(API_GL_BLEND_COLOR)) { + setContextValueList(seq, GLContextDBEnum.BLEND_COLOR.ordinal(), parameters[0]+COMMA+parameters[1]+COMMA+parameters[2]+COMMA+parameters[3]); } else if(apiName.equals(API_GL_BLEND_EQ)) { - currentContextValueList.set(GLContextDBEnum.BLEND_RGB_EQ.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.BLEND_A_EQ.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.BLEND_RGB_EQ.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.BLEND_A_EQ.ordinal(), GLConstantMap.getConstantString(parameters[0])); } else if(apiName.equals(API_GL_BLEND_EQ_SEP)) { - currentContextValueList.set(GLContextDBEnum.BLEND_RGB_EQ.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.BLEND_A_EQ.ordinal(), GLConstantMap.getConstantString(parameters[1])); + setContextValueList(seq, GLContextDBEnum.BLEND_RGB_EQ.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.BLEND_A_EQ.ordinal(), GLConstantMap.getConstantString(parameters[1])); } else if(apiName.equals(API_GL_BLEND_FUNC)) { - currentContextValueList.set(GLContextDBEnum.BLEND_SRC_RGB.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.BLEND_SRC_A.ordinal(), GLConstantMap.getConstantString(parameters[1])); + setContextValueList(seq, GLContextDBEnum.BLEND_SRC_RGB.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.BLEND_SRC_A.ordinal(), GLConstantMap.getConstantString(parameters[1])); - currentContextValueList.set(GLContextDBEnum.BLEND_DEST_RGB.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.BLEND_DEST_A.ordinal(), GLConstantMap.getConstantString(parameters[1])); + setContextValueList(seq, GLContextDBEnum.BLEND_DEST_RGB.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.BLEND_DEST_A.ordinal(), GLConstantMap.getConstantString(parameters[1])); } else if(apiName.equals(API_GL_BLEND_FUNC_SEP)) { - currentContextValueList.set(GLContextDBEnum.BLEND_SRC_RGB.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.BLEND_DEST_RGB.ordinal(), GLConstantMap.getConstantString(parameters[1])); - currentContextValueList.set(GLContextDBEnum.BLEND_SRC_A.ordinal(), GLConstantMap.getConstantString(parameters[2])); - currentContextValueList.set(GLContextDBEnum.BLEND_DEST_A.ordinal(), GLConstantMap.getConstantString(parameters[3])); + setContextValueList(seq, GLContextDBEnum.BLEND_SRC_RGB.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.BLEND_DEST_RGB.ordinal(), GLConstantMap.getConstantString(parameters[1])); + setContextValueList(seq, GLContextDBEnum.BLEND_SRC_A.ordinal(), GLConstantMap.getConstantString(parameters[2])); + setContextValueList(seq, GLContextDBEnum.BLEND_DEST_A.ordinal(), GLConstantMap.getConstantString(parameters[3])); } else if(apiName.equals(API_GL_BUFFER_GEN)) { int num = Integer.parseInt(parameters[0]); @@ -478,10 +493,10 @@ public class GLDataMaker { vboUsageMap.put(contextValues[i], "GL_STATIC_DRAW"); } - currentContextValueList.set(GLContextDBEnum.VBO_ID.ordinal(), makeSeperatedString(vboIDMap)); - currentContextValueList.set(GLContextDBEnum.VBO_SIZE.ordinal(), makeSeperatedString(vboSizeMap)); - currentContextValueList.set(GLContextDBEnum.VBO_Data.ordinal(), makeSeperatedString(vboDataMap)); - currentContextValueList.set(GLContextDBEnum.VBO_Usage.ordinal(), makeSeperatedString(vboUsageMap)); + setContextValueList(seq, GLContextDBEnum.VBO_ID.ordinal(), makeSeperatedString(vboIDMap)); + setContextValueList(seq, GLContextDBEnum.VBO_SIZE.ordinal(), makeSeperatedString(vboSizeMap)); + setContextValueList(seq, GLContextDBEnum.VBO_Data.ordinal(), makeSeperatedString(vboDataMap)); + setContextValueList(seq, GLContextDBEnum.VBO_Usage.ordinal(), makeSeperatedString(vboUsageMap)); } else if(apiName.equals(API_GL_BUFFER_DEL)) { int num = Integer.parseInt(parameters[0]); @@ -492,17 +507,17 @@ public class GLDataMaker { vboUsageMap.remove(contextValues[i]); } - currentContextValueList.set(GLContextDBEnum.VBO_ID.ordinal(), makeSeperatedString(vboIDMap)); - currentContextValueList.set(GLContextDBEnum.VBO_SIZE.ordinal(), makeSeperatedString(vboSizeMap)); - currentContextValueList.set(GLContextDBEnum.VBO_Data.ordinal(), makeSeperatedString(vboDataMap)); - currentContextValueList.set(GLContextDBEnum.VBO_Usage.ordinal(), makeSeperatedString(vboUsageMap)); + setContextValueList(seq, GLContextDBEnum.VBO_ID.ordinal(), makeSeperatedString(vboIDMap)); + setContextValueList(seq, GLContextDBEnum.VBO_SIZE.ordinal(), makeSeperatedString(vboSizeMap)); + setContextValueList(seq, GLContextDBEnum.VBO_Data.ordinal(), makeSeperatedString(vboDataMap)); + setContextValueList(seq, GLContextDBEnum.VBO_Usage.ordinal(), makeSeperatedString(vboUsageMap)); } else if(apiName.equals(API_GL_BUFFER_BIND)) { if(GLConstantMap.getConstantString(parameters[0]).equals("GL_ARRAY_BUFFER")) { vboBindingArray = parameters[1]; } else { vboBindingElementArray = parameters[1]; } - currentContextValueList.set(GLContextDBEnum.VBO_BINDING.ordinal(), vboBindingArray + "/" + vboBindingElementArray); + setContextValueList(seq, GLContextDBEnum.VBO_BINDING.ordinal(), vboBindingArray + "/" + vboBindingElementArray); } else if(apiName.equals(API_GL_BUFFER_DATA)) { String vboId; if(GLConstantMap.getConstantString(parameters[0]).equals("GL_ARRAY_BUFFER")) { @@ -514,50 +529,50 @@ public class GLDataMaker { vboDataMap.put(vboId, "?"); vboUsageMap.put(vboId, GLConstantMap.getConstantString(parameters[3])); - currentContextValueList.set(GLContextDBEnum.VBO_ID.ordinal(), makeSeperatedString(vboIDMap)); - currentContextValueList.set(GLContextDBEnum.VBO_SIZE.ordinal(), makeSeperatedString(vboSizeMap)); - currentContextValueList.set(GLContextDBEnum.VBO_Data.ordinal(), makeSeperatedString(vboDataMap)); - currentContextValueList.set(GLContextDBEnum.VBO_Usage.ordinal(), makeSeperatedString(vboUsageMap)); + setContextValueList(seq, GLContextDBEnum.VBO_ID.ordinal(), makeSeperatedString(vboIDMap)); + setContextValueList(seq, GLContextDBEnum.VBO_SIZE.ordinal(), makeSeperatedString(vboSizeMap)); + setContextValueList(seq, GLContextDBEnum.VBO_Data.ordinal(), makeSeperatedString(vboDataMap)); + setContextValueList(seq, GLContextDBEnum.VBO_Usage.ordinal(), makeSeperatedString(vboUsageMap)); } else if(apiName.equals(API_GL_CULLFACE)) { - currentContextValueList.set(GLContextDBEnum.CULLING_MODE.ordinal(), parameters[0]); + setContextValueList(seq, GLContextDBEnum.CULLING_MODE.ordinal(), parameters[0]); } else if(apiName.equals(API_GL_DEPTH_FUNC)) { - currentContextValueList.set(GLContextDBEnum.DEPTH_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.DEPTH_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); } else if(apiName.equals(API_GL_DEPTH_RANGEF)) { - currentContextValueList.set(GLContextDBEnum.DEPTH_RANGE_N.ordinal(), parameters[0]); - currentContextValueList.set(GLContextDBEnum.DEPTH_RANGE_F.ordinal(), parameters[1]); + setContextValueList(seq, GLContextDBEnum.DEPTH_RANGE_N.ordinal(), parameters[0]); + setContextValueList(seq, GLContextDBEnum.DEPTH_RANGE_F.ordinal(), parameters[1]); } else if(apiName.equals(API_GL_DISABLE_VAA)) { involvedIndex1 = Integer.parseInt(parameter); gvaEnabledValueList.set(involvedIndex1, DISABLED); - currentContextValueList.set(GLContextDBEnum.GVA_ENABLED.ordinal(), makeSeperatedString(gvaEnabledValueList)); + setContextValueList(seq, GLContextDBEnum.GVA_ENABLED.ordinal(), makeSeperatedString(gvaEnabledValueList)); } else if(apiName.equals(API_GL_ENABLE)) { if(parameter.equals(GL_BLEND)) { - currentContextValueList.set(GLContextDBEnum.BLEND_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); + setContextValueList(seq, GLContextDBEnum.BLEND_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); } else if(parameter.equals(GL_CULL_FACE)) { - currentContextValueList.set(GLContextDBEnum.CULLING_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); + setContextValueList(seq, GLContextDBEnum.CULLING_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); } else if(parameter.equals(GL_DEPTH_TEST)) { - currentContextValueList.set(GLContextDBEnum.DEPTH_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); + setContextValueList(seq, GLContextDBEnum.DEPTH_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); } else if(parameter.equals(GL_DITHER)) { - currentContextValueList.set(GLContextDBEnum.DITHER_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); + setContextValueList(seq, GLContextDBEnum.DITHER_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); } else if(parameter.equals(GL_POLYGON_OFFSET_FILL)) { - currentContextValueList.set(GLContextDBEnum.POLY_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); + setContextValueList(seq, GLContextDBEnum.POLY_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); } else if(parameter.equals(GL_SCISSOR_TEST)) { - currentContextValueList.set(GLContextDBEnum.SCISSOR_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); + setContextValueList(seq, GLContextDBEnum.SCISSOR_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); } else if(parameter.equals(GL_STENCIL_TEST)) { - currentContextValueList.set(GLContextDBEnum.STENCIL_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); + setContextValueList(seq, GLContextDBEnum.STENCIL_ENABLED.ordinal(), GLPageLabels.GL_CONTEXT_ENABLED); } } else if(apiName.equals(API_GL_ENABLE_VAA)) { involvedIndex1 = Integer.parseInt(parameter); gvaEnabledValueList.set(involvedIndex1, ENABLED); - currentContextValueList.set(GLContextDBEnum.GVA_ENABLED.ordinal(), makeSeperatedString(gvaEnabledValueList)); + setContextValueList(seq, GLContextDBEnum.GVA_ENABLED.ordinal(), makeSeperatedString(gvaEnabledValueList)); } else if(apiName.equals(API_GL_FRONTFACE)) { - currentContextValueList.set(GLContextDBEnum.CULLING_ORI.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.CULLING_ORI.ordinal(), GLConstantMap.getConstantString(parameters[0])); } else if(apiName.equals(API_GL_LINEWIDTH)) { - currentContextValueList.set(GLContextDBEnum.LINE_W.ordinal(), parameters[0]); + setContextValueList(seq, GLContextDBEnum.LINE_W.ordinal(), parameters[0]); } else if(apiName.equals(API_GL_PIXEL_STOREI)) { if(parameters[0].equals(GL_PACK_ALIGNMENT)) { - currentContextValueList.set(GLContextDBEnum.PACK_ALIGN.ordinal(), GLConstantMap.getConstantString(parameters[1])); + setContextValueList(seq, GLContextDBEnum.PACK_ALIGN.ordinal(), GLConstantMap.getConstantString(parameters[1])); } else if(parameters[0].equals(GL_UNPACK_ALIGNMENT)) { - currentContextValueList.set(GLContextDBEnum.UNPACK_ALIGN.ordinal(), GLConstantMap.getConstantString(parameters[1])); + setContextValueList(seq, GLContextDBEnum.UNPACK_ALIGN.ordinal(), GLConstantMap.getConstantString(parameters[1])); } } else if(apiName.equals(API_GL_PROGRAM_CREATE)) { String programID = String.valueOf(logData.getReturn()); @@ -566,17 +581,17 @@ public class GLDataMaker { programFShaderMap.put(programID, EMPTY); involvedIndex1 = programIDMap.size() - 1; - currentContextValueList.set(GLContextDBEnum.PROGRAM_OBJ_ID.ordinal(), makeSeperatedString(programIDMap)); - currentContextValueList.set(GLContextDBEnum.PROGRAM_OBJ_V_SHADER.ordinal(), makeSeperatedString(programVShaderMap)); - currentContextValueList.set(GLContextDBEnum.PROGRAM_OBJ_F_SHADER.ordinal(), makeSeperatedString(programFShaderMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_OBJ_ID.ordinal(), makeSeperatedString(programIDMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_OBJ_V_SHADER.ordinal(), makeSeperatedString(programVShaderMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_OBJ_F_SHADER.ordinal(), makeSeperatedString(programFShaderMap)); } else if(apiName.equals(API_GL_PROGRAM_DEL)) { programIDMap.remove(parameter); programVShaderMap.remove(parameter); programFShaderMap.remove(parameter); - currentContextValueList.set(GLContextDBEnum.PROGRAM_OBJ_ID.ordinal(), makeSeperatedString(programIDMap)); - currentContextValueList.set(GLContextDBEnum.PROGRAM_OBJ_V_SHADER.ordinal(), makeSeperatedString(programVShaderMap)); - currentContextValueList.set(GLContextDBEnum.PROGRAM_OBJ_F_SHADER.ordinal(), makeSeperatedString(programFShaderMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_OBJ_ID.ordinal(), makeSeperatedString(programIDMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_OBJ_V_SHADER.ordinal(), makeSeperatedString(programVShaderMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_OBJ_F_SHADER.ordinal(), makeSeperatedString(programFShaderMap)); } else if (apiName.equals(API_GL_PROGRAM_LINK)) { String programID = parameter; int contextValueIndex = 0; @@ -586,8 +601,7 @@ public class GLDataMaker { String index = contextValues[contextValueIndex++]; String name = contextValues[contextValueIndex++]; String size = contextValues[contextValueIndex++]; - String type = GLConstantMap - .getConstantString(contextValues[contextValueIndex++]); + String type = GLConstantMap.getConstantString(contextValues[contextValueIndex++]); putMapValue(programAttribIndexMap, programID, index, index); putMapValue(programAttribNameMap, programID, name, index); @@ -596,10 +610,10 @@ public class GLDataMaker { } involvedIndex1 = getIndexByKey(programIDMap, programID); - currentContextValueList.set(GLContextDBEnum.PROGRAM_ATTRIB_INDEX.ordinal(), makeSeperatedString2(programAttribIndexMap)); - currentContextValueList.set(GLContextDBEnum.PROGRAM_ATTRIB_NAME.ordinal(), makeSeperatedString2(programAttribNameMap)); - currentContextValueList.set(GLContextDBEnum.PROGRAM_ATTRIB_SIZE.ordinal(), makeSeperatedString2(programAttribSizeMap)); - currentContextValueList.set(GLContextDBEnum.PROGRAM_ATTRIB_TYPE.ordinal(), makeSeperatedString2(programAttribTypeMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_ATTRIB_INDEX.ordinal(), makeSeperatedString2(programAttribIndexMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_ATTRIB_NAME.ordinal(), makeSeperatedString2(programAttribNameMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_ATTRIB_SIZE.ordinal(), makeSeperatedString2(programAttribSizeMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_ATTRIB_TYPE.ordinal(), makeSeperatedString2(programAttribTypeMap)); } if (contextValues.length > 0) { @@ -618,13 +632,13 @@ public class GLDataMaker { } involvedIndex1 = getIndexByKey(programIDMap, programID); - currentContextValueList.set(GLContextDBEnum.PROGRAM_UNIFORM_INDEX.ordinal(), makeSeperatedString2(programUniformIndexMap)); - currentContextValueList.set(GLContextDBEnum.PROGRAM_UNIFORM_NAME.ordinal(), makeSeperatedString2(programUniformNameMap)); - currentContextValueList.set(GLContextDBEnum.PROGRAM_UNIFORM_SIZE.ordinal(), makeSeperatedString2(programUniformSizeMap)); - currentContextValueList.set(GLContextDBEnum.PROGRAM_UNIFORM_TYPE.ordinal(), makeSeperatedString2(programUniformTypeMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_UNIFORM_INDEX.ordinal(), makeSeperatedString2(programUniformIndexMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_UNIFORM_NAME.ordinal(), makeSeperatedString2(programUniformNameMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_UNIFORM_SIZE.ordinal(), makeSeperatedString2(programUniformSizeMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_UNIFORM_TYPE.ordinal(), makeSeperatedString2(programUniformTypeMap)); } } else if(apiName.equals(API_GL_PROGRAM_USE)) { - currentContextValueList.set(GLContextDBEnum.PROGRAM_OBJ_CURRENT.ordinal(), parameter); + setContextValueList(seq, GLContextDBEnum.PROGRAM_OBJ_CURRENT.ordinal(), parameter); } else if(apiName.equals(API_GL_PROGRAM_ATTACH_SHADER)) { String programID = parameters[0]; String shaderID = parameters[1]; @@ -632,10 +646,10 @@ public class GLDataMaker { if(shaderTypeMap.get(shaderID).equals("GL_VERTEX_SHADER")) { programVShaderMap.put(programID, shaderID); - currentContextValueList.set(GLContextDBEnum.PROGRAM_OBJ_V_SHADER.ordinal(), makeSeperatedString(programVShaderMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_OBJ_V_SHADER.ordinal(), makeSeperatedString(programVShaderMap)); } else if (shaderTypeMap.get(shaderID).equals("GL_FRAGMENT_SHADER")) { programFShaderMap.put(programID, shaderID); - currentContextValueList.set(GLContextDBEnum.PROGRAM_OBJ_F_SHADER.ordinal(), makeSeperatedString(programFShaderMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_OBJ_F_SHADER.ordinal(), makeSeperatedString(programFShaderMap)); } } else if (apiName.equals(API_GL_PROGRAM_DETATCH_SHADER)) { String programID = parameters[0]; @@ -644,19 +658,19 @@ public class GLDataMaker { if (programVShaderMap.get(programID).equals(shaderID)) { programVShaderMap.put(programID, EMPTY); - currentContextValueList.set(GLContextDBEnum.PROGRAM_OBJ_V_SHADER.ordinal(), makeSeperatedString(programVShaderMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_OBJ_V_SHADER.ordinal(), makeSeperatedString(programVShaderMap)); } else if (programFShaderMap.get(programID).equals(shaderID)) { programFShaderMap.put(programID, EMPTY); - currentContextValueList.set(GLContextDBEnum.PROGRAM_OBJ_F_SHADER.ordinal(), makeSeperatedString(programFShaderMap)); + setContextValueList(seq, GLContextDBEnum.PROGRAM_OBJ_F_SHADER.ordinal(), makeSeperatedString(programFShaderMap)); } } else if (apiName.equals(API_GL_POLY_OFFSET)) { - currentContextValueList.set(GLContextDBEnum.POLY_FACTOR.ordinal(), parameters[0]); - currentContextValueList.set(GLContextDBEnum.POLY_UNITS.ordinal(), parameters[1]); + setContextValueList(seq, GLContextDBEnum.POLY_FACTOR.ordinal(), parameters[0]); + setContextValueList(seq, GLContextDBEnum.POLY_UNITS.ordinal(), parameters[1]); } else if(apiName.equals(API_GL_SCISSOR)) { - currentContextValueList.set(GLContextDBEnum.SCISSOR_X.ordinal(), parameters[0]); - currentContextValueList.set(GLContextDBEnum.SCISSOR_Y.ordinal(), parameters[1]); - currentContextValueList.set(GLContextDBEnum.SCISSOR_W.ordinal(), parameters[2]); - currentContextValueList.set(GLContextDBEnum.SCISSOR_H.ordinal(), parameters[3]); + setContextValueList(seq, GLContextDBEnum.SCISSOR_X.ordinal(), parameters[0]); + setContextValueList(seq, GLContextDBEnum.SCISSOR_Y.ordinal(), parameters[1]); + setContextValueList(seq, GLContextDBEnum.SCISSOR_W.ordinal(), parameters[2]); + setContextValueList(seq, GLContextDBEnum.SCISSOR_H.ordinal(), parameters[3]); } else if(apiName.equals(API_GL_SHADER_CREATE)) { String shaderID = String.valueOf(logData.getReturn()); shaderIDMap.put(shaderID, shaderID); @@ -664,17 +678,17 @@ public class GLDataMaker { shaderSourceMap.put(shaderID, SPACE); involvedIndex1 = shaderIDMap.size() - 1; - currentContextValueList.set(GLContextDBEnum.SHADER_OBJ_ID.ordinal(), makeSeperatedString(shaderIDMap)); - currentContextValueList.set(GLContextDBEnum.SHADER_TYPE.ordinal(), makeSeperatedString(shaderTypeMap)); + setContextValueList(seq, GLContextDBEnum.SHADER_OBJ_ID.ordinal(), makeSeperatedString(shaderIDMap)); + setContextValueList(seq, GLContextDBEnum.SHADER_TYPE.ordinal(), makeSeperatedString(shaderTypeMap)); currentContextValueList.originalSet(GLContextDBEnum.SHADER_SRC.ordinal(), makeSeperatedString(shaderSourceMap)); } else if(apiName.equals(API_GL_SHADER_DEL)) { shaderIDMap.remove(parameter); shaderTypeMap.remove(parameter); shaderSourceMap.remove(parameter); - currentContextValueList.set(GLContextDBEnum.SHADER_OBJ_ID.ordinal(), makeSeperatedString(shaderIDMap)); - currentContextValueList.set(GLContextDBEnum.SHADER_TYPE.ordinal(), makeSeperatedString(shaderTypeMap)); - currentContextValueList.set(GLContextDBEnum.SHADER_SRC.ordinal(), makeSeperatedString(shaderSourceMap)); + setContextValueList(seq, GLContextDBEnum.SHADER_OBJ_ID.ordinal(), makeSeperatedString(shaderIDMap)); + setContextValueList(seq, GLContextDBEnum.SHADER_TYPE.ordinal(), makeSeperatedString(shaderTypeMap)); + setContextValueList(seq, GLContextDBEnum.SHADER_SRC.ordinal(), makeSeperatedString(shaderSourceMap)); } else if(apiName.equals(API_GL_SHADER_SOURCE)) { shaderSourceMap.put(parameters[0], logData.getContextValue()); @@ -686,71 +700,71 @@ public class GLDataMaker { } i++; } - currentContextValueList.set(GLContextDBEnum.SHADER_SRC.ordinal(), makeSeperatedString(shaderSourceMap)); + setContextValueList(seq, GLContextDBEnum.SHADER_SRC.ordinal(), makeSeperatedString(shaderSourceMap)); } else if(apiName.equals(API_GL_STENCIL_FUNC)) { - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_REF.ordinal(), parameters[1]); - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_MASK.ordinal(), parameters[2]); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_REF.ordinal(), parameters[1]); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_MASK.ordinal(), parameters[2]); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_REF.ordinal(), parameters[1]); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_MASK.ordinal(), parameters[2]); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_REF.ordinal(), parameters[1]); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_MASK.ordinal(), parameters[2]); } else if(apiName.equals(API_GL_STENCIL_FUNC_SEP)) { if(parameters[0].equals(GL_FRONT)) { - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_REF.ordinal(), parameters[1]); - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_MASK.ordinal(), parameters[2]); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_REF.ordinal(), parameters[1]); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_MASK.ordinal(), parameters[2]); } else if(parameters[0].equals(GL_BACK)) { - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_REF.ordinal(), parameters[1]); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_MASK.ordinal(), parameters[2]); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_REF.ordinal(), parameters[1]); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_MASK.ordinal(), parameters[2]); } else if(parameters[0].equals(GL_FRONT_AND_BACK)) { - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_REF.ordinal(), parameters[1]); - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_MASK.ordinal(), parameters[2]); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_REF.ordinal(), parameters[1]); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_MASK.ordinal(), parameters[2]); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_REF.ordinal(), parameters[1]); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_MASK.ordinal(), parameters[2]); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_FUNC.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_REF.ordinal(), parameters[1]); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_MASK.ordinal(), parameters[2]); } } else if(apiName.equals(API_GL_STENCIL_OP)) { - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_S_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_D_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[1])); - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_D_PASS.ordinal(), GLConstantMap.getConstantString(parameters[2])); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_S_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_D_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[1])); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_D_PASS.ordinal(), GLConstantMap.getConstantString(parameters[2])); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_S_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_D_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[1])); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_D_PASS.ordinal(), GLConstantMap.getConstantString(parameters[2])); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_S_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_D_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[1])); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_D_PASS.ordinal(), GLConstantMap.getConstantString(parameters[2])); } else if(apiName.equals(API_GL_STENCIL_OP_SEP)) { if(apiName.equals(GL_FRONT)) { - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_S_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_D_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[1])); - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_D_PASS.ordinal(), GLConstantMap.getConstantString(parameters[2])); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_S_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_D_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[1])); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_D_PASS.ordinal(), GLConstantMap.getConstantString(parameters[2])); } else if(apiName.equals(GL_BACK)) { - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_S_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_D_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[1])); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_D_PASS.ordinal(), GLConstantMap.getConstantString(parameters[2])); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_S_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_D_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[1])); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_D_PASS.ordinal(), GLConstantMap.getConstantString(parameters[2])); } else if(apiName.equals(GL_FRONT_AND_BACK)) { - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_S_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_D_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[1])); - currentContextValueList.set(GLContextDBEnum.STENCIL_FRONT_D_PASS.ordinal(), GLConstantMap.getConstantString(parameters[2])); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_S_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_D_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[1])); + setContextValueList(seq, GLContextDBEnum.STENCIL_FRONT_D_PASS.ordinal(), GLConstantMap.getConstantString(parameters[2])); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_S_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[0])); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_D_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[1])); - currentContextValueList.set(GLContextDBEnum.STENCIL_BACK_D_PASS.ordinal(), GLConstantMap.getConstantString(parameters[2])); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_S_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_D_FAIL.ordinal(), GLConstantMap.getConstantString(parameters[1])); + setContextValueList(seq, GLContextDBEnum.STENCIL_BACK_D_PASS.ordinal(), GLConstantMap.getConstantString(parameters[2])); } } else if(apiName.equals(API_GL_TEXTURE_ACTIVE)) { - currentContextValueList.set(GLContextDBEnum.TEXTURE_ACTIVE.ordinal(), GLConstantMap.getConstantString(parameters[0])); + setContextValueList(seq, GLContextDBEnum.TEXTURE_ACTIVE.ordinal(), GLConstantMap.getConstantString(parameters[0])); } else if (apiName.equals(API_GL_TEXTURE_BIND)) { int activeTextureUnit = Integer.parseInt( currentContextValueList.get(GLContextDBEnum.TEXTURE_ACTIVE.ordinal()).split("GL_TEXTURE")[1]); involvedIndex1 = activeTextureUnit; if (parameters[0].equals(GL_TEXTURE_2D)) { textureUnit2dValueList.set(activeTextureUnit, parameters[1]); - currentContextValueList.set(GLContextDBEnum.TEXTURE_UNIT_2D.ordinal(), makeSeperatedString(textureUnit2dValueList)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_UNIT_2D.ordinal(), makeSeperatedString(textureUnit2dValueList)); } else if (parameters[0].equals(GL_TEXTURE_CUBE_MAP)) { textureUnitCubeValueList.set(activeTextureUnit, parameters[1]); - currentContextValueList.set(GLContextDBEnum.TEXTURE_UNIT_CUBE.ordinal(), makeSeperatedString(textureUnitCubeValueList)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_UNIT_CUBE.ordinal(), makeSeperatedString(textureUnitCubeValueList)); } } else if(apiName.equals(API_GL_TEXTURE_GEN)) { int num = Integer.parseInt(parameters[0]); @@ -763,11 +777,11 @@ public class GLDataMaker { textureObjWrapTMap.put(contextValues[i], "GL_REPEAT"); } - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_ID.ordinal(), makeSeperatedString(textureObjIDMap)); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_MAG_FUNC.ordinal(), makeSeperatedString(textureObjMagFuncMap)); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_MIN_FUNC.ordinal(), makeSeperatedString(textureObjMinFuncMap)); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_WRAP_S.ordinal(), makeSeperatedString(textureObjWrapSMap)); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_WRAP_T.ordinal(), makeSeperatedString(textureObjWrapTMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_ID.ordinal(), makeSeperatedString(textureObjIDMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_MAG_FUNC.ordinal(), makeSeperatedString(textureObjMagFuncMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_MIN_FUNC.ordinal(), makeSeperatedString(textureObjMinFuncMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_WRAP_S.ordinal(), makeSeperatedString(textureObjWrapSMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_WRAP_T.ordinal(), makeSeperatedString(textureObjWrapTMap)); } else if(apiName.equals(API_GL_TEXTURE_DEL)) { int num = Integer.parseInt(parameters[0]); @@ -779,11 +793,11 @@ public class GLDataMaker { textureObjWrapTMap.remove(contextValues[i]); } - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_ID.ordinal(), makeSeperatedString(textureObjIDMap)); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_MAG_FUNC.ordinal(), makeSeperatedString(textureObjMagFuncMap)); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_MIN_FUNC.ordinal(), makeSeperatedString(textureObjMinFuncMap)); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_WRAP_S.ordinal(), makeSeperatedString(textureObjWrapSMap)); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_WRAP_T.ordinal(), makeSeperatedString(textureObjWrapTMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_ID.ordinal(), makeSeperatedString(textureObjIDMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_MAG_FUNC.ordinal(), makeSeperatedString(textureObjMagFuncMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_MIN_FUNC.ordinal(), makeSeperatedString(textureObjMinFuncMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_WRAP_S.ordinal(), makeSeperatedString(textureObjWrapSMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_WRAP_T.ordinal(), makeSeperatedString(textureObjWrapTMap)); } else if(apiName.equals(API_GL_TEXTURE_PARAM_F) || apiName.equals(API_GL_TEXTURE_PARAM_I)) { String textureObjID; @@ -799,16 +813,16 @@ public class GLDataMaker { if(parameters[1].equals(GL_TEXTURE_MAG_FILTER)) { textureObjMagFuncMap.put(textureObjID, GLConstantMap.getConstantString(parameters[2])); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_MAG_FUNC.ordinal(), makeSeperatedString(textureObjMagFuncMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_MAG_FUNC.ordinal(), makeSeperatedString(textureObjMagFuncMap)); } else if (parameters[1].equals(GL_TEXTURE_MIN_FILTER)) { textureObjMinFuncMap.put(textureObjID, GLConstantMap.getConstantString(parameters[2])); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_MIN_FUNC.ordinal(), makeSeperatedString(textureObjMinFuncMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_MIN_FUNC.ordinal(), makeSeperatedString(textureObjMinFuncMap)); } else if (parameters[1].equals(GL_TEXTURE_WRAP_S)) { textureObjWrapSMap.put(textureObjID, GLConstantMap.getConstantString(parameters[2])); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_WRAP_S.ordinal(), makeSeperatedString(textureObjWrapSMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_WRAP_S.ordinal(), makeSeperatedString(textureObjWrapSMap)); } else if (parameters[1].equals(GL_TEXTURE_WRAP_T)) { textureObjWrapTMap.put(textureObjID, GLConstantMap.getConstantString(parameters[2])); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_WRAP_T.ordinal(), makeSeperatedString(textureObjWrapTMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_WRAP_T.ordinal(), makeSeperatedString(textureObjWrapTMap)); } } else if(apiName.equals(API_GL_TEXTURE_PARAM_FV) || apiName.equals(API_GL_TEXTURE_PARAM_IV)) { @@ -826,16 +840,16 @@ public class GLDataMaker { if(parameters[1].equals(GL_TEXTURE_MAG_FILTER)) { textureObjMagFuncMap.put(textureObjID, GLConstantMap.getConstantString(contextValues[0])); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_MAG_FUNC.ordinal(), makeSeperatedString(textureObjMagFuncMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_MAG_FUNC.ordinal(), makeSeperatedString(textureObjMagFuncMap)); } else if (parameters[1].equals(GL_TEXTURE_MIN_FILTER)) { textureObjMinFuncMap.put(textureObjID, GLConstantMap.getConstantString(contextValues[0])); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_MIN_FUNC.ordinal(), makeSeperatedString(textureObjMinFuncMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_MIN_FUNC.ordinal(), makeSeperatedString(textureObjMinFuncMap)); } else if (parameters[1].equals(GL_TEXTURE_WRAP_S)) { textureObjWrapSMap.put(textureObjID, GLConstantMap.getConstantString(contextValues[0])); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_WRAP_S.ordinal(), makeSeperatedString(textureObjWrapSMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_WRAP_S.ordinal(), makeSeperatedString(textureObjWrapSMap)); } else if (parameters[1].equals(GL_TEXTURE_WRAP_T)) { textureObjWrapTMap.put(textureObjID, GLConstantMap.getConstantString(contextValues[0])); - currentContextValueList.set(GLContextDBEnum.TEXTURE_OBJ_WRAP_T.ordinal(), makeSeperatedString(textureObjWrapTMap)); + setContextValueList(seq, GLContextDBEnum.TEXTURE_OBJ_WRAP_T.ordinal(), makeSeperatedString(textureObjWrapTMap)); } } else if(apiName.equals(API_GL_VERTEX_ATTRIB1F) || apiName.equals(API_GL_VERTEX_ATTRIB2F) || @@ -851,10 +865,10 @@ public class GLDataMaker { gvaV1ValueList.set(involvedIndex1, contextValues[1]); gvaV2ValueList.set(involvedIndex1, contextValues[2]); gvaV3ValueList.set(involvedIndex1, contextValues[3]); - currentContextValueList.set(GLContextDBEnum.GVA_V0.ordinal(), makeSeperatedString(gvaV0ValueList)); - currentContextValueList.set(GLContextDBEnum.GVA_V1.ordinal(), makeSeperatedString(gvaV1ValueList)); - currentContextValueList.set(GLContextDBEnum.GVA_V2.ordinal(), makeSeperatedString(gvaV2ValueList)); - currentContextValueList.set(GLContextDBEnum.GVA_V3.ordinal(), makeSeperatedString(gvaV3ValueList)); + setContextValueList(seq, GLContextDBEnum.GVA_V0.ordinal(), makeSeperatedString(gvaV0ValueList)); + setContextValueList(seq, GLContextDBEnum.GVA_V1.ordinal(), makeSeperatedString(gvaV1ValueList)); + setContextValueList(seq, GLContextDBEnum.GVA_V2.ordinal(), makeSeperatedString(gvaV2ValueList)); + setContextValueList(seq, GLContextDBEnum.GVA_V3.ordinal(), makeSeperatedString(gvaV3ValueList)); } else if(apiName.equals(API_GL_VERTEX_ATTRIB_POINTER)) { involvedIndex1 = Integer.parseInt(parameters[0]); gvaSizeValueList.set(involvedIndex1, parameters[1]); @@ -862,16 +876,16 @@ public class GLDataMaker { gvaNormalValueList.set(involvedIndex1, parameters[3]); gvaStrideValueList.set(involvedIndex1, parameters[4]); gvaPointerValueList.set(involvedIndex1, parameters[5]); - currentContextValueList.set(GLContextDBEnum.GVA_SIZE.ordinal(), makeSeperatedString(gvaSizeValueList)); - currentContextValueList.set(GLContextDBEnum.GVA_TYPE.ordinal(), makeSeperatedString(gvaTypeValueList)); - currentContextValueList.set(GLContextDBEnum.GVA_NORMAL.ordinal(), makeSeperatedString(gvaNormalValueList)); - currentContextValueList.set(GLContextDBEnum.GVA_STRIDE.ordinal(), makeSeperatedString(gvaStrideValueList)); - currentContextValueList.set(GLContextDBEnum.GVA_POINTER.ordinal(), makeSeperatedString(gvaPointerValueList)); + setContextValueList(seq, GLContextDBEnum.GVA_SIZE.ordinal(), makeSeperatedString(gvaSizeValueList)); + setContextValueList(seq, GLContextDBEnum.GVA_TYPE.ordinal(), makeSeperatedString(gvaTypeValueList)); + setContextValueList(seq, GLContextDBEnum.GVA_NORMAL.ordinal(), makeSeperatedString(gvaNormalValueList)); + setContextValueList(seq, GLContextDBEnum.GVA_STRIDE.ordinal(), makeSeperatedString(gvaStrideValueList)); + setContextValueList(seq, GLContextDBEnum.GVA_POINTER.ordinal(), makeSeperatedString(gvaPointerValueList)); } else if(apiName.equals(API_GL_VIEWPORT)) { - currentContextValueList.set(GLContextDBEnum.VIEWPORT_X.ordinal(), parameters[0]); - currentContextValueList.set(GLContextDBEnum.VIEWPORT_Y.ordinal(), parameters[1]); - currentContextValueList.set(GLContextDBEnum.VIEWPORT_W.ordinal(), parameters[2]); - currentContextValueList.set(GLContextDBEnum.VIEWPORT_H.ordinal(), parameters[3]); + setContextValueList(seq, GLContextDBEnum.VIEWPORT_X.ordinal(), parameters[0]); + setContextValueList(seq, GLContextDBEnum.VIEWPORT_Y.ordinal(), parameters[1]); + setContextValueList(seq, GLContextDBEnum.VIEWPORT_W.ordinal(), parameters[2]); + setContextValueList(seq, GLContextDBEnum.VIEWPORT_H.ordinal(), parameters[3]); } currentContextValueList.set(GLContextDBEnum.INVOLVED_ORDINAL.ordinal(), makeSeperatedString(currentContextValueList.getSetIndexList())); @@ -888,6 +902,14 @@ public class GLDataMaker { contextValueDBInputList.add((List)currentContextValueList.clone()); } + private void setContextValueList(String seq, int index, String value) { + if(!currentContextValueList.get(index).equals(value)) { + contextValueChangeList.get(index).add(currentFrameIndex + DELIMITER + seq); + } + + currentContextValueList.set(index, value); + } + public GLFrameData getFrameData(int index) { return glFrameDataList.get(index); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLSelectionData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLSelectionData.java index 751d25a..f460554 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLSelectionData.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLSelectionData.java @@ -5,14 +5,26 @@ import org.tizen.dynamicanalyzer.common.DASelectionData; public class GLSelectionData extends DASelectionData { private int frameIndex; + private String seq; + + public GLSelectionData(String id, int frameIndex, String seq) { + super(id, 0, 0, null, null); + this.frameIndex = frameIndex; + this.seq = seq; + } public GLSelectionData(String id, long start, long end, Object data, - Control ctrl, int frameIndex) { - super(id, start, end, data, ctrl); + Control control, int frameIndex, String seq) { + super(id, start, end, data, control); this.frameIndex = frameIndex; + this.seq = seq; } public int getFrameIndex() { return frameIndex; } + + public String getSeq() { + return seq; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/eventListner/BoundLineEventListener.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/eventListner/BoundLineEventListener.java index bd592fb..3a02af0 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/eventListner/BoundLineEventListener.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/eventListner/BoundLineEventListener.java @@ -16,6 +16,7 @@ import org.eclipse.swt.widgets.Display; import org.tizen.dynamicanalyzer.resources.ColorResources; import org.tizen.dynamicanalyzer.widgets.chart.DAChart; import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot; +import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot.BoundType; public class BoundLineEventListener implements MouseListener, MouseMoveListener, MouseTrackListener { @@ -37,9 +38,9 @@ public class BoundLineEventListener implements MouseListener, MouseMoveListener, private int boundLineWidth = LINE_INIT_WIDTH; private double boundValue = -1; private boolean isExpanded = false; + private boolean isDirty = false; - public BoundLineEventListener(final DAChart chart, - DAChartPlot.BoundType boundType) { + public BoundLineEventListener(final DAChart chart, final BoundType boundType) { this.chart = chart; plot = chart.getPlot(); plot.setBoundType(boundType); @@ -47,6 +48,12 @@ public class BoundLineEventListener implements MouseListener, MouseMoveListener, this.chart.addPaintListener(new PaintListener() { @Override public void paintControl(PaintEvent e) { + double max = plot.getVisibleEndY(); + if(boundType == BoundType.UPPER && !isDirty) { + boundValue = max; + plot.setBoundValue(boundValue); + } + if (!isExpanded) { plot.setBoundExpanded(false); @@ -54,7 +61,6 @@ public class BoundLineEventListener implements MouseListener, MouseMoveListener, // draw bound value if (pointSize == POINT_MAX_SIZE) { - double max = plot.getVisibleEndY(); int chartHeight = chart.getBounds().height; if (boundLineWidth == LINE_MAX_WIDTH) { @@ -152,9 +158,13 @@ public class BoundLineEventListener implements MouseListener, MouseMoveListener, double linePosition = 1.0 - boundValue / max; int gap = (int) Math.round(Math.abs(e.y - chart.getBounds().height * linePosition)); - if (gap < 5 || (boundValue > max && e.y <= 5)) { + if ((max != plot.getVisibleStartY()) && (gap < 5 || (boundValue > max && e.y <= 5))) { boundLineWidth = (int) ((double) LINE_MAX_WIDTH / ((double) POINT_MAX_SIZE / (double) pointSize)); redrawLineArea(); + + if(boundLineWidth == LINE_MAX_WIDTH) { + isDirty = true; + } } redrawPointArea(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/eventListner/GLFrameChartMouseEventListener.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/eventListner/GLFrameChartMouseEventListener.java index f5bfe22..7e575a4 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/eventListner/GLFrameChartMouseEventListener.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/eventListner/GLFrameChartMouseEventListener.java @@ -111,8 +111,9 @@ public class GLFrameChartMouseEventListener extends viewNameList.add(GLAPIListView.class.getName()); viewNameList.add(GLDetailsView.class.getName()); AnalyzerManager.getCurrentPage().updateSelectedViews( - new GLSelectionData(GLChartView.ID, 0, 0, null, null, index), viewNameList); + new GLSelectionData(GLChartView.ID, index, null), viewNameList); } + @Override public void mouseUp(MouseEvent e) { if (e.button == 3) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/apiList/GLAPIListTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/apiList/GLAPIListTable.java index e3f5976..9c269c1 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/apiList/GLAPIListTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/apiList/GLAPIListTable.java @@ -33,15 +33,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.eclipse.nebula.widgets.grid.Grid; import org.eclipse.nebula.widgets.grid.GridItem; import org.eclipse.swt.SWT; -import org.eclipse.swt.dnd.DND; -import org.eclipse.swt.dnd.DragSource; -import org.eclipse.swt.dnd.DragSourceAdapter; -import org.eclipse.swt.dnd.DragSourceEvent; -import org.eclipse.swt.dnd.TextTransfer; -import org.eclipse.swt.dnd.Transfer; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Image; @@ -51,7 +44,6 @@ import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.logparser.LogCenterConstants; import org.tizen.dynamicanalyzer.model.TableInput; import org.tizen.dynamicanalyzer.nl.GLPageLabels; -import org.tizen.dynamicanalyzer.resources.ImageResources; import org.tizen.dynamicanalyzer.sql.DBTableInfo; import org.tizen.dynamicanalyzer.sql.DBTableManager; import org.tizen.dynamicanalyzer.sql.SqlManager; @@ -107,7 +99,7 @@ public class GLAPIListTable extends DAApiListTableComposite { table.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { - int selectionIndex = table.getSelectionIndex(); +// int selectionIndex = table.getSelectionIndex(); GridItem[] items = table.getSelection(); if (items == null) { @@ -119,46 +111,57 @@ public class GLAPIListTable extends DAApiListTableComposite { long time = dataFormat.getLogData().getTime(); GLSelectionData selData = new GLSelectionData(GLAPIListView.ID, - time, time, items, table, frameIndex); + time, time, items, table, frameIndex, null); AnalyzerManager.getCurrentPage().updatePage(selData); AnalyzerManager.getCurrentPage().controlSelection( GLAPIListView.ID); - updateTable(true); - table.setSelection(selectionIndex); + //FIXME why? +// updateTable(true); +// table.setSelection(selectionIndex); } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); - - DragSource dragSource = new DragSource(table, DND.DROP_COPY | DND.DROP_MOVE); - dragSource.setTransfer(new Transfer[] { TextTransfer.getInstance() }); - - dragSource.addDragListener(new DragSourceAdapter() { - public void dragSetData(DragSourceEvent event) { - DragSource ds = (DragSource) event.widget; - Grid grid = (Grid) ds.getControl(); - GridItem[] selection = grid.getSelection(); - event.data = frameIndex + GLDataMaker.DELIMITER - + selection[0].getText(); - } - - public void dragStart(DragSourceEvent event) { - event.image = ImageResources.GL_DROP_LEFT_ARROW; - } - }); } - public void updateTable(int index) { - if (index >= 0) { - frameIndex = index; + public void updateTable(int frameIndex) { + if (frameIndex >= 0) { + this.frameIndex = frameIndex; } selectedTreeInvolvedOrdinalList = null; updateTable(false); } + public void updateTable(int frameIndex, String seq) { + updateTable(frameIndex); + + GridItem[] gridItems = table.getItems(); + for (GridItem gridItem : gridItems) { + if (gridItem.getText(0).equals(seq)) { + DATableDataFormat dataFormat = (DATableDataFormat) gridItem + .getData(); + long time = dataFormat.getLogData().getTime(); + + GLSelectionData selData = new GLSelectionData(GLAPIListView.ID, + time, time, new GridItem[] { gridItem }, table, + frameIndex, null); + AnalyzerManager.getCurrentPage().updatePage(selData); + AnalyzerManager.getCurrentPage().controlSelection( + GLAPIListView.ID); + table.setSelection(new GridItem[] { gridItem }); + break; + } + } + } + + public void updateTable(boolean clearSecondSelection) { + this.clearSecondSelection = clearSecondSelection; + updateTable(); + } + public void updateTable(List treeOrdinalList, int insideColumnIndex) { this.selectedTreeInvolvedOrdinalList = treeOrdinalList; this.selectedTreeInvolvedInsideColumnIndex = insideColumnIndex; @@ -200,7 +203,8 @@ public class GLAPIListTable extends DAApiListTableComposite { frameIndex); List glAPIDataList = glFrameData.getGLApiDataList(); List inputList = new ArrayList(); - for (GLAPIData glAPIData : glAPIDataList) { + for(int i = 0; i < glAPIDataList.size(); i++) { + GLAPIData glAPIData = glAPIDataList.get(i); List texts = new ArrayList(); DATableDataFormat tableData = new DATableDataFormat( glAPIData.getTime()); @@ -285,11 +289,6 @@ public class GLAPIListTable extends DAApiListTableComposite { return map; } - public void updateTable(boolean clearSecondSelection) { - this.clearSecondSelection = clearSecondSelection; - updateTable(); - } - @Override public void updateTable() { GridItem[] selections = table.getSelection(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/apiList/GLAPIListView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/apiList/GLAPIListView.java index e8f3cb6..2d40a42 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/apiList/GLAPIListView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/apiList/GLAPIListView.java @@ -37,6 +37,7 @@ import org.tizen.dynamicanalyzer.resources.ColorResources; import org.tizen.dynamicanalyzer.ui.opengl.data.GLContextTreeNodeData; import org.tizen.dynamicanalyzer.ui.opengl.data.GLSelectionData; import org.tizen.dynamicanalyzer.ui.opengl.ui.chart.GLChartView; +import org.tizen.dynamicanalyzer.ui.opengl.ui.context.GLContextTreeTable; import org.tizen.dynamicanalyzer.ui.opengl.ui.context.GLContextView; import org.tizen.dynamicanalyzer.ui.widgets.ViewContainer; @@ -75,7 +76,7 @@ public class GLAPIListView extends DAView { public void updateView(DASelectionData data) { String id = data.getViewId(); if (id.equals(GLChartView.ID)) { - int frameIndex = ((GLSelectionData)data).getFrameIndex(); + int frameIndex = ((GLSelectionData) data).getFrameIndex(); viewContainer.setTitleText(GLPageLabels.GL_API_LIST_VIEW_TITLE + "(" + frameIndex + "frame)"); @@ -86,6 +87,13 @@ public class GLAPIListView extends DAView { .getData(); glAPIListTable.updateTable(nodeData.getInvolvedDBColumnIndexList(), nodeData.getInsideColumnIndex1()); + } else if (id.endsWith(GLContextTreeTable.ID)) { + int frameIndex = ((GLSelectionData) data).getFrameIndex(); + String seq = ((GLSelectionData) data).getSeq(); + + viewContainer.setTitleText(GLPageLabels.GL_API_LIST_VIEW_TITLE + + "(" + frameIndex + "frame)"); + glAPIListTable.updateTable(frameIndex, seq); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/context/GLContextTreeTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/context/GLContextTreeTable.java index 18087f5..97da002 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/context/GLContextTreeTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/context/GLContextTreeTable.java @@ -29,27 +29,21 @@ package org.tizen.dynamicanalyzer.ui.opengl.ui.context; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Timer; -import java.util.TimerTask; +import org.eclipse.nebula.widgets.grid.GridEditor; import org.eclipse.nebula.widgets.grid.GridItem; import org.eclipse.swt.SWT; -import org.eclipse.swt.dnd.DND; -import org.eclipse.swt.dnd.DropTarget; -import org.eclipse.swt.dnd.DropTargetAdapter; -import org.eclipse.swt.dnd.DropTargetEvent; -import org.eclipse.swt.dnd.TextTransfer; -import org.eclipse.swt.dnd.Transfer; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseListener; +import org.eclipse.swt.events.MouseMoveListener; +import org.eclipse.swt.events.MouseTrackListener; import org.eclipse.swt.events.PaintEvent; import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.tizen.dynamicanalyzer.common.AnalyzerConstants; @@ -57,17 +51,22 @@ import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.common.DASelectionData; import org.tizen.dynamicanalyzer.model.TreeInput; import org.tizen.dynamicanalyzer.nl.GLPageLabels; -import org.tizen.dynamicanalyzer.resources.ColorResources; import org.tizen.dynamicanalyzer.sql.DBTableInfo; import org.tizen.dynamicanalyzer.sql.DBTableManager; import org.tizen.dynamicanalyzer.sql.SqlManager; import org.tizen.dynamicanalyzer.ui.opengl.data.GLContextDBEnum; import org.tizen.dynamicanalyzer.ui.opengl.data.GLContextTreeNodeData; import org.tizen.dynamicanalyzer.ui.opengl.data.GLDataMaker; +import org.tizen.dynamicanalyzer.ui.opengl.data.GLSelectionData; +import org.tizen.dynamicanalyzer.ui.opengl.ui.GLDetailsView; +import org.tizen.dynamicanalyzer.ui.opengl.ui.apiList.GLAPIListView; +import org.tizen.dynamicanalyzer.ui.opengl.ui.chart.GLChartView; import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat; import org.tizen.dynamicanalyzer.ui.widgets.table.DATreeComposite; public class GLContextTreeTable extends DATreeComposite { + public static final String ID = GLContextTreeTable.class.getName(); + private static final int BASE_TREE_SELECTION_SEQ = 0; private static final int GVA_TREE_SELECTION_SEQ = 100; private static final int TEXTURE_UNIT_TREE_SELECTION_SEQ = 500; @@ -82,27 +81,28 @@ public class GLContextTreeTable extends DATreeComposite { private String[] columnNames = { GLPageLabels.GL_CONTEXT_VIEW_NAME, GLPageLabels.GL_CONTEXT_VIEW_VALUE, - GLPageLabels.GL_CONTEXT_VIEW_PREV }; + GLPageLabels.GL_CONTEXT_VIEW_NAVI }; private int[] columnSizes = { COLUMN_SIZE_NAME, COLUMN_SIZE_VALUE, COLUMN_SIZE_DIFF }; private int[] sortTypes = { AnalyzerConstants.SORT_TYPE_NONE, AnalyzerConstants.SORT_TYPE_NONE, AnalyzerConstants.SORT_TYPE_NONE }; private String seq; + private boolean makeTreeInput; private List contextValueList; - private List prevContextValueList; private List contextTree; - TreeInput nodeGVAs; - TreeInput nodeGVAArrays; - TreeInput nodeTextureUnits; - TreeInput nodeTextureObject; - TreeInput nodeProgramObject; - TreeInput nodeShaderObject; + private TreeInput nodeGVAs; + private TreeInput nodeGVAArrays; + private TreeInput nodeTextureUnits; + private TreeInput nodeTextureObject; + private TreeInput nodeProgramObject; + private TreeInput nodeShaderObject; + + private Point hover = new Point(-1, -1); + private Point push = new Point(-1, -1); + private Button buttonLeft; + private Button buttonRight; - private Timer timer; - private boolean drawDiffArea = false; - private int diffAreaAlpha = 0; - public static GLContextTreeTable getInstance(Composite parent, int compStyle, int tableStyle) { if (instance == null) { @@ -149,6 +149,7 @@ public class GLContextTreeTable extends DATreeComposite { if (items == null || items.length <= 0) { return; } + int index = ((GLContextTreeNodeData)items[0].getData()).getDBColumnIndex(); DASelectionData selData = new DASelectionData(GLContextView.ID, 0, 0, items[0], table); @@ -159,9 +160,16 @@ public class GLContextTreeTable extends DATreeComposite { for (TreeInput treeInput : contextTree) { clearSecondSelection(treeInput); } - seq = null; + makeTreeInput = false; updateTree(); table.setSelection(selectionIndex); + + if(index != -1) { + ArrayList list = GLDataMaker.contextValueChangeList.get(index); + System.out.println(list); + } else { + System.out.println("-1-1-1-1"); + } } @Override @@ -176,6 +184,8 @@ public class GLContextTreeTable extends DATreeComposite { @Override public void mouseDown(MouseEvent e) { + push.x = e.x; + push.y = e.y; } @Override @@ -194,137 +204,241 @@ public class GLContextTreeTable extends DATreeComposite { } }); - DropTarget target = new DropTarget(table, DND.DROP_COPY | DND.DROP_MOVE); - target.setTransfer(new Transfer[] { TextTransfer.getInstance() }); - target.addDropListener(new DropTargetAdapter() { - public void dragEnter(DropTargetEvent event) { - drawDiffArea = true; - - timer = new Timer(); - timer.schedule(new TimerTask() { + table.addMouseTrackListener(new MouseTrackListener() { + @Override + public void mouseHover(MouseEvent e) { + } + + @Override + public void mouseExit(MouseEvent e) { + hover.x = -1; + hover.y = -1; + + // TODO dispose +// disposeButtons(); + } + + @Override + public void mouseEnter(MouseEvent e) { + } + }); + + table.addMouseMoveListener(new MouseMoveListener() { + @Override + public void mouseMove(MouseEvent e) { + hover.x = e.x; + hover.y = e.y; + + disposeButtons(); + + GridItem gridItem = table.getItem(new Point(e.x, e.y)); + if(gridItem == null) { + return; + } + final GLContextTreeNodeData treeNodeData = (GLContextTreeNodeData)gridItem.getData(); + if(treeNodeData.getDBColumnIndex() == -1) { + return; + } + + GridEditor editor = new GridEditor(table); + buttonLeft = new Button(table, SWT.NONE); + buttonLeft.setText("<"); + buttonLeft.pack(); + editor.minimumWidth = buttonLeft.getSize().x; + editor.horizontalAlignment = SWT.LEFT; + editor.setEditor(buttonLeft, gridItem, 2); + buttonLeft.addSelectionListener(new SelectionListener() { @Override - public void run() { - if (diffAreaAlpha < 80) { - diffAreaAlpha += 10; + public void widgetSelected(SelectionEvent e) { + ArrayList changeList = GLDataMaker.contextValueChangeList + .get(treeNodeData.getDBColumnIndex()); + if (seq == null) { + return; + } - redrawDiffArea(); + int bSearchedIndex = bSearchPrev(changeList, + Integer.parseInt(seq)); + if (bSearchedIndex < 0) { + return; } + + String[] prevChangeInfo = changeList + .get(bSearchedIndex).split( + GLDataMaker.DELIMITER); + List viewNameList = new ArrayList(); + viewNameList.add(GLAPIListView.class.getName()); + viewNameList.add(GLDetailsView.class.getName()); + AnalyzerManager.getCurrentPage().updateSelectedViews( + new GLSelectionData(ID, Integer + .parseInt(prevChangeInfo[0]), + prevChangeInfo[1]), viewNameList); } - }, 0, 50); - } - public void dragLeave(DropTargetEvent event) { - drawDiffArea = false; - - if(timer != null) { - timer.cancel(); - diffAreaAlpha = 0; - - redrawDiffArea(); - } - } + @Override + public void widgetDefaultSelected(SelectionEvent e) { + } + }); + + editor = new GridEditor(table); + buttonRight = new Button(table, SWT.NONE); + buttonRight.setText(">"); + buttonRight.pack(); + editor.minimumWidth = buttonRight.getSize().x; + editor.horizontalAlignment = SWT.RIGHT; + editor.setEditor(buttonRight, gridItem, 2); + buttonRight.addSelectionListener(new SelectionListener() { + @Override + public void widgetSelected(SelectionEvent e) { + ArrayList changeList = GLDataMaker.contextValueChangeList + .get(treeNodeData.getDBColumnIndex()); + if (seq == null) { + return; + } - public void drop(DropTargetEvent event) { - drawDiffArea = false; + int bSearchedIndex = bSearchNext(changeList, + Integer.parseInt(seq)); + if (bSearchedIndex < 0 || bSearchedIndex >= changeList.size()) { + return; + } - if (timer != null) { - timer.cancel(); - diffAreaAlpha = 0; - } + String[] prevChangeInfo = changeList + .get(bSearchedIndex).split( + GLDataMaker.DELIMITER); + List viewNameList = new ArrayList(); + viewNameList.add(GLAPIListView.class.getName()); + viewNameList.add(GLDetailsView.class.getName()); + AnalyzerManager.getCurrentPage().updateSelectedViews( + new GLSelectionData(ID, Integer + .parseInt(prevChangeInfo[0]), + prevChangeInfo[1]), viewNameList); + } - String[] data = ((String) event.data) - .split(GLDataMaker.DELIMITER); - String frameIndex = data[0]; - String seq = data[1]; - - DBTableManager dbManager = DBTableManager.getInstance(); - DBTableInfo tableInfo = dbManager - .getTableInfo(DBTableManager.TABLE_INDEX_GLES20_CONTEXT_DATA); - prevContextValueList = SqlManager - .getInstance() - .selectQuery(null, tableInfo.getColumnNames(), - tableInfo.getTableName(), "where Seq = " + seq) - .get(0); - getTable().getColumn(2).setText( - GLPageLabels.GL_CONTEXT_VIEW_PREV + "(" + frameIndex - + "f #" + seq + ")"); + @Override + public void widgetDefaultSelected(SelectionEvent e) { + } + }); } }); table.addPaintListener(new PaintListener() { @Override public void paintControl(PaintEvent e) { - if (drawDiffArea) { - GC gc = e.gc; - Color oriColor = gc.getForeground(); - int oriAlpha = gc.getAlpha(); - - gc.setBackground(ColorResources.RED); - gc.setAlpha(diffAreaAlpha); - e.gc.fillRectangle(table.getColumn(0).getWidth() - + table.getColumn(1).getWidth(), 20, table - .getColumn(2).getWidth(), table.getBounds().height); - - gc.setBackground(oriColor); - gc.setAlpha(oriAlpha); - } } }); - + contextTree = new ArrayList(); initContextTree(); } - - private void redrawDiffArea() { - Display.getDefault().asyncExec(new Runnable() { - @Override - public void run() { - table.redraw(table.getColumn(0).getWidth() - + table.getColumn(1).getWidth(), 20, table.getColumn(2) - .getWidth(), table.getBounds().height, false); + + private int bSearchPrev(List list, int target) { + int first = 0; + int last = list.size() - 1; + int mid; + + while(first <= last) { + mid = (first + last) / 2; + int seq = Integer.parseInt(list.get(mid).split(GLDataMaker.DELIMITER)[1]); + + if(seq == target) { + return mid - 1; + } else if(seq < target) { + if(mid + 1 >= list.size() - 1) { + return mid; + } + + int nextSeq = Integer.parseInt(list.get(mid + 1).split(GLDataMaker.DELIMITER)[1]); + + if(nextSeq >= target) { + return mid; + } else { + first = mid + 1; + } + } else if(seq > target) { + last = mid - 1; } - }); + } + + return -1; } + private int bSearchNext(List list, int target) { + int first = 0; + int last = list.size() - 1; + int mid; + + while(first <= last) { + mid = (first + last) / 2; + int seq = Integer.parseInt(list.get(mid).split(GLDataMaker.DELIMITER)[1]); + + if(seq == target) { + return mid + 1; + } else if(seq > target) { + if(mid == 0) { + return mid; + } + + int prevSeq = Integer.parseInt(list.get(mid - 1).split(GLDataMaker.DELIMITER)[1]); + + if(prevSeq <= target) { + return mid; + } else { + last = mid - 1; + } + } else if(seq < target) { + first = mid + 1; + } + } + + return -1; + } + + + private void disposeButtons() { + if(buttonLeft != null) { + buttonLeft.dispose(); + } + + if(buttonRight != null) { + buttonRight.dispose(); + } + } + private void setNodeProperty(TreeInput treeInput) { List textList = new ArrayList(); GLContextTreeNodeData nodeData = (GLContextTreeNodeData) treeInput .getData(); textList.add(nodeData.getNodeName()); - - String value; - String diff = null; - int columnIndex = nodeData.getDBColumnIndex(); if (columnIndex == -1) { - textList.add(value = GLDataMaker.EMPTY); + textList.add(GLDataMaker.EMPTY); treeInput.setSecondSelection(false); } else { int insideColmunIndex1 = nodeData.getInsideColumnIndex1(); if (insideColmunIndex1 >= 0) { int insideColmunIndex2 = nodeData.getInsideColumnIndex2(); if (insideColmunIndex2 >= 0) { - textList.add(value = contextValueList.get(columnIndex).split( + textList.add(contextValueList.get(columnIndex).split( GLDataMaker.DELIMITER)[insideColmunIndex1] .split(GLDataMaker.COMMA)[insideColmunIndex2]); } else { - textList.add(value = contextValueList.get(columnIndex).split( + textList.add(contextValueList.get(columnIndex).split( GLDataMaker.DELIMITER)[insideColmunIndex1]); } } else { - textList.add(value = contextValueList.get(columnIndex)); + textList.add(contextValueList.get(columnIndex)); } List involvedOrdinalList = new ArrayList( Arrays.asList(contextValueList.get( GLContextDBEnum.INVOLVED_ORDINAL.ordinal()).split( - GLDataMaker.DELIMITER))); + GLDataMaker.DELIMITER))); if (involvedOrdinalList.contains(String.valueOf(columnIndex))) { int involvedIndex1 = Integer.parseInt(contextValueList .get(GLContextDBEnum.INVOLVED_INDEX1.ordinal())); - if (involvedIndex1 == -1 || involvedIndex1 == insideColmunIndex1) { + if (involvedIndex1 == -1 + || involvedIndex1 == insideColmunIndex1) { treeInput.setSecondSelection(true); setAncestorSecondSelection(treeInput); } else { @@ -336,38 +450,6 @@ public class GLContextTreeTable extends DATreeComposite { } treeInput.setText(textList); - // diff - if (columnIndex == -1 || prevContextValueList == null) { - textList.add(GLDataMaker.EMPTY); - } else { - try { - int insideColmunIndex1 = nodeData.getInsideColumnIndex1(); - if (insideColmunIndex1 >= 0) { - int insideColmunIndex2 = nodeData.getInsideColumnIndex2(); - if (insideColmunIndex2 >= 0) { - diff = prevContextValueList.get(columnIndex).split( - GLDataMaker.DELIMITER)[insideColmunIndex1] - .split(GLDataMaker.COMMA)[insideColmunIndex2]; - } else { - diff = prevContextValueList.get(columnIndex).split( - GLDataMaker.DELIMITER)[insideColmunIndex1]; - } - } else { - diff = prevContextValueList.get(columnIndex); - } - } catch(ArrayIndexOutOfBoundsException e) { - diff = GLDataMaker.EMPTY; - } finally { - if(diff.equals(value)) { - textList.add(GLDataMaker.EMPTY); - } else { - textList.add(diff); - } - } - } - treeInput.setText(textList); - // end of diff - for (TreeInput child : treeInput.getChildren()) { setNodeProperty(child); } @@ -740,7 +822,7 @@ public class GLContextTreeTable extends DATreeComposite { @Override public List makeTreeInput() { - if (seq != null) { + if (makeTreeInput) { DBTableManager dbManager = DBTableManager.getInstance(); DBTableInfo tableInfo = dbManager .getTableInfo(DBTableManager.TABLE_INDEX_GLES20_CONTEXT_DATA); @@ -758,7 +840,7 @@ public class GLContextTreeTable extends DATreeComposite { setNodeProperty(treeInput); } - seq = null; + makeTreeInput = false; } return contextTree; @@ -766,7 +848,6 @@ public class GLContextTreeTable extends DATreeComposite { private void initContextTree() { contextTree.clear(); - prevContextValueList = null; int treeSelectionSeq = BASE_TREE_SELECTION_SEQ; // vertex info TreeInput nodeVertexInfo = new TreeInput(); @@ -1322,14 +1403,15 @@ public class GLContextTreeTable extends DATreeComposite { } public void clear() { - seq = null; + makeTreeInput = false; initContextTree(); - getTable().getColumn(2).setText(GLPageLabels.GL_CONTEXT_VIEW_PREV); + getTable().getColumn(2).setText(GLPageLabels.GL_CONTEXT_VIEW_NAVI); } public void updateTree(String seq) { if (seq != null) { this.seq = seq; + makeTreeInput = true; } updateTree(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java index 891725a..2e84d20 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java @@ -76,6 +76,7 @@ import org.tizen.dynamicanalyzer.widgets.combo.DACustomCombo; import org.tizen.dynamicanalyzer.widgets.combo.DACustomComboSelectionListener; import org.tizen.dynamicanalyzer.widgets.timer.TimerClock; + public class ToolbarArea { public static final int START_BUTTON = 0; -- 2.7.4