Author: rwhitcomb
Date: Fri Dec  8 21:03:49 2017
New Revision: 1817567

URL: http://svn.apache.org/viewvc?rev=1817567&view=rev
Log:
PIVOT-636: Calculate non-zero splitter preferred sizes as the sum of
the splitter thickness and the top/left and bottom/right component
preferred sizes (if any).

Modified:
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSplitPaneSkin.java

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSplitPaneSkin.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSplitPaneSkin.java?rev=1817567&r1=1817566&r2=1817567&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSplitPaneSkin.java
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSplitPaneSkin.java
 Fri Dec  8 21:03:49 2017
@@ -338,17 +338,64 @@ public class TerraSplitPaneSkin extends
 
     @Override
     public int getPreferredWidth(int height) {
-        return 0;
+        int preferredWidth = splitterThickness;
+
+        SplitPane splitPane = (SplitPane)getComponent();
+
+        Component topLeft = splitPane.getTopLeft();
+        if (topLeft != null) {
+            preferredWidth += topLeft.getPreferredWidth(height);
+        }
+
+        Component bottomRight = splitPane.getBottomRight();
+        if (bottomRight != null) {
+            preferredWidth += bottomRight.getPreferredWidth(height);
+        }
+
+        return preferredWidth;
     }
 
     @Override
     public int getPreferredHeight(int width) {
-        return 0;
+        int preferredHeight = splitterThickness;
+
+        SplitPane splitPane = (SplitPane)getComponent();
+
+        Component topLeft = splitPane.getTopLeft();
+        if (topLeft != null) {
+            preferredHeight += topLeft.getPreferredHeight(width);
+        }
+
+        Component bottomRight = splitPane.getBottomRight();
+        if (bottomRight != null) {
+            preferredHeight += bottomRight.getPreferredHeight(width);
+        }
+
+        return preferredHeight;
     }
 
     @Override
     public Dimensions getPreferredSize() {
-        return Dimensions.ZERO;
+        int preferredWidth = splitterThickness;
+        int preferredHeight = splitterThickness;
+
+        SplitPane splitPane = (SplitPane)getComponent();
+
+        Component topLeft = splitPane.getTopLeft();
+        if (topLeft != null) {
+            Dimensions size = topLeft.getPreferredSize();
+            preferredWidth += size.width;
+            preferredHeight += size.height;
+        }
+
+        Component bottomRight = splitPane.getBottomRight();
+        if (bottomRight != null) {
+            Dimensions size = bottomRight.getPreferredSize();
+            preferredWidth += size.width;
+            preferredHeight += size.height;
+        }
+
+        return new Dimensions(preferredWidth, preferredHeight);
     }
 
     @Override


Reply via email to