protected void layoutMinorAxis(int targetSpan,
int axis,
int[] offsets,
int[] spans) {
Container container = getContainer();
Container parentContainer;
if (container != null
&& (container instanceof javax.swing.JEditorPane)
&& (parentContainer = container.getParent()) != null
&& (parentContainer instanceof javax.swing.JViewport)) {
JViewport viewPort = (JViewport)parentContainer;
Object cachedObject;
if (cachedViewPort != null) {
if ((cachedObject = cachedViewPort.get()) != null) {
if (cachedObject != viewPort) {
((JComponent)cachedObject).removeComponentListener(this);
}
} else {
cachedViewPort = null;
}
}
if (cachedViewPort == null) {
viewPort.addComponentListener(this);
cachedViewPort = new WeakReference(viewPort);
}
componentVisibleWidth = viewPort.getExtentSize().width;
if (componentVisibleWidth > 0) {
Insets insets = container.getInsets();
viewVisibleWidth = componentVisibleWidth - insets.left - getLeftInset();
//try to use viewVisibleWidth if it is smaller than targetSpan
targetSpan = Math.min(targetSpan, viewVisibleWidth);
}
} else {
if (cachedViewPort != null) {
Object cachedObject;
if ((cachedObject = cachedViewPort.get()) != null) {
((JComponent)cachedObject).removeComponentListener(this);
}
cachedViewPort = null;
}
}
super.layoutMinorAxis(targetSpan, axis, offsets, spans);
}
|