package org.freeplane.core.ui.components;
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.JScrollPane;
@SuppressWarnings("serial")
public class JRestrictedSizeScrollPane extends JScrollPane {
public JRestrictedSizeScrollPane(Component view) {
super(view);
}
@Override
public Dimension getPreferredSize() {
final Dimension preferredSize = super.getPreferredSize();
if(isPreferredSizeSet() || ! (isMaximumSizeSet() || isMinimumSizeSet())){
return preferredSize;
}
if(isMinimumSizeSet()){
final Dimension minimumSize = getMinimumSize();
preferredSize.width = Math.max(minimumSize.width, preferredSize.width);
preferredSize.height = Math.max(minimumSize.height, preferredSize.height);
}
if(isMaximumSizeSet()){
final Dimension maximumSize = getMaximumSize();
preferredSize.width = Math.min(maximumSize.width, preferredSize.width);
preferredSize.height = Math.min(maximumSize.height, preferredSize.height);
}
return preferredSize;
}
}