diff options
4 files changed, 19 insertions, 12 deletions
diff --git a/client/src/com/vaadin/client/ui/grid/renderers/ComplexRenderer.java b/client/src/com/vaadin/client/ui/grid/renderers/ComplexRenderer.java index ed9aefd260..07c04da223 100644 --- a/client/src/com/vaadin/client/ui/grid/renderers/ComplexRenderer.java +++ b/client/src/com/vaadin/client/ui/grid/renderers/ComplexRenderer.java @@ -50,9 +50,7 @@ public abstract class ComplexRenderer<T> implements Renderer<T> { * the method as the cell install will change. See * {@link FlyweightCell} */ - public void init(FlyweightCell cell) { - // Implement if needed - } + public abstract void init(FlyweightCell cell); /** * Called after the cell is deemed to be destroyed and no longer used by the diff --git a/client/src/com/vaadin/client/ui/grid/renderers/WidgetRenderer.java b/client/src/com/vaadin/client/ui/grid/renderers/WidgetRenderer.java index b7cd72600a..9fcd9c906e 100644 --- a/client/src/com/vaadin/client/ui/grid/renderers/WidgetRenderer.java +++ b/client/src/com/vaadin/client/ui/grid/renderers/WidgetRenderer.java @@ -32,6 +32,11 @@ import com.vaadin.client.ui.grid.FlyweightCell; public abstract class WidgetRenderer<T, W extends Widget> extends ComplexRenderer<T> { + @Override + public void init(FlyweightCell cell) { + // Implement if needed + } + /** * Creates a widget to attach to a cell. The widgets will be attached to the * cell after the cell element has been attached to DOM. diff --git a/client/src/com/vaadin/client/ui/grid/selection/MultiSelectionRenderer.java b/client/src/com/vaadin/client/ui/grid/selection/MultiSelectionRenderer.java index a18c8dafb0..5228a466a2 100644 --- a/client/src/com/vaadin/client/ui/grid/selection/MultiSelectionRenderer.java +++ b/client/src/com/vaadin/client/ui/grid/selection/MultiSelectionRenderer.java @@ -658,21 +658,21 @@ public class MultiSelectionRenderer<T> extends ComplexRenderer<Boolean> { } @Override - public void render(final FlyweightCell cell, final Boolean data) { - /* - * FIXME: Once https://dev.vaadin.com/review/#/c/3670/ is merged - * (init/destroy), split this method. Also, remove all event preview - * handlers on detach, to avoid hanging events. - */ - + public void init(FlyweightCell cell) { final InputElement checkbox = InputElement.as(DOM.createInputCheck()); - checkbox.setChecked(data.booleanValue()); - checkbox.setPropertyInt(LOGICAL_ROW_PROPERTY_INT, cell.getRow()); cell.getElement().removeAllChildren(); cell.getElement().appendChild(checkbox); } @Override + public void render(final FlyweightCell cell, final Boolean data) { + InputElement checkbox = InputElement.as(cell.getElement() + .getFirstChildElement()); + checkbox.setChecked(data.booleanValue()); + checkbox.setPropertyInt(LOGICAL_ROW_PROPERTY_INT, cell.getRow()); + } + + @Override public Collection<String> getConsumedEvents() { final HashSet<String> events = new HashSet<String>(); diff --git a/uitest/src/com/vaadin/tests/widgetset/client/grid/GridClientColumnRendererConnector.java b/uitest/src/com/vaadin/tests/widgetset/client/grid/GridClientColumnRendererConnector.java index f4ca1d0344..b453f88841 100644 --- a/uitest/src/com/vaadin/tests/widgetset/client/grid/GridClientColumnRendererConnector.java +++ b/uitest/src/com/vaadin/tests/widgetset/client/grid/GridClientColumnRendererConnector.java @@ -312,6 +312,10 @@ public class GridClientColumnRendererConnector extends return new ComplexRenderer<String>() { @Override + public void init(FlyweightCell cell) { + } + + @Override public void render(FlyweightCell cell, String data) { cell.getElement().setInnerHTML("<span>" + data + "</span>"); cell.getElement().getStyle().clearBackgroundColor(); |