소스 검색

Add styling for ComponentRenderer wrapper div (#9691)

Fixes #9170
tags/8.1.0.rc2
Teemu Suo-Anttila 6 년 전
부모
커밋
7b288aeb66

+ 3
- 1
client/src/main/java/com/vaadin/client/connectors/grid/ComponentRendererConnector.java 파일 보기



@Override @Override
public SimplePanel createWidget() { public SimplePanel createWidget() {
return GWT.create(SimplePanel.class);
SimplePanel panel = GWT.create(SimplePanel.class);
panel.setStyleName("component-wrap");
return panel;
} }


@Override @Override

+ 1
- 0
documentation/components/components-grid.asciidoc 파일 보기

}, new ComponentRenderer()); }, new ComponentRenderer());
---- ----


[classname]#Components# in [classname]#Grid# [classname]#ComponentRenderer# are wrapped in a [literal]#++div++# with the style name [literal]#++component-wrap++#. This can be used to style the alignment and size of the [classname]#Component#.


[[components.grid.renderer.custom]] [[components.grid.renderer.custom]]
=== Custom Renderers === Custom Renderers

+ 5
- 0
themes/src/main/themes/VAADIN/themes/valo/components/_grid.scss 파일 보기

} }
} }
} }

// Style for ComponentRenderer wrap
div.component-wrap {
width: 100%;
}
} }


// Rows // Rows

+ 1
- 0
uitest/src/main/java/com/vaadin/tests/components/grid/GridComponents.java 파일 보기



TextField textField = new TextField(); TextField textField = new TextField();
textField.setValue(string); textField.setValue(string);
textField.setWidth("100%");
// Make sure all changes are sent immediately // Make sure all changes are sent immediately
textField.setValueChangeMode(ValueChangeMode.EAGER); textField.setValueChangeMode(ValueChangeMode.EAGER);
textField.addValueChangeListener(e -> { textField.addValueChangeListener(e -> {

+ 16
- 0
uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsTest.java 파일 보기

import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.GridElement.GridRowElement; import com.vaadin.testbench.elements.GridElement.GridRowElement;
import com.vaadin.testbench.elements.NotificationElement; import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;
assertRowExists(5, "Row 1005"); assertRowExists(5, "Row 1005");
} }


@Test
public void testTextFieldSize() {
openTestURL();
GridCellElement cell = $(GridElement.class).first().getCell(0, 1);
int cellWidth = cell.getSize().getWidth();
int fieldWidth = cell.findElement(By.tagName("input")).getSize()
.getWidth();
// padding left and right, +1 to fix sub pixel issues
int padding = 18 * 2 + 1;

int extraSpace = Math.abs(fieldWidth - cellWidth);
Assert.assertTrue("Too much unused space in cell. Expected: " + padding
+ " Actual: " + extraSpace, extraSpace <= padding);
}

private void editTextFieldInCell(GridElement grid, int row, int col) { private void editTextFieldInCell(GridElement grid, int row, int col) {
WebElement textField = grid.getCell(row, col) WebElement textField = grid.getCell(row, col)
.findElement(By.tagName("input")); .findElement(By.tagName("input"));

Loading…
취소
저장