[SRADA-801] Add dimension switch button at OpenGL, Thread page and change some image...
authorjaeyong lee <jae-yong.lee@samsung.com>
Tue, 5 Jul 2016 04:14:03 +0000 (13:14 +0900)
committerdongkyu6 lee <dongkyu6.lee@samsung.com>
Mon, 11 Jul 2016 04:13:36 +0000 (13:13 +0900)
Change-Id: I56c3acb0bb42229eb7ffe110374c94d27a8f5609

org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/resources/ImageResources.java
org.tizen.dynamicanalyzer.appearance/theme/flat/img/dimension_ic_nor.png [new file with mode: 0644]
org.tizen.dynamicanalyzer.appearance/theme/flat/img/dimension_ic_over.png [new file with mode: 0644]
org.tizen.dynamicanalyzer.appearance/theme/flat/img/dimension_ic_sel.png [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileChartView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/MemoryChartView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/chart/GLChartView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/ThreadChartView.java

index aa281bb..e3396d6 100644 (file)
@@ -782,6 +782,9 @@ public class ImageResources {
        public static final Image DA_SCREENSHOT_ICON_FOC = getPngImage("da_screenshot_icon_foc");
        public static final Image DA_SCREENSHOT_ICON_NOR = getPngImage("da_screenshot_icon_nor");
        public static final Image DA_SCREENSHOT_ICON_OVER = getPngImage("da_screenshot_icon_over");
+       public static final Image DIMENSION_IC_NOR = getPngImage("dimension_ic_nor");
+       public static final Image DIMENSION_IC_OVER = getPngImage("dimension_ic_over");
+       public static final Image DIMENSION_IC_SEL = getPngImage("dimension_ic_sel");
        public static final Image DROP_ARROW_DOWN_HOVER = getPngImage("drop_arrow_down_edit");
        public static final Image DROP_ARROW_DOWN_NOR = getPngImage("drop_arrow_down_nor");
        public static final Image DROP_ARROW_DOWN_DIM = getPngImage("drop_arrow_down_dim");
diff --git a/org.tizen.dynamicanalyzer.appearance/theme/flat/img/dimension_ic_nor.png b/org.tizen.dynamicanalyzer.appearance/theme/flat/img/dimension_ic_nor.png
new file mode 100644 (file)
index 0000000..df34255
Binary files /dev/null and b/org.tizen.dynamicanalyzer.appearance/theme/flat/img/dimension_ic_nor.png differ
diff --git a/org.tizen.dynamicanalyzer.appearance/theme/flat/img/dimension_ic_over.png b/org.tizen.dynamicanalyzer.appearance/theme/flat/img/dimension_ic_over.png
new file mode 100644 (file)
index 0000000..c68a53a
Binary files /dev/null and b/org.tizen.dynamicanalyzer.appearance/theme/flat/img/dimension_ic_over.png differ
diff --git a/org.tizen.dynamicanalyzer.appearance/theme/flat/img/dimension_ic_sel.png b/org.tizen.dynamicanalyzer.appearance/theme/flat/img/dimension_ic_sel.png
new file mode 100644 (file)
index 0000000..fef9f7a
Binary files /dev/null and b/org.tizen.dynamicanalyzer.appearance/theme/flat/img/dimension_ic_sel.png differ
index 7ef8423..3b604c6 100644 (file)
@@ -185,11 +185,11 @@ public class FileChartView extends DAViewComposite {
                returnCombo.setComboGradation(ColorResources.WHITE, ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE, ColorResources.WHITE, ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE);
-               returnCombo.setOutlineColors(ColorResources.GRAY_130, ColorResources.WHITE, ColorResources.GRAY_130,
-                               ColorResources.GRAY_130);
-               returnCombo.setComboImages(ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL, ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_DISABLE);
+               returnCombo.setOutlineColors(ColorResources.GRAY_170, ColorResources.GRAY_170, ColorResources.GRAY_170,
+                               ColorResources.GRAY_170);
+               returnCombo.setComboImages(ImageResources.DROP_ARROW_DOWN_NOR,
+                               ImageResources.DROP_ARROW_DOWN_SEL, ImageResources.DROP_ARROW_DOWN_HOVER,
+                               ImageResources.DROP_ARROW_DOWN_DIM);
                returnCombo.setComboImagePoint(new Point(160, 9));
                returnCombo.setComboButtonColor(ColorResources.WHITE, ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE);
index 004b491..b3794a4 100644 (file)
@@ -211,14 +211,14 @@ public class MemoryChartView extends DAViewComposite {
                                ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE);
-               returnCombo.setOutlineColors(ColorResources.GRAY_130,
-                               ColorResources.WHITE,
-                               ColorResources.GRAY_130,
-                               ColorResources.GRAY_130);
-               returnCombo.setComboImages(ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_DISABLE);
+               returnCombo.setOutlineColors(ColorResources.GRAY_170,
+                               ColorResources.GRAY_170,
+                               ColorResources.GRAY_170,
+                               ColorResources.GRAY_170);
+               returnCombo.setComboImages(ImageResources.DROP_ARROW_DOWN_NOR,
+                               ImageResources.DROP_ARROW_DOWN_SEL,
+                               ImageResources.DROP_ARROW_DOWN_HOVER,
+                               ImageResources.DROP_ARROW_DOWN_DIM);
                returnCombo.setComboImagePoint(new Point(160, 9));
                returnCombo.setComboButtonColor(ColorResources.WHITE,
                                ColorResources.WHITE,
index 44224b0..1eadcc0 100644 (file)
@@ -230,14 +230,14 @@ public class NetworkChartView extends DAViewComposite {
                                ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE);
-               returnCombo.setOutlineColors(ColorResources.GRAY_130,
-                               ColorResources.WHITE,
-                               ColorResources.GRAY_130,
-                               ColorResources.GRAY_130);
-               returnCombo.setComboImages(ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_DISABLE);
+               returnCombo.setOutlineColors(ColorResources.GRAY_170,
+                               ColorResources.GRAY_170,
+                               ColorResources.GRAY_170,
+                               ColorResources.GRAY_170);
+               returnCombo.setComboImages(ImageResources.DROP_ARROW_DOWN_NOR,
+                               ImageResources.DROP_ARROW_DOWN_SEL,
+                               ImageResources.DROP_ARROW_DOWN_HOVER,
+                               ImageResources.DROP_ARROW_DOWN_DIM);
                returnCombo.setComboImagePoint(new Point(160, 9));
                returnCombo.setComboButtonColor(ColorResources.WHITE,
                                ColorResources.WHITE,
index 3c71b77..66112b6 100644 (file)
@@ -33,10 +33,14 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.layout.FormAttachment;
 import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Canvas;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Listener;
@@ -68,11 +72,13 @@ import org.tizen.dynamicanalyzer.ui.toolbar.ToolBarComboListener;
 import org.tizen.dynamicanalyzer.ui.toolbar.Toolbar;
 import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
 import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
+import org.tizen.dynamicanalyzer.widgets.button.DACustomButton;
+import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonAttribute;
+import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener;
 import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonRenderer;
 import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotIntervalMarker;
 import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;
 import org.tizen.dynamicanalyzer.widgets.combo.DACustomCombo;
-import org.tizen.dynamicanalyzer.widgets.combo.DACustomComboSelectionListener;
 import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite;
 import org.tizen.dynamicanalyzer.widgets.da.view.DAViewData;
 import org.tizen.dynamicanalyzer.widgets.scale.DAScaleSelectionListener;
@@ -87,7 +93,11 @@ public class GLChartView extends DAViewComposite {
        private DACustomCombo frameRateCombo;
        private final StackLayout stackLayout;
        
-       private DAToolBarCustomCombo processCombo;
+       private DAToolBarCustomCombo frameRateProcessCombo;
+       private DAToolBarCustomCombo frameTimeProcessCombo;
+       
+       private DACustomButton frameRateDimensionSwitchButton;
+       private DACustomButton frameTimeDimensionSwitchButton;
 
        public GLChartView(Composite parent, int style) {
                super(parent, style, false);
@@ -130,15 +140,120 @@ public class GLChartView extends DAViewComposite {
                frameRateline.addMouseMoveListener(listener);
                frameRateline.addMouseListener(listener);
                
-               processCombo = makeProcessCombo(frameRateChartBoard.getTitleComp());
+               frameRateChartBoard.getTitleComp().setLayout(new FormLayout());
+               frameTimeChartBoard.getTitleComp().setLayout(new FormLayout());
+               
+               frameRateProcessCombo = makeProcessCombo(frameRateChartBoard.getTitleComp());
                FormData data = new FormData();
                data.top = new FormAttachment(0, 0);
                data.left = new FormAttachment(0, 0);
-               data.width = 190;
-               data.height = 20;
-               processCombo.setLayoutData(data);
+               data.width = 167;
+               data.height = 25;
+               frameRateProcessCombo.setLayoutData(data);
+               
+               frameTimeProcessCombo = makeProcessCombo(frameTimeChartBoard.getTitleComp());
+               frameTimeProcessCombo.setLayoutData(data);
+               
+               frameRateDimensionSwitchButton = new DACustomButton(frameRateChartBoard.getTitleComp(),
+                               ImageResources.DIMENSION_IC_NOR,
+                               ImageResources.DIMENSION_IC_NOR,
+                               ImageResources.DIMENSION_IC_NOR,
+                               ImageResources.DIMENSION_IC_NOR
+                               );
+               
+               frameTimeDimensionSwitchButton = new DACustomButton(frameTimeChartBoard.getTitleComp(),
+                               ImageResources.DIMENSION_IC_SEL,
+                               ImageResources.DIMENSION_IC_SEL,
+                               ImageResources.DIMENSION_IC_SEL,
+                               ImageResources.DIMENSION_IC_SEL
+                               );
+               
+               frameRateDimensionSwitchButton.setBackground(ColorResources.WHITE);
+               frameTimeDimensionSwitchButton.setBackground(ColorResources.WHITE);
+               frameRateDimensionSwitchButton.setForeground(ColorResources.GRAY_170);
+               frameTimeDimensionSwitchButton.setForeground(ColorResources.GRAY_170);
+               
+               frameRateDimensionSwitchButton.setRenderer(new DACustomButtonRenderer() {
+                       @Override
+                       public void draw(GC gc, Canvas canvas, int state,
+                                       DACustomButtonAttribute attr) {
+                               Rectangle rect = canvas.getClientArea();
+
+                               if (attr.getDrawType() == DACustomButton.TYPE_IMAGE) {
+                                       drawImageButton(gc, rect, state, attr);
+                               } else if (attr.getDrawType() == DACustomButton.TYPE_COLOR
+                                               || attr.getDrawType() == DACustomButton.TYPE_GRADATION) {
+                                       drawButton(gc, rect, state, attr);
+                               }
+                               drawButtonImage(gc, rect, attr, state);
+                               drawIcon(gc, rect, attr);
+                               gc.drawLine(0, 0, 25, 0);
+                               gc.drawLine(0, 24, 25, 24);
+                               gc.drawLine(24, 0, 24, 24);
+                       }
+               });
                
-               initProcessCombo();
+               frameTimeDimensionSwitchButton.setRenderer(new DACustomButtonRenderer() {
+                       @Override
+                       public void draw(GC gc, Canvas canvas, int state,
+                                       DACustomButtonAttribute attr) {
+                               Rectangle rect = canvas.getClientArea();
+
+                               if (attr.getDrawType() == DACustomButton.TYPE_IMAGE) {
+                                       drawImageButton(gc, rect, state, attr);
+                               } else if (attr.getDrawType() == DACustomButton.TYPE_COLOR
+                                               || attr.getDrawType() == DACustomButton.TYPE_GRADATION) {
+                                       drawButton(gc, rect, state, attr);
+                               }
+                               drawButtonImage(gc, rect, attr, state);
+                               drawIcon(gc, rect, attr);
+                               gc.drawLine(0, 0, 25, 0);
+                               gc.drawLine(0, 24, 25, 24);
+                               gc.drawLine(24, 0, 24, 24);
+                       }
+               });
+               
+               frameRateDimensionSwitchButton.addClickListener(new DACustomButtonClickEventListener() {
+                       @Override
+                       public void handleEvent(Event event) {
+                               changeBoardTimeToRate();
+                               
+                       }
+
+                       @Override
+                       public void handleClickEvent(DACustomButton button) {
+                               
+                       }
+               });
+               
+               frameTimeDimensionSwitchButton.addClickListener(new DACustomButtonClickEventListener() {
+                       @Override
+                       public void handleEvent(Event event) {
+                               changeBoardRateToTime();
+                       }
+
+                       @Override
+                       public void handleClickEvent(DACustomButton button) {
+                               
+                       }
+               });
+               
+               data = new FormData();
+               data.top = new FormAttachment(0, 0);
+               data.left = new FormAttachment(frameRateProcessCombo, 0);
+               data.width = 25;
+               data.height = 25;
+               frameRateDimensionSwitchButton.setLayoutData(data);
+               
+               data = new FormData();
+               data.top = new FormAttachment(0, 0);
+               data.left = new FormAttachment(frameTimeProcessCombo, 0);
+               data.width = 25;
+               data.height = 25;
+               frameTimeDimensionSwitchButton.setLayoutData(data);
+               
+               initProcessCombo(frameRateProcessCombo);
+               initProcessCombo(frameTimeProcessCombo);
                updateScale();
                frameTimeChartBoard.getScale().addSelectionListener(new DAScaleSelectionListener() {
                        @Override
@@ -166,6 +281,9 @@ public class GLChartView extends DAViewComposite {
                                Toolbar.INSTANCE.setScaleSelection(frameRateChartBoard.getScale().getSelection());
                        }
                });
+               
+               
+               
        }
        
 
@@ -186,15 +304,15 @@ public class GLChartView extends DAViewComposite {
                                ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE);
-               returnCombo.setOutlineColors(ColorResources.GRAY_130,
-                               ColorResources.WHITE,
-                               ColorResources.GRAY_130,
-                               ColorResources.GRAY_130);
-               returnCombo.setComboImages(ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_DISABLE);
-               returnCombo.setComboImagePoint(new Point(160, 9));
+               returnCombo.setOutlineColors(ColorResources.GRAY_170,
+                               ColorResources.GRAY_170,
+                               ColorResources.GRAY_170,
+                               ColorResources.GRAY_170);
+               returnCombo.setComboImages(ImageResources.DROP_ARROW_DOWN_NOR,
+                               ImageResources.DROP_ARROW_DOWN_SEL,
+                               ImageResources.DROP_ARROW_DOWN_HOVER,
+                               ImageResources.DROP_ARROW_DOWN_DIM);
+               returnCombo.setComboImagePoint(new Point(135, 9));
                returnCombo.setComboButtonColor(ColorResources.WHITE,
                                ColorResources.WHITE,
                                ColorResources.WHITE,
@@ -218,12 +336,12 @@ public class GLChartView extends DAViewComposite {
                return returnCombo;
        }
        
-       public void initProcessCombo() {
-               processCombo.initCombo();
-               processCombo.add(Toolbar.ALL_PROCESS);
-               processCombo.select(0);
+       public void initProcessCombo(final DAToolBarCustomCombo combo) {
+               combo.initCombo();
+               combo.add(Toolbar.ALL_PROCESS);
+               combo.select(0);
                
-               processCombo.addSelectionListener(new ToolBarComboListener() {
+               combo.addSelectionListener(new ToolBarComboListener() {
                        
                        @Override
                        public void selectionEvent(DAToolBarCustomCombo combo) {
@@ -238,7 +356,7 @@ public class GLChartView extends DAViewComposite {
                        }
                });
                
-               processCombo.addListener(SWT.MouseDown, new Listener() {
+               combo.addListener(SWT.MouseDown, new Listener() {
 
                        @Override
                        public void handleEvent(Event event) {
@@ -247,8 +365,8 @@ public class GLChartView extends DAViewComposite {
                                if (null == project) {
                                        return;
                                }
-                               processCombo.initCombo();
-                               processCombo.add(Toolbar.ALL_PROCESS);
+                               combo.initCombo();
+                               combo.add(Toolbar.ALL_PROCESS);
                                Toolbar.INSTANCE.getProcessCombo().initCombo();
                                Toolbar.INSTANCE.getProcessCombo().add(Toolbar.ALL_PROCESS);
 
@@ -274,7 +392,7 @@ public class GLChartView extends DAViewComposite {
                                        StringBuffer buffer = new StringBuffer();
                                        buffer.append(process.getPid()).append(Toolbar.PROCESS_SPLITER);
                                        buffer.append(binName);
-                                       processCombo.add(buffer.toString());
+                                       combo.add(buffer.toString());
                                        Toolbar.INSTANCE.getProcessCombo().add(buffer.toString());
                                }
                        }
@@ -285,26 +403,26 @@ public class GLChartView extends DAViewComposite {
                frameTimeChartBoard = new GLFrameTimeChartBoard(contents,
                                GLPageLabels.GL_CHART_TITLE_FRAME_TIME, DAChartBoard.BOARD_STYLE_FRAME);
                frameTimeChartBoard.setNameFont(FontResources.CHART_NAME_FONT);
-               frameTimeCombo = makeDACustomCombo(frameTimeChartBoard.getTitleComp());
-               frameTimeCombo.initCombo();
-               frameTimeCombo.add(GLPageLabels.GL_CHART_TITLE_FRAME_RATE);
-               frameTimeCombo.add(GLPageLabels.GL_CHART_TITLE_FRAME_TIME);
-               frameTimeCombo.select(1);
-               frameTimeCombo.setEnabled(true);
-               frameTimeCombo.addSelectionListener(new DACustomComboSelectionListener() {
-                       @Override
-                       public void selectionEvent(DACustomCombo combo) {
-                               String selected = combo.getText();
-                               if (null == selected || selected.isEmpty()) {
-                                       return;
-                               }
-                               if (selected.equals(GLPageLabels.GL_CHART_TITLE_FRAME_RATE)) {
-                                       changeComboRateToTime();
-                               } else {
-                                       return;
-                               }
-                       }
-               });
+//             frameTimeCombo = makeDACustomCombo(frameTimeChartBoard.getTitleComp());
+//             frameTimeCombo.initCombo();
+//             frameTimeCombo.add(GLPageLabels.GL_CHART_TITLE_FRAME_RATE);
+//             frameTimeCombo.add(GLPageLabels.GL_CHART_TITLE_FRAME_TIME);
+//             frameTimeCombo.select(1);
+//             frameTimeCombo.setEnabled(true);
+//             frameTimeCombo.addSelectionListener(new DACustomComboSelectionListener() {
+//                     @Override
+//                     public void selectionEvent(DACustomCombo combo) {
+//                             String selected = combo.getText();
+//                             if (null == selected || selected.isEmpty()) {
+//                                     return;
+//                             }
+//                             if (selected.equals(GLPageLabels.GL_CHART_TITLE_FRAME_RATE)) {
+//                                     changeComboRateToTime();
+//                             } else {
+//                                     return;
+//                             }
+//                     }
+//             });
                ScrollBar hScrollBar = frameTimeChartBoard.getHScrollBar();
                hScrollBar.addSelectionListener(new SelectionAdapter() {
                        @Override
@@ -322,26 +440,26 @@ public class GLChartView extends DAViewComposite {
                frameRateChartBoard = new GLFrameRateChartBoard(contents,
                                GLPageLabels.GL_CHART_TITLE_FRAME_RATE, DAChartBoard.BOARD_STYLE_TIME);
                frameRateChartBoard.setNameFont(FontResources.CHART_NAME_FONT);
-               frameRateCombo = makeDACustomCombo(frameRateChartBoard.getTitleComp());
-               frameRateCombo.initCombo();
-               frameRateCombo.add(GLPageLabels.GL_CHART_TITLE_FRAME_RATE);
-               frameRateCombo.add(GLPageLabels.GL_CHART_TITLE_FRAME_TIME);
-               frameRateCombo.select(0);
-               frameRateCombo.setEnabled(true);
-               frameRateCombo.addSelectionListener(new DACustomComboSelectionListener() {
-                       @Override
-                       public void selectionEvent(DACustomCombo combo) {
-                               String selected = combo.getText();
-                               if (null == selected || selected.isEmpty()) {
-                                       return;
-                               }
-                               if (selected.equals(GLPageLabels.GL_CHART_TITLE_FRAME_TIME)) {
-                                       changeComboTimeToRate();
-                               } else {
-                                       return;
-                               }
-                       }
-               });
+//             frameRateCombo = makeDACustomCombo(frameRateChartBoard.getTitleComp());
+//             frameRateCombo.initCombo();
+//             frameRateCombo.add(GLPageLabels.GL_CHART_TITLE_FRAME_RATE);
+//             frameRateCombo.add(GLPageLabels.GL_CHART_TITLE_FRAME_TIME);
+//             frameRateCombo.select(0);
+//             frameRateCombo.setEnabled(true);
+//             frameRateCombo.addSelectionListener(new DACustomComboSelectionListener() {
+//                     @Override
+//                     public void selectionEvent(DACustomCombo combo) {
+//                             String selected = combo.getText();
+//                             if (null == selected || selected.isEmpty()) {
+//                                     return;
+//                             }
+//                             if (selected.equals(GLPageLabels.GL_CHART_TITLE_FRAME_TIME)) {
+//                                     changeComboTimeToRate();
+//                             } else {
+//                                     return;
+//                             }
+//                     }
+//             });
                ScrollBar hScrollBar = frameRateChartBoard.getHScrollBar();
                hScrollBar.addSelectionListener(new SelectionAdapter() {
                        @Override
@@ -362,14 +480,14 @@ public class GLChartView extends DAViewComposite {
                                ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE);
-               returnCombo.setOutlineColors(ColorResources.GRAY_130,
-                               ColorResources.WHITE,
-                               ColorResources.GRAY_130,
-                               ColorResources.GRAY_130);
-               returnCombo.setComboImages(ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_DISABLE);
+               returnCombo.setOutlineColors(ColorResources.GRAY_170,
+                               ColorResources.GRAY_170,
+                               ColorResources.GRAY_170,
+                               ColorResources.GRAY_170);
+               returnCombo.setComboImages(ImageResources.DROP_ARROW_DOWN_NOR,
+                               ImageResources.DROP_ARROW_DOWN_SEL,
+                               ImageResources.DROP_ARROW_DOWN_HOVER,
+                               ImageResources.DROP_ARROW_DOWN_DIM);
                returnCombo.setComboImagePoint(new Point(160, 9));
                returnCombo.setComboButtonColor(ColorResources.WHITE,
                                ColorResources.WHITE,
@@ -415,12 +533,32 @@ public class GLChartView extends DAViewComposite {
                updateView();
        }
        
+       private void changeBoardRateToTime() {
+               stackLayout.topControl = frameRateChartBoard;
+               GLDataManager.getInstance().setSelectFrameRateChart(true);
+               contents.layout();
+               frameRateChartBoard.setScaleVal(frameTimeChartBoard.getScaleVal());
+               frameRateChartBoard.setVisibleStart(frameTimeChartBoard.getVisibleStart());
+               frameRateChartBoard.setItemsHeightMode(frameTimeChartBoard.isItemMinimized());
+               updateView();
+       }
+
+       private void changeBoardTimeToRate() {
+               stackLayout.topControl = frameTimeChartBoard;
+               GLDataManager.getInstance().setSelectFrameRateChart(false);
+               contents.layout();
+               frameTimeChartBoard.setScaleVal(frameRateChartBoard.getScaleVal());
+               frameTimeChartBoard.setVisibleStart(frameRateChartBoard.getVisibleStart());
+               frameTimeChartBoard.setItemsHeightMode(frameRateChartBoard.isItemMinimized());
+               updateView();
+       }
+       
        private void updateProcessCombo() {
                int index = Toolbar.INSTANCE.getProcessCombo().getSelectionIndex();
-               if(index+1 > processCombo.getItems().size()) {
+               if(index+1 > frameRateProcessCombo.getItems().size()) {
                        addProcessListToProcessCombo();
                }
-               processCombo.select(index);
+               frameRateProcessCombo.select(index);
        }
        
        private void addProcessListToProcessCombo() {
@@ -451,7 +589,7 @@ public class GLChartView extends DAViewComposite {
                        StringBuffer buffer = new StringBuffer();
                        buffer.append(process.getPid()).append(Toolbar.PROCESS_SPLITER);
                        buffer.append(binName);
-                       processCombo.add(buffer.toString());
+                       frameRateProcessCombo.add(buffer.toString());
                        Toolbar.INSTANCE.getProcessCombo().add(buffer.toString());
                }
        }
index 178bf6e..f1f8a75 100644 (file)
@@ -32,10 +32,14 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.layout.FormAttachment;
 import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Canvas;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Listener;
@@ -61,16 +65,20 @@ import org.tizen.dynamicanalyzer.ui.thread.ThreadPage;
 import org.tizen.dynamicanalyzer.ui.thread.type.ThreadPageThreadData;
 import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
 import org.tizen.dynamicanalyzer.ui.timeline.logparser.LifecycleLogParser;
+import org.tizen.dynamicanalyzer.ui.toolbar.DAToolBarCustomCombo;
+import org.tizen.dynamicanalyzer.ui.toolbar.ToolBarComboListener;
 import org.tizen.dynamicanalyzer.ui.toolbar.Toolbar;
 import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
 import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
+import org.tizen.dynamicanalyzer.widgets.button.DACustomButton;
+import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonAttribute;
+import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener;
 import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonRenderer;
 import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotIntervalMarker;
 import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;
 import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
 import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardSelectionListener;
 import org.tizen.dynamicanalyzer.widgets.combo.DACustomCombo;
-import org.tizen.dynamicanalyzer.widgets.combo.DACustomComboSelectionListener;
 import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite;
 import org.tizen.dynamicanalyzer.widgets.da.view.DAViewData;
 import org.tizen.dynamicanalyzer.widgets.scale.DAScaleSelectionListener;
@@ -86,7 +94,11 @@ public class ThreadChartView extends DAViewComposite {
        private DACustomCombo syncCombo;
        private final StackLayout stackLayout;
        
-       private DACustomCombo processCombo;
+       private DAToolBarCustomCombo threadProcessCombo;
+       private DAToolBarCustomCombo syncProcessCombo;
+       
+       private DACustomButton threadDimensionSwitchButton;
+       private DACustomButton syncDimensionSwitchButton;
 
        public ThreadChartView(Composite parent, int style) {
                super(parent, style, false);
@@ -112,15 +124,119 @@ public class ThreadChartView extends DAViewComposite {
 
                initializeCharts();
                
-               processCombo = makeDACustomCombo(threadChartBoard.getTitleComp());
+               threadChartBoard.getTitleComp().setLayout(new FormLayout());
+               syncChartBoard.getTitleComp().setLayout(new FormLayout());
+               
+               threadProcessCombo = makeDACustomCombo(threadChartBoard.getTitleComp());
                FormData data = new FormData();
                data.top = new FormAttachment(0, 0);
                data.left = new FormAttachment(0, 0);
-               data.width = 140;
-               data.height = 20;
-               processCombo.setLayoutData(data);
+               data.width = 167;
+               data.height = 25;
+               threadProcessCombo.setLayoutData(data);
+               
+               syncProcessCombo = makeDACustomCombo(syncChartBoard.getTitleComp());
+               syncProcessCombo.setLayoutData(data);
+               
+               threadDimensionSwitchButton = new DACustomButton(threadChartBoard.getTitleComp(),
+                               ImageResources.DIMENSION_IC_NOR,
+                               ImageResources.DIMENSION_IC_NOR,
+                               ImageResources.DIMENSION_IC_NOR,
+                               ImageResources.DIMENSION_IC_NOR
+                               );
+               
+               syncDimensionSwitchButton = new DACustomButton(syncChartBoard.getTitleComp(),
+                               ImageResources.DIMENSION_IC_SEL,
+                               ImageResources.DIMENSION_IC_SEL,
+                               ImageResources.DIMENSION_IC_SEL,
+                               ImageResources.DIMENSION_IC_SEL
+                               );
+               
+               threadDimensionSwitchButton.setForeground(ColorResources.GRAY_170);
+               threadDimensionSwitchButton.setBackground(ColorResources.WHITE);
+               syncDimensionSwitchButton.setForeground(ColorResources.GRAY_170);
+               syncDimensionSwitchButton.setBackground(ColorResources.WHITE);
+               
+               threadDimensionSwitchButton.setRenderer(new DACustomButtonRenderer() {
+                       @Override
+                       public void draw(GC gc, Canvas canvas, int state,
+                                       DACustomButtonAttribute attr) {
+                               Rectangle rect = canvas.getClientArea();
+
+                               if (attr.getDrawType() == DACustomButton.TYPE_IMAGE) {
+                                       drawImageButton(gc, rect, state, attr);
+                               } else if (attr.getDrawType() == DACustomButton.TYPE_COLOR
+                                               || attr.getDrawType() == DACustomButton.TYPE_GRADATION) {
+                                       drawButton(gc, rect, state, attr);
+                               }
+                               drawButtonImage(gc, rect, attr, state);
+                               drawIcon(gc, rect, attr);
+                               gc.drawLine(0, 0, 25, 0);
+                               gc.drawLine(0, 24, 25, 24);
+                               gc.drawLine(24, 0, 24, 24);
+                       }
+               });
                
-               initProcessCombo();
+               syncDimensionSwitchButton.setRenderer(new DACustomButtonRenderer() {
+                       @Override
+                       public void draw(GC gc, Canvas canvas, int state,
+                                       DACustomButtonAttribute attr) {
+                               Rectangle rect = canvas.getClientArea();
+
+                               if (attr.getDrawType() == DACustomButton.TYPE_IMAGE) {
+                                       drawImageButton(gc, rect, state, attr);
+                               } else if (attr.getDrawType() == DACustomButton.TYPE_COLOR
+                                               || attr.getDrawType() == DACustomButton.TYPE_GRADATION) {
+                                       drawButton(gc, rect, state, attr);
+                               }
+                               drawButtonImage(gc, rect, attr, state);
+                               drawIcon(gc, rect, attr);
+                               gc.drawLine(0, 0, 25, 0);
+                               gc.drawLine(0, 24, 25, 24);
+                               gc.drawLine(24, 0, 24, 24);
+                       }
+               });
+               
+               threadDimensionSwitchButton.addClickListener(new DACustomButtonClickEventListener() {
+                       @Override
+                       public void handleEvent(Event event) {
+                               changeBoardThreadToSync();
+                       }
+
+                       @Override
+                       public void handleClickEvent(DACustomButton button) {
+                               
+                       }
+               });
+               
+               syncDimensionSwitchButton.addClickListener(new DACustomButtonClickEventListener() {
+                       @Override
+                       public void handleEvent(Event event) {
+                               changeBoardSyncToThread();
+                       }
+
+                       @Override
+                       public void handleClickEvent(DACustomButton button) {
+                               
+                       }
+               });
+               
+               data = new FormData();
+               data.top = new FormAttachment(0, 0);
+               data.left = new FormAttachment(threadProcessCombo, 0);
+               data.width = 25;
+               data.height = 25;
+               threadDimensionSwitchButton.setLayoutData(data);
+               
+               data = new FormData();
+               data.top = new FormAttachment(0, 0);
+               data.left = new FormAttachment(syncProcessCombo, 0);
+               data.width = 25;
+               data.height = 25;
+               syncDimensionSwitchButton.setLayoutData(data);
+               
+               initProcessCombo(threadProcessCombo);
+               initProcessCombo(syncProcessCombo);
                updateScale();
                threadChartBoard.getScale().addSelectionListener(new DAScaleSelectionListener() {
                        @Override
@@ -135,24 +251,38 @@ public class ThreadChartView extends DAViewComposite {
                                Toolbar.INSTANCE.setScaleSelection(threadChartBoard.getScale().getSelection());
                        }
                });
+               syncChartBoard.getScale().addSelectionListener(new DAScaleSelectionListener() {
+                       @Override
+                       public void widgetSelected() {
+                               Toolbar.INSTANCE.setScaleSelection(syncChartBoard.getScale().getSelection());
+                               updateScale();
+                       }
+               });
+               syncChartBoard.getListComposite().addListener(SWT.MouseWheel, new Listener() {
+                       @Override
+                       public void handleEvent(Event event) {
+                               Toolbar.INSTANCE.setScaleSelection(syncChartBoard.getScale().getSelection());
+                       }
+               });
        }
        
-       private DACustomCombo makeDACustomCombo(Composite parent) {
-               DACustomCombo returnCombo = new DACustomCombo(parent, SWT.NONE);
+       private DAToolBarCustomCombo makeDACustomCombo(Composite parent) {
+               int PROCESS_COMBO = 2;
+               DAToolBarCustomCombo returnCombo = new DAToolBarCustomCombo(parent, SWT.NONE);
                returnCombo.setComboGradation(ColorResources.WHITE,
-                               ColorResources.WHITE, ColorResources.POINT,
-                               ColorResources.POINT, ColorResources.WHITE,
+                               ColorResources.WHITE, ColorResources.WHITE,
+                               ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE, ColorResources.WHITE,
                                ColorResources.WHITE);
-               returnCombo.setOutlineColors(ColorResources.GRAY_130,
-                               ColorResources.WHITE,
-                               ColorResources.GRAY_130,
-                               ColorResources.GRAY_130);
-               returnCombo.setComboImages(ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_NORMAL,
-                               ImageResources.TOOLBAR_COMBO_BUTTON_DISABLE);
-               returnCombo.setComboImagePoint(new Point(130, 9));
+               returnCombo.setOutlineColors(ColorResources.GRAY_170,
+                               ColorResources.GRAY_170,
+                               ColorResources.GRAY_170,
+                               ColorResources.GRAY_170);
+               returnCombo.setComboImages(ImageResources.DROP_ARROW_DOWN_NOR,
+                               ImageResources.DROP_ARROW_DOWN_SEL,
+                               ImageResources.DROP_ARROW_DOWN_HOVER,
+                               ImageResources.DROP_ARROW_DOWN_DIM);
+               returnCombo.setComboImagePoint(new Point(135, 9));
                returnCombo.setComboButtonColor(ColorResources.WHITE,
                                ColorResources.WHITE,
                                ColorResources.WHITE,
@@ -172,18 +302,19 @@ public class ThreadChartView extends DAViewComposite {
                                ColorResources.BLACK,
                                ColorResources.GRAY_170);
                returnCombo.setButtonRenderer(new DACustomButtonRenderer());
+               returnCombo.setDeviceCombo(PROCESS_COMBO);
                return returnCombo;
        }
        
-       public void initProcessCombo() {
-               processCombo.initCombo();
-               processCombo.add(Toolbar.ALL_PROCESS);
-               processCombo.select(0);
+       public void initProcessCombo(final DAToolBarCustomCombo combo) {
+               combo.initCombo();
+               combo.add(Toolbar.ALL_PROCESS);
+               combo.select(0);
                
-               processCombo.addSelectionListener(new DACustomComboSelectionListener() {
+               combo.addSelectionListener(new ToolBarComboListener() {
 
                        @Override
-                       public void selectionEvent(DACustomCombo combo) {
+                       public void selectionEvent(DAToolBarCustomCombo combo) {
                                for(int i = 0; i < Toolbar.INSTANCE.getProcessCombo().getItems().size(); i++) {
                                        if(combo.getText().equals(Toolbar.INSTANCE.getProcessCombo().getItem(i))) {
                                                Toolbar.INSTANCE.getProcessCombo().select(i);
@@ -194,7 +325,7 @@ public class ThreadChartView extends DAViewComposite {
                        }
                });
                
-               processCombo.addListener(SWT.MouseDown, new Listener() {
+               combo.addListener(SWT.MouseDown, new Listener() {
 
                        @Override
                        public void handleEvent(Event event) {
@@ -203,8 +334,8 @@ public class ThreadChartView extends DAViewComposite {
                                if (null == project) {
                                        return;
                                }
-                               processCombo.initCombo();
-                               processCombo.add(Toolbar.ALL_PROCESS);
+                               combo.initCombo();
+                               combo.add(Toolbar.ALL_PROCESS);
                                Toolbar.INSTANCE.getProcessCombo().initCombo();
                                Toolbar.INSTANCE.getProcessCombo().add(Toolbar.ALL_PROCESS);
 
@@ -230,7 +361,7 @@ public class ThreadChartView extends DAViewComposite {
                                        StringBuffer buffer = new StringBuffer();
                                        buffer.append(process.getPid()).append(Toolbar.PROCESS_SPLITER);
                                        buffer.append(binName);
-                                       processCombo.add(buffer.toString());
+                                       combo.add(buffer.toString());
                                        Toolbar.INSTANCE.getProcessCombo().add(buffer.toString());
                                }
                        }
@@ -241,12 +372,14 @@ public class ThreadChartView extends DAViewComposite {
                int scaleSelection = Toolbar.INSTANCE.getScaleSelection();
                threadChartBoard.getBoardManager().scaleChanged(scaleSelection);
                threadChartBoard.setScaleVal(scaleSelection);
+               syncChartBoard.getBoardManager().scaleChanged(scaleSelection);
+               syncChartBoard.setScaleVal(scaleSelection);
        }
 
        private void initSyncChart() {
                syncChartBoard = new SyncChartBoard(contents, ThreadPageLabels.THREAD_CHART_SYNC,
                                DAChartBoard.BOARD_STYLE_TIME);
-               syncChartBoard.setItemHeight(THREAD_CHART_HEIGHT);
+//             syncChartBoard.setItemHeight(THREAD_CHART_HEIGHT);
                syncChartBoard.setNameFont(FontResources.CHART_NAME_FONT);
                syncChartBoard.addSelectionListener(new DAChartBoardSelectionListener() {
                        @Override
@@ -265,32 +398,32 @@ public class ThreadChartView extends DAViewComposite {
                                }
                        }
                });
-               syncCombo = makeDACustomCombo(syncChartBoard.getTitleComp());
-               syncCombo.initCombo();
-               syncCombo.add(ThreadPageLabels.THREAD_CHART_THREAD);
-               syncCombo.add(ThreadPageLabels.THREAD_CHART_SYNC);
-               syncCombo.select(1);
-               syncCombo.setEnabled(true);
-               syncCombo.addSelectionListener(new DACustomComboSelectionListener() {
-                       @Override
-                       public void selectionEvent(DACustomCombo combo) {
-                               String selected = combo.getText();
-                               if (null == selected || selected.isEmpty()) {
-                                       return;
-                               }
-                               if (selected.equals(ThreadPageLabels.THREAD_CHART_THREAD)) {
-                                       changeComboSyncToThread();
-                               } else {
-                                       return;
-                               }
-                       }
-               });
+//             syncCombo = makeDACustomCombo(syncChartBoard.getTitleComp());
+//             syncCombo.initCombo();
+//             syncCombo.add(ThreadPageLabels.THREAD_CHART_THREAD);
+//             syncCombo.add(ThreadPageLabels.THREAD_CHART_SYNC);
+//             syncCombo.select(1);
+//             syncCombo.setEnabled(true);
+//             syncCombo.addSelectionListener(new DACustomComboSelectionListener() {
+//                     @Override
+//                     public void selectionEvent(DACustomCombo combo) {
+//                             String selected = combo.getText();
+//                             if (null == selected || selected.isEmpty()) {
+//                                     return;
+//                             }
+//                             if (selected.equals(ThreadPageLabels.THREAD_CHART_THREAD)) {
+//                                     changeComboSyncToThread();
+//                             } else {
+//                                     return;
+//                             }
+//                     }
+//             });
        }
 
        private void initThreadChart() {
                threadChartBoard = new ThreadChartBoard(contents, ThreadPageLabels.THREAD_CHART_THREAD,
                                DAChartBoard.BOARD_STYLE_TIME);
-               threadChartBoard.setItemHeight(THREAD_CHART_HEIGHT);
+//             threadChartBoard.setItemHeight(THREAD_CHART_HEIGHT);
                threadChartBoard.setNameFont(FontResources.CHART_NAME_FONT);
                threadChartBoard.addSelectionListener(new DAChartBoardSelectionListener() {
                        @Override
@@ -309,26 +442,26 @@ public class ThreadChartView extends DAViewComposite {
                                }
                        }
                });
-               threadCombo = makeDACustomCombo(threadChartBoard.getTitleComp());
-               threadCombo.initCombo();
-               threadCombo.add(ThreadPageLabels.THREAD_CHART_THREAD);
-               threadCombo.add(ThreadPageLabels.THREAD_CHART_SYNC);
-               threadCombo.select(0);
-               threadCombo.setEnabled(true);
-               threadCombo.addSelectionListener(new DACustomComboSelectionListener() {
-                       @Override
-                       public void selectionEvent(DACustomCombo combo) {
-                               String selected = combo.getText();
-                               if (null == selected || selected.isEmpty()) {
-                                       return;
-                               }
-                               if (selected.equals(ThreadPageLabels.THREAD_CHART_SYNC)) {
-                                       changeComboThreadToSync();
-                               } else {
-                                       return;
-                               }
-                       }
-               });
+//             threadCombo = makeDACustomCombo(threadChartBoard.getTitleComp());
+//             threadCombo.initCombo();
+//             threadCombo.add(ThreadPageLabels.THREAD_CHART_THREAD);
+//             threadCombo.add(ThreadPageLabels.THREAD_CHART_SYNC);
+//             threadCombo.select(0);
+//             threadCombo.setEnabled(true);
+//             threadCombo.addSelectionListener(new DACustomComboSelectionListener() {
+//                     @Override
+//                     public void selectionEvent(DACustomCombo combo) {
+//                             String selected = combo.getText();
+//                             if (null == selected || selected.isEmpty()) {
+//                                     return;
+//                             }
+//                             if (selected.equals(ThreadPageLabels.THREAD_CHART_SYNC)) {
+//                                     changeComboThreadToSync();
+//                             } else {
+//                                     return;
+//                             }
+//                     }
+//             });
        }
 
        private void callUpdatePage(DAChartBoardItem selectItem) {
@@ -409,12 +542,30 @@ public class ThreadChartView extends DAViewComposite {
                updateView();
        }
        
+       private void changeBoardThreadToSync() {
+               stackLayout.topControl = syncChartBoard;
+               syncChartBoard.setScaleVal(threadChartBoard.getScaleVal());
+               syncChartBoard.setVisibleStart(threadChartBoard.getVisibleStart());
+               syncChartBoard.setItemsHeightMode(threadChartBoard.isItemMinimized());
+               contents.layout();
+               updateView();
+       }
+
+       private void changeBoardSyncToThread() {
+               stackLayout.topControl = threadChartBoard;
+               threadChartBoard.setScaleVal(syncChartBoard.getScaleVal());
+               threadChartBoard.setVisibleStart(syncChartBoard.getVisibleStart());
+               threadChartBoard.setItemsHeightMode(syncChartBoard.isItemMinimized());
+               contents.layout();
+               updateView();
+       }
+       
        private void updateProcessCombo() {
                int index = Toolbar.INSTANCE.getProcessCombo().getSelectionIndex();
-               if(index+1 > processCombo.getItems().size()) {
+               if(index+1 > threadProcessCombo.getItems().size()) {
                        addProcessListToProcessCombo();
                }
-               processCombo.select(index);
+               threadProcessCombo.select(index);
        }
        
        private void addProcessListToProcessCombo() {
@@ -445,7 +596,7 @@ public class ThreadChartView extends DAViewComposite {
                        StringBuffer buffer = new StringBuffer();
                        buffer.append(process.getPid()).append(Toolbar.PROCESS_SPLITER);
                        buffer.append(binName);
-                       processCombo.add(buffer.toString());
+                       threadProcessCombo.add(buffer.toString());
                        Toolbar.INSTANCE.getProcessCombo().add(buffer.toString());
                }
        }