JavaSwingLookAndFeel: JSplitPane


JSplitPane

Version development

(XXXSplitPaneUI, XXXSplitPaneDivider)

Version

JSplitPane

SplitPaneUI

Basic

Metal

Motif

Windows

1.3.0_01

62

13

59, 38

6, 14

12, 14

11, 12

1.3.1_00, _01

65

14

61, 39

7, 15

13, 15

11?, 12?

1.4.0a,b,c

68

13

67, 44

7, 16

12, 14

11, 12

1.4.0rc1, 1.4.0

69=68

14

68, 45

8, 17

13, 15

12. 13

1.4.1a,rc, 1.4.1

69=68

14

72, 45

8, 17

13, 15

12, 13

1.4.2

70=68

15

73, 46

9, 18

14, 16

13, 14

1.4.2_01, 1.4.2_07

1.5.0a

75

15

78, 51

9, 20

14, 16

13, 14

1.5.0b,c

76

16

1.5.0_00,_01,_02

76

16

Actual changes - basic implementation

JSplitPane

1.65: default component text's from UIManager (rather silly)

1.68=1.69=1.70: documentation; serialization

1.75: UI properties (opaque, dividerSize, oneTouchExpandable); currentAccessibleValue Number fixed; removed SwingGraphics (no change in functionality)

SplitPaneUI

not changed

BasicSplitPaneUI

1.61

keepHidden argument for distributeSpace

1.67=1.68

1.72=1.73

1.78

BasicSplitPaneDivider

1.38=1.39

1.44=1.45=1.46

1.51: changes

Concrete LookAndFeels

SplitPaneUIs

All (MetalSplitPaneUI, MotifSplitPaneUI, WindowsSplitPaneUI) always just create their custom divider and have no version changes.

MetalSplitPaneDivider

paint (background, bumps); own one-touch buttons with different painting; different layout which places the buttons differently

1.16: set request focus disabled on buttons (analogous to BasicSplitPaneDivider 1.44)

1.20:

MotifSplitPaneDivider

no version changes at all

thumb, paint etc., broken Cursor

WindowsSplitPaneDivider

no version changes at all

paint: paints background (differently if focused)

JSplitPane formalized

class JSplitPane
    extends JComponent
{
    orientation: int -- HORIZONTAL_SPLIT or VERTICAL_SPLIT
    setOrientation(value: int) -- requires valid(value)

    leftComponent: Component/null
    setLeftComponent(value: Component/null)
    rightComponent: Component/null
    setRightComponent(value: Component/null)
    topComponent: Component/null
    setTopComponent(value: Component/null)
    bottomComponent: Component/null
    setBottomComponent(value: Component/null)

    dividerSize: int
    setDividerSize(value: int)

    isOneTouchExpandable: boolean
    setOneTouchExpandable(value: boolean)

    isContinuousLayout: boolean -- grammar?
    setContinuousLayout(value: boolean)

    resizeWeight: double
    setResizeWeight(value: double)
	requires 0 <= value <= 1

    dividerLocation: int
    lastDividerLocation: int 
    minimumDividerLocation: int -- from UI
    maximumDividerLocation: int -- from UI

    setDividerLocation(value: int) -- to UI
    setDividerLocation(value: double) -- incorrect insets treatment
	requires 0 <= value <= 1

    setLastDividerLocation(value: int) -- called from setDividerLocation

    resetToPreferredSizes -- to UI
	
    redefined
	isValidateRoot: boolean -- true
	
	

    internal redefined
	addImpl(c: Component, constraints: Object/null, index: int)
	remove(c: Component)
	remove(index: int)
	removeAll
	paintChildren(g: Graphics) -- to UI
	accessibleContext: AccessibleContext/null
}



class SplitPaneUI
    extends ComponentUI
{
    resetToPreferredSizes(host: JSplitPane)

    dividerLocation(host: JSplitPane): int
    minimumDividerLocation(host: JSplitPane): int
    maximumDividerLocation(host: JSplitPane): int
    setDividerLocation(host: JSplitPane, value: int);

    finishedPaintingChildren(host: JSplitPane, g: Graphics);
}


(C) 2001-2009 Christian Kaufhold (swing@chka.de)