You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by rw...@apache.org on 2017/12/08 21:03:49 UTC

svn commit: r1817567 - /pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSplitPaneSkin.java

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