From 84106f9caaee387a9ef6de171c3dc6058f0f7e96 Mon Sep 17 00:00:00 2001 From: Teemu Suo-Anttila Date: Thu, 25 Sep 2014 11:45:34 +0300 Subject: [PATCH] Make complex renderer .init() abstract (#13334) Change-Id: I397c3120c22bdfeb27d10f308efe5abc710138b0 --- .../ui/grid/renderers/ComplexRenderer.java | 4 +--- .../ui/grid/renderers/WidgetRenderer.java | 5 +++++ .../grid/selection/MultiSelectionRenderer.java | 18 +++++++++--------- .../GridClientColumnRendererConnector.java | 4 ++++ 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 implements Renderer { * 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 extends ComplexRenderer { + @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,20 +658,20 @@ public class MultiSelectionRenderer extends ComplexRenderer { } @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 getConsumedEvents() { final HashSet events = new HashSet(); 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 @@ -311,6 +311,10 @@ public class GridClientColumnRendererConnector extends case CPLX_RENDERER: return new ComplexRenderer() { + @Override + public void init(FlyweightCell cell) { + } + @Override public void render(FlyweightCell cell, String data) { cell.getElement().setInnerHTML("" + data + ""); -- 2.39.5