]> source.dussan.org Git - vaadin-framework.git/commitdiff
State is now created using generators, removed setState (#8502)
authorArtur Signell <artur@vaadin.com>
Mon, 7 May 2012 13:49:33 +0000 (16:49 +0300)
committerArtur Signell <artur@vaadin.com>
Fri, 11 May 2012 19:18:38 +0000 (22:18 +0300)
61 files changed:
src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml
src/com/vaadin/terminal/gwt/client/ApplicationConnection.java
src/com/vaadin/terminal/gwt/client/ServerConnector.java
src/com/vaadin/terminal/gwt/client/ui/AbstractComponentConnector.java
src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java
src/com/vaadin/terminal/gwt/client/ui/ConnectorClassBasedFactory.java [new file with mode: 0644]
src/com/vaadin/terminal/gwt/client/ui/ConnectorStateFactory.java [new file with mode: 0644]
src/com/vaadin/terminal/gwt/client/ui/ConnectorWidgetFactory.java [new file with mode: 0644]
src/com/vaadin/terminal/gwt/client/ui/UnknownComponentConnector.java
src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutConnector.java
src/com/vaadin/terminal/gwt/client/ui/accordion/AccordionConnector.java
src/com/vaadin/terminal/gwt/client/ui/button/ButtonConnector.java
src/com/vaadin/terminal/gwt/client/ui/checkbox/CheckBoxConnector.java
src/com/vaadin/terminal/gwt/client/ui/combobox/ComboBoxConnector.java
src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutConnector.java
src/com/vaadin/terminal/gwt/client/ui/customcomponent/CustomComponentConnector.java
src/com/vaadin/terminal/gwt/client/ui/customfield/CustomFieldConnector.java
src/com/vaadin/terminal/gwt/client/ui/customlayout/CustomLayoutConnector.java
src/com/vaadin/terminal/gwt/client/ui/datefield/AbstractDateFieldConnector.java
src/com/vaadin/terminal/gwt/client/ui/datefield/InlineDateFieldConnector.java
src/com/vaadin/terminal/gwt/client/ui/datefield/PopupDateFieldConnector.java
src/com/vaadin/terminal/gwt/client/ui/datefield/TextualDateConnector.java
src/com/vaadin/terminal/gwt/client/ui/draganddropwrapper/DragAndDropWrapperConnector.java
src/com/vaadin/terminal/gwt/client/ui/embedded/EmbeddedConnector.java
src/com/vaadin/terminal/gwt/client/ui/form/FormConnector.java
src/com/vaadin/terminal/gwt/client/ui/formlayout/FormLayoutConnector.java
src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutConnector.java
src/com/vaadin/terminal/gwt/client/ui/label/LabelConnector.java
src/com/vaadin/terminal/gwt/client/ui/link/LinkConnector.java
src/com/vaadin/terminal/gwt/client/ui/listselect/ListSelectConnector.java
src/com/vaadin/terminal/gwt/client/ui/menubar/MenuBarConnector.java
src/com/vaadin/terminal/gwt/client/ui/nativebutton/NativeButtonConnector.java
src/com/vaadin/terminal/gwt/client/ui/nativeselect/NativeSelectConnector.java
src/com/vaadin/terminal/gwt/client/ui/optiongroup/OptionGroupConnector.java
src/com/vaadin/terminal/gwt/client/ui/orderedlayout/HorizontalLayoutConnector.java
src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VerticalLayoutConnector.java
src/com/vaadin/terminal/gwt/client/ui/panel/PanelConnector.java
src/com/vaadin/terminal/gwt/client/ui/passwordfield/PasswordFieldConnector.java
src/com/vaadin/terminal/gwt/client/ui/popupview/PopupViewConnector.java
src/com/vaadin/terminal/gwt/client/ui/progressindicator/ProgressIndicatorConnector.java
src/com/vaadin/terminal/gwt/client/ui/richtextarea/RichTextAreaConnector.java
src/com/vaadin/terminal/gwt/client/ui/root/RootConnector.java
src/com/vaadin/terminal/gwt/client/ui/slider/SliderConnector.java
src/com/vaadin/terminal/gwt/client/ui/splitpanel/AbstractSplitPanelConnector.java
src/com/vaadin/terminal/gwt/client/ui/splitpanel/HorizontalSplitPanelConnector.java
src/com/vaadin/terminal/gwt/client/ui/splitpanel/VerticalSplitPanelConnector.java
src/com/vaadin/terminal/gwt/client/ui/table/TableConnector.java
src/com/vaadin/terminal/gwt/client/ui/tabsheet/TabsheetConnector.java
src/com/vaadin/terminal/gwt/client/ui/textarea/TextAreaConnector.java
src/com/vaadin/terminal/gwt/client/ui/textfield/TextFieldConnector.java
src/com/vaadin/terminal/gwt/client/ui/tree/TreeConnector.java
src/com/vaadin/terminal/gwt/client/ui/treetable/TreeTableConnector.java
src/com/vaadin/terminal/gwt/client/ui/twincolselect/TwinColSelectConnector.java
src/com/vaadin/terminal/gwt/client/ui/upload/UploadConnector.java
src/com/vaadin/terminal/gwt/client/ui/video/VideoConnector.java
src/com/vaadin/terminal/gwt/client/ui/window/WindowConnector.java
src/com/vaadin/terminal/gwt/widgetsetutils/AbstractConnectorClassBasedFactoryGenerator.java [new file with mode: 0644]
src/com/vaadin/terminal/gwt/widgetsetutils/ConnectorStateFactoryGenerator.java [new file with mode: 0644]
src/com/vaadin/terminal/gwt/widgetsetutils/ConnectorWidgetFactoryGenerator.java [new file with mode: 0644]
tests/testbench/com/vaadin/tests/dd/MyDragSourceConnector.java
tests/testbench/com/vaadin/tests/dd/MyDropTargetConnector.java

index f65b4c51e7854bdb39a1290bd7851bf631ce6776..74dc78d9b88baff16ecb16eb1f0c213788dc8afe 100644 (file)
@@ -37,7 +37,7 @@
        </replace-with>
 
        <generate-with
-               class="com.vaadin.terminal.gwt.widgetsetutils.EagerWidgetMapGenerator"> 
+               class="com.vaadin.terminal.gwt.widgetsetutils.EagerWidgetMapGenerator">
                <when-type-is class="com.vaadin.terminal.gwt.client.WidgetMap" />
        </generate-with>
 
                        class="com.vaadin.terminal.gwt.client.communication.RpcManager" />
        </generate-with>
 
+       <generate-with
+               class="com.vaadin.terminal.gwt.widgetsetutils.ConnectorWidgetFactoryGenerator">
+               <when-type-assignable
+                       class="com.vaadin.terminal.gwt.client.ui.ConnectorWidgetFactory" />
+       </generate-with>
+
+       <generate-with
+               class="com.vaadin.terminal.gwt.widgetsetutils.ConnectorStateFactoryGenerator">
+               <when-type-assignable
+                       class="com.vaadin.terminal.gwt.client.ui.ConnectorStateFactory" />
+       </generate-with>
+
        <entry-point class="com.vaadin.terminal.gwt.client.ApplicationConfiguration" />
 
        <!-- Use the new cross site linker to get a nocache.js without document.write -->
index 8285e956e62756dc9a8127890a4439760ec5e46b..cc1615d4c76b72cf4358a2494455cde3aa85d80a 100644 (file)
@@ -1414,11 +1414,10 @@ public class ApplicationConnection {
                             JSONArray stateDataAndType = new JSONArray(
                                     states.getJavaScriptObject(connectorId));
 
-                            Object state = JsonDecoder.decodeValue(
-                                    stateDataAndType, connector.getState(),
-                                    connectorMap, ApplicationConnection.this);
+                            JsonDecoder.decodeValue(stateDataAndType,
+                                    connector.getState(), connectorMap,
+                                    ApplicationConnection.this);
 
-                            connector.setState((SharedState) state);
                             StateChangeEvent event = GWT
                                     .create(StateChangeEvent.class);
                             event.setConnector(connector);
index b331f1f07d54004ee0bbc70004736ea41fc7430e..44f65fc6a7b6be8e19c53695c6dd78a0a3bc7dd9 100644 (file)
@@ -8,7 +8,6 @@ import java.util.Collection;
 import com.google.gwt.event.shared.GwtEvent;
 import com.google.web.bindery.event.shared.HandlerRegistration;
 import com.vaadin.terminal.gwt.client.communication.ClientRpc;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
 import com.vaadin.terminal.gwt.client.communication.StateChangeEvent.StateChangeHandler;
 
 /**
@@ -22,21 +21,6 @@ import com.vaadin.terminal.gwt.client.communication.StateChangeEvent.StateChange
  */
 public interface ServerConnector extends Connector {
 
-    /**
-     * Sets a new state for the connector.
-     * 
-     * @param state
-     *            The new state
-     * @deprecated This should be removed. Framework should update what is
-     *             returned by getState() instead of setting a new state object.
-     *             Note that this must be done either so that setState accepts a
-     *             state object once (first time received from the server) or
-     *             getState() in AbstractConnector uses a generated class to
-     *             create the state object (like RpcProy.craete())
-     */
-    @Deprecated
-    public void setState(SharedState state);
-
     /**
      * Gets ApplicationConnection instance that created this connector.
      * 
index fdb04f0ddfe73ecdfa51b13cb818f00e6240d702..d690bdded18f605a06c2a35efdc8a09403de074d 100644 (file)
@@ -18,7 +18,6 @@ import com.vaadin.terminal.gwt.client.TooltipInfo;
 import com.vaadin.terminal.gwt.client.UIDL;
 import com.vaadin.terminal.gwt.client.Util;
 import com.vaadin.terminal.gwt.client.VConsole;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
 import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
 import com.vaadin.terminal.gwt.client.ui.root.RootConnector;
 
@@ -29,9 +28,6 @@ public abstract class AbstractComponentConnector extends AbstractConnector
 
     private Widget widget;
 
-    // shared state from the server to the client
-    private ComponentState state;
-
     private String lastKnownWidth = "";
     private String lastKnownHeight = "";
 
@@ -47,7 +43,9 @@ public abstract class AbstractComponentConnector extends AbstractConnector
      * 
      * @return
      */
-    protected abstract Widget createWidget();
+    protected Widget createWidget() {
+        return ConnectorWidgetFactory.createWidget(getClass());
+    }
 
     /**
      * Returns the widget associated with this paintable. The widget returned by
@@ -63,23 +61,16 @@ public abstract class AbstractComponentConnector extends AbstractConnector
         return widget;
     }
 
-    /**
-     * Returns the shared state object for this connector.
-     * 
-     * If overriding this method to return a more specific type, also
-     * {@link #createState()} must be overridden.
-     * 
-     * @return current shared state (not null)
-     */
-    public ComponentState getState() {
-        return state;
-    }
-
     @Deprecated
     public static boolean isRealUpdate(UIDL uidl) {
         return !uidl.hasAttribute("cached");
     }
 
+    @Override
+    public ComponentState getState() {
+        return (ComponentState) super.getState();
+    }
+
     @Override
     public void onStateChanged(StateChangeEvent stateChangeEvent) {
         super.onStateChanged(stateChangeEvent);
@@ -97,8 +88,9 @@ public abstract class AbstractComponentConnector extends AbstractConnector
          * Disabled state may affect (override) tabindex so the order must be
          * first setting tabindex, then enabled state.
          */
-        if (state instanceof TabIndexState && getWidget() instanceof Focusable) {
-            ((Focusable) getWidget()).setTabIndex(((TabIndexState) state)
+        if (getState() instanceof TabIndexState
+                && getWidget() instanceof Focusable) {
+            ((Focusable) getWidget()).setTabIndex(((TabIndexState) getState())
                     .getTabIndex());
         }
 
@@ -288,17 +280,6 @@ public abstract class AbstractComponentConnector extends AbstractConnector
         return getState().isReadOnly();
     }
 
-    /**
-     * Sets the shared state for the paintable widget.
-     * 
-     * @param new shared state (must be compatible with the return value of
-     *        {@link #getState()} - {@link ComponentState} if
-     *        {@link #getState()} is not overridden
-     */
-    public final void setState(SharedState state) {
-        this.state = (ComponentState) state;
-    }
-
     public LayoutManager getLayoutManager() {
         return LayoutManager.get(getConnection());
     }
index ef74228ae833aea77bcd4bd0bbc054f784ba77ce..dc960f90a5a508009b65eb55e21835cbfb1e7ec1 100644 (file)
@@ -17,6 +17,7 @@ import com.vaadin.terminal.gwt.client.ServerConnector;
 import com.vaadin.terminal.gwt.client.Util;
 import com.vaadin.terminal.gwt.client.VConsole;
 import com.vaadin.terminal.gwt.client.communication.ClientRpc;
+import com.vaadin.terminal.gwt.client.communication.SharedState;
 import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
 import com.vaadin.terminal.gwt.client.communication.StateChangeEvent.StateChangeHandler;
 
@@ -38,6 +39,8 @@ public abstract class AbstractConnector implements ServerConnector,
     private Map<String, Collection<ClientRpc>> rpcImplementations;
     private final boolean debugLogging = false;
 
+    private SharedState state;
+
     /*
      * (non-Javadoc)
      * 
@@ -183,4 +186,32 @@ public abstract class AbstractConnector implements ServerConnector,
         }
 
     }
+
+    /**
+     * Returns the shared state object for this connector.
+     * 
+     * Override this method to define the shared state type for your connector.
+     * 
+     * @return the current shared state (never null)
+     */
+    public SharedState getState() {
+        if (state == null) {
+            state = createState();
+        }
+
+        return state;
+    }
+
+    /**
+     * Creates a state object with default values for this connector. The
+     * created state object must be compatible with the return type of
+     * {@link #getState()}. The default implementation creates a state object
+     * using GWT.create() using the defined return type of {@link #getState()}.
+     * 
+     * @return A new state object
+     */
+    protected SharedState createState() {
+        return ConnectorStateFactory.createState(getClass());
+    }
+
 }
diff --git a/src/com/vaadin/terminal/gwt/client/ui/ConnectorClassBasedFactory.java b/src/com/vaadin/terminal/gwt/client/ui/ConnectorClassBasedFactory.java
new file mode 100644 (file)
index 0000000..051ebdc
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.terminal.gwt.client.ui;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.vaadin.terminal.gwt.client.Connector;
+
+public abstract class ConnectorClassBasedFactory<T> {
+    public interface Creator<T> {
+        public T create();
+    }
+
+    private Map<Class<? extends Connector>, Creator<? extends T>> creators = new HashMap<Class<? extends Connector>, Creator<? extends T>>();
+
+    protected void addCreator(Class<? extends Connector> cls,
+            Creator<? extends T> creator) {
+        creators.put(cls, creator);
+    }
+
+    /**
+     * Creates a widget using GWT.create for the given connector, based on its
+     * {@link AbstractComponentConnector#getWidget()} return type.
+     * 
+     * @param connector
+     * @return
+     */
+    public T create(Class<? extends Connector> connector) {
+        Creator<? extends T> foo = creators.get(connector);
+        if (foo == null) {
+            throw new RuntimeException(getClass().getName()
+                    + " could not find a creator for connector of type "
+                    + connector.getName());
+        }
+        return foo.create();
+    }
+
+}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/ConnectorStateFactory.java b/src/com/vaadin/terminal/gwt/client/ui/ConnectorStateFactory.java
new file mode 100644 (file)
index 0000000..6fb132d
--- /dev/null
@@ -0,0 +1,28 @@
+package com.vaadin.terminal.gwt.client.ui;
+
+import com.google.gwt.core.client.GWT;
+import com.vaadin.terminal.gwt.client.Connector;
+import com.vaadin.terminal.gwt.client.communication.SharedState;
+
+public abstract class ConnectorStateFactory extends
+        ConnectorClassBasedFactory<SharedState> {
+    private static ConnectorStateFactory impl = null;
+
+    /**
+     * Creates a SharedState using GWT.create for the given connector, based on
+     * its {@link AbstractComponentConnector#getSharedState ()} return type.
+     * 
+     * @param connector
+     * @return
+     */
+    public static SharedState createState(Class<? extends Connector> connector) {
+        return getImpl().create(connector);
+    }
+
+    private static ConnectorStateFactory getImpl() {
+        if (impl == null) {
+            impl = GWT.create(ConnectorStateFactory.class);
+        }
+        return impl;
+    }
+}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/ConnectorWidgetFactory.java b/src/com/vaadin/terminal/gwt/client/ui/ConnectorWidgetFactory.java
new file mode 100644 (file)
index 0000000..61b54f5
--- /dev/null
@@ -0,0 +1,39 @@
+package com.vaadin.terminal.gwt.client.ui;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.terminal.gwt.client.ui.textfield.TextFieldConnector;
+import com.vaadin.terminal.gwt.client.ui.textfield.VTextField;
+
+public abstract class ConnectorWidgetFactory extends
+        ConnectorClassBasedFactory<Widget> {
+    private static ConnectorWidgetFactory impl = null;
+
+    // TODO Move to generator
+    {
+        addCreator(TextFieldConnector.class, new Creator<Widget>() {
+            public Widget create() {
+                return GWT.create(VTextField.class);
+            }
+        });
+    }
+
+    /**
+     * Creates a widget using GWT.create for the given connector, based on its
+     * {@link AbstractComponentConnector#getWidget()} return type.
+     * 
+     * @param connector
+     * @return
+     */
+    public static Widget createWidget(
+            Class<? extends AbstractComponentConnector> connector) {
+        return getImpl().create(connector);
+    }
+
+    private static ConnectorWidgetFactory getImpl() {
+        if (impl == null) {
+            impl = GWT.create(ConnectorWidgetFactory.class);
+        }
+        return impl;
+    }
+}
index 94eff44eee85f7ec83a6d9c839f1ec68dcc3c8cf..0cccec6481055d2f62fe05c58e45a0aac73d4475 100644 (file)
@@ -4,8 +4,6 @@
 
 package com.vaadin.terminal.gwt.client.ui;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 
 public class UnknownComponentConnector extends AbstractComponentConnector {
 
@@ -14,11 +12,6 @@ public class UnknownComponentConnector extends AbstractComponentConnector {
         return false;
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VUnknownComponent.class);
-    }
-
     @Override
     public VUnknownComponent getWidget() {
         return (VUnknownComponent) super.getWidget();
index 80b6254e0279a8a745d7709af34530e22831847a..b42c0acea7ff8d3ab3b67c21d97d92072e37ba8e 100644 (file)
@@ -6,7 +6,6 @@ package com.vaadin.terminal.gwt.client.ui.absolutelayout;
 import java.util.HashMap;
 import java.util.Map;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.Style;
 import com.google.gwt.dom.client.Style.Unit;
 import com.google.gwt.user.client.Element;
@@ -93,11 +92,6 @@ public class AbsoluteLayoutConnector extends
 
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VAbsoluteLayout.class);
-    }
-
     @Override
     public VAbsoluteLayout getWidget() {
         return (VAbsoluteLayout) super.getWidget();
index a03fa372144c1e964ab8805aee5e0e6850f82c61..f022e979731da42823bb4235a021f60bddc4f3f9 100644 (file)
@@ -5,8 +5,6 @@ package com.vaadin.terminal.gwt.client.ui.accordion;
 
 import java.util.Iterator;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.ComponentConnector;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -59,11 +57,6 @@ public class AccordionConnector extends TabsheetBaseConnector implements
         return (VAccordion) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VAccordion.class);
-    }
-
     public void updateCaption(ComponentConnector component) {
         /* Accordion does not render its children's captions */
     }
index a555ecd392a22bf5a71ac2f690650f38ecefff1f..d79aa96ac679a30cd50c9b11739ff2d6955258b9 100644 (file)
@@ -4,7 +4,6 @@
 
 package com.vaadin.terminal.gwt.client.ui.button;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.BlurEvent;
 import com.google.gwt.event.dom.client.BlurHandler;
 import com.google.gwt.event.dom.client.ClickEvent;
@@ -13,7 +12,6 @@ import com.google.gwt.event.dom.client.FocusEvent;
 import com.google.gwt.event.dom.client.FocusHandler;
 import com.google.gwt.event.shared.HandlerRegistration;
 import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.EventHelper;
 import com.vaadin.terminal.gwt.client.MouseEventDetails;
 import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
@@ -95,11 +93,6 @@ public class ButtonConnector extends AbstractComponentConnector implements
         getWidget().clickShortcut = getState().getClickShortcutKeyCode();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VButton.class);
-    }
-
     @Override
     public VButton getWidget() {
         return (VButton) super.getWidget();
index 731838371f5d1cc07622c0cfb7488d0951495c77..bc405b793b9c336ea7e553ab78acf92a1a65b581 100644 (file)
@@ -3,7 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.checkbox;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.BlurEvent;
 import com.google.gwt.event.dom.client.BlurHandler;
 import com.google.gwt.event.dom.client.ClickEvent;
@@ -13,7 +12,6 @@ import com.google.gwt.event.dom.client.FocusHandler;
 import com.google.gwt.event.shared.HandlerRegistration;
 import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.EventHelper;
 import com.vaadin.terminal.gwt.client.MouseEventDetails;
 import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
@@ -116,11 +114,6 @@ public class CheckBoxConnector extends AbstractFieldConnector implements
         return (VCheckBox) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VCheckBox.class);
-    }
-
     public void onFocus(FocusEvent event) {
         // EventHelper.updateFocusHandler ensures that this is called only when
         // there is a listener on server side
index ee16d90b12d8d99915bb9b831e70d9790e4f1408..ff153d30c996aa12202262a25b9c19cd70057492 100644 (file)
@@ -5,8 +5,6 @@ package com.vaadin.terminal.gwt.client.ui.combobox;
 
 import java.util.Iterator;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -227,11 +225,6 @@ public class ComboBoxConnector extends AbstractFieldConnector implements
         getWidget().initDone = true;
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VFilterSelect.class);
-    }
-
     @Override
     public VFilterSelect getWidget() {
         return (VFilterSelect) super.getWidget();
index 7df31a8593647d7a7d6f787dcf13af6eb2625e9f..71d670fe9d4fe38e70b623564446ea80ddc4b244 100644 (file)
@@ -6,7 +6,6 @@ package com.vaadin.terminal.gwt.client.ui.csslayout;
 import java.util.HashMap;
 import java.util.Map;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.Style;
 import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.ui.Widget;
@@ -138,11 +137,6 @@ public class CssLayoutConnector extends AbstractLayoutConnector {
         return (VCssLayout) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VCssLayout.class);
-    }
-
     public void updateCaption(ComponentConnector child) {
         Widget childWidget = child.getWidget();
         FlowPane cssLayoutWidgetContainer = getWidget().panel;
index a65187a461ebf6009bae29957ecac9af953508d8..981818fc6987f40684154ef7020cdbe14d31ed4e 100644 (file)
@@ -3,8 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.customcomponent;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ComponentConnector;
 import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
 import com.vaadin.terminal.gwt.client.ui.AbstractComponentContainerConnector;
@@ -16,11 +14,6 @@ import com.vaadin.ui.CustomComponent;
 public class CustomComponentConnector extends
         AbstractComponentContainerConnector {
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VCustomComponent.class);
-    }
-
     @Override
     public VCustomComponent getWidget() {
         return (VCustomComponent) super.getWidget();
index a2ba09da4340836e36fb5afcf4fd8e5d5555ce9a..b2801390dab4cef62fa89f362044d4320c51dfc2 100644 (file)
@@ -3,23 +3,11 @@
  */
 package com.vaadin.terminal.gwt.client.ui.customfield;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ui.Connect;
 import com.vaadin.terminal.gwt.client.ui.customcomponent.CustomComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.customcomponent.VCustomComponent;
 import com.vaadin.ui.CustomField;
 
 @Connect(value = CustomField.class)
 public class CustomFieldConnector extends CustomComponentConnector {
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VCustomComponent.class);
-    }
-
-    @Override
-    public VCustomComponent getWidget() {
-        return super.getWidget();
-    }
 }
index 5e8f01258f53eae09c60cc7f17034bd47a1a9f2a..ca24cfc91a7b1e2590658a58891fdde091c66761 100644 (file)
@@ -3,7 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.customlayout;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ComponentConnector;
@@ -103,11 +102,6 @@ public class CustomLayoutConnector extends AbstractLayoutConnector implements
         return (VCustomLayout) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VCustomLayout.class);
-    }
-
     public void updateCaption(ComponentConnector paintable) {
         getWidget().updateCaption(paintable);
     }
index e19d9b996fd8785d8d53ce97d71bfa9d303b4fd3..b55f480bac4ad5f5c63320d26bc8c077383316fd 100644 (file)
@@ -5,8 +5,6 @@ package com.vaadin.terminal.gwt.client.ui.datefield;
 
 import java.util.Date;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.LocaleNotLoadedException;
 import com.vaadin.terminal.gwt.client.Paintable;
@@ -97,11 +95,6 @@ public class AbstractDateFieldConnector extends AbstractFieldConnector
         }
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VDateField.class);
-    }
-
     @Override
     public VDateField getWidget() {
         return (VDateField) super.getWidget();
index 8a4840a088031aff7ce03ad7da1dd147d046cb86..7cd9c110baa6d471ea41369134de1f0c24d6bc55 100644 (file)
@@ -5,8 +5,6 @@ package com.vaadin.terminal.gwt.client.ui.datefield;
 
 import java.util.Date;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.DateTimeService;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -92,11 +90,6 @@ public class InlineDateFieldConnector extends AbstractDateFieldConnector {
         getWidget().calendarPanel.renderCalendar();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VDateFieldCalendar.class);
-    }
-
     @Override
     public VDateFieldCalendar getWidget() {
         return (VDateFieldCalendar) super.getWidget();
index 1bcb40d549373f94113227468dc835ef4d46aa7c..e169d83b486705aeb8e57bdc72a5d2b478d1b208 100644 (file)
@@ -6,8 +6,6 @@ package com.vaadin.terminal.gwt.client.ui.datefield;
 
 import java.util.Date;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.DateTimeService;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -112,11 +110,6 @@ public class PopupDateFieldConnector extends TextualDateConnector {
         getWidget().calendarToggle.setEnabled(true);
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VPopupCalendar.class);
-    }
-
     @Override
     public VPopupCalendar getWidget() {
         return (VPopupCalendar) super.getWidget();
index 90679f570517b867e1d5cfce733f908f7ad498fa..32af4024cb12e6346671a3df02ba7e6060b76d6d 100644 (file)
@@ -4,8 +4,6 @@
 
 package com.vaadin.terminal.gwt.client.ui.datefield;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.UIDL;
 
@@ -44,11 +42,6 @@ public class TextualDateConnector extends AbstractDateFieldConnector {
 
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VTextualDate.class);
-    }
-
     @Override
     public VTextualDate getWidget() {
         return (VTextualDate) super.getWidget();
index db531ac70f83f09eac99c3c6424a9a5761b13b01..57f6835bccc5e93e12b54ab37a399ebeca8200fd 100644 (file)
@@ -6,8 +6,6 @@ package com.vaadin.terminal.gwt.client.ui.draganddropwrapper;
 import java.util.HashMap;
 import java.util.Set;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -62,11 +60,6 @@ public class DragAndDropWrapperConnector extends CustomComponentConnector
         }
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VDragAndDropWrapper.class);
-    }
-
     @Override
     public VDragAndDropWrapper getWidget() {
         return (VDragAndDropWrapper) super.getWidget();
index 81ac195c8ecc1dcd19d60299a2087abfc5118519..af3ad67db4d130d0482e03add03c885ca8acdf1f 100644 (file)
@@ -6,7 +6,6 @@ package com.vaadin.terminal.gwt.client.ui.embedded;
 
 import java.util.Map;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.Document;
 import com.google.gwt.dom.client.NativeEvent;
 import com.google.gwt.dom.client.Node;
@@ -16,7 +15,6 @@ import com.google.gwt.dom.client.Style;
 import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.MouseEventDetails;
 import com.vaadin.terminal.gwt.client.Paintable;
@@ -181,11 +179,6 @@ public class EmbeddedConnector extends AbstractComponentConnector implements
         }
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VEmbedded.class);
-    }
-
     @Override
     public VEmbedded getWidget() {
         return (VEmbedded) super.getWidget();
index 82cbc95b2d30e06efd90b8944fa46b398d21c383..981c753dd183bb91c809aed5eacde7d1db7db26b 100644 (file)
@@ -3,7 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.form;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.Style.Unit;
 import com.google.gwt.event.dom.client.KeyDownEvent;
 import com.google.gwt.user.client.ui.Widget;
@@ -191,11 +190,6 @@ public class FormConnector extends AbstractComponentContainerConnector
         return (VForm) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VForm.class);
-    }
-
     @Override
     public boolean isReadOnly() {
         return super.isReadOnly() || getState().isPropertyReadOnly();
index d7774b66ef6501681d1d6b5614290f1651a8da89..cdac73a771760540260f9673842a50000adfaecf 100644 (file)
@@ -3,7 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.formlayout;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ComponentConnector;
 import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
@@ -97,9 +96,4 @@ public class FormLayoutConnector extends AbstractLayoutConnector {
         return (VFormLayout) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VFormLayout.class);
-    }
-
 }
index e4a31b96ef7b647df1b4d6d0e0edf960cfc96c57..50afbc5913ce32f76b5950b36e741848823ebab8 100644 (file)
@@ -5,7 +5,6 @@ package com.vaadin.terminal.gwt.client.ui.gridlayout;
 
 import java.util.Iterator;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
@@ -224,11 +223,6 @@ public class GridLayoutConnector extends AbstractComponentContainerConnector
         return (VGridLayout) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VGridLayout.class);
-    }
-
     public void layoutVertically() {
         getWidget().updateHeight();
     }
index 2285fca267e3aa216b22c2b694fadb527b4143ba..e64f9fffea63bdfb52f52cc8cba0631a5764fe71 100644 (file)
@@ -3,10 +3,8 @@
  */
 package com.vaadin.terminal.gwt.client.ui.label;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.Document;
 import com.google.gwt.dom.client.PreElement;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.Util;
 import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
 import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
@@ -17,6 +15,7 @@ import com.vaadin.ui.Label;
 @Connect(value = Label.class, loadStyle = LoadStyle.EAGER)
 public class LabelConnector extends AbstractComponentConnector {
 
+    @Override
     public LabelState getState() {
         return (LabelState) super.getState();
     }
@@ -61,11 +60,6 @@ public class LabelConnector extends AbstractComponentConnector {
         }
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VLabel.class);
-    }
-
     @Override
     public VLabel getWidget() {
         return (VLabel) super.getWidget();
index f74a851d0308d13274f9648e9a6fedb9cdc432c6..c002d2dd50efc1e64063d5f3552a393c6a722530 100644 (file)
@@ -4,9 +4,7 @@
 
 package com.vaadin.terminal.gwt.client.ui.link;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -87,11 +85,6 @@ public class LinkConnector extends AbstractComponentConnector implements
 
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VLink.class);
-    }
-
     @Override
     public VLink getWidget() {
         return (VLink) super.getWidget();
index ddaa9595607ff0b836b14b3a133fd5cd0936196e..8a4553d9833c01d0b8689af5ff679472c22f10fb 100644 (file)
@@ -4,8 +4,6 @@
 
 package com.vaadin.terminal.gwt.client.ui.listselect;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ui.Connect;
 import com.vaadin.terminal.gwt.client.ui.optiongroup.OptionGroupBaseConnector;
 import com.vaadin.ui.ListSelect;
@@ -13,11 +11,6 @@ import com.vaadin.ui.ListSelect;
 @Connect(ListSelect.class)
 public class ListSelectConnector extends OptionGroupBaseConnector {
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VListSelect.class);
-    }
-
     @Override
     public VListSelect getWidget() {
         return (VListSelect) super.getWidget();
index d063c89ca96dd7891de4091131dd86ba69d433d3..d1f77aa0ff38fe421466543302eb04fdaf22c6ea 100644 (file)
@@ -8,7 +8,6 @@ import java.util.Stack;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -153,11 +152,6 @@ public class MenuBarConnector extends AbstractComponentConnector implements
 
     }// updateFromUIDL
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VMenuBar.class);
-    }
-
     @Override
     public VMenuBar getWidget() {
         return (VMenuBar) super.getWidget();
index 84d3b73285fc6b4ab42e60b419894659b0779cf8..c010fba711e61e0b97999be757415438dd8d6d90 100644 (file)
@@ -3,14 +3,12 @@
  */
 package com.vaadin.terminal.gwt.client.ui.nativebutton;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.BlurEvent;
 import com.google.gwt.event.dom.client.BlurHandler;
 import com.google.gwt.event.dom.client.FocusEvent;
 import com.google.gwt.event.dom.client.FocusHandler;
 import com.google.gwt.event.shared.HandlerRegistration;
 import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.EventHelper;
 import com.vaadin.terminal.gwt.client.communication.FieldRpc.FocusAndBlurServerRpc;
 import com.vaadin.terminal.gwt.client.communication.RpcProxy;
@@ -99,11 +97,6 @@ public class NativeButtonConnector extends AbstractComponentConnector implements
 
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VNativeButton.class);
-    }
-
     @Override
     public VNativeButton getWidget() {
         return (VNativeButton) super.getWidget();
index e6264e492fe99f09e7d19e251ba2fdc0c2fadaeb..8f57e0c37f9a6b7926430079bfef4caee78625a4 100644 (file)
@@ -4,8 +4,6 @@
 
 package com.vaadin.terminal.gwt.client.ui.nativeselect;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ui.Connect;
 import com.vaadin.terminal.gwt.client.ui.optiongroup.OptionGroupBaseConnector;
 import com.vaadin.ui.NativeSelect;
@@ -13,11 +11,6 @@ import com.vaadin.ui.NativeSelect;
 @Connect(NativeSelect.class)
 public class NativeSelectConnector extends OptionGroupBaseConnector {
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VNativeSelect.class);
-    }
-
     @Override
     public VNativeSelect getWidget() {
         return (VNativeSelect) super.getWidget();
index 06552a2812fedba19979a475a7d3082d71790343..e6064bd03f141d787bb90776150b7039f237a2a1 100644 (file)
@@ -6,7 +6,6 @@ package com.vaadin.terminal.gwt.client.ui.optiongroup;
 
 import java.util.ArrayList;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.shared.HandlerRegistration;
 import com.google.gwt.user.client.ui.CheckBox;
 import com.google.gwt.user.client.ui.Widget;
@@ -61,11 +60,6 @@ public class OptionGroupConnector extends OptionGroupBaseConnector {
         }
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VOptionGroup.class);
-    }
-
     @Override
     public VOptionGroup getWidget() {
         return (VOptionGroup) super.getWidget();
index a12b41ade79bb7ab715e4602f01f9e4dd9e38f53..3b0014c0f0f9ac516bb32cfae3f2c1416e265464 100644 (file)
@@ -3,7 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.orderedlayout;
 
-import com.google.gwt.core.client.GWT;
 import com.vaadin.terminal.gwt.client.ui.Connect;
 import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
 import com.vaadin.ui.HorizontalLayout;
@@ -16,9 +15,4 @@ public class HorizontalLayoutConnector extends AbstractOrderedLayoutConnector {
         return (VHorizontalLayout) super.getWidget();
     }
 
-    @Override
-    protected VHorizontalLayout createWidget() {
-        return GWT.create(VHorizontalLayout.class);
-    }
-
 }
index 1e5651ce38aeb9199daee9a60f772b23929ca15f..42a762864eb67f9847196e29a1b932d6dde62f02 100644 (file)
@@ -3,7 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.orderedlayout;
 
-import com.google.gwt.core.client.GWT;
 import com.vaadin.terminal.gwt.client.ui.Connect;
 import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
 import com.vaadin.ui.VerticalLayout;
@@ -16,9 +15,4 @@ public class VerticalLayoutConnector extends AbstractOrderedLayoutConnector {
         return (VVerticalLayout) super.getWidget();
     }
 
-    @Override
-    protected VVerticalLayout createWidget() {
-        return GWT.create(VVerticalLayout.class);
-    }
-
 }
index 9555c38a365edd636a89519ef9f3312651109e5d..35a0ede3908b932ccebd53af7494d3a16d6edb74 100644 (file)
@@ -3,7 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.panel;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.NativeEvent;
 import com.google.gwt.dom.client.Style;
 import com.google.gwt.dom.client.Style.Unit;
@@ -172,11 +171,6 @@ public class PanelConnector extends AbstractComponentContainerConnector
         return (VPanel) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VPanel.class);
-    }
-
     public void layout() {
         updateSizes();
     }
index 29a1aeef79118c96526103d831d25e65cd891e88..c4c5954c3338ca627098b34d0759d545fe5c23cb 100644 (file)
@@ -4,8 +4,6 @@
 
 package com.vaadin.terminal.gwt.client.ui.passwordfield;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ui.Connect;
 import com.vaadin.terminal.gwt.client.ui.textfield.TextFieldConnector;
 import com.vaadin.ui.PasswordField;
@@ -13,11 +11,6 @@ import com.vaadin.ui.PasswordField;
 @Connect(PasswordField.class)
 public class PasswordFieldConnector extends TextFieldConnector {
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VPasswordField.class);
-    }
-
     @Override
     public VPasswordField getWidget() {
         return (VPasswordField) super.getWidget();
index 4faa6cec863da0e62d17e9f0c6c6f337e09e04e8..c5117fdddb31e78d1cf8739f4a7847537c5b3e04 100644 (file)
@@ -3,8 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.popupview;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.ComponentConnector;
 import com.vaadin.terminal.gwt.client.Paintable;
@@ -106,11 +104,6 @@ public class PopupViewConnector extends AbstractComponentContainerConnector
         return (VPopupView) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VPopupView.class);
-    }
-
     public void postLayout() {
         if (centerAfterLayout) {
             centerAfterLayout = false;
index 09fa5fb44ed0dc1756ba784608e0299bd770bff8..9d0532fae3ec626cf0373958af327e100d899c4a 100644 (file)
@@ -4,9 +4,7 @@
 
 package com.vaadin.terminal.gwt.client.ui.progressindicator;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -54,11 +52,6 @@ public class ProgressIndicatorConnector extends AbstractFieldConnector
         }
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VProgressIndicator.class);
-    }
-
     @Override
     public VProgressIndicator getWidget() {
         return (VProgressIndicator) super.getWidget();
index 01e79bc1c3ed3014dda6e8efd58dfe7cbe1ebaf3..db52640088ddad84e508267d24d316fd3c72e45f 100644 (file)
@@ -3,9 +3,7 @@
  */
 package com.vaadin.terminal.gwt.client.ui.richtextarea;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -70,9 +68,4 @@ public class RichTextAreaConnector extends AbstractFieldConnector implements
         return (VRichTextArea) super.getWidget();
     };
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VRichTextArea.class);
-    }
-
 }
index 46f82d60b7c492543fb1ff9866dc55f3c8e94fb5..e02bcc93306e70164192ef96ee92e1a185773ea9 100644 (file)
@@ -7,7 +7,6 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.Scheduler;
 import com.google.gwt.dom.client.NativeEvent;
 import com.google.gwt.dom.client.Style;
@@ -299,11 +298,6 @@ public class RootConnector extends AbstractComponentContainerConnector
         return (VRoot) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VRoot.class);
-    }
-
     protected ComponentConnector getContent() {
         return (ComponentConnector) getState().getContent();
     }
index 9cd3c35feefda52da22139be2d0a541ec187206b..6fd7f8b6aa0bf2a20ab7e503d0923d227570a6a4 100644 (file)
@@ -3,10 +3,8 @@
  */
 package com.vaadin.terminal.gwt.client.ui.slider;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.Scheduler;
 import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -69,9 +67,4 @@ public class SliderConnector extends AbstractFieldConnector implements
         return (VSlider) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VSlider.class);
-    }
-
 }
index b3921204dc89834919025f2967245ff73961d970..a2f1f26c1594b217179a0890252146fd519822a4 100644 (file)
@@ -171,9 +171,6 @@ public abstract class AbstractSplitPanelConnector extends
         return (VAbstractSplitPanel) super.getWidget();
     }
 
-    @Override
-    protected abstract VAbstractSplitPanel createWidget();
-
     @Override
     public AbstractSplitPanelState getState() {
         return (AbstractSplitPanelState) super.getState();
index 7814ab8e1354346f0f85bb874964bd3614a111ee..92c942e04ba15e02ce7f8b0f756eb20c3d16769e 100644 (file)
@@ -3,7 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.splitpanel;
 
-import com.google.gwt.core.client.GWT;
 import com.vaadin.terminal.gwt.client.ui.Connect;
 import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
 import com.vaadin.ui.HorizontalSplitPanel;
@@ -12,8 +11,8 @@ import com.vaadin.ui.HorizontalSplitPanel;
 public class HorizontalSplitPanelConnector extends AbstractSplitPanelConnector {
 
     @Override
-    protected VAbstractSplitPanel createWidget() {
-        return GWT.create(VSplitPanelHorizontal.class);
+    public VSplitPanelHorizontal getWidget() {
+        return (VSplitPanelHorizontal) super.getWidget();
     }
 
 }
index 83404177c003eda370e9b8c6fb66bb394152c41f..5015fcc60c6e586a04624898149c7e03050be464 100644 (file)
@@ -12,8 +12,8 @@ import com.vaadin.ui.VerticalSplitPanel;
 public class VerticalSplitPanelConnector extends AbstractSplitPanelConnector {
 
     @Override
-    protected VAbstractSplitPanel createWidget() {
-        return GWT.create(VSplitPanelVertical.class);
+    public VSplitPanelVertical getWidget() {
+        return (VSplitPanelVertical) super.getWidget();
     }
 
 }
index f16ee3463ffecdbdb38fd140b2423d9221df176e..73bc5da83f0879d5cce614675aaed7291590d502 100644 (file)
@@ -5,7 +5,6 @@ package com.vaadin.terminal.gwt.client.ui.table;
 
 import java.util.Iterator;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.Scheduler;
 import com.google.gwt.core.client.Scheduler.ScheduledCommand;
 import com.google.gwt.dom.client.Style.Position;
@@ -260,11 +259,6 @@ public class TableConnector extends AbstractComponentContainerConnector
 
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VScrollTable.class);
-    }
-
     @Override
     public VScrollTable getWidget() {
         return (VScrollTable) super.getWidget();
index 7829934f708cb97ac8738544000ef0a412c7430d..08d4679dc574f580a71f612b24e806e411c7be35 100644 (file)
@@ -62,11 +62,6 @@ public class TabsheetConnector extends TabsheetBaseConnector implements
         getWidget().waitingForResponse = false;
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VTabsheet.class);
-    }
-
     @Override
     public VTabsheet getWidget() {
         return (VTabsheet) super.getWidget();
index ea32ae49c6b7d3b42b99c68a02616c3816ae565d..a235ca5389764683e64a93d7bd951596aed44869 100644 (file)
@@ -4,8 +4,6 @@
 
 package com.vaadin.terminal.gwt.client.ui.textarea;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
 import com.vaadin.terminal.gwt.client.ui.Connect;
 import com.vaadin.terminal.gwt.client.ui.textfield.TextFieldConnector;
@@ -27,11 +25,6 @@ public class TextAreaConnector extends TextFieldConnector {
         getWidget().setWordwrap(getState().isWordwrap());
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VTextArea.class);
-    }
-
     @Override
     public VTextArea getWidget() {
         return (VTextArea) super.getWidget();
index 069dd1fb0d92e1e2cbde87b7b65c0df8adaff9d6..04bf029b053aa1a89d03a520d8cd115c2defcb78 100644 (file)
@@ -4,11 +4,9 @@
 
 package com.vaadin.terminal.gwt.client.ui.textfield;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.Scheduler;
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -92,11 +90,6 @@ public class TextFieldConnector extends AbstractFieldConnector implements
         }
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VTextField.class);
-    }
-
     @Override
     public VTextField getWidget() {
         return (VTextField) super.getWidget();
index ebe5d22e999659b5664c6412f492af19cf3dce30..e4afa32143ebcce181a6e3ad37cee6b8241602f8 100644 (file)
@@ -5,8 +5,6 @@ package com.vaadin.terminal.gwt.client.ui.tree;
 
 import java.util.Iterator;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.AbstractFieldState;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.BrowserInfo;
@@ -129,11 +127,6 @@ public class TreeConnector extends AbstractComponentConnector implements
 
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VTree.class);
-    }
-
     @Override
     public VTree getWidget() {
         return (VTree) super.getWidget();
index f81771781b838c3855445048a7f02836445fc6b5..59910c1b3e890b6858ab4ce7fb93052392e415c0 100644 (file)
@@ -3,8 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.treetable;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.UIDL;
 import com.vaadin.terminal.gwt.client.ui.Connect;
@@ -90,11 +88,6 @@ public class TreeTableConnector extends TableConnector {
         }
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VTreeTable.class);
-    }
-
     @Override
     public VTreeTable getWidget() {
         return (VTreeTable) super.getWidget();
index 328d0fc18b8aac9e846cc265d017bdfc81851c07..a77319920c1e388c9789231605372bcb689c3b91 100644 (file)
@@ -4,8 +4,6 @@
 
 package com.vaadin.terminal.gwt.client.ui.twincolselect;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.DirectionalManagedLayout;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -41,11 +39,6 @@ public class TwinColSelectConnector extends OptionGroupBaseConnector implements
                 getWidget().captionWrapper.getElement());
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VTwinColSelect.class);
-    }
-
     @Override
     public VTwinColSelect getWidget() {
         return (VTwinColSelect) super.getWidget();
index 0a2c0b241e2179ca7eee0d523e9ba933826d16f0..153d99229b9b54004e0e510c6af4eb3d7cddd3e7 100644 (file)
@@ -4,8 +4,6 @@
 
 package com.vaadin.terminal.gwt.client.ui.upload;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -55,11 +53,6 @@ public class UploadConnector extends AbstractComponentConnector implements
         }
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VUpload.class);
-    }
-
     @Override
     public VUpload getWidget() {
         return (VUpload) super.getWidget();
index da1631c44d9fdd87b888756d8658356509eaf4dd..ddf8df66ff9e6600638b2ac3051142441b9ae7fb 100644 (file)
@@ -3,8 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.video;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
 import com.vaadin.terminal.gwt.client.communication.URLReference;
 import com.vaadin.terminal.gwt.client.ui.Connect;
@@ -35,11 +33,6 @@ public class VideoConnector extends MediaBaseConnector {
         return (VVideo) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VVideo.class);
-    }
-
     @Override
     protected String getDefaultAltHtml() {
         return "Your browser does not support the <code>video</code> element.";
index 6979982a9c271076052f14c79370c276dbef48f6..3a37baafbb359b9b76b04521adf86b831c0eab10 100644 (file)
@@ -3,7 +3,6 @@
  */
 package com.vaadin.terminal.gwt.client.ui.window;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.Element;
 import com.google.gwt.dom.client.NativeEvent;
 import com.google.gwt.dom.client.Style;
@@ -195,11 +194,6 @@ public class WindowConnector extends AbstractComponentContainerConnector
         return (VWindow) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VWindow.class);
-    }
-
     @Override
     public void onConnectorHierarchyChange(ConnectorHierarchyChangeEvent event) {
         super.onConnectorHierarchyChange(event);
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/AbstractConnectorClassBasedFactoryGenerator.java b/src/com/vaadin/terminal/gwt/widgetsetutils/AbstractConnectorClassBasedFactoryGenerator.java
new file mode 100644 (file)
index 0000000..3a13fce
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.terminal.gwt.widgetsetutils;
+
+import java.io.PrintWriter;
+import java.util.Date;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.ext.Generator;
+import com.google.gwt.core.ext.GeneratorContext;
+import com.google.gwt.core.ext.TreeLogger;
+import com.google.gwt.core.ext.TreeLogger.Type;
+import com.google.gwt.core.ext.UnableToCompleteException;
+import com.google.gwt.core.ext.typeinfo.JClassType;
+import com.google.gwt.core.ext.typeinfo.JMethod;
+import com.google.gwt.core.ext.typeinfo.JType;
+import com.google.gwt.core.ext.typeinfo.NotFoundException;
+import com.google.gwt.core.ext.typeinfo.TypeOracle;
+import com.google.gwt.user.rebind.ClassSourceFileComposerFactory;
+import com.google.gwt.user.rebind.SourceWriter;
+import com.vaadin.terminal.gwt.client.ServerConnector;
+import com.vaadin.terminal.gwt.client.ui.ConnectorClassBasedFactory;
+import com.vaadin.terminal.gwt.client.ui.ConnectorClassBasedFactory.Creator;
+
+/**
+ * GWT generator that creates a lookup method for
+ * {@link ConnectorClassBasedFactory} instances.
+ * 
+ * @since 7.0
+ */
+public abstract class AbstractConnectorClassBasedFactoryGenerator extends
+        Generator {
+
+    @Override
+    public String generate(TreeLogger logger, GeneratorContext context,
+            String typeName) throws UnableToCompleteException {
+
+        try {
+            // get classType and save instance variables
+            return generateConnectorClassBasedFactory(typeName, logger, context);
+        } catch (Exception e) {
+            logger.log(TreeLogger.ERROR, typeName + " creation failed", e);
+            throw new UnableToCompleteException();
+        }
+    }
+
+    private String generateConnectorClassBasedFactory(String typeName,
+            TreeLogger logger, GeneratorContext context)
+            throws NotFoundException {
+        TypeOracle typeOracle = context.getTypeOracle();
+
+        JClassType classType = typeOracle.getType(typeName);
+        String superName = classType.getSimpleSourceName();
+        String packageName = classType.getPackage().getName();
+        String className = superName + "Impl";
+
+        // get print writer that receives the source code
+        PrintWriter printWriter = null;
+        printWriter = context.tryCreate(logger, packageName, className);
+        // print writer if null, source code has ALREADY been generated
+        if (printWriter == null) {
+            return packageName + "." + className;
+        }
+
+        Date date = new Date();
+
+        // init composer, set class properties, create source writer
+        ClassSourceFileComposerFactory composer = null;
+        composer = new ClassSourceFileComposerFactory(packageName, className);
+        composer.addImport(GWT.class.getName());
+        composer.addImport(Creator.class.getCanonicalName());
+        composer.setSuperclass(superName);
+
+        SourceWriter sourceWriter = composer.createSourceWriter(context,
+                printWriter);
+        sourceWriter.indent();
+
+        // public ConnectorStateFactoryImpl() {
+        sourceWriter.println("public " + className + "() {");
+        sourceWriter.indent();
+
+        JClassType serverConnectorType = typeOracle.getType(getConnectorType()
+                .getCanonicalName());
+        for (JClassType connector : serverConnectorType.getSubtypes()) {
+            // addCreator(TextAreaConnector.class, new Creator<SharedState>() {
+            if (connector.isInterface() != null || connector.isAbstract()) {
+                continue;
+            }
+
+            JClassType targetType = getTargetType(connector);
+            if (targetType.isAbstract()) {
+                continue;
+            }
+
+            sourceWriter.println("addCreator("
+                    + connector.getQualifiedSourceName()
+                    + ".class, new Creator<"
+                    + targetType.getQualifiedSourceName() + ">() {");
+            // public SharedState create() {
+            sourceWriter.println("public "
+                    + targetType.getQualifiedSourceName() + " create() {");
+            // return GWT.create(TextAreaState.class);
+            sourceWriter.println("return GWT.create("
+                    + targetType.getQualifiedSourceName() + ".class);");
+            // }
+            sourceWriter.println("}");
+            // });
+            sourceWriter.println("});");
+        }
+
+        // End of constructor
+        sourceWriter.outdent();
+        sourceWriter.println("}");
+
+        // close generated class
+        sourceWriter.outdent();
+        sourceWriter.println("}");
+
+        // commit generated class
+        context.commit(logger, printWriter);
+        logger.log(Type.INFO,
+                "Done. (" + (new Date().getTime() - date.getTime()) / 1000
+                        + "seconds)");
+        return packageName + "." + className;
+
+    }
+
+    protected abstract Class<? extends ServerConnector> getConnectorType();
+
+    protected abstract JClassType getTargetType(JClassType connectorType);
+
+    protected JClassType getGetterReturnType(JClassType connector,
+            String getterName) {
+        try {
+            JMethod getMethod = connector.getMethod(getterName, new JType[] {});
+            return (JClassType) getMethod.getReturnType();
+        } catch (NotFoundException e) {
+            return getGetterReturnType(connector.getSuperclass(), getterName);
+        }
+
+    }
+
+}
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/ConnectorStateFactoryGenerator.java b/src/com/vaadin/terminal/gwt/widgetsetutils/ConnectorStateFactoryGenerator.java
new file mode 100644 (file)
index 0000000..33406ef
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.terminal.gwt.widgetsetutils;
+
+import com.google.gwt.core.ext.typeinfo.JClassType;
+import com.vaadin.terminal.gwt.client.ServerConnector;
+
+/**
+ * GWT generator that creates a SharedState class for a given Connector class,
+ * based on the return type of getState()
+ * 
+ * @since 7.0
+ */
+public class ConnectorStateFactoryGenerator extends
+        AbstractConnectorClassBasedFactoryGenerator {
+
+    @Override
+    protected JClassType getTargetType(JClassType connectorType) {
+        return getGetterReturnType(connectorType, "getState");
+    }
+
+    @Override
+    protected Class<? extends ServerConnector> getConnectorType() {
+        return ServerConnector.class;
+    }
+
+}
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/ConnectorWidgetFactoryGenerator.java b/src/com/vaadin/terminal/gwt/widgetsetutils/ConnectorWidgetFactoryGenerator.java
new file mode 100644 (file)
index 0000000..55a2857
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.terminal.gwt.widgetsetutils;
+
+import com.google.gwt.core.ext.typeinfo.JClassType;
+import com.vaadin.terminal.gwt.client.ComponentConnector;
+import com.vaadin.terminal.gwt.client.ServerConnector;
+
+/**
+ * GWT generator that creates a Widget class for a given Connector class, based
+ * on the return type of getWidget()
+ * 
+ * @since 7.0
+ */
+public class ConnectorWidgetFactoryGenerator extends
+        AbstractConnectorClassBasedFactoryGenerator {
+    @Override
+    protected JClassType getTargetType(JClassType connectorType) {
+        return getGetterReturnType(connectorType, "getWidget");
+    }
+
+    @Override
+    protected Class<? extends ServerConnector> getConnectorType() {
+        return ComponentConnector.class;
+    }
+
+}
\ No newline at end of file
index c94ac05ea27fd7e9db803667ee5327c72435e929..2b01bad2cfe187938e0c7af0e24d68aa82f237fa 100644 (file)
@@ -3,8 +3,6 @@
  */
 package com.vaadin.tests.dd;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -23,8 +21,8 @@ public class MyDragSourceConnector extends AbstractComponentConnector implements
     }
 
     @Override
-    protected Widget createWidget() {
-        return GWT.create(VMyDragSource.class);
+    public VMyDragSource getWidget() {
+        return (VMyDragSource) super.getWidget();
     }
 
 }
index 0021cbf7eab5aa75942028c4ad10b9d7afff6507..5671efa2369917fb6d59c27e91cb65873f5c8eaf 100644 (file)
@@ -3,8 +3,6 @@
  */
 package com.vaadin.tests.dd;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.UIDL;
@@ -28,9 +26,4 @@ public class MyDropTargetConnector extends AbstractComponentConnector implements
         return (VMyDropTarget) super.getWidget();
     }
 
-    @Override
-    protected Widget createWidget() {
-        return GWT.create(VMyDropTarget.class);
-    }
-
 }