|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JSplitPane
org.crosswire.common.swing.AltFixedSplitPane
public class AltFixedSplitPane
This is a hack to fix the setDividerLocation problem and other layout problems.
See Bug Parade 4101306, 4485465 for a description of the WIDE divider problem.
Bug Reports on JSplitpane setDividerLocation
4101306, 4125713, 4148530
From the javadoc for setDividerLocation(double):
-------------------------------------------
This method is implemented in terms of setDividerLocation(int). This method
immediately changes the size of the receiver based on its current size. If
the receiver is not correctly realized and on screen, this method will have
no effect (new divider location will become (current size *
proportionalLocation) which is 0).
-------------------------------------------
So, as you can see the JSplitPane MUST be visible invoking this method
otherwise it will not have the desired effect.
Another, Bug Report 4786896 notes that if the preferred sizes of the two components plus the divider of the split pane adds up to more than the preferred size of the JSplitPane, then JSplitPane will use the minimum size of the components.
Since the preferred way of managing the sizes of containers is not with pixel counts, the solution here is to set the preferred size to zero.
See Bug Parade: 4265389 for a description of the ComponentOrientation problem.
The GNU General Public License for details.
,
Serialized FormNested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.JSplitPane |
---|
JSplitPane.AccessibleJSplitPane |
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Container |
---|
Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
Field Summary | |
---|---|
private static Dimension |
DOT
|
private static Border |
EMPTY_BORDER
An Empty Border |
private boolean |
firstValidate
|
private boolean |
hasProportionalLocation
|
static String |
PROPERTYNAME_VISIBLE_DIVIDER_BORDER
Property for border visibility |
private double |
proportionalLocation
|
private static long |
serialVersionUID
Serialization ID |
private boolean |
visibleDividerBorder
Hint for whether Divider border should be visible. |
Fields inherited from class javax.swing.JComponent |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
Fields inherited from class java.awt.Component |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
AltFixedSplitPane()
Constructor for FixedSplitPane |
|
AltFixedSplitPane(boolean visibleDividerBorder)
Constructor for FixedSplitPane that has no divider shadow and starts out with an empty border. |
|
AltFixedSplitPane(int arg0)
Constructor for FixedSplitPane |
|
AltFixedSplitPane(int arg0,
boolean arg1)
Constructor for FixedSplitPane |
|
AltFixedSplitPane(int arg0,
boolean arg1,
Component arg2,
Component arg3)
Constructor for FixedSplitPane |
|
AltFixedSplitPane(int arg0,
Component arg1,
Component arg2)
Constructor for FixedSplitPane |
Method Summary | |
---|---|
protected void |
addImpl(Component comp,
Object constraints,
int index)
|
boolean |
isVisibleDividerBorder()
Whether visible borders are hinted |
void |
setBottomComponent(Component comp)
|
void |
setComponentOrientation(ComponentOrientation o)
|
void |
setDividerLocation(double newProportionalLoc)
Sets the divider location as a percentage of the JSplitPane's size. |
void |
setLeftComponent(Component comp)
|
void |
setResizeWeight(double newResizeWeight)
Sets the divider location as a percentage of the JSplitPane's size. |
void |
setRightComponent(Component comp)
|
void |
setTopComponent(Component comp)
|
void |
setVisibleDividerBorder(boolean newVisibility)
Set a hint whether the border should be visible or not. |
void |
updateUI()
|
void |
validate()
Validates this container and all of its subcomponents. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private static final Dimension DOT
private boolean firstValidate
private boolean hasProportionalLocation
private double proportionalLocation
public static final String PROPERTYNAME_VISIBLE_DIVIDER_BORDER
private static final Border EMPTY_BORDER
private boolean visibleDividerBorder
private static final long serialVersionUID
Constructor Detail |
---|
public AltFixedSplitPane()
public AltFixedSplitPane(boolean visibleDividerBorder)
public AltFixedSplitPane(int arg0)
public AltFixedSplitPane(int arg0, boolean arg1)
public AltFixedSplitPane(int arg0, Component arg1, Component arg2)
public AltFixedSplitPane(int arg0, boolean arg1, Component arg2, Component arg3)
Method Detail |
---|
public void setComponentOrientation(ComponentOrientation o)
setComponentOrientation
in class Component
protected void addImpl(Component comp, Object constraints, int index)
addImpl
in class JSplitPane
public void setBottomComponent(Component comp)
setBottomComponent
in class JSplitPane
public void setLeftComponent(Component comp)
setLeftComponent
in class JSplitPane
public void setRightComponent(Component comp)
setRightComponent
in class JSplitPane
public void setTopComponent(Component comp)
setTopComponent
in class JSplitPane
public void validate()
validate
in class Container
public void setDividerLocation(double newProportionalLoc)
setDividerLocation
in class JSplitPane
public void setResizeWeight(double newResizeWeight)
setResizeWeight
in class JSplitPane
public boolean isVisibleDividerBorder()
public void setVisibleDividerBorder(boolean newVisibility)
newVisibility
- public void updateUI()
updateUI
in class JSplitPane
|
Copyright ยจ 2003-2015 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |