[Title] fixed bug on gl api list table that no marking error api
authorkamuru <kamuru@kamuru-Samsung-Desktop-System.(none)>
Tue, 29 Oct 2013 09:13:22 +0000 (18:13 +0900)
committerkamuru <kamuru@kamuru-Samsung-Desktop-System.(none)>
Tue, 29 Oct 2013 09:13:22 +0000 (18:13 +0900)
[Desc.]
[Issue]

21 files changed:
org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartPlotTooltip.java
org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartRenderer.java
org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartTooltip.java
org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoard.java
org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItem.java
org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemCell.java
org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemList.java
org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/popupMenu/DAPopupMenu.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/model/TableInput.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/TimelineChartMouseEventListener.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLES20ErrorInformation.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLDataMaker.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/apiList/GLAPIListTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/chart/GLChartView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/ui/context/GLContextTreeTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadChartView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUChart.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DAApiListTableComposite.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DATableComposite.java

index 357886b..ab1f225 100644 (file)
@@ -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();
        }
 }
index c9c9ac3..279f315 100644 (file)
@@ -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,
index 53c930b..6a9236b 100644 (file)
@@ -188,7 +188,7 @@ public class DAChartTooltip {
                DAChartPlotTooltip tooltip = tooltipInfo.chart.getPlot().getTooltip();
                List<DAChartSeries> seriesList = tooltipInfo.chart.getSeriesList();
 
-               if (null == tooltip || false == tooltip.isTooltip()
+               if (null == tooltip || false == tooltip.shouldBeDrawn()
                                || -1 == tooltip.getStartVal()) {
                        return;
                }
index 9d2cfcb..3b4a396 100644 (file)
@@ -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() {
index bf59beb..91821b8 100644 (file)
@@ -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() {
index d5ecbb1..093c4fe 100644 (file)
@@ -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() {
index 6543789..4d2a700 100644 (file)
@@ -36,7 +36,7 @@ import org.eclipse.swt.widgets.Composite;
 
 class DAChartBoardItemList extends Composite {
        private List<DAChartBoardItem> items = new ArrayList<DAChartBoardItem>();
-       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) {
index 50acbcb..71354f9 100644 (file)
@@ -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();
index b33c0d1..a456426 100644 (file)
@@ -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<String>();
index c691731..2a1e283 100644 (file)
@@ -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;
                }
 
index eef0893..9bf7a05 100644 (file)
@@ -35,11 +35,11 @@ public class GLES20ErrorInformation {
        private static void initialize() {
                gles20ErrorMap = new HashMap<Long, String>();
                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<String, String>();
                gles20ErrorDescriptionMap.put("0", "No error");
index 938cf09..a925d60 100644 (file)
@@ -149,7 +149,7 @@ public class GLDataMaker {
        
        private CurrentContextValueList currentContextValueList;
        private ArrayList<List<String>> contextValueDBInputList;
-       public static ArrayList<ArrayList<String>> contextValueChangeList;
+       private ArrayList<ArrayList<String>> contextValueChangeList;
        private ArrayList<List<String>> contextChangeInfoDBInputList;
        
        private List<String> 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<String> getChangeList(int columnIndex) {
+               return contextValueChangeList.get(columnIndex);
+       }
 }
index 1089e57..bdca7a1 100644 (file)
@@ -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++) {
index 6fc24f8..cd74079 100644 (file)
@@ -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();
        }
 
index cbaf240..4973e71 100644 (file)
@@ -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<String> list = GLDataMaker.contextValueChangeList.get(index);
+
+                               if (index != -1) {
+                                       ArrayList<String> 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<String> 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<String> viewNameList = new ArrayList<String>();
-                                               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<String> 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<String> viewNameList = new ArrayList<String>();
-                                               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<String> 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<String> viewNameList = new ArrayList<String>();
+                               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<String> 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<String> viewNameList = new ArrayList<String>();
+//                             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<String> 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<String> viewNameList = new ArrayList<String>();
+//                             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<String> 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<String> viewNameList = new ArrayList<String>();
+                               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<String> 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) {
index db1bcc0..5c9ce9f 100644 (file)
@@ -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();
        }
index 817337c..02ffe7f 100644 (file)
 
 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<Integer, DAChartSeries> 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<Integer, DAChartSeries>();
        }
 
        @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<LogData> 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();
        }
 }
index eb8c1fa..3720a71 100644 (file)
@@ -158,10 +158,6 @@ public class TimelineChartManager {
                return selectedChartList;
        }
 
-       public DAChartBoard getChartBoard() {
-               return chartBoard;
-       }
-
        private TimelineChart getChartInstance(String chartName) {
                return chartInstanceMapNameKey.get(chartName);
        }
index ff7ea19..875b526 100644 (file)
@@ -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() {
index 5aa9ad8..4b1b10b 100644 (file)
@@ -90,5 +90,6 @@ public class DAApiListTableComposite extends DATableComposite {
                }
                table.setSelection(sel);
                table.setTopIndex(topIndex);
+               
        }
 }
index 3c19f85..1d0719c 100644 (file)
@@ -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++) {