From 90b6f7dcab2758b1f026af60a58982bc0cfaff22 Mon Sep 17 00:00:00 2001 From: Teemu Suo-Anttila Date: Tue, 26 May 2015 11:47:39 +0300 Subject: Split AbstractGridExtension from AbstractRenderer (#18003) Change-Id: Ibe5766cde606091ce2bd58055472fa7cf3f21374 --- server/src/com/vaadin/ui/Grid.java | 37 ++++++++++++++++--- .../server/component/grid/GridExtensionTest.java | 41 ++++++++++++++++++++++ 2 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 server/tests/src/com/vaadin/tests/server/component/grid/GridExtensionTest.java (limited to 'server') diff --git a/server/src/com/vaadin/ui/Grid.java b/server/src/com/vaadin/ui/Grid.java index 902098e8d0..2c7e63ddf8 100644 --- a/server/src/com/vaadin/ui/Grid.java +++ b/server/src/com/vaadin/ui/Grid.java @@ -3274,15 +3274,15 @@ public class Grid extends AbstractComponent implements SelectionNotifier, /** * An abstract base class for server-side Grid renderers. * {@link com.vaadin.client.widget.grid.Renderer Grid renderers}. This class - * currently extends the AbstractExtension superclass, but this fact should - * be regarded as an implementation detail and subject to change in a future - * major or minor Vaadin revision. + * currently extends the AbstractGridExtension superclass, but this fact + * should be regarded as an implementation detail and subject to change in a + * future major or minor Vaadin revision. * * @param * the type this renderer knows how to present */ - public static abstract class AbstractRenderer extends AbstractExtension - implements Renderer { + public static abstract class AbstractRenderer extends + AbstractGridExtension implements Renderer { private final Class presentationType; @@ -3340,6 +3340,33 @@ public class Grid extends AbstractComponent implements SelectionNotifier, return JsonCodec.encode(value, null, type, getUI().getConnectorTracker()).getEncodedValue(); } + } + + /** + * An abstract base class for server-side Grid extensions. + * + * @since + */ + public static abstract class AbstractGridExtension extends + AbstractExtension { + + /** + * Constructs a new Grid extension. + */ + public AbstractGridExtension() { + super(); + } + + /** + * Constructs a new Grid extension and extends given Grid. + * + * @param grid + * a grid instance + */ + public AbstractGridExtension(Grid grid) { + super(); + extend(grid); + } /** * Gets the item id for a row key. diff --git a/server/tests/src/com/vaadin/tests/server/component/grid/GridExtensionTest.java b/server/tests/src/com/vaadin/tests/server/component/grid/GridExtensionTest.java new file mode 100644 index 0000000000..d9db217aa3 --- /dev/null +++ b/server/tests/src/com/vaadin/tests/server/component/grid/GridExtensionTest.java @@ -0,0 +1,41 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.server.component.grid; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import com.vaadin.ui.Grid; +import com.vaadin.ui.Grid.AbstractGridExtension; + +public class GridExtensionTest { + + public static class DummyGridExtension extends AbstractGridExtension { + + public DummyGridExtension(Grid grid) { + super(grid); + } + } + + @Test + public void testCreateExtension() { + Grid grid = new Grid(); + DummyGridExtension dummy = new DummyGridExtension(grid); + assertTrue("DummyGridExtension never made it to Grid", grid + .getExtensions().contains(dummy)); + } +} -- cgit v1.2.3