Browse Source

IE6 resize fix for Table footers

svn changeset:12696/svn branch:6.4
tags/6.7.0.beta1
John Alhroos 14 years ago
parent
commit
8a6631fa3c

+ 7
- 8
WebContent/VAADIN/themes/base/styles.css View File

@@ -1,5 +1,5 @@
.v-theme-version:after {content:"6_4_0_dev-20100416";}
.v-theme-version-6_4_0_dev-20100416 {display: none;}
.v-theme-version:after {content:"6_4_0_dev-20100420";}
.v-theme-version-6_4_0_dev-20100420 {display: none;}
/* Automatically compiled css file from subdirectories. */

.v-absolutelayout-wrapper {
@@ -1464,15 +1464,14 @@ div.v-progressindicator-indeterminate-disabled {
padding: 0;
border-right: 1px solid #aaa;
}
.v-table-footer-cell,
.v-table-footer-cell-asc,
.v-table-footer-cell-desc {
.v-table-footer-cell{
cursor: pointer;
}
.v-table-footer-container{
padding-left:6px;
.v-table-footer-container{
float:right;
padding-right:6px;
overfow: hidden;
overflow:hidden;
white-space:nowrap;
}
.v-table-resizer {
display: block;

+ 5
- 6
WebContent/VAADIN/themes/base/table/table.css View File

@@ -70,15 +70,14 @@
padding: 0;
border-right: 1px solid #aaa;
}
.v-table-footer-cell,
.v-table-footer-cell-asc,
.v-table-footer-cell-desc {
.v-table-footer-cell{
cursor: pointer;
}
.v-table-footer-container{
padding-left:6px;
.v-table-footer-container{
float:right;
padding-right:6px;
overfow: hidden;
overflow:hidden;
white-space:nowrap;
}
.v-table-resizer {
display: block;

+ 7
- 8
WebContent/VAADIN/themes/reindeer/styles.css View File

@@ -1,5 +1,5 @@
.v-theme-version:after {content:"6_4_0_dev-20100416";}
.v-theme-version-6_4_0_dev-20100416 {display: none;}
.v-theme-version:after {content:"6_4_0_dev-20100420";}
.v-theme-version-6_4_0_dev-20100420 {display: none;}
/* Automatically compiled css file from subdirectories. */

.v-absolutelayout-wrapper {
@@ -1464,15 +1464,14 @@ div.v-progressindicator-indeterminate-disabled {
padding: 0;
border-right: 1px solid #aaa;
}
.v-table-footer-cell,
.v-table-footer-cell-asc,
.v-table-footer-cell-desc {
.v-table-footer-cell{
cursor: pointer;
}
.v-table-footer-container{
padding-left:6px;
.v-table-footer-container{
float:right;
padding-right:6px;
overfow: hidden;
overflow:hidden;
white-space:nowrap;
}
.v-table-resizer {
display: block;

+ 7
- 8
WebContent/VAADIN/themes/runo/styles.css View File

@@ -1,5 +1,5 @@
.v-theme-version:after {content:"6_4_0_dev-20100416";}
.v-theme-version-6_4_0_dev-20100416 {display: none;}
.v-theme-version:after {content:"6_4_0_dev-20100420";}
.v-theme-version-6_4_0_dev-20100420 {display: none;}
/* Automatically compiled css file from subdirectories. */

.v-absolutelayout-wrapper {
@@ -1464,15 +1464,14 @@ div.v-progressindicator-indeterminate-disabled {
padding: 0;
border-right: 1px solid #aaa;
}
.v-table-footer-cell,
.v-table-footer-cell-asc,
.v-table-footer-cell-desc {
.v-table-footer-cell{
cursor: pointer;
}
.v-table-footer-container{
padding-left:6px;
.v-table-footer-container{
float:right;
padding-right:6px;
overfow: hidden;
overflow:hidden;
white-space:nowrap;
}
.v-table-resizer {
display: block;

+ 73
- 9
src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java View File

@@ -467,8 +467,16 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
return;
}

int i;
// Add dummy column if row headers are present
int colIndex = 0;
if (showRowHeaders) {
tFoot.enableColumn("0", colIndex);
colIndex++;
} else {
tFoot.removeCell("0");
}

int i;
for (i = 0; i < strings.length; i++) {
final String cid = strings[i];
tFoot.enableColumn(cid, colIndex);
@@ -1972,9 +1980,6 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
*/
public void setWidth(int w, boolean ensureDefinedWidth) {

// Account for 1px right border
w--;

if (ensureDefinedWidth) {
// on column resize expand ratio becomes zero
expandRatio = 0;
@@ -1982,17 +1987,35 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
if (width == w) {
return;
}
if (width == -1) {
width = w;
if (width <= 0) {
// go to default mode, clip content if necessary
DOM.setStyleAttribute(captionContainer, "overflow", "");
}
width = w;
if (w == -1) {
DOM.setStyleAttribute(captionContainer, "width", "");
setWidth("");
} else {

captionContainer.getStyle().setPropertyPx("width", w);
/*
* Reduce width with one pixel for the right border since the
* footers does not have any spacers between them.
*
* IE6 will calculate the footer width wrong by 2 pixels due to
* borders used so add it to border widths.
*/
int borderWidths = 1;
if (BrowserInfo.get().isIE6()) {
borderWidths += 2;
}

// Set the container width (check for negative value)
if (w - borderWidths >= 0) {
captionContainer.getStyle().setPropertyPx("width",
w - borderWidths);
} else {
captionContainer.getStyle().setPropertyPx("width", 0);
}

/*
* if we already have tBody, set the header width properly, if
@@ -2000,13 +2023,25 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
* unless TD width is not explicitly set.
*/
if (scrollBody != null) {
int tdWidth = width + scrollBody.getCellExtraWidth();
/*
* Reduce with one since footer does not have any spacers,
* instead a 1 pixel border.
*/
int tdWidth = width + scrollBody.getCellExtraWidth()
- borderWidths;
setWidth(tdWidth + "px");
} else {
DeferredCommand.addCommand(new Command() {
public void execute() {

int borderWidths = 1;
if (BrowserInfo.get().isIE6()) {
borderWidths += 2;
}

int tdWidth = width
+ scrollBody.getCellExtraWidth();
+ scrollBody.getCellExtraWidth()
- borderWidths;
setWidth(tdWidth + "px");
}
});
@@ -2099,6 +2134,24 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
}
}

/**
* HeaderCell that is header cell for row headers.
*
* Reordering disabled and clicking on it resets sorting.
*/
public class RowHeadersFooterCell extends FooterCell {

RowHeadersFooterCell() {
super("0", "");
}

@Override
protected void handleCaptionEvent(Event event) {
// NOP: RowHeaders cannot be reordered
// TODO It'd be nice to reset sorting here
}
}

/**
* The footer of the table which can be seen in the bottom of the Table.
*/
@@ -2130,6 +2183,17 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
setElement(div);

setStyleName(CLASSNAME + "-footer-wrap");

availableCells.put("0", new RowHeadersFooterCell());
}

@Override
public void clear() {
for (String cid : availableCells.keySet()) {
removeCell(cid);
}
availableCells.clear();
availableCells.put("0", new RowHeadersFooterCell());
}

/*

Loading…
Cancel
Save