From d3482aab86dfdb76ab33260b82e4821094e1b5fa Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Fri, 11 Jun 2010 14:40:49 +0000 Subject: [PATCH] code splitting + client initialization svn changeset:13651/svn branch:6.4 --- .../terminal/gwt/DefaultWidgetSet.gwt.xml | 2 +- src/com/vaadin/ui/Button.java | 3 ++- src/com/vaadin/ui/ClientWidget.java | 22 +++++++++++++++++-- src/com/vaadin/ui/CustomComponent.java | 3 ++- src/com/vaadin/ui/HorizontalLayout.java | 3 ++- src/com/vaadin/ui/Label.java | 3 ++- src/com/vaadin/ui/OrderedLayout.java | 3 ++- src/com/vaadin/ui/SplitPanel.java | 3 ++- src/com/vaadin/ui/TextField.java | 3 ++- src/com/vaadin/ui/UriFragmentUtility.java | 3 ++- src/com/vaadin/ui/VerticalLayout.java | 3 ++- .../container/AbstractContainerTest.java | 2 +- 12 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml b/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml index c5c9556eb0..1413377717 100644 --- a/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml +++ b/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml @@ -53,6 +53,6 @@ - + diff --git a/src/com/vaadin/ui/Button.java b/src/com/vaadin/ui/Button.java index 99daf2b34c..92e578baad 100644 --- a/src/com/vaadin/ui/Button.java +++ b/src/com/vaadin/ui/Button.java @@ -22,6 +22,7 @@ import com.vaadin.event.ShortcutAction.ModifierKey; import com.vaadin.terminal.PaintException; import com.vaadin.terminal.PaintTarget; import com.vaadin.terminal.gwt.client.ui.VButton; +import com.vaadin.ui.ClientWidget.LoadStyle; import com.vaadin.ui.themes.BaseTheme; /** @@ -33,7 +34,7 @@ import com.vaadin.ui.themes.BaseTheme; * @since 3.0 */ @SuppressWarnings("serial") -@ClientWidget(value = VButton.class, lazyLoad = false) +@ClientWidget(value = VButton.class, loadStyle = LoadStyle.EAGER) public class Button extends AbstractField implements FieldEvents.BlurNotifier, FieldEvents.FocusNotifier { diff --git a/src/com/vaadin/ui/ClientWidget.java b/src/com/vaadin/ui/ClientWidget.java index 39aecf1f86..0848309b31 100644 --- a/src/com/vaadin/ui/ClientWidget.java +++ b/src/com/vaadin/ui/ClientWidget.java @@ -26,7 +26,6 @@ import com.vaadin.terminal.gwt.widgetsetutils.WidgetMapGenerator; * Note, even though client side implementation is needed during development, * one may safely remove them from classpath of the production server. * - * * @since 6.2 */ @Retention(RetentionPolicy.RUNTIME) @@ -38,6 +37,8 @@ public @interface ClientWidget { Class value(); /** + * TODO rewrite for EAGER, DEFERRED, LAZY + * * The lazy loading of a widget implementation means the client side * component is not included in the initial JavaScript application loaded * when the application starts. Instead the implementation is loaded to the @@ -64,6 +65,23 @@ public @interface ClientWidget { * screen slightly increases, but widgets implementation does not * stress the initialization of the client side engine. */ - boolean lazyLoad() default true; + LoadStyle loadStyle() default LoadStyle.DEFERRED; + + public enum LoadStyle { + /** + * The widget is included in the initial JS sent to the client. + */ + EAGER, + /** + * Not included in the initial set of widgets, but added to queue from + * which it will be loaded when network is not busy or the + * implementation is required. + */ + DEFERRED, + /** + * Loaded to the client only if needed. + */ + LAZY + } } diff --git a/src/com/vaadin/ui/CustomComponent.java b/src/com/vaadin/ui/CustomComponent.java index 46e92384f8..e06fb321e3 100644 --- a/src/com/vaadin/ui/CustomComponent.java +++ b/src/com/vaadin/ui/CustomComponent.java @@ -10,6 +10,7 @@ import java.util.Iterator; import com.vaadin.terminal.PaintException; import com.vaadin.terminal.PaintTarget; import com.vaadin.terminal.gwt.client.ui.VCustomComponent; +import com.vaadin.ui.ClientWidget.LoadStyle; /** * Custom component provides simple implementation of Component interface for @@ -26,7 +27,7 @@ import com.vaadin.terminal.gwt.client.ui.VCustomComponent; * @since 3.0 */ @SuppressWarnings("serial") -@ClientWidget(value = VCustomComponent.class, lazyLoad = false) +@ClientWidget(value = VCustomComponent.class, loadStyle = LoadStyle.EAGER) public class CustomComponent extends AbstractComponentContainer { /** diff --git a/src/com/vaadin/ui/HorizontalLayout.java b/src/com/vaadin/ui/HorizontalLayout.java index 3308b5764e..7840d50027 100644 --- a/src/com/vaadin/ui/HorizontalLayout.java +++ b/src/com/vaadin/ui/HorizontalLayout.java @@ -4,6 +4,7 @@ package com.vaadin.ui; import com.vaadin.terminal.gwt.client.ui.VHorizontalLayout; +import com.vaadin.ui.ClientWidget.LoadStyle; /** * Horizontal layout @@ -17,7 +18,7 @@ import com.vaadin.terminal.gwt.client.ui.VHorizontalLayout; * @since 5.3 */ @SuppressWarnings("serial") -@ClientWidget(value = VHorizontalLayout.class, lazyLoad = false) +@ClientWidget(value = VHorizontalLayout.class, loadStyle = LoadStyle.EAGER) public class HorizontalLayout extends AbstractOrderedLayout { public HorizontalLayout() { diff --git a/src/com/vaadin/ui/Label.java b/src/com/vaadin/ui/Label.java index 288692a365..6a295f7bc1 100644 --- a/src/com/vaadin/ui/Label.java +++ b/src/com/vaadin/ui/Label.java @@ -11,6 +11,7 @@ import com.vaadin.data.util.ObjectProperty; import com.vaadin.terminal.PaintException; import com.vaadin.terminal.PaintTarget; import com.vaadin.terminal.gwt.client.ui.VLabel; +import com.vaadin.ui.ClientWidget.LoadStyle; /** * Label component for showing non-editable short texts. @@ -38,7 +39,7 @@ import com.vaadin.terminal.gwt.client.ui.VLabel; * @since 3.0 */ @SuppressWarnings("serial") -@ClientWidget(value = VLabel.class, lazyLoad = false) +@ClientWidget(value = VLabel.class, loadStyle = LoadStyle.EAGER) public class Label extends AbstractComponent implements Property, Property.Viewer, Property.ValueChangeListener, Property.ValueChangeNotifier, Comparable { diff --git a/src/com/vaadin/ui/OrderedLayout.java b/src/com/vaadin/ui/OrderedLayout.java index dafaf54e8e..4718c839ba 100644 --- a/src/com/vaadin/ui/OrderedLayout.java +++ b/src/com/vaadin/ui/OrderedLayout.java @@ -6,6 +6,7 @@ package com.vaadin.ui; import com.vaadin.terminal.PaintException; import com.vaadin.terminal.PaintTarget; import com.vaadin.terminal.gwt.client.ui.VOrderedLayout; +import com.vaadin.ui.ClientWidget.LoadStyle; /** * Ordered layout. @@ -24,7 +25,7 @@ import com.vaadin.terminal.gwt.client.ui.VOrderedLayout; */ @SuppressWarnings("serial") @Deprecated -@ClientWidget(value = VOrderedLayout.class, lazyLoad = false) +@ClientWidget(value = VOrderedLayout.class, loadStyle = LoadStyle.EAGER) public class OrderedLayout extends AbstractOrderedLayout { /* Predefined orientations */ diff --git a/src/com/vaadin/ui/SplitPanel.java b/src/com/vaadin/ui/SplitPanel.java index fc443052e8..cd41a82760 100644 --- a/src/com/vaadin/ui/SplitPanel.java +++ b/src/com/vaadin/ui/SplitPanel.java @@ -17,6 +17,7 @@ import com.vaadin.terminal.gwt.client.MouseEventDetails; import com.vaadin.terminal.gwt.client.ui.VSplitPanel; import com.vaadin.terminal.gwt.client.ui.VSplitPanelHorizontal; import com.vaadin.tools.ReflectTools; +import com.vaadin.ui.ClientWidget.LoadStyle; /** * SplitPanel. @@ -30,7 +31,7 @@ import com.vaadin.tools.ReflectTools; * @since 5.0 */ @SuppressWarnings("serial") -@ClientWidget(value = VSplitPanelHorizontal.class, lazyLoad = false) +@ClientWidget(value = VSplitPanelHorizontal.class, loadStyle = LoadStyle.EAGER) public class SplitPanel extends AbstractLayout { /* Predefined orientations */ diff --git a/src/com/vaadin/ui/TextField.java b/src/com/vaadin/ui/TextField.java index 9baeea744b..aa4c7c8661 100644 --- a/src/com/vaadin/ui/TextField.java +++ b/src/com/vaadin/ui/TextField.java @@ -16,6 +16,7 @@ import com.vaadin.event.FieldEvents.FocusListener; import com.vaadin.terminal.PaintException; import com.vaadin.terminal.PaintTarget; import com.vaadin.terminal.gwt.client.ui.VTextField; +import com.vaadin.ui.ClientWidget.LoadStyle; /** *

@@ -38,7 +39,7 @@ import com.vaadin.terminal.gwt.client.ui.VTextField; * @since 3.0 */ @SuppressWarnings("serial") -@ClientWidget(value = VTextField.class, lazyLoad = false) +@ClientWidget(value = VTextField.class, loadStyle = LoadStyle.EAGER) public class TextField extends AbstractField implements FieldEvents.BlurNotifier, FieldEvents.FocusNotifier { diff --git a/src/com/vaadin/ui/UriFragmentUtility.java b/src/com/vaadin/ui/UriFragmentUtility.java index a99b2803ca..7835dcf90e 100644 --- a/src/com/vaadin/ui/UriFragmentUtility.java +++ b/src/com/vaadin/ui/UriFragmentUtility.java @@ -10,6 +10,7 @@ import java.util.Map; import com.vaadin.terminal.PaintException; import com.vaadin.terminal.PaintTarget; import com.vaadin.terminal.gwt.client.ui.VUriFragmentUtility; +import com.vaadin.ui.ClientWidget.LoadStyle; /** * Experimental web browser dependent component for URI fragment (part after @@ -20,7 +21,7 @@ import com.vaadin.terminal.gwt.client.ui.VUriFragmentUtility; * */ @SuppressWarnings("serial") -@ClientWidget(value = VUriFragmentUtility.class, lazyLoad = false) +@ClientWidget(value = VUriFragmentUtility.class, loadStyle = LoadStyle.EAGER) public class UriFragmentUtility extends AbstractComponent { /** diff --git a/src/com/vaadin/ui/VerticalLayout.java b/src/com/vaadin/ui/VerticalLayout.java index 52b928ed82..40ea05b697 100644 --- a/src/com/vaadin/ui/VerticalLayout.java +++ b/src/com/vaadin/ui/VerticalLayout.java @@ -4,6 +4,7 @@ package com.vaadin.ui; import com.vaadin.terminal.gwt.client.ui.VVerticalLayout; +import com.vaadin.ui.ClientWidget.LoadStyle; /** * Vertical layout @@ -18,7 +19,7 @@ import com.vaadin.terminal.gwt.client.ui.VVerticalLayout; * @since 5.3 */ @SuppressWarnings("serial") -@ClientWidget(value = VVerticalLayout.class, lazyLoad = false) +@ClientWidget(value = VVerticalLayout.class, loadStyle = LoadStyle.EAGER) public class VerticalLayout extends AbstractOrderedLayout { public VerticalLayout() { diff --git a/tests/src/com/vaadin/tests/server/container/AbstractContainerTest.java b/tests/src/com/vaadin/tests/server/container/AbstractContainerTest.java index f7f6ccbd47..30c528a04d 100644 --- a/tests/src/com/vaadin/tests/server/container/AbstractContainerTest.java +++ b/tests/src/com/vaadin/tests/server/container/AbstractContainerTest.java @@ -333,7 +333,7 @@ public abstract class AbstractContainerTest extends TestCase { "com.vaadin.terminal.gwt.client.ContainerResizedListener", "com.vaadin.terminal.gwt.client.CSSRule", "com.vaadin.terminal.gwt.client.DateTimeService", - "com.vaadin.terminal.gwt.client.DefaultWidgetSet", + "com.vaadin.terminal.gwt.client.WidgetSet", "com.vaadin.terminal.gwt.client.Focusable", "com.vaadin.terminal.gwt.client.HistoryImplIEVaadin", "com.vaadin.terminal.gwt.client.LocaleNotLoadedException", -- 2.39.5