package com.mycompany; import java.util.HashSet; import java.util.Set; import com.google.gwt.core.ext.typeinfo.JClassType; import com.vaadin.client.ui.button.ButtonConnector; import com.vaadin.client.ui.csslayout.CssLayoutConnector; import com.vaadin.client.ui.label.LabelConnector; import com.vaadin.client.ui.orderedlayout.HorizontalLayoutConnector; import com.vaadin.client.ui.orderedlayout.VerticalLayoutConnector; import com.vaadin.client.ui.panel.PanelConnector; import com.vaadin.client.ui.passwordfield.PasswordFieldConnector; import com.vaadin.client.ui.textfield.TextFieldConnector; import com.vaadin.client.ui.ui.UIConnector; import com.vaadin.client.ui.window.WindowConnector; import com.vaadin.server.widgetsetutils.ConnectorBundleLoaderFactory; import com.vaadin.shared.ui.Connect.LoadStyle; public class OptimizedConnectorBundleLoaderFactory extends ConnectorBundleLoaderFactory { private Set<String> eagerConnectors = new HashSet<String>(); { eagerConnectors.add(PasswordFieldConnector.class.getName()); eagerConnectors.add(VerticalLayoutConnector.class.getName()); eagerConnectors.add(HorizontalLayoutConnector.class.getName()); eagerConnectors.add(ButtonConnector.class.getName()); eagerConnectors.add(UIConnector.class.getName()); eagerConnectors.add(CssLayoutConnector.class.getName()); eagerConnectors.add(TextFieldConnector.class.getName()); eagerConnectors.add(PanelConnector.class.getName()); eagerConnectors.add(LabelConnector.class.getName()); eagerConnectors.add(WindowConnector.class.getName()); } @Override protected LoadStyle getLoadStyle(JClassType connectorType) { if (eagerConnectors.contains(connectorType.getQualifiedBinaryName())) { return LoadStyle.EAGER; } else { // Loads all other connectors immediately after the initial view has // been rendered return LoadStyle.DEFERRED; } } }