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