]> source.dussan.org Git - vaadin-framework.git/commitdiff
Rename com.vaadin.ui.renderer to com.vaadin.ui.renderers (#16521)
authorLeif Åstrand <leif@vaadin.com>
Fri, 6 Feb 2015 13:09:44 +0000 (15:09 +0200)
committerLeif Åstrand <leif@vaadin.com>
Fri, 6 Feb 2015 13:09:44 +0000 (15:09 +0200)
Change-Id: I6fd0313aaba5619a55f03fb52d72c032ea18f409

37 files changed:
client/src/com/vaadin/client/connectors/ButtonRendererConnector.java
client/src/com/vaadin/client/connectors/DateRendererConnector.java
client/src/com/vaadin/client/connectors/ImageRendererConnector.java
client/src/com/vaadin/client/connectors/JavaScriptRendererConnector.java
client/src/com/vaadin/client/connectors/NumberRendererConnector.java
client/src/com/vaadin/client/connectors/ProgressBarRendererConnector.java
client/src/com/vaadin/client/connectors/TextRendererConnector.java
client/src/com/vaadin/client/connectors/UnsafeHtmlRendererConnector.java
server/src/com/vaadin/data/RpcDataProviderExtension.java
server/src/com/vaadin/ui/Grid.java
server/src/com/vaadin/ui/renderer/AbstractJavaScriptRenderer.java [deleted file]
server/src/com/vaadin/ui/renderer/ButtonRenderer.java [deleted file]
server/src/com/vaadin/ui/renderer/ClickableRenderer.java [deleted file]
server/src/com/vaadin/ui/renderer/DateRenderer.java [deleted file]
server/src/com/vaadin/ui/renderer/HtmlRenderer.java [deleted file]
server/src/com/vaadin/ui/renderer/ImageRenderer.java [deleted file]
server/src/com/vaadin/ui/renderer/NumberRenderer.java [deleted file]
server/src/com/vaadin/ui/renderer/ProgressBarRenderer.java [deleted file]
server/src/com/vaadin/ui/renderer/Renderer.java [deleted file]
server/src/com/vaadin/ui/renderer/TextRenderer.java [deleted file]
server/src/com/vaadin/ui/renderers/AbstractJavaScriptRenderer.java [new file with mode: 0644]
server/src/com/vaadin/ui/renderers/ButtonRenderer.java [new file with mode: 0644]
server/src/com/vaadin/ui/renderers/ClickableRenderer.java [new file with mode: 0644]
server/src/com/vaadin/ui/renderers/DateRenderer.java [new file with mode: 0644]
server/src/com/vaadin/ui/renderers/HtmlRenderer.java [new file with mode: 0644]
server/src/com/vaadin/ui/renderers/ImageRenderer.java [new file with mode: 0644]
server/src/com/vaadin/ui/renderers/NumberRenderer.java [new file with mode: 0644]
server/src/com/vaadin/ui/renderers/ProgressBarRenderer.java [new file with mode: 0644]
server/src/com/vaadin/ui/renderers/Renderer.java [new file with mode: 0644]
server/src/com/vaadin/ui/renderers/TextRenderer.java [new file with mode: 0644]
server/tests/src/com/vaadin/tests/server/renderer/ImageRendererTest.java
server/tests/src/com/vaadin/tests/server/renderer/RendererTest.java
uitest/src/com/vaadin/tests/components/grid/GridColspans.java
uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidth.java
uitest/src/com/vaadin/tests/components/grid/MyBeanJSRenderer.java
uitest/src/com/vaadin/tests/components/grid/WidgetRenderers.java
uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeatures.java

index 44c34e3bf403af9005c57a0789e8e29d72e82af2..094ca24b5a76f5874754696526d64500ee982964 100644 (file)
@@ -28,7 +28,7 @@ import elemental.json.JsonObject;
  * @since 7.4
  * @author Vaadin Ltd
  */
-@Connect(com.vaadin.ui.renderer.ButtonRenderer.class)
+@Connect(com.vaadin.ui.renderers.ButtonRenderer.class)
 public class ButtonRendererConnector extends ClickableRendererConnector<String> {
 
     @Override
index 30d1db345da4dc1934401971a240bcff72d33e38..c861df63693151237b79fb479b76f33e182816b9 100644 (file)
@@ -28,7 +28,7 @@ import com.vaadin.shared.ui.Connect;
  * @since 7.4
  * @author Vaadin Ltd
  */
-@Connect(com.vaadin.ui.renderer.DateRenderer.class)
+@Connect(com.vaadin.ui.renderers.DateRenderer.class)
 public class DateRendererConnector extends TextRendererConnector {
     // No implementation needed
 }
index 9000ebb1c283d8b4a4b147a43e065d342a1e359a..ef54daaaa17b55a532066d118b18c0b7b69b4f41 100644 (file)
@@ -32,7 +32,7 @@ import elemental.json.JsonValue;
  * @since 7.4
  * @author Vaadin Ltd
  */
-@Connect(com.vaadin.ui.renderer.ImageRenderer.class)
+@Connect(com.vaadin.ui.renderers.ImageRenderer.class)
 public class ImageRendererConnector extends ClickableRendererConnector<String> {
 
     @Override
index 2670a3e184fe740529b176bac8482651b6ef05fb..112623d1fe8c6a757c4b70fa15f40670c453477a 100644 (file)
@@ -31,7 +31,7 @@ import com.vaadin.client.widget.grid.CellReference;
 import com.vaadin.client.widget.grid.RendererCellReference;
 import com.vaadin.shared.JavaScriptExtensionState;
 import com.vaadin.shared.ui.Connect;
-import com.vaadin.ui.renderer.AbstractJavaScriptRenderer;
+import com.vaadin.ui.renderers.AbstractJavaScriptRenderer;
 
 import elemental.json.JsonObject;
 import elemental.json.JsonValue;
index 84b319710dd5f0fd23253217398d8dcc5accd3f2..c044e0d6f10b92eb08f6a6f7dfa9d3e8e5f8a013 100644 (file)
@@ -29,7 +29,7 @@ import com.vaadin.shared.ui.Connect;
  * @since 7.4
  * @author Vaadin Ltd
  */
-@Connect(com.vaadin.ui.renderer.NumberRenderer.class)
+@Connect(com.vaadin.ui.renderers.NumberRenderer.class)
 public class NumberRendererConnector extends TextRendererConnector {
     // no implementation needed
 }
index fe410ccbe72d006cd8b9ca4ab970049b2534c226..9b5e8a96772623281d58eda95ec9b456a13d5a7e 100644 (file)
@@ -24,7 +24,7 @@ import com.vaadin.shared.ui.Connect;
  * @since 7.4
  * @author Vaadin Ltd
  */
-@Connect(com.vaadin.ui.renderer.ProgressBarRenderer.class)
+@Connect(com.vaadin.ui.renderers.ProgressBarRenderer.class)
 public class ProgressBarRendererConnector extends
         AbstractRendererConnector<Double> {
 
index 3059d3f8bb75cba66534a5b87e962e788d200a26..baf317510dfd52859a926808d94ea657ff71101d 100644 (file)
@@ -24,7 +24,7 @@ import com.vaadin.shared.ui.Connect;
  * @since 7.4
  * @author Vaadin Ltd
  */
-@Connect(com.vaadin.ui.renderer.TextRenderer.class)
+@Connect(com.vaadin.ui.renderers.TextRenderer.class)
 public class TextRendererConnector extends AbstractRendererConnector<String> {
 
     @Override
index 420f18427dfd8ac11fff2db9bbda12df2580a0de..72d8db3c4a52046051534a8f1dcc47e53da127e0 100644 (file)
@@ -25,7 +25,7 @@ import com.vaadin.shared.ui.Connect;
  * @since 7.4
  * @author Vaadin Ltd
  */
-@Connect(com.vaadin.ui.renderer.HtmlRenderer.class)
+@Connect(com.vaadin.ui.renderers.HtmlRenderer.class)
 public class UnsafeHtmlRendererConnector extends
         AbstractRendererConnector<String> {
 
index 630336816e32cf814e45e77400841ab07fa00676..924bd3de841ea249dcf7191e052a035c5b7564f8 100644 (file)
@@ -52,7 +52,7 @@ import com.vaadin.ui.Grid.CellStyleGenerator;
 import com.vaadin.ui.Grid.Column;
 import com.vaadin.ui.Grid.RowReference;
 import com.vaadin.ui.Grid.RowStyleGenerator;
-import com.vaadin.ui.renderer.Renderer;
+import com.vaadin.ui.renderers.Renderer;
 
 import elemental.json.Json;
 import elemental.json.JsonArray;
index bbae501782c65391d4302489f470d4132adbb371..a668c42be10d823ceab6866a391b4d94bda99e66 100644 (file)
@@ -90,8 +90,8 @@ import com.vaadin.shared.ui.grid.GridStaticSectionState.RowState;
 import com.vaadin.shared.ui.grid.HeightMode;
 import com.vaadin.shared.ui.grid.ScrollDestination;
 import com.vaadin.shared.util.SharedUtil;
-import com.vaadin.ui.renderer.Renderer;
-import com.vaadin.ui.renderer.TextRenderer;
+import com.vaadin.ui.renderers.Renderer;
+import com.vaadin.ui.renderers.TextRenderer;
 import com.vaadin.util.ReflectTools;
 
 import elemental.json.Json;
diff --git a/server/src/com/vaadin/ui/renderer/AbstractJavaScriptRenderer.java b/server/src/com/vaadin/ui/renderer/AbstractJavaScriptRenderer.java
deleted file mode 100644 (file)
index 8fabded..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * 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.ui.renderer;
-
-import com.vaadin.server.AbstractJavaScriptExtension;
-import com.vaadin.server.JavaScriptCallbackHelper;
-import com.vaadin.shared.JavaScriptExtensionState;
-import com.vaadin.shared.communication.ServerRpc;
-import com.vaadin.ui.Grid.AbstractRenderer;
-import com.vaadin.ui.JavaScriptFunction;
-
-/**
- * Base class for Renderers with all client-side logic implemented using
- * JavaScript.
- * <p>
- * When a new JavaScript renderer is initialized in the browser, the framework
- * will look for a globally defined JavaScript function that will initialize the
- * renderer. The name of the initialization function is formed by replacing .
- * with _ in the name of the server-side class. If no such function is defined,
- * each super class is used in turn until a match is found. The framework will
- * thus first attempt with <code>com_example_MyRenderer</code> for the
- * server-side
- * <code>com.example.MyRenderer extends AbstractJavaScriptRenderer</code> class.
- * If MyRenderer instead extends <code>com.example.SuperRenderer</code> , then
- * <code>com_example_SuperRenderer</code> will also be attempted if
- * <code>com_example_MyRenderer</code> has not been defined.
- * <p>
- * 
- * In addition to the general JavaScript extension functionality explained in
- * {@link AbstractJavaScriptExtension}, this class also provides some
- * functionality specific for renderers.
- * <p>
- * The initialization function will be called with <code>this</code> pointing to
- * a connector wrapper object providing integration to Vaadin with the following
- * functions:
- * <ul>
- * <li><code>getRowKey(rowIndex)</code> - Gets a unique identifier for the row
- * at the given index. This identifier can be used on the server to retrieve the
- * corresponding ItemId using {@link #getItemId(String)}.</li>
- * </ul>
- * The connector wrapper also supports these special functions that can be
- * implemented by the connector:
- * <ul>
- * <li><code>render(cell, data)</code> - Callback for rendering the given data
- * into the given cell. The structure of cell and data are described in separate
- * sections below. The renderer is required to implement this function.
- * Corresponds to
- * {@link com.vaadin.client.renderers.Renderer#render(com.vaadin.client.widget.grid.RendererCellReference, Object)}
- * .</li>
- * <li><code>init(cell)</code> - Prepares a cell for rendering. Corresponds to
- * {@link com.vaadin.client.renderers.ComplexRenderer#init(com.vaadin.client.widget.grid.RendererCellReference)}
- * .</li>
- * <li><code>destory(cell)</code> - Allows the renderer to release resources
- * allocate for a cell that will no longer be used. Corresponds to
- * {@link com.vaadin.client.renderers.ComplexRenderer#destroy(com.vaadin.client.widget.grid.RendererCellReference)}
- * .</li>
- * <li><code>onActivate(cell)</code> - Called when the cell is activated by the
- * user e.g. by double clicking on the cell or pressing enter with the cell
- * focused. Corresponds to
- * {@link com.vaadin.client.renderers.ComplexRenderer#onActivate(com.vaadin.client.widget.grid.CellReference)}
- * .</li>
- * <li><code>getConsumedEvents()</code> - Returns a JavaScript array of event
- * names that should cause onBrowserEvent to be invoked whenever an event is
- * fired for a cell managed by this renderer. Corresponds to
- * {@link com.vaadin.client.renderers.ComplexRenderer#getConsumedEvents()}.</li>
- * <li><code>onBrowserEvent(cell, event)</code> - Called by Grid when an event
- * of a type returned by getConsumedEvents is fired for a cell managed by this
- * renderer. Corresponds to
- * {@link com.vaadin.client.renderers.ComplexRenderer#onBrowserEvent(com.vaadin.client.widget.grid.CellReference, com.google.gwt.dom.client.NativeEvent)}
- * .</li>
- * </ul>
- * 
- * <p>
- * The cell object passed to functions defined by the renderer has these
- * properties:
- * <ul>
- * <li><code>element</code> - The DOM element corresponding to this cell.
- * Readonly.</li>
- * <li><code>rowIndex</code> - The current index of the row of this cell.
- * Readonly.</li>
- * <li><code>columnIndex</code> - The current index of the column of this cell.
- * Readonly.</li>
- * <li><code>colSpan</code> - The number of columns spanned by this cell. Only
- * supported in the object passed to the <code>render</code> function - other
- * functions should not use the property. Readable and writable.
- * </ul>
- * 
- * @author Vaadin Ltd
- * @since 7.4
- */
-public abstract class AbstractJavaScriptRenderer<T> extends AbstractRenderer<T> {
-    private JavaScriptCallbackHelper callbackHelper = new JavaScriptCallbackHelper(
-            this);
-
-    protected AbstractJavaScriptRenderer(Class<T> presentationType) {
-        super(presentationType);
-    }
-
-    @Override
-    protected <R extends ServerRpc> void registerRpc(R implementation,
-            Class<R> rpcInterfaceType) {
-        super.registerRpc(implementation, rpcInterfaceType);
-        callbackHelper.registerRpc(rpcInterfaceType);
-    }
-
-    /**
-     * Register a {@link JavaScriptFunction} that can be called from the
-     * JavaScript using the provided name. A JavaScript function with the
-     * provided name will be added to the connector wrapper object (initially
-     * available as <code>this</code>). Calling that JavaScript function will
-     * cause the call method in the registered {@link JavaScriptFunction} to be
-     * invoked with the same arguments.
-     * 
-     * @param functionName
-     *            the name that should be used for client-side callback
-     * @param function
-     *            the {@link JavaScriptFunction} object that will be invoked
-     *            when the JavaScript function is called
-     */
-    protected void addFunction(String functionName, JavaScriptFunction function) {
-        callbackHelper.registerCallback(functionName, function);
-    }
-
-    /**
-     * Invoke a named function that the connector JavaScript has added to the
-     * JavaScript connector wrapper object. The arguments should only contain
-     * data types that can be represented in JavaScript including primitives,
-     * their boxed types, arrays, String, List, Set, Map, Connector and
-     * JavaBeans.
-     * 
-     * @param name
-     *            the name of the function
-     * @param arguments
-     *            function arguments
-     */
-    protected void callFunction(String name, Object... arguments) {
-        callbackHelper.invokeCallback(name, arguments);
-    }
-
-    @Override
-    protected JavaScriptExtensionState getState() {
-        return (JavaScriptExtensionState) super.getState();
-    }
-}
diff --git a/server/src/com/vaadin/ui/renderer/ButtonRenderer.java b/server/src/com/vaadin/ui/renderer/ButtonRenderer.java
deleted file mode 100644 (file)
index b081979..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.ui.renderer;
-
-/**
- * A Renderer that displays a button with a textual caption. The value of the
- * corresponding property is used as the caption. Click listeners can be added
- * to the renderer, invoked when any of the rendered buttons is clicked.
- * 
- * @since 7.4
- * @author Vaadin Ltd
- */
-public class ButtonRenderer extends ClickableRenderer<String> {
-
-    /**
-     * Creates a new button renderer.
-     */
-    public ButtonRenderer() {
-        super(String.class);
-    }
-
-    /**
-     * Creates a new button renderer and adds the given click listener to it.
-     * 
-     * @param listener
-     *            the click listener to register
-     */
-    public ButtonRenderer(RendererClickListener listener) {
-        this();
-        addClickListener(listener);
-    }
-}
diff --git a/server/src/com/vaadin/ui/renderer/ClickableRenderer.java b/server/src/com/vaadin/ui/renderer/ClickableRenderer.java
deleted file mode 100644 (file)
index d640ce8..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * 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.ui.renderer;
-
-import java.lang.reflect.Method;
-
-import com.vaadin.event.ConnectorEventListener;
-import com.vaadin.event.MouseEvents.ClickEvent;
-import com.vaadin.shared.MouseEventDetails;
-import com.vaadin.shared.ui.grid.renderers.RendererClickRpc;
-import com.vaadin.ui.Grid;
-import com.vaadin.ui.Grid.AbstractRenderer;
-import com.vaadin.ui.Grid.Column;
-import com.vaadin.util.ReflectTools;
-
-/**
- * An abstract superclass for Renderers that render clickable items. Click
- * listeners can be added to a renderer to be notified when any of the rendered
- * items is clicked.
- * 
- * @param <T>
- *            the type presented by the renderer
- * 
- * @since 7.4
- * @author Vaadin Ltd
- */
-public class ClickableRenderer<T> extends AbstractRenderer<T> {
-
-    /**
-     * An interface for listening to {@link RendererClickEvent renderer click
-     * events}.
-     * 
-     * @see {@link ButtonRenderer#addClickListener(RendererClickListener)}
-     */
-    public interface RendererClickListener extends ConnectorEventListener {
-
-        static final Method CLICK_METHOD = ReflectTools.findMethod(
-                RendererClickListener.class, "click", RendererClickEvent.class);
-
-        /**
-         * Called when a rendered button is clicked.
-         * 
-         * @param event
-         *            the event representing the click
-         */
-        void click(RendererClickEvent event);
-    }
-
-    /**
-     * An event fired when a button rendered by a ButtonRenderer is clicked.
-     */
-    public static class RendererClickEvent extends ClickEvent {
-
-        private Object itemId;
-        private Column column;
-
-        protected RendererClickEvent(Grid source, Object itemId, Column column,
-                MouseEventDetails mouseEventDetails) {
-            super(source, mouseEventDetails);
-            this.itemId = itemId;
-            this.column = column;
-        }
-
-        /**
-         * Returns the item ID of the row where the click event originated.
-         * 
-         * @return the item ID of the clicked row
-         */
-        public Object getItemId() {
-            return itemId;
-        }
-
-        /**
-         * Returns the {@link Column} where the click event originated.
-         * 
-         * @return the column of the click event
-         */
-        public Column getColumn() {
-            return column;
-        }
-
-        /**
-         * Returns the property ID where the click event originated.
-         * 
-         * @return the property ID of the clicked cell
-         */
-        public Object getPropertyId() {
-            return column.getPropertyId();
-        }
-    }
-
-    protected ClickableRenderer(Class<T> presentationType) {
-        super(presentationType);
-        registerRpc(new RendererClickRpc() {
-            @Override
-            public void click(String rowKey, String columnId,
-                    MouseEventDetails mouseDetails) {
-                fireEvent(new RendererClickEvent(getParentGrid(),
-                        getItemId(rowKey), getColumn(columnId), mouseDetails));
-            }
-        });
-    }
-
-    /**
-     * Adds a click listener to this button renderer. The listener is invoked
-     * every time one of the buttons rendered by this renderer is clicked.
-     * 
-     * @param listener
-     *            the click listener to be added
-     */
-    public void addClickListener(RendererClickListener listener) {
-        addListener(RendererClickEvent.class, listener,
-                RendererClickListener.CLICK_METHOD);
-    }
-
-    /**
-     * Removes the given click listener from this renderer.
-     * 
-     * @param listener
-     *            the click listener to be removed
-     */
-    public void removeClickListener(RendererClickListener listener) {
-        removeListener(RendererClickEvent.class, listener);
-    }
-}
diff --git a/server/src/com/vaadin/ui/renderer/DateRenderer.java b/server/src/com/vaadin/ui/renderer/DateRenderer.java
deleted file mode 100644 (file)
index d3d2df5..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * 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.ui.renderer;
-
-import java.text.DateFormat;
-import java.util.Date;
-import java.util.Locale;
-
-import com.vaadin.ui.Grid.AbstractRenderer;
-
-import elemental.json.JsonValue;
-
-/**
- * A renderer for presenting date values.
- * 
- * @since 7.4
- * @author Vaadin Ltd
- */
-public class DateRenderer extends AbstractRenderer<Date> {
-    private final Locale locale;
-    private final String formatString;
-    private final DateFormat dateFormat;
-
-    /**
-     * Creates a new date renderer.
-     * <p>
-     * The renderer is configured to render with the {@link Date#toString()}
-     * representation for the default locale.
-     */
-    public DateRenderer() {
-        this(Locale.getDefault());
-    }
-
-    /**
-     * Creates a new date renderer.
-     * <p>
-     * The renderer is configured to render with the {@link Date#toString()}
-     * representation for the given locale.
-     * 
-     * @param locale
-     *            the locale in which to present dates
-     * @throws IllegalArgumentException
-     *             if {@code locale} is {@code null}
-     */
-    public DateRenderer(Locale locale) throws IllegalArgumentException {
-        this("%s", locale);
-    }
-
-    /**
-     * Creates a new date renderer.
-     * <p>
-     * The renderer is configured to render with the given string format, as
-     * displayed in the default locale.
-     * 
-     * @param formatString
-     *            the format string with which to format the date
-     * @throws IllegalArgumentException
-     *             if {@code formatString} is {@code null}
-     * @see <a
-     *      href="http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax">Format
-     *      String Syntax</a>
-     */
-    public DateRenderer(String formatString) throws IllegalArgumentException {
-        this(formatString, Locale.getDefault());
-    }
-
-    /**
-     * Creates a new date renderer.
-     * <p>
-     * The renderer is configured to render with the given string format, as
-     * displayed in the given locale.
-     * 
-     * @param formatString
-     *            the format string to format the date with
-     * @param locale
-     *            the locale to use
-     * @throws IllegalArgumentException
-     *             if either argument is {@code null}
-     * @see <a
-     *      href="http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax">Format
-     *      String Syntax</a>
-     */
-    public DateRenderer(String formatString, Locale locale)
-            throws IllegalArgumentException {
-        super(Date.class);
-
-        if (formatString == null) {
-            throw new IllegalArgumentException("format string may not be null");
-        }
-
-        if (locale == null) {
-            throw new IllegalArgumentException("locale may not be null");
-        }
-
-        this.locale = locale;
-        this.formatString = formatString;
-        dateFormat = null;
-    }
-
-    /**
-     * Creates a new date renderer.
-     * <p>
-     * The renderer is configured to render with he given date format.
-     * 
-     * @param dateFormat
-     *            the date format to use when rendering dates
-     * @throws IllegalArgumentException
-     *             if {@code dateFormat} is {@code null}
-     */
-    public DateRenderer(DateFormat dateFormat) throws IllegalArgumentException {
-        super(Date.class);
-        if (dateFormat == null) {
-            throw new IllegalArgumentException("date format may not be null");
-        }
-
-        locale = null;
-        formatString = null;
-        this.dateFormat = dateFormat;
-    }
-
-    @Override
-    public JsonValue encode(Date value) {
-        String dateString;
-        if (dateFormat != null) {
-            dateString = dateFormat.format(value);
-        } else {
-            dateString = String.format(locale, formatString, value);
-        }
-        return encode(dateString, String.class);
-    }
-
-    @Override
-    public String toString() {
-        final String fieldInfo;
-        if (dateFormat != null) {
-            fieldInfo = "dateFormat: " + dateFormat.toString();
-        } else {
-            fieldInfo = "locale: " + locale + ", formatString: " + formatString;
-        }
-
-        return String.format("%s [%s]", getClass().getSimpleName(), fieldInfo);
-    }
-}
diff --git a/server/src/com/vaadin/ui/renderer/HtmlRenderer.java b/server/src/com/vaadin/ui/renderer/HtmlRenderer.java
deleted file mode 100644 (file)
index 02d153d..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.ui.renderer;
-
-import com.vaadin.ui.Grid.AbstractRenderer;
-
-/**
- * A renderer for presenting HTML content.
- * 
- * @since 7.4
- * @author Vaadin Ltd
- */
-public class HtmlRenderer extends AbstractRenderer<String> {
-    /**
-     * Creates a new HTML renderer.
-     */
-    public HtmlRenderer() {
-        super(String.class);
-    }
-}
diff --git a/server/src/com/vaadin/ui/renderer/ImageRenderer.java b/server/src/com/vaadin/ui/renderer/ImageRenderer.java
deleted file mode 100644 (file)
index 3ef3eed..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.ui.renderer;
-
-import com.vaadin.server.ExternalResource;
-import com.vaadin.server.Resource;
-import com.vaadin.server.ResourceReference;
-import com.vaadin.server.ThemeResource;
-import com.vaadin.shared.communication.URLReference;
-
-import elemental.json.JsonValue;
-
-/**
- * A renderer for presenting images.
- * <p>
- * The image for each rendered cell is read from a Resource-typed property in
- * the data source. Only {@link ExternalResource}s and {@link ThemeResource}s
- * are currently supported.
- * 
- * @since 7.4
- * @author Vaadin Ltd
- */
-public class ImageRenderer extends ClickableRenderer<Resource> {
-
-    /**
-     * Creates a new image renderer.
-     */
-    public ImageRenderer() {
-        super(Resource.class);
-    }
-
-    /**
-     * Creates a new image renderer and adds the given click listener to it.
-     * 
-     * @param listener
-     *            the click listener to register
-     */
-    public ImageRenderer(RendererClickListener listener) {
-        this();
-        addClickListener(listener);
-    }
-
-    @Override
-    public JsonValue encode(Resource resource) {
-        if (!(resource instanceof ExternalResource || resource instanceof ThemeResource)) {
-            throw new IllegalArgumentException(
-                    "ImageRenderer only supports ExternalResource and ThemeResource ("
-                            + resource.getClass().getSimpleName() + "given )");
-        }
-
-        return encode(ResourceReference.create(resource, this, null),
-                URLReference.class);
-    }
-}
diff --git a/server/src/com/vaadin/ui/renderer/NumberRenderer.java b/server/src/com/vaadin/ui/renderer/NumberRenderer.java
deleted file mode 100644 (file)
index 3406e18..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * 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.ui.renderer;
-
-import java.text.NumberFormat;
-import java.util.Locale;
-
-import com.vaadin.ui.Grid.AbstractRenderer;
-
-import elemental.json.JsonValue;
-
-/**
- * A renderer for presenting number values.
- * 
- * @since 7.4
- * @author Vaadin Ltd
- */
-public class NumberRenderer extends AbstractRenderer<Number> {
-    private final Locale locale;
-    private final NumberFormat numberFormat;
-    private final String formatString;
-
-    /**
-     * Creates a new number renderer.
-     * <p>
-     * The renderer is configured to render with the number's natural string
-     * representation in the default locale.
-     */
-    public NumberRenderer() {
-        this(Locale.getDefault());
-    }
-
-    /**
-     * Creates a new number renderer.
-     * <p>
-     * The renderer is configured to render the number as defined with the given
-     * number format.
-     * 
-     * @param numberFormat
-     *            the number format with which to display numbers
-     * @throws IllegalArgumentException
-     *             if {@code numberFormat} is {@code null}
-     */
-    public NumberRenderer(NumberFormat numberFormat)
-            throws IllegalArgumentException {
-        super(Number.class);
-
-        if (numberFormat == null) {
-            throw new IllegalArgumentException("Number format may not be null");
-        }
-
-        locale = null;
-        this.numberFormat = numberFormat;
-        formatString = null;
-    }
-
-    /**
-     * Creates a new number renderer.
-     * <p>
-     * The renderer is configured to render with the number's natural string
-     * representation in the given locale.
-     * 
-     * @param locale
-     *            the locale in which to display numbers
-     * @throws IllegalArgumentException
-     *             if {@code locale} is {@code null}
-     */
-    public NumberRenderer(Locale locale) throws IllegalArgumentException {
-        this("%s", locale);
-    }
-
-    /**
-     * Creates a new number renderer.
-     * <p>
-     * The renderer is configured to render with the given format string in the
-     * default locale.
-     * 
-     * @param formatString
-     *            the format string with which to format the number
-     * @throws IllegalArgumentException
-     *             if {@code formatString} is {@code null}
-     * @see <a
-     *      href="http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax">Format
-     *      String Syntax</a>
-     */
-    public NumberRenderer(String formatString) throws IllegalArgumentException {
-        this(formatString, Locale.getDefault());
-    }
-
-    /**
-     * Creates a new number renderer.
-     * <p>
-     * The renderer is configured to render with the given format string in the
-     * given locale.
-     * 
-     * @param formatString
-     *            the format string with which to format the number
-     * @param locale
-     *            the locale in which to present numbers
-     * @throws IllegalArgumentException
-     *             if either argument is {@code null}
-     * @see <a
-     *      href="http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax">Format
-     *      String Syntax</a>
-     */
-    public NumberRenderer(String formatString, Locale locale) {
-        super(Number.class);
-
-        if (formatString == null) {
-            throw new IllegalArgumentException("Format string may not be null");
-        }
-
-        if (locale == null) {
-            throw new IllegalArgumentException("Locale may not be null");
-        }
-
-        this.locale = locale;
-        numberFormat = null;
-        this.formatString = formatString;
-    }
-
-    @Override
-    public JsonValue encode(Number value) {
-        String stringValue;
-        if (formatString != null && locale != null) {
-            stringValue = String.format(locale, formatString, value);
-        } else if (numberFormat != null) {
-            stringValue = numberFormat.format(value);
-        } else {
-            throw new IllegalStateException(String.format("Internal bug: "
-                    + "%s is in an illegal state: "
-                    + "[locale: %s, numberFormat: %s, formatString: %s]",
-                    getClass().getSimpleName(), locale, numberFormat,
-                    formatString));
-        }
-        return encode(stringValue, String.class);
-    }
-
-    @Override
-    public String toString() {
-        final String fieldInfo;
-        if (numberFormat != null) {
-            fieldInfo = "numberFormat: " + numberFormat.toString();
-        } else {
-            fieldInfo = "locale: " + locale + ", formatString: " + formatString;
-        }
-
-        return String.format("%s [%s]", getClass().getSimpleName(), fieldInfo);
-    }
-}
diff --git a/server/src/com/vaadin/ui/renderer/ProgressBarRenderer.java b/server/src/com/vaadin/ui/renderer/ProgressBarRenderer.java
deleted file mode 100644 (file)
index 9bdc0b2..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.ui.renderer;
-
-import com.vaadin.ui.Grid.AbstractRenderer;
-
-import elemental.json.JsonValue;
-
-/**
- * A renderer that represents a double values as a graphical progress bar.
- * 
- * @since 7.4
- * @author Vaadin Ltd
- */
-public class ProgressBarRenderer extends AbstractRenderer<Double> {
-
-    /**
-     * Creates a new text renderer
-     */
-    public ProgressBarRenderer() {
-        super(Double.class);
-    }
-
-    @Override
-    public JsonValue encode(Double value) {
-        if (value != null) {
-            value = Math.max(Math.min(value, 1), 0);
-        }
-        return super.encode(value);
-    }
-}
diff --git a/server/src/com/vaadin/ui/renderer/Renderer.java b/server/src/com/vaadin/ui/renderer/Renderer.java
deleted file mode 100644 (file)
index cab1cdf..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.ui.renderer;
-
-import com.vaadin.server.ClientConnector;
-import com.vaadin.server.Extension;
-
-import elemental.json.JsonValue;
-
-/**
- * A ClientConnector for controlling client-side
- * {@link com.vaadin.client.widget.grid.Renderer Grid renderers}. Renderers
- * currently extend the Extension interface, but this fact should be regarded as
- * an implementation detail and subject to change in a future major or minor
- * Vaadin revision.
- * 
- * @param <T>
- *            the type this renderer knows how to present
- * 
- * @since 7.4
- * @author Vaadin Ltd
- */
-public interface Renderer<T> extends Extension {
-
-    /**
-     * Returns the class literal corresponding to the presentation type T.
-     * 
-     * @return the class literal of T
-     */
-    Class<T> getPresentationType();
-
-    /**
-     * Encodes the given value into a {@link JsonValue}.
-     * 
-     * @param value
-     *            the value to encode
-     * @return a JSON representation of the given value
-     */
-    JsonValue encode(T value);
-
-    /**
-     * This method is inherited from Extension but should never be called
-     * directly with a Renderer.
-     */
-    @Override
-    @Deprecated
-    void remove();
-
-    /**
-     * This method is inherited from Extension but should never be called
-     * directly with a Renderer.
-     */
-    @Override
-    @Deprecated
-    void setParent(ClientConnector parent);
-}
diff --git a/server/src/com/vaadin/ui/renderer/TextRenderer.java b/server/src/com/vaadin/ui/renderer/TextRenderer.java
deleted file mode 100644 (file)
index 154a09c..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.ui.renderer;
-
-import com.vaadin.ui.Grid.AbstractRenderer;
-
-/**
- * A renderer for presenting simple plain-text string values.
- * 
- * @since 7.4
- * @author Vaadin Ltd
- */
-public class TextRenderer extends AbstractRenderer<String> {
-
-    /**
-     * Creates a new text renderer
-     */
-    public TextRenderer() {
-        super(String.class);
-    }
-}
diff --git a/server/src/com/vaadin/ui/renderers/AbstractJavaScriptRenderer.java b/server/src/com/vaadin/ui/renderers/AbstractJavaScriptRenderer.java
new file mode 100644 (file)
index 0000000..bed34cf
--- /dev/null
@@ -0,0 +1,157 @@
+/*
+ * 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.ui.renderers;
+
+import com.vaadin.server.AbstractJavaScriptExtension;
+import com.vaadin.server.JavaScriptCallbackHelper;
+import com.vaadin.shared.JavaScriptExtensionState;
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.ui.Grid.AbstractRenderer;
+import com.vaadin.ui.JavaScriptFunction;
+
+/**
+ * Base class for Renderers with all client-side logic implemented using
+ * JavaScript.
+ * <p>
+ * When a new JavaScript renderer is initialized in the browser, the framework
+ * will look for a globally defined JavaScript function that will initialize the
+ * renderer. The name of the initialization function is formed by replacing .
+ * with _ in the name of the server-side class. If no such function is defined,
+ * each super class is used in turn until a match is found. The framework will
+ * thus first attempt with <code>com_example_MyRenderer</code> for the
+ * server-side
+ * <code>com.example.MyRenderer extends AbstractJavaScriptRenderer</code> class.
+ * If MyRenderer instead extends <code>com.example.SuperRenderer</code> , then
+ * <code>com_example_SuperRenderer</code> will also be attempted if
+ * <code>com_example_MyRenderer</code> has not been defined.
+ * <p>
+ * 
+ * In addition to the general JavaScript extension functionality explained in
+ * {@link AbstractJavaScriptExtension}, this class also provides some
+ * functionality specific for renderers.
+ * <p>
+ * The initialization function will be called with <code>this</code> pointing to
+ * a connector wrapper object providing integration to Vaadin with the following
+ * functions:
+ * <ul>
+ * <li><code>getRowKey(rowIndex)</code> - Gets a unique identifier for the row
+ * at the given index. This identifier can be used on the server to retrieve the
+ * corresponding ItemId using {@link #getItemId(String)}.</li>
+ * </ul>
+ * The connector wrapper also supports these special functions that can be
+ * implemented by the connector:
+ * <ul>
+ * <li><code>render(cell, data)</code> - Callback for rendering the given data
+ * into the given cell. The structure of cell and data are described in separate
+ * sections below. The renderer is required to implement this function.
+ * Corresponds to
+ * {@link com.vaadin.client.renderers.Renderer#render(com.vaadin.client.widget.grid.RendererCellReference, Object)}
+ * .</li>
+ * <li><code>init(cell)</code> - Prepares a cell for rendering. Corresponds to
+ * {@link com.vaadin.client.renderers.ComplexRenderer#init(com.vaadin.client.widget.grid.RendererCellReference)}
+ * .</li>
+ * <li><code>destory(cell)</code> - Allows the renderer to release resources
+ * allocate for a cell that will no longer be used. Corresponds to
+ * {@link com.vaadin.client.renderers.ComplexRenderer#destroy(com.vaadin.client.widget.grid.RendererCellReference)}
+ * .</li>
+ * <li><code>onActivate(cell)</code> - Called when the cell is activated by the
+ * user e.g. by double clicking on the cell or pressing enter with the cell
+ * focused. Corresponds to
+ * {@link com.vaadin.client.renderers.ComplexRenderer#onActivate(com.vaadin.client.widget.grid.CellReference)}
+ * .</li>
+ * <li><code>getConsumedEvents()</code> - Returns a JavaScript array of event
+ * names that should cause onBrowserEvent to be invoked whenever an event is
+ * fired for a cell managed by this renderer. Corresponds to
+ * {@link com.vaadin.client.renderers.ComplexRenderer#getConsumedEvents()}.</li>
+ * <li><code>onBrowserEvent(cell, event)</code> - Called by Grid when an event
+ * of a type returned by getConsumedEvents is fired for a cell managed by this
+ * renderer. Corresponds to
+ * {@link com.vaadin.client.renderers.ComplexRenderer#onBrowserEvent(com.vaadin.client.widget.grid.CellReference, com.google.gwt.dom.client.NativeEvent)}
+ * .</li>
+ * </ul>
+ * 
+ * <p>
+ * The cell object passed to functions defined by the renderer has these
+ * properties:
+ * <ul>
+ * <li><code>element</code> - The DOM element corresponding to this cell.
+ * Readonly.</li>
+ * <li><code>rowIndex</code> - The current index of the row of this cell.
+ * Readonly.</li>
+ * <li><code>columnIndex</code> - The current index of the column of this cell.
+ * Readonly.</li>
+ * <li><code>colSpan</code> - The number of columns spanned by this cell. Only
+ * supported in the object passed to the <code>render</code> function - other
+ * functions should not use the property. Readable and writable.
+ * </ul>
+ * 
+ * @author Vaadin Ltd
+ * @since 7.4
+ */
+public abstract class AbstractJavaScriptRenderer<T> extends AbstractRenderer<T> {
+    private JavaScriptCallbackHelper callbackHelper = new JavaScriptCallbackHelper(
+            this);
+
+    protected AbstractJavaScriptRenderer(Class<T> presentationType) {
+        super(presentationType);
+    }
+
+    @Override
+    protected <R extends ServerRpc> void registerRpc(R implementation,
+            Class<R> rpcInterfaceType) {
+        super.registerRpc(implementation, rpcInterfaceType);
+        callbackHelper.registerRpc(rpcInterfaceType);
+    }
+
+    /**
+     * Register a {@link JavaScriptFunction} that can be called from the
+     * JavaScript using the provided name. A JavaScript function with the
+     * provided name will be added to the connector wrapper object (initially
+     * available as <code>this</code>). Calling that JavaScript function will
+     * cause the call method in the registered {@link JavaScriptFunction} to be
+     * invoked with the same arguments.
+     * 
+     * @param functionName
+     *            the name that should be used for client-side callback
+     * @param function
+     *            the {@link JavaScriptFunction} object that will be invoked
+     *            when the JavaScript function is called
+     */
+    protected void addFunction(String functionName, JavaScriptFunction function) {
+        callbackHelper.registerCallback(functionName, function);
+    }
+
+    /**
+     * Invoke a named function that the connector JavaScript has added to the
+     * JavaScript connector wrapper object. The arguments should only contain
+     * data types that can be represented in JavaScript including primitives,
+     * their boxed types, arrays, String, List, Set, Map, Connector and
+     * JavaBeans.
+     * 
+     * @param name
+     *            the name of the function
+     * @param arguments
+     *            function arguments
+     */
+    protected void callFunction(String name, Object... arguments) {
+        callbackHelper.invokeCallback(name, arguments);
+    }
+
+    @Override
+    protected JavaScriptExtensionState getState() {
+        return (JavaScriptExtensionState) super.getState();
+    }
+}
diff --git a/server/src/com/vaadin/ui/renderers/ButtonRenderer.java b/server/src/com/vaadin/ui/renderers/ButtonRenderer.java
new file mode 100644 (file)
index 0000000..0b070d3
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * 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.ui.renderers;
+
+/**
+ * A Renderer that displays a button with a textual caption. The value of the
+ * corresponding property is used as the caption. Click listeners can be added
+ * to the renderer, invoked when any of the rendered buttons is clicked.
+ * 
+ * @since 7.4
+ * @author Vaadin Ltd
+ */
+public class ButtonRenderer extends ClickableRenderer<String> {
+
+    /**
+     * Creates a new button renderer.
+     */
+    public ButtonRenderer() {
+        super(String.class);
+    }
+
+    /**
+     * Creates a new button renderer and adds the given click listener to it.
+     * 
+     * @param listener
+     *            the click listener to register
+     */
+    public ButtonRenderer(RendererClickListener listener) {
+        this();
+        addClickListener(listener);
+    }
+}
diff --git a/server/src/com/vaadin/ui/renderers/ClickableRenderer.java b/server/src/com/vaadin/ui/renderers/ClickableRenderer.java
new file mode 100644 (file)
index 0000000..38e9ace
--- /dev/null
@@ -0,0 +1,138 @@
+/*
+ * 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.ui.renderers;
+
+import java.lang.reflect.Method;
+
+import com.vaadin.event.ConnectorEventListener;
+import com.vaadin.event.MouseEvents.ClickEvent;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.grid.renderers.RendererClickRpc;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.Grid.AbstractRenderer;
+import com.vaadin.ui.Grid.Column;
+import com.vaadin.util.ReflectTools;
+
+/**
+ * An abstract superclass for Renderers that render clickable items. Click
+ * listeners can be added to a renderer to be notified when any of the rendered
+ * items is clicked.
+ * 
+ * @param <T>
+ *            the type presented by the renderer
+ * 
+ * @since 7.4
+ * @author Vaadin Ltd
+ */
+public class ClickableRenderer<T> extends AbstractRenderer<T> {
+
+    /**
+     * An interface for listening to {@link RendererClickEvent renderer click
+     * events}.
+     * 
+     * @see {@link ButtonRenderer#addClickListener(RendererClickListener)}
+     */
+    public interface RendererClickListener extends ConnectorEventListener {
+
+        static final Method CLICK_METHOD = ReflectTools.findMethod(
+                RendererClickListener.class, "click", RendererClickEvent.class);
+
+        /**
+         * Called when a rendered button is clicked.
+         * 
+         * @param event
+         *            the event representing the click
+         */
+        void click(RendererClickEvent event);
+    }
+
+    /**
+     * An event fired when a button rendered by a ButtonRenderer is clicked.
+     */
+    public static class RendererClickEvent extends ClickEvent {
+
+        private Object itemId;
+        private Column column;
+
+        protected RendererClickEvent(Grid source, Object itemId, Column column,
+                MouseEventDetails mouseEventDetails) {
+            super(source, mouseEventDetails);
+            this.itemId = itemId;
+            this.column = column;
+        }
+
+        /**
+         * Returns the item ID of the row where the click event originated.
+         * 
+         * @return the item ID of the clicked row
+         */
+        public Object getItemId() {
+            return itemId;
+        }
+
+        /**
+         * Returns the {@link Column} where the click event originated.
+         * 
+         * @return the column of the click event
+         */
+        public Column getColumn() {
+            return column;
+        }
+
+        /**
+         * Returns the property ID where the click event originated.
+         * 
+         * @return the property ID of the clicked cell
+         */
+        public Object getPropertyId() {
+            return column.getPropertyId();
+        }
+    }
+
+    protected ClickableRenderer(Class<T> presentationType) {
+        super(presentationType);
+        registerRpc(new RendererClickRpc() {
+            @Override
+            public void click(String rowKey, String columnId,
+                    MouseEventDetails mouseDetails) {
+                fireEvent(new RendererClickEvent(getParentGrid(),
+                        getItemId(rowKey), getColumn(columnId), mouseDetails));
+            }
+        });
+    }
+
+    /**
+     * Adds a click listener to this button renderer. The listener is invoked
+     * every time one of the buttons rendered by this renderer is clicked.
+     * 
+     * @param listener
+     *            the click listener to be added
+     */
+    public void addClickListener(RendererClickListener listener) {
+        addListener(RendererClickEvent.class, listener,
+                RendererClickListener.CLICK_METHOD);
+    }
+
+    /**
+     * Removes the given click listener from this renderer.
+     * 
+     * @param listener
+     *            the click listener to be removed
+     */
+    public void removeClickListener(RendererClickListener listener) {
+        removeListener(RendererClickEvent.class, listener);
+    }
+}
diff --git a/server/src/com/vaadin/ui/renderers/DateRenderer.java b/server/src/com/vaadin/ui/renderers/DateRenderer.java
new file mode 100644 (file)
index 0000000..9dd4d19
--- /dev/null
@@ -0,0 +1,156 @@
+/*
+ * 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.ui.renderers;
+
+import java.text.DateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+import com.vaadin.ui.Grid.AbstractRenderer;
+
+import elemental.json.JsonValue;
+
+/**
+ * A renderer for presenting date values.
+ * 
+ * @since 7.4
+ * @author Vaadin Ltd
+ */
+public class DateRenderer extends AbstractRenderer<Date> {
+    private final Locale locale;
+    private final String formatString;
+    private final DateFormat dateFormat;
+
+    /**
+     * Creates a new date renderer.
+     * <p>
+     * The renderer is configured to render with the {@link Date#toString()}
+     * representation for the default locale.
+     */
+    public DateRenderer() {
+        this(Locale.getDefault());
+    }
+
+    /**
+     * Creates a new date renderer.
+     * <p>
+     * The renderer is configured to render with the {@link Date#toString()}
+     * representation for the given locale.
+     * 
+     * @param locale
+     *            the locale in which to present dates
+     * @throws IllegalArgumentException
+     *             if {@code locale} is {@code null}
+     */
+    public DateRenderer(Locale locale) throws IllegalArgumentException {
+        this("%s", locale);
+    }
+
+    /**
+     * Creates a new date renderer.
+     * <p>
+     * The renderer is configured to render with the given string format, as
+     * displayed in the default locale.
+     * 
+     * @param formatString
+     *            the format string with which to format the date
+     * @throws IllegalArgumentException
+     *             if {@code formatString} is {@code null}
+     * @see <a
+     *      href="http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax">Format
+     *      String Syntax</a>
+     */
+    public DateRenderer(String formatString) throws IllegalArgumentException {
+        this(formatString, Locale.getDefault());
+    }
+
+    /**
+     * Creates a new date renderer.
+     * <p>
+     * The renderer is configured to render with the given string format, as
+     * displayed in the given locale.
+     * 
+     * @param formatString
+     *            the format string to format the date with
+     * @param locale
+     *            the locale to use
+     * @throws IllegalArgumentException
+     *             if either argument is {@code null}
+     * @see <a
+     *      href="http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax">Format
+     *      String Syntax</a>
+     */
+    public DateRenderer(String formatString, Locale locale)
+            throws IllegalArgumentException {
+        super(Date.class);
+
+        if (formatString == null) {
+            throw new IllegalArgumentException("format string may not be null");
+        }
+
+        if (locale == null) {
+            throw new IllegalArgumentException("locale may not be null");
+        }
+
+        this.locale = locale;
+        this.formatString = formatString;
+        dateFormat = null;
+    }
+
+    /**
+     * Creates a new date renderer.
+     * <p>
+     * The renderer is configured to render with he given date format.
+     * 
+     * @param dateFormat
+     *            the date format to use when rendering dates
+     * @throws IllegalArgumentException
+     *             if {@code dateFormat} is {@code null}
+     */
+    public DateRenderer(DateFormat dateFormat) throws IllegalArgumentException {
+        super(Date.class);
+        if (dateFormat == null) {
+            throw new IllegalArgumentException("date format may not be null");
+        }
+
+        locale = null;
+        formatString = null;
+        this.dateFormat = dateFormat;
+    }
+
+    @Override
+    public JsonValue encode(Date value) {
+        String dateString;
+        if (dateFormat != null) {
+            dateString = dateFormat.format(value);
+        } else {
+            dateString = String.format(locale, formatString, value);
+        }
+        return encode(dateString, String.class);
+    }
+
+    @Override
+    public String toString() {
+        final String fieldInfo;
+        if (dateFormat != null) {
+            fieldInfo = "dateFormat: " + dateFormat.toString();
+        } else {
+            fieldInfo = "locale: " + locale + ", formatString: " + formatString;
+        }
+
+        return String.format("%s [%s]", getClass().getSimpleName(), fieldInfo);
+    }
+}
diff --git a/server/src/com/vaadin/ui/renderers/HtmlRenderer.java b/server/src/com/vaadin/ui/renderers/HtmlRenderer.java
new file mode 100644 (file)
index 0000000..34774b3
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * 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.ui.renderers;
+
+import com.vaadin.ui.Grid.AbstractRenderer;
+
+/**
+ * A renderer for presenting HTML content.
+ * 
+ * @since 7.4
+ * @author Vaadin Ltd
+ */
+public class HtmlRenderer extends AbstractRenderer<String> {
+    /**
+     * Creates a new HTML renderer.
+     */
+    public HtmlRenderer() {
+        super(String.class);
+    }
+}
diff --git a/server/src/com/vaadin/ui/renderers/ImageRenderer.java b/server/src/com/vaadin/ui/renderers/ImageRenderer.java
new file mode 100644 (file)
index 0000000..4bb3671
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * 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.ui.renderers;
+
+import com.vaadin.server.ExternalResource;
+import com.vaadin.server.Resource;
+import com.vaadin.server.ResourceReference;
+import com.vaadin.server.ThemeResource;
+import com.vaadin.shared.communication.URLReference;
+
+import elemental.json.JsonValue;
+
+/**
+ * A renderer for presenting images.
+ * <p>
+ * The image for each rendered cell is read from a Resource-typed property in
+ * the data source. Only {@link ExternalResource}s and {@link ThemeResource}s
+ * are currently supported.
+ * 
+ * @since 7.4
+ * @author Vaadin Ltd
+ */
+public class ImageRenderer extends ClickableRenderer<Resource> {
+
+    /**
+     * Creates a new image renderer.
+     */
+    public ImageRenderer() {
+        super(Resource.class);
+    }
+
+    /**
+     * Creates a new image renderer and adds the given click listener to it.
+     * 
+     * @param listener
+     *            the click listener to register
+     */
+    public ImageRenderer(RendererClickListener listener) {
+        this();
+        addClickListener(listener);
+    }
+
+    @Override
+    public JsonValue encode(Resource resource) {
+        if (!(resource instanceof ExternalResource || resource instanceof ThemeResource)) {
+            throw new IllegalArgumentException(
+                    "ImageRenderer only supports ExternalResource and ThemeResource ("
+                            + resource.getClass().getSimpleName() + "given )");
+        }
+
+        return encode(ResourceReference.create(resource, this, null),
+                URLReference.class);
+    }
+}
diff --git a/server/src/com/vaadin/ui/renderers/NumberRenderer.java b/server/src/com/vaadin/ui/renderers/NumberRenderer.java
new file mode 100644 (file)
index 0000000..5c30e55
--- /dev/null
@@ -0,0 +1,163 @@
+/*
+ * 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.ui.renderers;
+
+import java.text.NumberFormat;
+import java.util.Locale;
+
+import com.vaadin.ui.Grid.AbstractRenderer;
+
+import elemental.json.JsonValue;
+
+/**
+ * A renderer for presenting number values.
+ * 
+ * @since 7.4
+ * @author Vaadin Ltd
+ */
+public class NumberRenderer extends AbstractRenderer<Number> {
+    private final Locale locale;
+    private final NumberFormat numberFormat;
+    private final String formatString;
+
+    /**
+     * Creates a new number renderer.
+     * <p>
+     * The renderer is configured to render with the number's natural string
+     * representation in the default locale.
+     */
+    public NumberRenderer() {
+        this(Locale.getDefault());
+    }
+
+    /**
+     * Creates a new number renderer.
+     * <p>
+     * The renderer is configured to render the number as defined with the given
+     * number format.
+     * 
+     * @param numberFormat
+     *            the number format with which to display numbers
+     * @throws IllegalArgumentException
+     *             if {@code numberFormat} is {@code null}
+     */
+    public NumberRenderer(NumberFormat numberFormat)
+            throws IllegalArgumentException {
+        super(Number.class);
+
+        if (numberFormat == null) {
+            throw new IllegalArgumentException("Number format may not be null");
+        }
+
+        locale = null;
+        this.numberFormat = numberFormat;
+        formatString = null;
+    }
+
+    /**
+     * Creates a new number renderer.
+     * <p>
+     * The renderer is configured to render with the number's natural string
+     * representation in the given locale.
+     * 
+     * @param locale
+     *            the locale in which to display numbers
+     * @throws IllegalArgumentException
+     *             if {@code locale} is {@code null}
+     */
+    public NumberRenderer(Locale locale) throws IllegalArgumentException {
+        this("%s", locale);
+    }
+
+    /**
+     * Creates a new number renderer.
+     * <p>
+     * The renderer is configured to render with the given format string in the
+     * default locale.
+     * 
+     * @param formatString
+     *            the format string with which to format the number
+     * @throws IllegalArgumentException
+     *             if {@code formatString} is {@code null}
+     * @see <a
+     *      href="http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax">Format
+     *      String Syntax</a>
+     */
+    public NumberRenderer(String formatString) throws IllegalArgumentException {
+        this(formatString, Locale.getDefault());
+    }
+
+    /**
+     * Creates a new number renderer.
+     * <p>
+     * The renderer is configured to render with the given format string in the
+     * given locale.
+     * 
+     * @param formatString
+     *            the format string with which to format the number
+     * @param locale
+     *            the locale in which to present numbers
+     * @throws IllegalArgumentException
+     *             if either argument is {@code null}
+     * @see <a
+     *      href="http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax">Format
+     *      String Syntax</a>
+     */
+    public NumberRenderer(String formatString, Locale locale) {
+        super(Number.class);
+
+        if (formatString == null) {
+            throw new IllegalArgumentException("Format string may not be null");
+        }
+
+        if (locale == null) {
+            throw new IllegalArgumentException("Locale may not be null");
+        }
+
+        this.locale = locale;
+        numberFormat = null;
+        this.formatString = formatString;
+    }
+
+    @Override
+    public JsonValue encode(Number value) {
+        String stringValue;
+        if (formatString != null && locale != null) {
+            stringValue = String.format(locale, formatString, value);
+        } else if (numberFormat != null) {
+            stringValue = numberFormat.format(value);
+        } else {
+            throw new IllegalStateException(String.format("Internal bug: "
+                    + "%s is in an illegal state: "
+                    + "[locale: %s, numberFormat: %s, formatString: %s]",
+                    getClass().getSimpleName(), locale, numberFormat,
+                    formatString));
+        }
+        return encode(stringValue, String.class);
+    }
+
+    @Override
+    public String toString() {
+        final String fieldInfo;
+        if (numberFormat != null) {
+            fieldInfo = "numberFormat: " + numberFormat.toString();
+        } else {
+            fieldInfo = "locale: " + locale + ", formatString: " + formatString;
+        }
+
+        return String.format("%s [%s]", getClass().getSimpleName(), fieldInfo);
+    }
+}
diff --git a/server/src/com/vaadin/ui/renderers/ProgressBarRenderer.java b/server/src/com/vaadin/ui/renderers/ProgressBarRenderer.java
new file mode 100644 (file)
index 0000000..a077cd8
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * 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.ui.renderers;
+
+import com.vaadin.ui.Grid.AbstractRenderer;
+
+import elemental.json.JsonValue;
+
+/**
+ * A renderer that represents a double values as a graphical progress bar.
+ * 
+ * @since 7.4
+ * @author Vaadin Ltd
+ */
+public class ProgressBarRenderer extends AbstractRenderer<Double> {
+
+    /**
+     * Creates a new text renderer
+     */
+    public ProgressBarRenderer() {
+        super(Double.class);
+    }
+
+    @Override
+    public JsonValue encode(Double value) {
+        if (value != null) {
+            value = Math.max(Math.min(value, 1), 0);
+        }
+        return super.encode(value);
+    }
+}
diff --git a/server/src/com/vaadin/ui/renderers/Renderer.java b/server/src/com/vaadin/ui/renderers/Renderer.java
new file mode 100644 (file)
index 0000000..ac85174
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * 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.ui.renderers;
+
+import com.vaadin.server.ClientConnector;
+import com.vaadin.server.Extension;
+
+import elemental.json.JsonValue;
+
+/**
+ * A ClientConnector for controlling client-side
+ * {@link com.vaadin.client.widget.grid.Renderer Grid renderers}. Renderers
+ * currently extend the Extension interface, but this fact should be regarded as
+ * an implementation detail and subject to change in a future major or minor
+ * Vaadin revision.
+ * 
+ * @param <T>
+ *            the type this renderer knows how to present
+ * 
+ * @since 7.4
+ * @author Vaadin Ltd
+ */
+public interface Renderer<T> extends Extension {
+
+    /**
+     * Returns the class literal corresponding to the presentation type T.
+     * 
+     * @return the class literal of T
+     */
+    Class<T> getPresentationType();
+
+    /**
+     * Encodes the given value into a {@link JsonValue}.
+     * 
+     * @param value
+     *            the value to encode
+     * @return a JSON representation of the given value
+     */
+    JsonValue encode(T value);
+
+    /**
+     * This method is inherited from Extension but should never be called
+     * directly with a Renderer.
+     */
+    @Override
+    @Deprecated
+    void remove();
+
+    /**
+     * This method is inherited from Extension but should never be called
+     * directly with a Renderer.
+     */
+    @Override
+    @Deprecated
+    void setParent(ClientConnector parent);
+}
diff --git a/server/src/com/vaadin/ui/renderers/TextRenderer.java b/server/src/com/vaadin/ui/renderers/TextRenderer.java
new file mode 100644 (file)
index 0000000..3723a45
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * 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.ui.renderers;
+
+import com.vaadin.ui.Grid.AbstractRenderer;
+
+/**
+ * A renderer for presenting simple plain-text string values.
+ * 
+ * @since 7.4
+ * @author Vaadin Ltd
+ */
+public class TextRenderer extends AbstractRenderer<String> {
+
+    /**
+     * Creates a new text renderer
+     */
+    public TextRenderer() {
+        super(String.class);
+    }
+}
index 08f045277d7c992ebd7fbbb6fe67a931a3213574..782434bcd5a8de11636d0d11240ed89fef258bdf 100644 (file)
@@ -30,7 +30,7 @@ import com.vaadin.server.FontAwesome;
 import com.vaadin.server.ThemeResource;
 import com.vaadin.ui.Grid;
 import com.vaadin.ui.UI;
-import com.vaadin.ui.renderer.ImageRenderer;
+import com.vaadin.ui.renderers.ImageRenderer;
 
 import elemental.json.JsonObject;
 import elemental.json.JsonValue;
index f6a766bd0715829e1239c6d686143d10f33eeea5..05a67b3f02eaef15722e64365e78949fd1d2cb2d 100644 (file)
@@ -36,7 +36,7 @@ import com.vaadin.ui.ConnectorTracker;
 import com.vaadin.ui.Grid;
 import com.vaadin.ui.Grid.Column;
 import com.vaadin.ui.UI;
-import com.vaadin.ui.renderer.TextRenderer;
+import com.vaadin.ui.renderers.TextRenderer;
 
 import elemental.json.JsonValue;
 
index 80337971b65f14e85a2b2c39be735e5fa04f6542..23d3c3c3940cb8f0261072e421f49853545aa6d5 100644 (file)
@@ -26,7 +26,7 @@ import com.vaadin.ui.Grid;
 import com.vaadin.ui.Grid.FooterRow;
 import com.vaadin.ui.Grid.HeaderRow;
 import com.vaadin.ui.Grid.SelectionMode;
-import com.vaadin.ui.renderer.NumberRenderer;
+import com.vaadin.ui.renderers.NumberRenderer;
 
 public class GridColspans extends AbstractTestUI {
 
index 98fa1ab6fd7d7ae170d5c99eabf4620116017f57..3de2e949959b9f54dc81086b169386e51a12d332 100644 (file)
@@ -22,7 +22,7 @@ import com.vaadin.tests.components.AbstractTestUI;
 import com.vaadin.ui.Grid;
 import com.vaadin.ui.Grid.Column;
 import com.vaadin.ui.Grid.SelectionMode;
-import com.vaadin.ui.renderer.HtmlRenderer;
+import com.vaadin.ui.renderers.HtmlRenderer;
 
 public class GridColumnAutoWidth extends AbstractTestUI {
     @Override
index ccb94f5d2da5225b5c9391e76b34f3520ec4a8d5..af76054722d4c12b32adad45ce866fcf6876d7d0 100644 (file)
@@ -17,7 +17,7 @@ package com.vaadin.tests.components.grid;
 
 import com.vaadin.annotations.JavaScript;
 import com.vaadin.tests.components.grid.JavaScriptRenderers.MyBean;
-import com.vaadin.ui.renderer.AbstractJavaScriptRenderer;
+import com.vaadin.ui.renderers.AbstractJavaScriptRenderer;
 
 /**
  * 
index 0d51558cd139e6ba5f712cf41084df2cb378d61b..d1110d4caae1317fe4424457ddf8e3a3a6e11631 100644 (file)
@@ -26,11 +26,11 @@ import com.vaadin.ui.Button.ClickEvent;
 import com.vaadin.ui.Grid;
 import com.vaadin.ui.Grid.SelectionMode;
 import com.vaadin.ui.NativeButton;
-import com.vaadin.ui.renderer.ButtonRenderer;
-import com.vaadin.ui.renderer.ClickableRenderer.RendererClickEvent;
-import com.vaadin.ui.renderer.ClickableRenderer.RendererClickListener;
-import com.vaadin.ui.renderer.ImageRenderer;
-import com.vaadin.ui.renderer.ProgressBarRenderer;
+import com.vaadin.ui.renderers.ButtonRenderer;
+import com.vaadin.ui.renderers.ImageRenderer;
+import com.vaadin.ui.renderers.ProgressBarRenderer;
+import com.vaadin.ui.renderers.ClickableRenderer.RendererClickEvent;
+import com.vaadin.ui.renderers.ClickableRenderer.RendererClickListener;
 
 @SuppressWarnings("all")
 public class WidgetRenderers extends AbstractTestUI {
index 0c335f58b28ba17c604a0bf6a389ed8b070bb892..6557dafb6f407e8a7bd2596a38e19cad04579f16 100644 (file)
@@ -58,9 +58,9 @@ import com.vaadin.ui.Grid.RowReference;
 import com.vaadin.ui.Grid.RowStyleGenerator;
 import com.vaadin.ui.Grid.SelectionMode;
 import com.vaadin.ui.Grid.SelectionModel;
-import com.vaadin.ui.renderer.DateRenderer;
-import com.vaadin.ui.renderer.HtmlRenderer;
-import com.vaadin.ui.renderer.NumberRenderer;
+import com.vaadin.ui.renderers.DateRenderer;
+import com.vaadin.ui.renderers.HtmlRenderer;
+import com.vaadin.ui.renderers.NumberRenderer;
 
 /**
  * Tests the basic features like columns, footers and headers