Browse Source

fixed minor regression with undefined width tables with height defined. Added sanity check when destroying row (fixes #2862, regression).


svn changeset:7517/svn branch:6.0
tags/6.7.0.beta1
Matti Tahvonen 15 years ago
parent
commit
afdcec2164
1 changed files with 31 additions and 13 deletions
  1. 31
    13
      src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java

+ 31
- 13
src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java View File

@@ -578,11 +578,27 @@ public class IScrollTable extends FlowPanel implements Table, ScrollListener {

tHead.disableBrowserIntelligence();

boolean willHaveScrollbarz = false;
if (!(height != null && !height.equals(""))) {
if (pageLength < totalRows) {
willHaveScrollbarz = true;
}
} else {
int fakeheight = tBody.getRowHeight() * totalRows;
int availableHeight = bodyContainer.getElement().getPropertyInt(
"clientHeight");
if (fakeheight > availableHeight) {
willHaveScrollbarz = true;
}
}

// fix "natural" width if width not set
if (width == null || "".equals(width)) {
int w = total;
w += tBody.getCellExtraWidth() * visibleColOrder.length;
w += getScrollbarWidth();
if (willHaveScrollbarz) {
w += Util.getNativeScrollbarSize();
}
setContentWidth(w);
}

@@ -591,10 +607,8 @@ public class IScrollTable extends FlowPanel implements Table, ScrollListener {
availW = tBody.getAvailableWidth();
availW -= tBody.getCellExtraWidth() * visibleColOrder.length;

if (!(height != null && !height.equals(""))) {
if (pageLength < totalRows) {
availW -= Util.getNativeScrollbarSize();
}
if (willHaveScrollbarz) {
availW -= Util.getNativeScrollbarSize();
}

boolean needsReLayout = false;
@@ -2000,14 +2014,18 @@ public class IScrollTable extends FlowPanel implements Table, ScrollListener {
index = renderedRows.size() - 1;
lastRendered--;
}
final IScrollTableRow toBeRemoved = (IScrollTableRow) renderedRows
.get(index);
lazyUnregistryBag.add(toBeRemoved);
tBodyElement.removeChild(toBeRemoved.getElement());
orphan(toBeRemoved);
renderedRows.remove(index);
fixSpacers();
return true;
if (index >= 0) {
final IScrollTableRow toBeRemoved = (IScrollTableRow) renderedRows
.get(index);
lazyUnregistryBag.add(toBeRemoved);
tBodyElement.removeChild(toBeRemoved.getElement());
orphan(toBeRemoved);
renderedRows.remove(index);
fixSpacers();
return true;
} else {
return false;
}
}

@Override

Loading…
Cancel
Save