IDEMPIERE-2480:ZK7 - Horizontal Scrollbar calculate wrong full width
This commit is contained in:
parent
74cd2d1078
commit
35d6fbc1b4
|
@ -63,7 +63,7 @@ import org.zkoss.zul.Frozen;
|
|||
import org.zkoss.zul.Paging;
|
||||
import org.zkoss.zul.Row;
|
||||
import org.zkoss.zul.Tabpanel;
|
||||
import org.zkoss.zul.Vbox;
|
||||
import org.zkoss.zul.Vlayout;
|
||||
import org.zkoss.zul.event.ZulEvents;
|
||||
import org.zkoss.zul.impl.CustomGridDataLoader;
|
||||
|
||||
|
@ -72,8 +72,9 @@ import org.zkoss.zul.impl.CustomGridDataLoader;
|
|||
* @author Low Heng Sin
|
||||
*
|
||||
*/
|
||||
public class GridView extends Vbox implements EventListener<Event>, IdSpace, IFieldEditorContainer, StateChangeListener
|
||||
public class GridView extends Vlayout implements EventListener<Event>, IdSpace, IFieldEditorContainer, StateChangeListener
|
||||
{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
@ -243,6 +244,9 @@ public class GridView extends Vbox implements EventListener<Event>, IdSpace, IFi
|
|||
|
||||
setupColumns();
|
||||
render();
|
||||
if (listbox.getFrozen() != null){
|
||||
listbox.getFrozen().setWidgetOverride("syncScroll", "function (){syncScrollOVR(this);}");
|
||||
}
|
||||
|
||||
updateListIndex();
|
||||
|
||||
|
|
|
@ -252,6 +252,42 @@ Copyright (C) 2007 Ashley G Ramdass.
|
|||
});
|
||||
});
|
||||
|
||||
// overload for recalculate width of scroll when has frozen control
|
||||
function syncScrollOVR (wgt){
|
||||
var parent = wgt.parent;
|
||||
|
||||
if (parent.eheadtbl && parent._nativebar) {
|
||||
var scroll = wgt.$n('scrollX');
|
||||
var cells = parent._getFirstRowCells(parent.eheadrows);
|
||||
var totalcols = cells.length;
|
||||
var columns = wgt._columns;
|
||||
var scrollScale = totalcols - columns - 1;
|
||||
var leftWidth = 0;
|
||||
|
||||
var headerWidth = 0;
|
||||
for (var i = 0; i < columns; i++)
|
||||
headerWidth += cells[i].offsetWidth;
|
||||
|
||||
var bodyWidth = parent.$n('body').offsetWidth;
|
||||
var extraWidth = parent.$n('body').offsetWidth - headerWidth;
|
||||
var extraColumnNum = 0;
|
||||
for (var i = totalcols - 1; i >= columns; i--){
|
||||
extraWidth -= cells[i].offsetWidth;
|
||||
if (cells[i].offsetWidth == 0)// when scroll to right, column at left has width = 0
|
||||
continue;
|
||||
if (extraWidth >= 0){
|
||||
extraColumnNum++;
|
||||
}else{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
scroll.firstChild.style.width = jq.px0(bodyWidth + 50 * (scrollScale - extraColumnNum));
|
||||
}
|
||||
|
||||
wgt.$syncScroll ()
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
<include src="${themePreference}"/>
|
||||
|
|
Loading…
Reference in New Issue