From 10d483d968a8b6b41d64b9ab0a09035d871a85aa Mon Sep 17 00:00:00 2001 From: kamuru Date: Tue, 29 Oct 2013 18:13:22 +0900 Subject: [PATCH] [Title] fixed bug on gl api list table that no marking error api [Desc.] [Issue] --- .../widgets/chart/DAChartPlotTooltip.java | 24 +- .../widgets/chart/DAChartRenderer.java | 20 +- .../widgets/chart/DAChartTooltip.java | 2 +- .../widgets/chartBoard/DAChartBoard.java | 78 +++--- .../widgets/chartBoard/DAChartBoardItem.java | 44 ++-- .../widgets/chartBoard/DAChartBoardItemCell.java | 10 +- .../widgets/chartBoard/DAChartBoardItemList.java | 24 +- .../widgets/popupMenu/DAPopupMenu.java | 9 +- .../tizen/dynamicanalyzer/model/TableInput.java | 9 + .../ui/common/TimelineChartMouseEventListener.java | 2 +- .../ui/opengl/GLES20ErrorInformation.java | 10 +- .../ui/opengl/data/GLDataMaker.java | 11 +- .../ui/opengl/ui/apiList/GLAPIListTable.java | 15 +- .../ui/opengl/ui/chart/GLChartView.java | 4 +- .../ui/opengl/ui/context/GLContextTreeTable.java | 275 +++++++++++++++------ .../dynamicanalyzer/ui/thread/ThreadChartView.java | 4 +- .../ui/timeline/chart/CPUChart.java | 156 +++++++++++- .../ui/timeline/common/TimelineChartManager.java | 4 - .../ui/timeline/common/TimelineView.java | 3 + .../ui/widgets/table/DAApiListTableComposite.java | 1 + .../ui/widgets/table/DATableComposite.java | 2 +- 21 files changed, 478 insertions(+), 229 deletions(-) diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartPlotTooltip.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartPlotTooltip.java index 357886b..ab1f225 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartPlotTooltip.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartPlotTooltip.java @@ -39,7 +39,7 @@ public class DAChartPlotTooltip { public static final int TOOLTIP_HEIGHT = 18; public static final int TOOLTIP_SERIES_RECT_LENGTH = 10; public static final int TOOLTIP_SHOW_MIN = 50; - private boolean bTooltip = false; + private boolean drawTooltip = false; private double startVal; private double yPosRatio; private Color backgroundColor; @@ -90,7 +90,7 @@ public class DAChartPlotTooltip { public void setBackgroundColor(Color backgroundColor) { this.backgroundColor = backgroundColor; - if(true == bTooltip){ + if(true == drawTooltip){ redrawRegisteredChart(); } } @@ -104,7 +104,7 @@ public class DAChartPlotTooltip { public void setForegroundColor(Color foregroundColor) { this.foregroundColor = foregroundColor; - if(true == bTooltip){ + if(true == drawTooltip){ redrawRegisteredChart(); } } @@ -118,7 +118,7 @@ public class DAChartPlotTooltip { public void setLineColor(Color lineColor) { this.lineColor = lineColor; - if(true == bTooltip){ + if(true == drawTooltip){ redrawRegisteredChart(); } } @@ -132,7 +132,7 @@ public class DAChartPlotTooltip { public void setTextColor(Color textColor) { this.textColor = textColor; - if(true == bTooltip){ + if(true == drawTooltip){ redrawRegisteredChart(); } } @@ -146,7 +146,7 @@ public class DAChartPlotTooltip { public void setTimeColor(Color timeColor) { this.timeColor = timeColor; - if(true == bTooltip){ + if(true == drawTooltip){ redrawRegisteredChart(); } } @@ -160,7 +160,7 @@ public class DAChartPlotTooltip { public void setFont(Font font) { this.font = font; - if(true == bTooltip){ + if(true == drawTooltip){ redrawRegisteredChart(); } } @@ -171,7 +171,7 @@ public class DAChartPlotTooltip { public void setStartVal(double startVal) { this.startVal = startVal; - if(true == bTooltip){ + if(true == drawTooltip){ redrawRegisteredChart(); } } @@ -182,17 +182,17 @@ public class DAChartPlotTooltip { public void setYPosRatio(double yPosRatio) { this.yPosRatio = yPosRatio; - if(true == bTooltip) { + if(true == drawTooltip) { redrawRegisteredChart(); } } - public boolean isTooltip() { - return bTooltip; + public boolean shouldBeDrawn() { + return drawTooltip; } public void setTooltip(boolean show) { - this.bTooltip = show; + this.drawTooltip = show; redrawRegisteredChart(); } } diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartRenderer.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartRenderer.java index c9c9ac3..279f315 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartRenderer.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartRenderer.java @@ -190,14 +190,6 @@ public class DAChartRenderer { } } - public void draw(GC gc, DAChart chart) { - drawToGc(gc, chart); - if (r.height > DAChartPlotTooltip.TOOLTIP_SHOW_MIN) { - drawTooltip(gc); - } - drawRange(gc); - } - public void drawBuffer(Image buffer, DAChart chart) { GC bufGc = new GC(buffer); drawToGc(bufGc, chart); @@ -474,8 +466,8 @@ public class DAChartRenderer { } DAChartPlotTooltip tooltip = plot.getTooltip(); - if (null == tooltip || false == tooltip.isTooltip() - || -1 == tooltip.getStartVal()) { + if (tooltip == null || tooltip.shouldBeDrawn() == false + || tooltip.getStartVal() == -1) { return; } @@ -752,7 +744,7 @@ public class DAChartRenderer { Rectangle rect = new Rectangle(r.x, r.y + (r.height / seriesSize * seriesIndex), r.width, r.height / seriesSize); - if (r.height == DAChartBoard.DEFAULT_CHART_ZOOMIN_HEIGHT - 1) { + if (r.height == DAChartBoard.DEFAULT_ITEM_HEIGHT - 1) { gc.setForeground(ColorResources.UI_EVENT_CHART_TEXT); Font tempFont = gc.getFont(); Font multiCheckBarFont = series.getFont(); @@ -1053,7 +1045,7 @@ public class DAChartRenderer { int pixcelStartX = plot.getXPixcelFromX(currentX, r); Image image = seriesItem.getImage(); int yPosition = (int) seriesItem.getY(); - if (r.height != DAChartBoard.DEFAULT_CHART_ZOOMIN_HEIGHT - 1) { + if (r.height != DAChartBoard.DEFAULT_ITEM_HEIGHT - 1) { image = new Image(Display.getDefault(), image.getImageData() .scaledTo(image.getBounds().width / 2, image.getBounds().height / 2)); @@ -1081,7 +1073,7 @@ public class DAChartRenderer { Image selectedImage = seriesItem.getImage(); int yPosition = (int) seriesItem.getY(); int highlightedYPosition = SCREENSHOT_SELECTED_Y_POSITION; - if (r.height != DAChartBoard.DEFAULT_CHART_ZOOMIN_HEIGHT - 1) { + if (r.height != DAChartBoard.DEFAULT_ITEM_HEIGHT - 1) { selectedImage = new Image(Display.getDefault(), selectedImage .getImageData().scaledTo( selectedImage.getBounds().width / 2, @@ -1112,7 +1104,7 @@ public class DAChartRenderer { .get(highlightedImageIndex); Image highlightedImage = seriesItem.getImage(); int highlightedYPosition = SCREENSHOT_SELECTED_Y_POSITION; - if (r.height != DAChartBoard.DEFAULT_CHART_ZOOMIN_HEIGHT - 1) { + if (r.height != DAChartBoard.DEFAULT_ITEM_HEIGHT - 1) { highlightedImage = new Image(Display.getDefault(), highlightedImage.getImageData().scaledTo( highlightedImage.getBounds().width / 2, 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 53c930b..6a9236b 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 @@ -188,7 +188,7 @@ public class DAChartTooltip { DAChartPlotTooltip tooltip = tooltipInfo.chart.getPlot().getTooltip(); List seriesList = tooltipInfo.chart.getSeriesList(); - if (null == tooltip || false == tooltip.isTooltip() + if (null == tooltip || false == tooltip.shouldBeDrawn() || -1 == tooltip.getStartVal()) { return; } diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoard.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoard.java index 9d2cfcb..3b4a396 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoard.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoard.java @@ -71,7 +71,7 @@ public class DAChartBoard extends Composite { // private DACustomButton titleButton; private Composite titleComp; - private DACustomToggleButton chartZoomButton; + private DACustomToggleButton itemCollapseButton; private DATimeline timeline; private LifecycleBar lifecycleBar; private DefaultToolTip lifecycleBarTooltip; @@ -92,20 +92,20 @@ public class DAChartBoard extends Composite { private Font nameFont; // private final static int DEFAULT_CHART_ZOOMOUT_HEIGHT = 50; - public final static int DEFAULT_CHART_ZOOMIN_HEIGHT = 80; + public final static int DEFAULT_ITEM_HEIGHT = 80; private final static int DEFAULT_CHARTBOARD_HEADER_HEIGHT = 20; private final static int DEFAULT_CHARTBOARD_TITLE_BUTTON_WIDTH = 78; - private final static int DEFAULT_CHARTBOARD_ZOOM_BUTTON_WIDTH = 21; + private final static int DEFAULT_CHARTBOARD_COLLAPSE_BUTTON_WIDTH = 21; private final static int DEFAULT_CHARTBOARD_FOOTER_HEIGHT = 20; private final static int DEFAULT_CHARTBOARD_SCALE_WIDTH = 99; - // private final static int DEFAULT_CHART_CELL_HEIGHT = 200; - protected final static double DEFAULT_EXPAND_SMALL = 0.5; - protected final static double DEFAULT_EXPAND_MEDIUM = 1; - protected final static double DEFAULT_EXPAND_MAX = 2; - private double itemRatio = DEFAULT_EXPAND_MEDIUM; + + protected final static double ITEM_HEIGHT_RATIO_SHORT = 0.5; + protected final static double ITEM_HEIGHT_RATIO_NORMAL = 1; + protected final static double ITEM_HEIGHT_RATIO_TALL = 2; + private double currentItemHeightRatio = ITEM_HEIGHT_RATIO_NORMAL; private int interval; - private int chartHeight = DEFAULT_CHART_ZOOMIN_HEIGHT; + private int itemHeight = DEFAULT_ITEM_HEIGHT; public final static int BOARD_STYLE_TIME = 0; public final static int BOARD_STYLE_FRAME = 1; @@ -122,24 +122,17 @@ public class DAChartBoard extends Composite { titleComp = new Composite(this, SWT.NONE); titleComp.setLayout(new FillLayout()); - chartZoomButton = new DACustomToggleButton(this, + itemCollapseButton = new DACustomToggleButton(this, ImageResources.CHART_ALL_SIZE_MIN_NORMAL, ImageResources.CHART_ALL_SIZE_MIN_PUSH, ImageResources.CHART_ALL_SIZE_MIN_HOVER, null, ImageResources.CHART_ALL_SIZE_RESTORE_NORMAL, ImageResources.CHART_ALL_SIZE_RESTORE_HOVER); - chartZoomButton + itemCollapseButton .addClickListener(new DACustomButtonClickEventListener() { @Override public void handleClickEvent(DACustomButton button) { - - // long startTime = System.currentTimeMillis(); - boolean bZoomout = chartZoomButton.isToggled(); - zoomoutItem(bZoomout); - - // long endTime = System.currentTimeMillis(); - // System.out.println("board end : " - // + (endTime - startTime)); + adjustItemsHeight(itemCollapseButton.isToggled()); } }); @@ -200,7 +193,7 @@ public class DAChartBoard extends Composite { e.gc.setForeground(ColorResources.CHART_BOARD_ITEM_LINE); e.gc.fillRectangle(rt); - int height = (int) (chartHeight * itemRatio); + int height = (int) (itemHeight * currentItemHeightRatio); int nItemSize = rt.height / height + 1; for (int i = 0; i < nItemSize; i++) { e.gc.drawRectangle(rt.x, i * height - 1, @@ -247,13 +240,13 @@ public class DAChartBoard extends Composite { data.left = new FormAttachment(titleComp, 0); data.top = new FormAttachment(0, 0); // data.width = 0; - data.width = DEFAULT_CHARTBOARD_ZOOM_BUTTON_WIDTH; + data.width = DEFAULT_CHARTBOARD_COLLAPSE_BUTTON_WIDTH; data.height = DEFAULT_CHARTBOARD_HEADER_HEIGHT; - chartZoomButton.setLayoutData(data); + itemCollapseButton.setLayoutData(data); if (BOARD_STYLE_TIME == boardStyle) { data = new FormData(); - data.left = new FormAttachment(chartZoomButton, 0); + data.left = new FormAttachment(itemCollapseButton, 0); data.top = new FormAttachment(0, 0); data.right = new FormAttachment(100, 0); data.height = DEFAULT_CHARTBOARD_HEADER_HEIGHT @@ -261,14 +254,14 @@ public class DAChartBoard extends Composite { timeline.setLayoutData(data); data = new FormData(); - data.left = new FormAttachment(chartZoomButton, 0); + data.left = new FormAttachment(itemCollapseButton, 0); data.right = new FormAttachment(100, 0); data.top = new FormAttachment(timeline, 0); data.height = LifecycleBar.HEIGHT; lifecycleBar.setLayoutData(data); } else { // BOARD_STYLE_FRAME == boardStyle data = new FormData(); - data.left = new FormAttachment(chartZoomButton, 0); + data.left = new FormAttachment(itemCollapseButton, 0); data.top = new FormAttachment(0, 0); data.right = new FormAttachment(100, 0); data.height = DEFAULT_CHARTBOARD_HEADER_HEIGHT; @@ -302,14 +295,14 @@ public class DAChartBoard extends Composite { boardManager = new DAChartBoardManager(this); } - private void zoomoutItem(boolean bZoomout) { - if (true == bZoomout) { - itemRatio = DEFAULT_EXPAND_SMALL; + private void adjustItemsHeight(boolean minimize) { + if (minimize) { + currentItemHeightRatio = ITEM_HEIGHT_RATIO_SHORT; } else { - itemRatio = DEFAULT_EXPAND_MEDIUM; + currentItemHeightRatio = ITEM_HEIGHT_RATIO_NORMAL; } - - itemListHeight = itemList.callbackZoom(itemRatio, false); + itemList.setListHeightRatio(currentItemHeightRatio, false); + itemListHeight = itemList.getListHeight(); itemList.layout(); itemList.setSize(itemListScrollComp.getClientArea().width, itemListHeight); itemListScrollComp.redraw(); @@ -320,19 +313,16 @@ public class DAChartBoard extends Composite { itemList.layout(); } - public boolean isZoomout() { - if (null == chartZoomButton) { - return false; - } - return chartZoomButton.isToggled(); + public boolean isItemMinimized() { + return itemCollapseButton.isToggled(); } - public void setZoomout(boolean bZoomout) { - if (null == chartZoomButton || chartZoomButton.isToggled() == bZoomout) { + public void setItemsHeightMode(boolean minimize) { + if (itemCollapseButton.isToggled() == minimize) { return; } - chartZoomButton.setToggled(bZoomout); - zoomoutItem(bZoomout); + itemCollapseButton.setToggled(minimize); + adjustItemsHeight(minimize); } public int getVisibleStart() { @@ -490,7 +480,9 @@ public class DAChartBoard extends Composite { } protected void registeItem(DAChartBoardItem item) { - int listHeight = itemList.registeItem(item); + itemList.registeItem(item); + + int listHeight = itemList.getListHeight(); itemList.setSize(itemListScrollComp.getClientArea().width, listHeight); } @@ -673,7 +665,7 @@ public class DAChartBoard extends Composite { if (0 == childSize || childIndex >= childSize) { return; } - item.fold(false); + item.unFold(); DAChartBoardItem childItem = childList.get(childIndex); selectRow(childItem); int selection = itemList.getItemYPos(parentIndex) @@ -712,7 +704,7 @@ public class DAChartBoard extends Composite { } protected double getItemHeightRatio() { - return itemRatio; + return currentItemHeightRatio; } public LifecycleBar getLifecycleBar() { diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItem.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItem.java index bf59beb..91821b8 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItem.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItem.java @@ -95,7 +95,7 @@ public class DAChartBoardItem extends Composite { parentItem = parent; depth = parent.getDepth() + 1; initWidget(itemName, null); - parentItem.registeItem(this); + parentItem.registerItem(this); } protected double getItemHeightRatio() { @@ -105,7 +105,7 @@ public class DAChartBoardItem extends Composite { } else if (null != parentItem) { itemHeightRatio = parentItem.getItemHeightRatio(); } else { - itemHeightRatio = DAChartBoard.DEFAULT_EXPAND_MAX; + itemHeightRatio = DAChartBoard.ITEM_HEIGHT_RATIO_TALL; } return itemHeightRatio; } @@ -151,15 +151,13 @@ public class DAChartBoardItem extends Composite { callNotifyResizeChild(); } - protected int expandItem(boolean isFold) { + protected void expandItem(boolean isFold) { itemCellHeight = (int) (expandRatio * DEFAULT_ITEM_HEIGHT); if (isFold == false) { FormData data = (FormData) itemCell.getLayoutData(); data.height = itemCellHeight; itemCell.setLayoutData(data); } - - return itemCellHeight; } protected void expandFoldItem() { @@ -168,13 +166,13 @@ public class DAChartBoardItem extends Composite { itemCell.setLayoutData(data); } - protected void registeItem(DAChartBoardItem child) { + protected void registerItem(DAChartBoardItem child) { if (0 == childList.getItemSize()) { itemCell.addChildFoldToggleButton(); } - int chartListHeight = childList.registeItem(child); + childList.registeItem(child); + itemChildListHeight = childList.getListHeight(); - itemChildListHeight = chartListHeight; FormData childDListata = (FormData) childList.getLayoutData(); childDListata.height = itemChildListHeight; childList.setLayoutData(childDListata); @@ -205,21 +203,28 @@ public class DAChartBoardItem extends Composite { protected void callbackExpand(boolean bExpand) { if (true == bExpand) { - expandRatio = DAChartBoard.DEFAULT_EXPAND_MAX; + expandRatio = DAChartBoard.ITEM_HEIGHT_RATIO_TALL; } else { expandRatio = normalRatio; } expandItem(false); callNotifyResizeChild(); } + + public void setRatio(double ratio) { + expandRatio = ratio; + expandItem(false); + callNotifyResizeChild(); + } - protected int callbackZoom(double zoomRatio, boolean isFold) { + protected void setItemHeightRatio(double zoomRatio, boolean isFold) { normalRatio = zoomRatio; expandRatio = normalRatio; if (null != childList) { - itemChildListHeight = childList - .callbackZoom(zoomRatio, this.isFold); + childList.setListHeightRatio(zoomRatio, this.isFold); + itemChildListHeight = childList.getListHeight(); + if (this.isFold == false) { FormData childDListata = (FormData) childList.getLayoutData(); childDListata.height = itemChildListHeight; @@ -228,15 +233,13 @@ public class DAChartBoardItem extends Composite { } itemCell.setExpandButtonNormal(); - itemCellHeight = expandItem(isFold); - - return getItemHeight(); + expandItem(isFold); } protected int zoomoutFoldItem() { - final int height; if (null != childList) { - height = childList.zoomoutFoldItem(); + childList.zoomoutFoldItem(); + int height = childList.getListHeight(); if (this.isFold == true) { FormData childDListata = (FormData) childList.getLayoutData(); childDListata.height = height; @@ -405,11 +408,12 @@ public class DAChartBoardItem extends Composite { } } - public void fold(boolean bFold) { - if (isFold == bFold) { + public void unFold() { + if (!isFold) { return; } - itemCell.foldChild(bFold); + itemCell.unFoldChild(); + callbackFold(false); } public Font getNameFont() { 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 d5ecbb1..093c4fe 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 @@ -66,9 +66,6 @@ class DAChartBoardItemCell extends Composite { private Image itemIcon; private Image foldBackBuffer; - // private Rectangle itemNamePoint; - // private Rectangle itemIconPoint; - protected DAChartBoardItemCell(final DAChartBoardItem parent, String name, Image icon, int chartStyle) { super(parent, SWT.NONE); @@ -163,17 +160,16 @@ class DAChartBoardItemCell extends Composite { chartCell.setLayoutData(data); } - protected void foldChild(boolean bFold) { + protected void unFoldChild() { if (null == childFoldButton) { System.out.println("error - childFoldButton is not exist"); return; } boolean isFold = !childFoldButton.isToggled(); - if (isFold == bFold) { + if (!isFold) { return; } - childFoldButton.setToggled(!bFold); - parent.callbackFold(bFold); + childFoldButton.setToggled(true); } protected void addChildFoldToggleButton() { diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemList.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemList.java index 6543789..4d2a700 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemList.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemList.java @@ -36,7 +36,7 @@ import org.eclipse.swt.widgets.Composite; class DAChartBoardItemList extends Composite { private List items = new ArrayList(); - private int defaultItemHeight = DAChartBoard.DEFAULT_CHART_ZOOMIN_HEIGHT; + private int defaultItemHeight = DAChartBoard.DEFAULT_ITEM_HEIGHT; private double itemRatio = 1; private boolean isFold = false; private int listHeight = 0; @@ -49,7 +49,7 @@ class DAChartBoardItemList extends Composite { super(parent, SWT.NONE); } - public int registeItem(DAChartBoardItem item) { + public void registeItem(DAChartBoardItem item) { int itemHeight = (int) (defaultItemHeight * itemRatio); listHeight += itemHeight; FormData data = new FormData(); @@ -69,8 +69,6 @@ class DAChartBoardItemList extends Composite { items.add(item); this.layout(); - - return listHeight; } public int getDefaultItemHeight() { @@ -131,19 +129,13 @@ class DAChartBoardItemList extends Composite { return items.size(); } - protected int callbackZoom(double zoomRatio, boolean isFold) { + protected void setListHeightRatio(double zoomRatio, boolean isFold) { itemRatio = zoomRatio; - if (null == items) { - return 0; - } - int itemsSize = items.size(); - DAChartBoardItem item; - int itemHeight; listHeight = 0; - for (int i = 0; i < itemsSize; i++) { - item = items.get(i); - itemHeight = item.callbackZoom(zoomRatio, isFold); + for (DAChartBoardItem item : items) { + item.setItemHeightRatio(zoomRatio, isFold); + int itemHeight = item.getItemHeight(); if (isFold == false) { FormData data = (FormData) item.getLayoutData(); @@ -152,10 +144,9 @@ class DAChartBoardItemList extends Composite { } listHeight += itemHeight; } - return listHeight; } - protected int zoomoutFoldItem() { + protected void zoomoutFoldItem() { int itemsSize = items.size(); for (int i = 0; i < itemsSize; i++) { @@ -167,7 +158,6 @@ class DAChartBoardItemList extends Composite { item.setLayoutData(data); } } - return listHeight; } protected void setChartAxis(double startX, double endX) { diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/popupMenu/DAPopupMenu.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/popupMenu/DAPopupMenu.java index 50acbcb..71354f9 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/popupMenu/DAPopupMenu.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/popupMenu/DAPopupMenu.java @@ -106,24 +106,17 @@ public class DAPopupMenu { parent.addMouseListener(new MouseListener() { @Override public void mouseUp(MouseEvent e) { - switch (e.button) { - case 1: - break; - case 2: - break; - case 3: + if (e.button == 3) { Point pt = Display.getCurrent().getCursorLocation(); if (true == isInParent(pt)) { open(topShell, pt.x - 5, pt.y - 5); } - break; } } @Override public void mouseDown(MouseEvent event) { - // TODO Auto-generated method stub switch (event.button) { case MOUSE_LEFT: { closeParent(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/model/TableInput.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/model/TableInput.java index b33c0d1..a456426 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/model/TableInput.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/model/TableInput.java @@ -37,6 +37,15 @@ public class TableInput { private Object data; private boolean inRange = false; private boolean isSecondSelection = false; + private boolean isFailed = false; + + public boolean isFailed() { + return isFailed; + } + + public void setFailed(boolean isFailed) { + this.isFailed = isFailed; + } public TableInput() { text = new ArrayList(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/TimelineChartMouseEventListener.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/TimelineChartMouseEventListener.java index c691731..2a1e283 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/TimelineChartMouseEventListener.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/TimelineChartMouseEventListener.java @@ -431,7 +431,7 @@ public class TimelineChartMouseEventListener extends MouseAdapter implements DAChartSeriesItem item = series.getSeriesItemList().get(index); int screenshotWidth = item.getImage().getBounds().width; - if (chart.getBounds().height != DAChartBoard.DEFAULT_CHART_ZOOMIN_HEIGHT - 1) { + if (chart.getBounds().height != DAChartBoard.DEFAULT_ITEM_HEIGHT - 1) { screenshotWidth /= 2; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLES20ErrorInformation.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLES20ErrorInformation.java index eef0893..9bf7a05 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLES20ErrorInformation.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLES20ErrorInformation.java @@ -35,11 +35,11 @@ public class GLES20ErrorInformation { private static void initialize() { gles20ErrorMap = new HashMap(); gles20ErrorMap.put(new Long(0), "No error"); - gles20ErrorMap.put(new Long(500), "GL_INVALID_ENUM"); - gles20ErrorMap.put(new Long(501), "GL_INVALID_VALUE"); - gles20ErrorMap.put(new Long(502), "GL_INVALID_OPERATION"); - gles20ErrorMap.put(new Long(505), "GL_OUT_OF_MEMORY"); - gles20ErrorMap.put(new Long(506), "GL_INVALID_FRAMEBUFFER_OPERATION"); + gles20ErrorMap.put(new Long(1280), "GL_INVALID_ENUM"); + gles20ErrorMap.put(new Long(1281), "GL_INVALID_VALUE"); + gles20ErrorMap.put(new Long(1282), "GL_INVALID_OPERATION"); + gles20ErrorMap.put(new Long(1285), "GL_OUT_OF_MEMORY"); + gles20ErrorMap.put(new Long(1286), "GL_INVALID_FRAMEBUFFER_OPERATION"); gles20ErrorDescriptionMap = new HashMap(); gles20ErrorDescriptionMap.put("0", "No error"); 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 938cf09..a925d60 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 @@ -149,7 +149,7 @@ public class GLDataMaker { private CurrentContextValueList currentContextValueList; private ArrayList> contextValueDBInputList; - public static ArrayList> contextValueChangeList; + private ArrayList> contextValueChangeList; private ArrayList> contextChangeInfoDBInputList; private List gvaV0ValueList; @@ -397,11 +397,16 @@ public class GLDataMaker { String apiName = logData.getApiName(); String parameter = logData.getArgs(); long errorNo = logData.getErrno(); + //FIXME if(apiName.equals(API_EGL_SWAPBUFFERS)) { errorNo = 0; logData.setErrNo(0); } + + if(errorNo != 0) { + System.out.println("00"); + } if (apiType != API_TYPE_INIT) { glFrameDataList.get(currentFrameIndex).addGLAPIData( @@ -1039,4 +1044,8 @@ public class GLDataMaker { return -1; } + + public ArrayList getChangeList(int columnIndex) { + return contextValueChangeList.get(columnIndex); + } } 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 1089e57..bdca7a1 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 @@ -44,6 +44,7 @@ import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.model.TableInput; import org.tizen.dynamicanalyzer.nl.GLPageLabels; import org.tizen.dynamicanalyzer.resources.ColorResources; +import org.tizen.dynamicanalyzer.resources.ImageResources; import org.tizen.dynamicanalyzer.sql.DBTableInfo; import org.tizen.dynamicanalyzer.sql.DBTableManager; import org.tizen.dynamicanalyzer.sql.SqlManager; @@ -89,7 +90,6 @@ public class GLAPIListTable extends DAApiListTableComposite { setTableName(GLPageLabels.GL_API_LIST_VIEW_TITLE); setSortTypes(sortTypes); - setFailedAPITableIndex(5); setColumnAlignment(columnAlignment); setColumns(columnNames); setColumnSize(columnSizes); @@ -297,12 +297,16 @@ public class GLAPIListTable extends DAApiListTableComposite { texts.add(glAPIData.getParameter()); texts.add(String.valueOf(glAPIData.getElapsedTime())); texts.add(GLES20ErrorInformation.getError(glAPIData.getErrorNo())); - + tableData.getData().addAll(texts); TableInput tableInput = new TableInput(); tableInput.setText(texts); tableInput.setData(tableData); + if(glAPIData.getErrorNo() != 0) { + tableInput.setFailed(true); + } + inputList.add(tableInput); if (involvedMap != null) { @@ -422,6 +426,13 @@ public class GLAPIListTable extends DAApiListTableComposite { gridItem.setBackground(rangeColor); } + if (input.get(i).isFailed()) { + gridItem.setBackground(ColorResources.TABLE_CONTENTS_FAILED_BACGOUND_COLOR); + gridItem.setForeground(ColorResources.TABLE_CONTENTS_FAILED_FONT_COLOR); + gridItem.setImage(0, + ImageResources.FAILED_API_ICON_TABLE); + } + if (gridData != null) { long seqNum = gridData.getSelectionKey(); for (int ii = 0; ii < selSeqs.size(); ii++) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/chart/GLChartView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/chart/GLChartView.java index 6fc24f8..cd74079 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/chart/GLChartView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/chart/GLChartView.java @@ -214,7 +214,7 @@ public class GLChartView extends DAView { timeCombo.setText(GLPageLabels.GL_CHART_TITLE_TIME); timeChartBoard.setScaleVal(frameChartBoard.getScaleVal()); timeChartBoard.setVisibleStart(frameChartBoard.getVisibleStart()); - timeChartBoard.setZoomout(frameChartBoard.isZoomout()); + timeChartBoard.setItemsHeightMode(frameChartBoard.isItemMinimized()); updateView(); } @@ -224,7 +224,7 @@ public class GLChartView extends DAView { frameCombo.setText(GLPageLabels.GL_CHART_TITLE_FRAME); frameChartBoard.setScaleVal(timeChartBoard.getScaleVal()); frameChartBoard.setVisibleStart(timeChartBoard.getVisibleStart()); - frameChartBoard.setZoomout(timeChartBoard.isZoomout()); + frameChartBoard.setItemsHeightMode(timeChartBoard.isItemMinimized()); updateView(); } 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 cbaf240..4973e71 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 @@ -42,6 +42,9 @@ import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.layout.FormAttachment; +import org.eclipse.swt.layout.FormData; +import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Event; @@ -76,7 +79,7 @@ public class GLContextTreeTable extends DATreeComposite { private static GLContextTreeTable instance = null; private static final int COLUMN_SIZE_NAME = 200; - private static final int COLUMN_SIZE_VALUE = 100; + private static final int COLUMN_SIZE_VALUE = 200; private static final int COLUMN_SIZE_DIFF = 100; private String[] columnNames = { GLPageLabels.GL_CONTEXT_VIEW_NAME, @@ -100,8 +103,13 @@ public class GLContextTreeTable extends DATreeComposite { private Point hover = new Point(-1, -1); private Point push = new Point(-1, -1); + private Composite naviButtonComposite; + private Button buttonLeftLeft; private Button buttonLeft; private Button buttonRight; + private Button buttonRightRight; + + private GLDataMaker glDataMaker = GLDataMaker.getInstance(); public static GLContextTreeTable getInstance(Composite parent, int compStyle, int tableStyle) { @@ -163,12 +171,10 @@ public class GLContextTreeTable extends DATreeComposite { makeTreeInput = false; updateTree(); table.setSelection(selectionIndex); - - if(index != -1) { - ArrayList list = GLDataMaker.contextValueChangeList.get(index); + + if (index != -1) { + ArrayList list = glDataMaker.getChangeList(index); System.out.println(list); - } else { - System.out.println("-1-1-1-1"); } } @@ -240,83 +246,51 @@ public class GLContextTreeTable extends DATreeComposite { return; } - GridEditor editor = new GridEditor(table); - buttonLeft = new Button(table, SWT.NONE); + naviButtonComposite = new Composite(table, SWT.NONE); + naviButtonComposite.setLayout(new FormLayout()); + + buttonLeftLeft = new Button(naviButtonComposite, SWT.NONE); + buttonLeftLeft.setText("<<"); + FormData formData = new FormData(); + formData.top = new FormAttachment(0, 0); + formData.bottom = new FormAttachment(100, 0); + formData.left = new FormAttachment(0, 0); + formData.right = new FormAttachment(0, 27); + buttonLeftLeft.setLayoutData(formData); + + buttonLeft = new Button(naviButtonComposite, 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 widgetSelected(SelectionEvent e) { - ArrayList changeList = GLDataMaker.contextValueChangeList - .get(treeNodeData.getDBColumnIndex()); - if (seq == null) { - return; - } - - 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]), -1, - prevChangeInfo[1]), viewNameList); - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - } - }); - - editor = new GridEditor(table); - buttonRight = new Button(table, SWT.NONE); + formData = new FormData(); + formData.top = new FormAttachment(0, 0); + formData.bottom = new FormAttachment(100, 0); + formData.left = new FormAttachment(0, 28); + formData.right = new FormAttachment(0, 55); + buttonLeft.setLayoutData(formData); + + buttonRight = new Button(naviButtonComposite, 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; - } - - int bSearchedIndex = bSearchNext(changeList, - Integer.parseInt(seq)); - if (bSearchedIndex < 0 || bSearchedIndex >= changeList.size()) { - 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]), -1, - prevChangeInfo[1]), viewNameList); - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - } - }); + formData = new FormData(); + formData.top = new FormAttachment(0, 0); + formData.bottom = new FormAttachment(100, 0); + formData.left = new FormAttachment(100, -55); + formData.right = new FormAttachment(100, -28); + buttonRight.setLayoutData(formData); + + buttonRightRight = new Button(naviButtonComposite, SWT.NONE); + buttonRightRight.setText(">>"); + formData = new FormData(); + formData.top = new FormAttachment(0, 0); + formData.bottom = new FormAttachment(100, 0); + formData.left = new FormAttachment(100, -27); + formData.right = new FormAttachment(100, 0); + buttonRightRight.setLayoutData(formData); + + GridEditor editor = new GridEditor(table); + editor.minimumWidth = naviButtonComposite.getSize().x; + editor.grabHorizontal = true; + editor.setEditor(naviButtonComposite, gridItem, 1); + + setNaviButtonEventListener(treeNodeData); } }); @@ -332,6 +306,133 @@ public class GLContextTreeTable extends DATreeComposite { initContextTree(); } + private void setNaviButtonEventListener( + final GLContextTreeNodeData treeNodeData) { + buttonLeftLeft.addSelectionListener(new SelectionListener() { + @Override + public void widgetSelected(SelectionEvent e) { + ArrayList changeList = glDataMaker + .getChangeList(treeNodeData.getDBColumnIndex()); + if (seq == null) { + return; + } + + 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]), -1, + prevChangeInfo[1]), viewNameList); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + } + }); + +// buttonLeft.addSelectionListener(new SelectionListener() { +// @Override +// public void widgetSelected(SelectionEvent e) { +// ArrayList changeList = glDataMaker +// .getChangeList(treeNodeData.getDBColumnIndex()); +// if (seq == null) { +// return; +// } +// +// 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]), -1, +// prevChangeInfo[1]), viewNameList); +// } +// +// @Override +// public void widgetDefaultSelected(SelectionEvent e) { +// } +// }); +// +// buttonRight.addSelectionListener(new SelectionListener() { +// @Override +// public void widgetSelected(SelectionEvent e) { +// ArrayList changeList = glDataMaker +// .getChangeList(treeNodeData.getDBColumnIndex()); +// if (seq == null) { +// return; +// } +// +// int bSearchedIndex = bSearchNext(changeList, +// Integer.parseInt(seq)); +// if (bSearchedIndex < 0 || bSearchedIndex >= changeList.size()) { +// 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]), -1, +// prevChangeInfo[1]), viewNameList); +// } +// +// @Override +// public void widgetDefaultSelected(SelectionEvent e) { +// } +// }); + + buttonRightRight.addSelectionListener(new SelectionListener() { + @Override + public void widgetSelected(SelectionEvent e) { + ArrayList changeList = glDataMaker + .getChangeList(treeNodeData.getDBColumnIndex()); + if (seq == null) { + return; + } + + int bSearchedIndex = bSearchNext(changeList, + Integer.parseInt(seq)); + if (bSearchedIndex < 0 || bSearchedIndex >= changeList.size()) { + 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]), -1, + prevChangeInfo[1]), viewNameList); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + } + }); + } + private int bSearchPrev(List list, int target) { int first = 0; int last = list.size() - 1; @@ -396,6 +497,14 @@ public class GLContextTreeTable extends DATreeComposite { private void disposeButtons() { + if(naviButtonComposite != null) { + naviButtonComposite.dispose(); + } + + if(buttonLeftLeft != null) { + buttonLeftLeft.dispose(); + } + if(buttonLeft != null) { buttonLeft.dispose(); } @@ -403,6 +512,10 @@ public class GLContextTreeTable extends DATreeComposite { if(buttonRight != null) { buttonRight.dispose(); } + + if(buttonRightRight != null) { + buttonRightRight.dispose(); + } } private void setNodeProperty(TreeInput treeInput) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadChartView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadChartView.java index db1bcc0..5c9ce9f 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadChartView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadChartView.java @@ -260,7 +260,7 @@ public class ThreadChartView extends DAView { threadCombo.setText("Thread"); threadChart.setScaleVal(syncChart.getScaleVal()); threadChart.setVisibleStart(syncChart.getVisibleStart()); - threadChart.setZoomout(syncChart.isZoomout()); + threadChart.setItemsHeightMode(syncChart.isItemMinimized()); callUpdatePage(threadChart.getSelectItem()); updateView(); } @@ -271,7 +271,7 @@ public class ThreadChartView extends DAView { syncCombo.setText("Sync"); syncChart.setScaleVal(threadChart.getScaleVal()); syncChart.setVisibleStart(threadChart.getVisibleStart()); - syncChart.setZoomout(threadChart.isZoomout()); + syncChart.setItemsHeightMode(threadChart.isItemMinimized()); callUpdatePage(syncChart.getSelectItem()); updateView(); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUChart.java index 817337c..02ffe7f 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUChart.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUChart.java @@ -26,30 +26,52 @@ package org.tizen.dynamicanalyzer.ui.timeline.chart; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import org.eclipse.swt.widgets.Display; import org.tizen.dynamicanalyzer.nl.TimelineChartLabels; import org.tizen.dynamicanalyzer.resources.ColorResources; +import org.tizen.dynamicanalyzer.resources.FontResources; import org.tizen.dynamicanalyzer.resources.ImageResources; import org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants; import org.tizen.dynamicanalyzer.swap.logparser.LogPackage; import org.tizen.dynamicanalyzer.swap.logparser.Logs; import org.tizen.dynamicanalyzer.swap.model.data.LogData; import org.tizen.dynamicanalyzer.swap.model.data.SystemData; +import org.tizen.dynamicanalyzer.ui.common.PopupAnalysisMenuItemClickListener; +import org.tizen.dynamicanalyzer.ui.common.PopupClearMenuItemClickListener; +import org.tizen.dynamicanalyzer.ui.common.PopupEndMenuItemClickListener; +import org.tizen.dynamicanalyzer.ui.common.PopupFromSelectionMenuItemClickListener; +import org.tizen.dynamicanalyzer.ui.common.PopupStartMenuItemClickListener; +import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseEventListener; +import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseTrackAdapter; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants; import org.tizen.dynamicanalyzer.utils.Formatter; +import org.tizen.dynamicanalyzer.widgets.chart.DAChart; +import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot; import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot.AutoRangeType; +import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotTooltip; import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries; import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeriesItem; import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard; import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem; +import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenu; +import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenuItem; public class CPUChart extends TimelineChart { private static CPUChart instance = null; + private String COMMA = ","; private DAChartSeries appLoadSeries; private DAChartSeries totalLoadSeries; + DAChartBoard chartBoard = null; + DAChartBoardItem item = null; + private DAChartBoardItem childItem = null; + private Map childSeriesMap; + public static CPUChart getInstance() { if (instance == null) { instance = new CPUChart(); @@ -73,11 +95,13 @@ public class CPUChart extends TimelineChart { TimelineChartLabels.CPU_CHART_SERIES_NAME_TOTAL_LOAD, DAChartSeries.SERIES_STYLE_AREA, ColorResources.SERIES_COLOR_CPU_APP); + + childSeriesMap = new HashMap(); } @Override public DAChartBoardItem createBoardItem(DAChartBoard board) { - DAChartBoardItem item = super.createBoardItem(board); + item = super.createBoardItem(board); chart.addSeries(totalLoadSeries); chart.addSeries(appLoadSeries); @@ -93,21 +117,22 @@ public class CPUChart extends TimelineChart { @Override public void parseLogPackage(LogPackage logPack) { Logs logs = logPack.getLogs(probeType); - if(logs == null) { + if (logs == null) { return; } - + List logDataList = logs.getLogs(); - + for (LogData logData : logDataList) { - parseLog((SystemData)logData); + parseLog((SystemData) logData); } } private void parseLog(SystemData logData) { + double time = logData.getTime() / TimelineConstants.MEGA_DOUBLE; + /* app load */ try { - double time = logData.getTime() / TimelineConstants.MEGA_DOUBLE; double appCpuRate = logData.getAppCpuUsage(); appLoadSeries.addSeriesItem(new DAChartSeriesItem(time, appCpuRate, Formatter.toPercentageFormat(appCpuRate))); @@ -116,9 +141,7 @@ public class CPUChart extends TimelineChart { } /* total load */ - try { - double time = logData.getTime() / TimelineConstants.MEGA_DOUBLE; String[] cpuRates = logData.getCpuLoad().split(","); //$NON-NLS-1$ double systemAvgLoad = Double .parseDouble(cpuRates[cpuRates.length - 1]); @@ -128,5 +151,122 @@ public class CPUChart extends TimelineChart { } catch (NumberFormatException ne) { ne.printStackTrace(); } + + if (childItem == null) { + Display.getDefault().asyncExec(new Runnable() { + @Override + public void run() { + + childItem = new DAChartBoardItem(item, "Processes"); + childItem.useExpand(false); + + DAChart childChart = childItem.getChart(); + DAChartPlot childPlot = childChart.getPlot(); + DAChartPlotTooltip tooltip = new DAChartPlotTooltip(-1); + + childPlot.setBackgroundImage(ImageResources.BG_GRADIENT); + tooltip.setFont(FontResources.CHART_TOOLTIP_FONT); + childPlot.setTooltip(tooltip); + childPlot.setAxisFont(FontResources.CHART_AXIS_FONT); + childPlot.setAutoHeightRange(AutoRangeType.MANUAL); + childPlot.setAxisRangeY(0, 100); + childPlot.setAxisUnit("%"); + childPlot.setShowAxis(true); + childPlot.setMarkers(chartBoard.getMarkers()); + + DAPopupMenu popupMenu = new DAPopupMenu(childChart); + popupMenu.setFont(FontResources.CONTEXT_MENU_ITEM_FONT); + DAPopupMenuItem startItem = new DAPopupMenuItem(popupMenu); + startItem + .setText(TimelineChartLabels.RANGE_CONTEXT_SET_START); + startItem.addListener(new PopupStartMenuItemClickListener( + startItem, chartBoard)); + + DAPopupMenuItem endItem = new DAPopupMenuItem(popupMenu); + endItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_END); + endItem.addListener(new PopupEndMenuItemClickListener( + endItem, chartBoard)); + + DAPopupMenuItem fromSelectionItem = new DAPopupMenuItem( + popupMenu); + fromSelectionItem + .setText(TimelineChartLabels.RANGE_CONTEXT_SET_FROM_SELECTION); + fromSelectionItem + .addListener(new PopupFromSelectionMenuItemClickListener( + fromSelectionItem, chartBoard)); + + DAPopupMenuItem analysisItem = new DAPopupMenuItem( + popupMenu); + analysisItem + .setText(TimelineChartLabels.RANGE_CONTEXT_ANALYSIS); + analysisItem + .addListener(new PopupAnalysisMenuItemClickListener()); + + DAPopupMenuItem clearItem = new DAPopupMenuItem(popupMenu); + clearItem.setText(TimelineChartLabels.RANGE_CONTEXT_CLEAR); + clearItem + .addListener(new PopupClearMenuItemClickListener()); + + TimelineChartMouseEventListener timelineChartMouseEventListener = new TimelineChartMouseEventListener( + popupMenu, chartBoard.getTimeline()); + childChart + .addMouseListener(timelineChartMouseEventListener); + childChart + .addMouseMoveListener(timelineChartMouseEventListener); + childChart + .addMouseTrackListener(new TimelineChartMouseTrackAdapter( + chartBoard.getTimeline())); + } + }); + } + + String[] processLoadDatas = logData.getProcessLoad().split(COMMA); + + int prevChildSize = childSeriesMap.size(); + for (int i = 0; i < processLoadDatas.length; i++) { + int pid = Integer.parseInt(processLoadDatas[i]); + double load = Double.parseDouble(processLoadDatas[++i]); + + DAChartSeries series = childSeriesMap.get(pid); + + if (series == null) { + if (load != 0) { + DAChartSeries newSeries = new DAChartSeries( + Integer.toString(pid), + DAChartSeries.SERIES_STYLE_LINE, + ColorResources.SERIES_COLOR_CPU_SYSTEM); + newSeries.addSeriesItem(new DAChartSeriesItem(time, load, + Formatter.toPercentageFormat(load))); + childItem.getChart().addSeries(newSeries); + + childSeriesMap.put(pid, newSeries); + } + } else { + series.addSeriesItem(new DAChartSeriesItem(time, load, + Formatter.toPercentageFormat(load))); + } + } + + if (prevChildSize != childSeriesMap.size()) { + Display.getDefault().asyncExec(new Runnable() { + @Override + public void run() { + childItem.setRatio(childSeriesMap.size() / 3.0); + } + }); + } + } + + public void setChartBoard(DAChartBoard chartBoard) { + this.chartBoard = chartBoard; + } + + @Override + public void clear() { + super.clear(); + + chartBoard = null; + childItem = null; + childSeriesMap.clear(); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java index eb8c1fa..3720a71 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java @@ -158,10 +158,6 @@ public class TimelineChartManager { return selectedChartList; } - public DAChartBoard getChartBoard() { - return chartBoard; - } - private TimelineChart getChartInstance(String chartName) { return chartInstanceMapNameKey.get(chartName); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineView.java index ff7ea19..875b526 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineView.java @@ -44,6 +44,7 @@ import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseEventListener; import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseTrackAdapter; import org.tizen.dynamicanalyzer.ui.common.UICommonConstants; import org.tizen.dynamicanalyzer.ui.range.RangeDataManager; +import org.tizen.dynamicanalyzer.ui.timeline.chart.CPUChart; import org.tizen.dynamicanalyzer.ui.timeline.chart.HeapChart; import org.tizen.dynamicanalyzer.ui.timeline.chart.ScreenshotChart; import org.tizen.dynamicanalyzer.ui.timeline.chart.TimelineChart; @@ -224,6 +225,8 @@ public class TimelineView extends DAView { customLogParser.clear(); // SnapshotData.getInstance().clear(); initializeCharts(); + + CPUChart.getInstance().setChartBoard(chartBoard); } private void initializeCharts() { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DAApiListTableComposite.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DAApiListTableComposite.java index 5aa9ad8..4b1b10b 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DAApiListTableComposite.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DAApiListTableComposite.java @@ -90,5 +90,6 @@ public class DAApiListTableComposite extends DATableComposite { } table.setSelection(sel); table.setTopIndex(topIndex); + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DATableComposite.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DATableComposite.java index 3c19f85..1d0719c 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DATableComposite.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DATableComposite.java @@ -397,7 +397,7 @@ public abstract class DATableComposite extends Composite { } } } - + if (gridData != null) { long seqNum = gridData.getSelectionKey(); for (int ii = 0; ii < selSeqs.size(); ii++) { -- 2.7.4