@Override
public void writeInternal(Device device, SComponent component) throws IOException {
SScrollPane scrollpane = (SScrollPane) component;
if (scrollpane.getMode() == SScrollPane.MODE_COMPLETE) {
SDimension preferredSize = scrollpane.getPreferredSize();
if (preferredSize == null) {
scrollpane.setPreferredSize(new SDimension(200, 400));
} else {
if (preferredSize.getWidthInt() < 0) Utils.setPreferredSize(component, "200", preferredSize.getHeight());
if (preferredSize.getHeightInt() < 0) Utils.setPreferredSize(component, preferredSize.getWidth(), "400");;
}
ScriptManager.getInstance().addScriptListener(new LayoutScrollPaneScript(component.getName()));
writeContent(device, component);
} else {
writeContent(device, component);
}
Adjustable sb = scrollpane.getVerticalScrollBar();
SComponent viewport = (SComponent)scrollpane.getScrollable();
if (viewport != null && sb instanceof SScrollBar) {
final JavaScriptDOMListener handleMouseWheel = new JavaScriptDOMListener(
"DOMMouseScroll",
"wingS.scrollbar.handleMouseWheel", '\'' +((SScrollBar)sb).getName()+ '\'', viewport);
viewport.addScriptListener(handleMouseWheel);
}
}