[SRADA-991] Improve resize logic about weight between chart and table
authorjaeyong lee <jae-yong.lee@samsung.com>
Fri, 5 Aug 2016 01:17:33 +0000 (10:17 +0900)
committerjaeyong lee <jae-yong.lee@samsung.com>
Mon, 8 Aug 2016 05:52:35 +0000 (14:52 +0900)
Page's weight will be changed dynamically for fixed table height when window is resized

Change-Id: Id3fdf82a58f7de883cb767afff781dff4cd5473a

org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FilePage.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/MemoryPage.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkPage.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLPage.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadPage.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TimelinePage.java

index 79c084f..9deb98a 100644 (file)
@@ -32,6 +32,8 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Sash;
 import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
 import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
@@ -65,6 +67,11 @@ public class FilePage extends DAPageComposite {
        private DATabComposite fileDetailTableView = null;
        
        boolean isDetailMode = true;
+       
+       int tableHeight = -1;
+       int tableWeight = 65;
+       
+       boolean wasSashCreated = false;
 
        public FilePage(Composite parent, int style) {
                super(parent, style);
@@ -115,9 +122,34 @@ public class FilePage extends DAPageComposite {
                bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
                bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
 
-               bottomForm.setWeights(new int[] { 65, 35 });
+               bottomForm.setWeights(new int[] { tableWeight, 100 - tableWeight });
+               
+               addTableWeightListener();
+       }
+       
+       private void addHeightWeightListener() {
+               if(baseForm.getChildren().length > 2) {
+                       ((Sash)baseForm.getChildren()[2]).addListener(SWT.MouseUp, new Listener() {
+                               @Override
+                               public void handleEvent(Event event) {
+                                       tableHeight = (int)((double)baseForm.getWeights()[0] / baseForm.getWeights()[0] + baseForm.getWeights()[1]) * baseForm.getSize().y * 1/1000;
+                               }
+                       });
+                       
+                       wasSashCreated = true;
+               }
        }
        
+       private void addTableWeightListener() {
+               ((SashForm)bottomForm.getChildren()[0]).addListener(SWT.Resize, new Listener(){
+                       @Override
+                       public void handleEvent(Event event) {
+                               resizeTableButton();
+                       }
+               });
+       }
+
+       
        @Override
        public Composite getTopTable() {
                DAViewComposite view = (DAViewComposite)this.fileAPITableView.getTopComposite();
@@ -136,13 +168,18 @@ public class FilePage extends DAPageComposite {
 
        @Override
        protected void onResized(int width, int height) {
+               if(!wasSashCreated) { // This variable needs to check whether a Sash was created to calculate height ratio between chart area and table area
+                       addHeightWeightListener();
+               }
+               
                resizePageButton();
                resizeTableButton();
                
                if(!isDetailMode) {
                        baseForm.setWeights(new int[] { 100, 0 });
                } else {
-                       int hrate = (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height);
+                       int hrate = (tableHeight == -1) ? (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height) :
+                               (int) (tableHeight * 100 / height);
                        
                        if(hrate > 100) {
                                return;
index a63c455..c0f5e98 100644 (file)
@@ -30,6 +30,8 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Sash;
 import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
 import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
@@ -71,6 +73,11 @@ public class MemoryPage extends DAPageComposite {
        MemoryCallStackView memoryCallStackView;
        
        boolean isDetailMode = true;
+       
+       int tableHeight = -1;
+       int tableWeight = 65;
+       
+       boolean wasSashCreated = false;
 
        public MemoryPage(Composite parent, int style) {
                super(parent, style);
@@ -131,8 +138,31 @@ public class MemoryPage extends DAPageComposite {
                bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
                bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
                
-               bottomForm.setWeights(new int[] { 65, 35 });
-
+               bottomForm.setWeights(new int[] { tableWeight, 100 - tableWeight });
+               
+               addTableWeightListener();
+       }
+       
+       private void addHeightWeightListener() {
+               if(baseForm.getChildren().length > 2) {
+                       ((Sash)baseForm.getChildren()[2]).addListener(SWT.MouseUp, new Listener() {
+                               @Override
+                               public void handleEvent(Event event) {
+                                       tableHeight = (int)((double)baseForm.getWeights()[0] / baseForm.getWeights()[0] + baseForm.getWeights()[1]) * baseForm.getSize().y * 1/1000;
+                               }
+                       });
+                       
+                       wasSashCreated = true;
+               }
+       }
+       
+       private void addTableWeightListener() {
+               ((SashForm)bottomForm.getChildren()[0]).addListener(SWT.Resize, new Listener(){
+                       @Override
+                       public void handleEvent(Event event) {
+                               resizeTableButton();
+                       }
+               });
        }
 
        @Override
@@ -153,13 +183,18 @@ public class MemoryPage extends DAPageComposite {
 
        @Override
        protected void onResized(int width, int height) {
+               if(!wasSashCreated) { // This variable needs to check whether a Sash was created to calculate height ratio between chart area and table area
+                       addHeightWeightListener();
+               }
+               
                resizePageButton();
                resizeTableButton();
                
                if(!isDetailMode) {
                        baseForm.setWeights(new int[] { 100, 0 });
                } else {
-                       int hrate = (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height);
+                       int hrate = (tableHeight == -1) ? (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height) :
+                               (int) (tableHeight * 100 / height);
                        
                        if(hrate > 100) {
                                return;
index 4eb5e8b..75917f8 100644 (file)
@@ -32,6 +32,8 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Sash;
 import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
 import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
@@ -64,6 +66,11 @@ public class NetworkPage extends DAPageComposite {
        SashForm bottomForm;
        
        boolean isDetailMode = true;
+       
+       int tableHeight = -1;
+       int tableWeight = 65;
+       
+       boolean wasSashCreated = false;
 
        public NetworkPage(Composite parent, int style) {
                super(parent, style);
@@ -114,7 +121,31 @@ public class NetworkPage extends DAPageComposite {
                bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
                bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
 
-               bottomForm.setWeights(new int[] { 65, 35 });
+               bottomForm.setWeights(new int[] { tableWeight, 100 - tableWeight });
+               
+               addTableWeightListener();
+       }
+       
+       private void addHeightWeightListener() {
+               if(baseForm.getChildren().length > 2) {
+                       ((Sash)baseForm.getChildren()[2]).addListener(SWT.MouseUp, new Listener() {
+                               @Override
+                               public void handleEvent(Event event) {
+                                       tableHeight = (int)((double)baseForm.getWeights()[0] / baseForm.getWeights()[0] + baseForm.getWeights()[1]) * baseForm.getSize().y * 1/1000;
+                               }
+                       });
+                       
+                       wasSashCreated = true;
+               }
+       }
+       
+       private void addTableWeightListener() {
+               ((SashForm)bottomForm.getChildren()[0]).addListener(SWT.Resize, new Listener(){
+                       @Override
+                       public void handleEvent(Event event) {
+                               resizeTableButton();
+                       }
+               });
        }
 
        @Override
@@ -135,13 +166,18 @@ public class NetworkPage extends DAPageComposite {
 
        @Override
        protected void onResized(int width, int height) {
+               if(!wasSashCreated) { // This variable needs to check whether a Sash was created to calculate height ratio between chart area and table area
+                       addHeightWeightListener();
+               }
+               
                resizePageButton();
                resizeTableButton();
                
                if(!isDetailMode) {
                        baseForm.setWeights(new int[] { 100, 0 });
                } else {
-                       int hrate = (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height);
+                       int hrate = (tableHeight == -1) ? (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height) :
+                               (int) (tableHeight * 100 / height);
                        
                        if(hrate > 100) {
                                return;
index 6017b5f..b1fba8b 100644 (file)
@@ -33,6 +33,8 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Sash;
 import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
 import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
@@ -80,6 +82,8 @@ public class GLPage extends DAPageComposite {
        SashForm baseForm;
        SashForm topForm;
        SashForm bottomForm;
+       SashForm bottomLeftForm;
+       SashForm bottomRightForm;
 
        GLChartView glChartView;
        GLAPIListView glAPIListView;
@@ -92,6 +96,11 @@ public class GLPage extends DAPageComposite {
        
        boolean isDetailMode = true;
        
+       int tableHeight = -1;
+       int tableWeight = 50;
+       
+       boolean wasSashCreated = false;
+       
        public GLPage(Composite parent, int style) {
                super(parent, style);
                setTitle(AnalyzerLabels.COOLBAR_AREA_OPENGLES);
@@ -109,7 +118,16 @@ public class GLPage extends DAPageComposite {
                addView(glChartView);
                
                bottomForm = new SashForm(baseForm, SWT.HORIZONTAL);
-               glLeftTableView = new DATabComposite(bottomForm, SWT.NONE, false, true);
+               
+               bottomLeftForm = new SashForm(bottomForm, SWT.NONE);
+               bottomLeftForm.setForeground(ColorResources.TAB_SELECTED_COLOR_START);
+               bottomLeftForm.setLayout(new FillLayout());
+               
+               bottomRightForm = new SashForm(bottomForm, SWT.NONE);
+               bottomRightForm.setForeground(ColorResources.TAB_SELECTED_COLOR_START);
+               bottomRightForm.setLayout(new FillLayout());
+               
+               glLeftTableView = new DATabComposite(bottomLeftForm, SWT.NONE, false, true);
                {
                        GLStatisticsTableView glStatisticsView = new GLStatisticsTableView(glLeftTableView.getContentComposite(), SWT.NONE);
                        glLeftTableView.addView(glStatisticsView);
@@ -121,7 +139,7 @@ public class GLPage extends DAPageComposite {
                }
                addView(glLeftTableView);
                
-               glRightTableView = new DATabComposite(bottomForm, SWT.NONE, false, true);
+               glRightTableView = new DATabComposite(bottomRightForm, SWT.NONE, false, true);
                {
                        GLRedundantTableView glRedundantView = new GLRedundantTableView(glRightTableView.getContentComposite(), SWT.NONE);
                        glRightTableView.addView(glRedundantView);
@@ -143,8 +161,35 @@ public class GLPage extends DAPageComposite {
                
                topForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
                bottomForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
+               bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
+               bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
+               
+               bottomForm.setWeights(new int[] { tableWeight, 100 - tableWeight });
                
-               bottomForm.setWeights(new int[] { 50, 50 });
+               addTableWeightListener();
+       }
+       
+       private void addTableWeightListener() {
+               ((SashForm)bottomForm.getChildren()[0]).addListener(SWT.Resize, new Listener(){
+                       @Override
+                       public void handleEvent(Event event) {
+                               resizeLeftTableButton();
+                               resizeRightTableButton();
+                       }
+               });
+       }
+       
+       private void addHeightWeightListener() {
+               if(baseForm.getChildren().length > 2) {
+                       ((Sash)baseForm.getChildren()[2]).addListener(SWT.MouseUp, new Listener() {
+                               @Override
+                               public void handleEvent(Event event) {
+                                       tableHeight = (int)((double)baseForm.getWeights()[0] / baseForm.getWeights()[0] + baseForm.getWeights()[1]) * baseForm.getSize().y * 1/1000;
+                               }
+                       });
+                       
+                       wasSashCreated = true;
+               }
        }
 
        @Override
@@ -165,6 +210,10 @@ public class GLPage extends DAPageComposite {
 
        @Override
        protected void onResized(int width, int height) {
+               if(!wasSashCreated) { // This variable needs to check whether a Sash was created to calculate height ratio between chart area and table area
+                       addHeightWeightListener();
+               }
+               
                resizePageButton();
                resizeLeftTableButton();
                resizeRightTableButton();
@@ -172,7 +221,8 @@ public class GLPage extends DAPageComposite {
                if(!isDetailMode) {
                        baseForm.setWeights(new int[] { 100, 0 });
                } else {
-                       int hrate = (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height);
+                       int hrate = (tableHeight == -1) ? (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height) :
+                               (int) (tableHeight * 100 / height);
                        
                        if(hrate > 100) {
                                return;
index eb301b9..ab03c00 100644 (file)
@@ -34,6 +34,8 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Sash;
 import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
 import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
@@ -67,6 +69,11 @@ public class ThreadPage extends DAPageComposite {
        SashForm bottomForm;
        
        boolean isDetailMode = true;
+       
+       int tableHeight = -1;
+       int tableWeight = 65;
+       
+       boolean wasSashCreated = false;
 
        public ThreadPage(Composite parent, int style) {
                super(parent, style);
@@ -119,7 +126,31 @@ public class ThreadPage extends DAPageComposite {
                bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
                bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
 
-               bottomForm.setWeights(new int[] { 65, 35 });
+               bottomForm.setWeights(new int[] { tableWeight, 100 - tableWeight });
+               
+               addTableWeightListener();
+       }
+       
+       private void addHeightWeightListener() {
+               if(baseForm.getChildren().length > 2) {
+                       ((Sash)baseForm.getChildren()[2]).addListener(SWT.MouseUp, new Listener() {
+                               @Override
+                               public void handleEvent(Event event) {
+                                       tableHeight = (int)((double)baseForm.getWeights()[0] / baseForm.getWeights()[0] + baseForm.getWeights()[1]) * baseForm.getSize().y * 1/1000;
+                               }
+                       });
+                       
+                       wasSashCreated = true;
+               }
+       }
+       
+       private void addTableWeightListener() {
+               ((SashForm)bottomForm.getChildren()[0]).addListener(SWT.Resize, new Listener(){
+                       @Override
+                       public void handleEvent(Event event) {
+                               resizeTableButton();
+                       }
+               });
        }
 
        @Override
@@ -140,13 +171,18 @@ public class ThreadPage extends DAPageComposite {
 
        @Override
        protected void onResized(int width, int height) {
+               if(!wasSashCreated) { // This variable needs to check whether a Sash was created to calculate height ratio between chart area and table area
+                       addHeightWeightListener();
+               }
+               
                resizePageButton();
                resizeTableButton();
                
                if(!isDetailMode) {
                        baseForm.setWeights(new int[] { 100, 0 });
                } else {
-                       int hrate = (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height);
+                       int hrate = (tableHeight == -1) ? (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height) :
+                               (int) (tableHeight * 100 / height);
                        
                        if(hrate > 100) {
                                return;
index 0701837..60356e9 100644 (file)
@@ -33,6 +33,8 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Sash;
 import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
 import org.tizen.dynamicanalyzer.common.Global;
@@ -73,6 +75,11 @@ public class TimelinePage extends DAPageComposite {
        TimelineTableView timelineTableView;
        
        boolean isDetailMode = true;
+       
+       int tableHeight = -1;
+       int tableWeight = 65;
+       
+       boolean wasSashCreated = false;
 
        public TimelinePage(Composite parent, int style) {
                super(parent, style);
@@ -117,7 +124,31 @@ public class TimelinePage extends DAPageComposite {
                bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
                bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
 
-               bottomForm.setWeights(new int[] { 65, 35 });
+               bottomForm.setWeights(new int[] { tableWeight, 100 - tableWeight });
+               
+               addTableWeightListener();
+       }
+       
+       private void addHeightWeightListener() {
+               if(baseForm.getChildren().length > 2) {
+                       ((Sash)baseForm.getChildren()[2]).addListener(SWT.MouseUp, new Listener() {
+                               @Override
+                               public void handleEvent(Event event) {
+                                       tableHeight = baseForm.getWeights()[1] * baseForm.getSize().y / 1000;
+                               }
+                       });
+                       
+                       wasSashCreated = true;
+               }
+       }
+       
+       private void addTableWeightListener() {
+               ((SashForm)bottomForm.getChildren()[0]).addListener(SWT.Resize, new Listener(){
+                       @Override
+                       public void handleEvent(Event event) {
+                               resizeTableButton();
+                       }
+               });
        }
        
        @Override
@@ -145,13 +176,18 @@ public class TimelinePage extends DAPageComposite {
 
        @Override
        protected void onResized(int width, int height) {
+               if(!wasSashCreated) { // This variable needs to check whether a Sash was created to calculate height ratio between chart area and table area
+                       addHeightWeightListener();
+               }
+               
                resizePageButton();
                resizeTableButton();
                
                if(!isDetailMode) {
                        baseForm.setWeights(new int[] { 100, 0 });
                } else {
-                       int hrate = (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height);
+                       int hrate = (tableHeight == -1) ? (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height) :
+                               (int) (tableHeight * 100 / height);
                        
                        if(hrate > 100) {
                                return;