summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Koivuviita <jouni@vaadin.com>2012-08-07 16:05:49 +0300
committerJouni Koivuviita <jouni@vaadin.com>2012-08-07 16:05:49 +0300
commit8356465b3897fa16233064cfd586b4557f33e8e4 (patch)
treeaa14a1e52e85935486e7a4aec453247939a228fc
parent9a83722fde94af949b45d4c091399ba9e1f6ba29 (diff)
parent5813e0e9e5af4f946e5ea9c73d426e95d93b7bc4 (diff)
downloadvaadin-framework-8356465b3897fa16233064cfd586b4557f33e8e4.tar.gz
vaadin-framework-8356465b3897fa16233064cfd586b4557f33e8e4.zip
merge master
-rw-r--r--WebContent/VAADIN/themes/base/table/table.css5
-rw-r--r--WebContent/VAADIN/themes/base/textfield/richtext.css4
-rw-r--r--WebContent/VAADIN/themes/base/treetable/treetable.css11
-rw-r--r--WebContent/VAADIN/themes/reindeer/table/table.css6
-rw-r--r--WebContent/release-notes.html66
-rw-r--r--WebContent/statictestfiles/LoginFormIframe.html14
-rw-r--r--WebContent/statictestfiles/jsconnector.js13
-rw-r--r--build/GWT-VERSION.properties2
-rw-r--r--build/build.properties1
-rw-r--r--build/build.xml227
-rw-r--r--build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.java68
-rw-r--r--build/ivy/ivy.xml17
-rw-r--r--build/javadoc/j2se-1.6.0/package-list (renamed from build/javadoc/j2se-1.5.0/package-list)39
-rwxr-xr-xscripts/merge-check.sh31
-rw-r--r--src/com/vaadin/Application.java16
-rw-r--r--src/com/vaadin/Vaadin.gwt.xml85
-rw-r--r--src/com/vaadin/annotations/JavaScript.java42
-rw-r--r--src/com/vaadin/annotations/LoadScripts.java24
-rw-r--r--src/com/vaadin/annotations/StyleSheet.java38
-rw-r--r--src/com/vaadin/data/Container.java1
-rw-r--r--src/com/vaadin/data/fieldgroup/DefaultFieldGroupFieldFactory.java1
-rw-r--r--src/com/vaadin/data/util/AbstractBeanContainer.java12
-rw-r--r--src/com/vaadin/data/util/AbstractContainer.java2
-rw-r--r--src/com/vaadin/data/util/AbstractInMemoryContainer.java22
-rw-r--r--src/com/vaadin/data/util/AbstractProperty.java8
-rw-r--r--src/com/vaadin/data/util/BeanItemContainer.java1
-rw-r--r--src/com/vaadin/data/util/ContainerHierarchicalWrapper.java28
-rw-r--r--src/com/vaadin/data/util/ContainerOrderedWrapper.java27
-rw-r--r--src/com/vaadin/data/util/DefaultItemSorter.java3
-rw-r--r--src/com/vaadin/data/util/FilesystemContainer.java26
-rw-r--r--src/com/vaadin/data/util/HierarchicalContainer.java8
-rw-r--r--src/com/vaadin/data/util/HierarchicalContainerOrderedWrapper.java8
-rw-r--r--src/com/vaadin/data/util/IndexedContainer.java24
-rw-r--r--src/com/vaadin/data/util/ItemSorter.java1
-rw-r--r--src/com/vaadin/data/util/MethodProperty.java3
-rw-r--r--src/com/vaadin/data/util/MethodPropertyDescriptor.java3
-rw-r--r--src/com/vaadin/data/util/NestedMethodProperty.java3
-rw-r--r--src/com/vaadin/data/util/NestedPropertyDescriptor.java3
-rw-r--r--src/com/vaadin/data/util/ObjectProperty.java3
-rw-r--r--src/com/vaadin/data/util/PropertyFormatter.java7
-rw-r--r--src/com/vaadin/data/util/PropertysetItem.java7
-rw-r--r--src/com/vaadin/data/util/QueryContainer.java29
-rw-r--r--src/com/vaadin/data/util/TextFileProperty.java3
-rw-r--r--src/com/vaadin/data/util/TransactionalPropertyWrapper.java7
-rw-r--r--src/com/vaadin/data/util/converter/DateToLongConverter.java4
-rw-r--r--src/com/vaadin/data/util/converter/DefaultConverterFactory.java1
-rw-r--r--src/com/vaadin/data/util/converter/ReverseConverter.java4
-rw-r--r--src/com/vaadin/data/util/converter/StringToBooleanConverter.java4
-rw-r--r--src/com/vaadin/data/util/converter/StringToDateConverter.java4
-rw-r--r--src/com/vaadin/data/util/converter/StringToDoubleConverter.java4
-rw-r--r--src/com/vaadin/data/util/converter/StringToIntegerConverter.java4
-rw-r--r--src/com/vaadin/data/util/converter/StringToNumberConverter.java4
-rw-r--r--src/com/vaadin/data/util/filter/AbstractJunctionFilter.java1
-rw-r--r--src/com/vaadin/data/util/filter/And.java1
-rw-r--r--src/com/vaadin/data/util/filter/Between.java2
-rw-r--r--src/com/vaadin/data/util/filter/Compare.java2
-rw-r--r--src/com/vaadin/data/util/filter/IsNull.java2
-rw-r--r--src/com/vaadin/data/util/filter/Like.java2
-rw-r--r--src/com/vaadin/data/util/filter/Not.java2
-rw-r--r--src/com/vaadin/data/util/filter/Or.java1
-rw-r--r--src/com/vaadin/data/util/filter/SimpleStringFilter.java2
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/ColumnProperty.java5
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/RowItem.java4
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/SQLContainer.java34
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/connection/J2EEConnectionPool.java3
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/connection/SimpleJDBCConnectionPool.java3
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/FreeformQuery.java12
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/TableQuery.java16
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/generator/DefaultSQLGenerator.java66
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/generator/MSSQLGenerator.java2
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/generator/OracleGenerator.java12
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/generator/StatementHelper.java24
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/generator/filter/AndTranslator.java2
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/generator/filter/BetweenTranslator.java2
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/generator/filter/CompareTranslator.java2
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/generator/filter/IsNullTranslator.java2
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/generator/filter/LikeTranslator.java2
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/generator/filter/NotTranslator.java2
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/generator/filter/OrTranslator.java2
-rw-r--r--src/com/vaadin/data/util/sqlcontainer/query/generator/filter/SimpleStringTranslator.java2
-rw-r--r--src/com/vaadin/data/validator/AbstractValidator.java1
-rw-r--r--src/com/vaadin/data/validator/BeanValidator.java3
-rw-r--r--src/com/vaadin/data/validator/CompositeValidator.java1
-rw-r--r--src/com/vaadin/data/validator/NullValidator.java1
-rw-r--r--src/com/vaadin/event/ActionManager.java6
-rw-r--r--src/com/vaadin/event/EventRouter.java5
-rw-r--r--src/com/vaadin/event/FieldEvents.java6
-rw-r--r--src/com/vaadin/event/ItemClickEvent.java2
-rw-r--r--src/com/vaadin/event/LayoutEvents.java4
-rw-r--r--src/com/vaadin/event/MouseEvents.java2
-rw-r--r--src/com/vaadin/event/ShortcutListener.java1
-rw-r--r--src/com/vaadin/event/TransferableImpl.java4
-rw-r--r--src/com/vaadin/event/dd/TargetDetailsImpl.java2
-rw-r--r--src/com/vaadin/event/dd/acceptcriteria/AcceptAll.java1
-rw-r--r--src/com/vaadin/event/dd/acceptcriteria/And.java1
-rw-r--r--src/com/vaadin/event/dd/acceptcriteria/ClientSideCriterion.java3
-rw-r--r--src/com/vaadin/event/dd/acceptcriteria/ContainsDataFlavor.java1
-rw-r--r--src/com/vaadin/event/dd/acceptcriteria/Not.java1
-rw-r--r--src/com/vaadin/event/dd/acceptcriteria/Or.java1
-rw-r--r--src/com/vaadin/event/dd/acceptcriteria/ServerSideCriterion.java3
-rw-r--r--src/com/vaadin/event/dd/acceptcriteria/SourceIs.java1
-rw-r--r--src/com/vaadin/event/dd/acceptcriteria/SourceIsTarget.java1
-rw-r--r--src/com/vaadin/event/dd/acceptcriteria/TargetDetailIs.java1
-rw-r--r--src/com/vaadin/external/json/JSONException.java1
-rw-r--r--src/com/vaadin/external/json/JSONStringer.java1
-rw-r--r--src/com/vaadin/navigator/Navigator.java100
-rw-r--r--src/com/vaadin/shared/AbstractFieldState.java (renamed from src/com/vaadin/terminal/gwt/client/AbstractFieldState.java)6
-rw-r--r--src/com/vaadin/shared/ComponentState.java (renamed from src/com/vaadin/terminal/gwt/client/ComponentState.java)6
-rw-r--r--src/com/vaadin/shared/Connector.java (renamed from src/com/vaadin/terminal/gwt/client/Connector.java)5
-rw-r--r--src/com/vaadin/shared/EventId.java (renamed from src/com/vaadin/terminal/gwt/client/EventId.java)2
-rw-r--r--src/com/vaadin/shared/JavaScriptConnectorState.java14
-rw-r--r--src/com/vaadin/shared/JavaScriptExtensionState.java (renamed from src/com/vaadin/terminal/gwt/client/JavaScriptExtensionState.java)7
-rw-r--r--src/com/vaadin/shared/MouseEventDetails.java (renamed from src/com/vaadin/terminal/gwt/client/MouseEventDetails.java)2
-rw-r--r--src/com/vaadin/shared/VBrowserDetails.java (renamed from src/com/vaadin/terminal/gwt/client/VBrowserDetails.java)3
-rw-r--r--src/com/vaadin/shared/communication/ClientRpc.java (renamed from src/com/vaadin/terminal/gwt/client/communication/ClientRpc.java)2
-rw-r--r--src/com/vaadin/shared/communication/FieldRpc.java (renamed from src/com/vaadin/terminal/gwt/client/communication/FieldRpc.java)2
-rw-r--r--src/com/vaadin/shared/communication/MethodInvocation.java (renamed from src/com/vaadin/terminal/gwt/client/communication/MethodInvocation.java)2
-rw-r--r--src/com/vaadin/shared/communication/ServerRpc.java (renamed from src/com/vaadin/terminal/gwt/client/communication/ServerRpc.java)2
-rw-r--r--src/com/vaadin/shared/communication/SharedState.java (renamed from src/com/vaadin/terminal/gwt/client/communication/SharedState.java)4
-rw-r--r--src/com/vaadin/shared/communication/URLReference.java (renamed from src/com/vaadin/terminal/gwt/client/communication/URLReference.java)2
-rw-r--r--src/com/vaadin/shared/communication/UidlValue.java (renamed from src/com/vaadin/terminal/gwt/client/communication/UidlValue.java)2
-rw-r--r--src/com/vaadin/shared/extension/javascriptmanager/ExecuteJavaScriptRpc.java (renamed from src/com/vaadin/terminal/gwt/client/extensions/javascriptmanager/ExecuteJavaScriptRpc.java)4
-rw-r--r--src/com/vaadin/shared/extension/javascriptmanager/JavaScriptManagerState.java (renamed from src/com/vaadin/terminal/gwt/client/extensions/javascriptmanager/JavaScriptManagerState.java)4
-rw-r--r--src/com/vaadin/shared/ui/AbstractLayoutState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/AbstractLayoutState.java)4
-rw-r--r--src/com/vaadin/shared/ui/AbstractMediaState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/AbstractMediaState.java)6
-rw-r--r--src/com/vaadin/shared/ui/AlignmentInfo.java (renamed from src/com/vaadin/terminal/gwt/client/ui/AlignmentInfo.java)2
-rw-r--r--src/com/vaadin/shared/ui/ClickRpc.java (renamed from src/com/vaadin/terminal/gwt/client/ui/ClickRpc.java)6
-rw-r--r--src/com/vaadin/shared/ui/Connect.java (renamed from src/com/vaadin/terminal/gwt/client/ui/Connect.java)4
-rw-r--r--src/com/vaadin/shared/ui/JavaScriptComponentState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/JavaScriptComponentState.java)8
-rw-r--r--src/com/vaadin/shared/ui/LayoutClickRpc.java (renamed from src/com/vaadin/terminal/gwt/client/ui/LayoutClickRpc.java)8
-rw-r--r--src/com/vaadin/shared/ui/MediaControl.java24
-rw-r--r--src/com/vaadin/shared/ui/TabIndexState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/TabIndexState.java)2
-rw-r--r--src/com/vaadin/shared/ui/VMarginInfo.java (renamed from src/com/vaadin/terminal/gwt/client/ui/VMarginInfo.java)2
-rw-r--r--src/com/vaadin/shared/ui/absolutelayout/AbsoluteLayoutServerRpc.java11
-rw-r--r--src/com/vaadin/shared/ui/absolutelayout/AbsoluteLayoutState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutState.java)6
-rw-r--r--src/com/vaadin/shared/ui/button/ButtonServerRpc.java (renamed from src/com/vaadin/terminal/gwt/client/ui/button/ButtonServerRpc.java)6
-rw-r--r--src/com/vaadin/shared/ui/button/ButtonState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/button/ButtonState.java)8
-rw-r--r--src/com/vaadin/shared/ui/checkbox/CheckBoxServerRpc.java (renamed from src/com/vaadin/terminal/gwt/client/ui/checkbox/CheckBoxServerRpc.java)6
-rw-r--r--src/com/vaadin/shared/ui/checkbox/CheckBoxState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/checkbox/CheckBoxState.java)4
-rw-r--r--src/com/vaadin/shared/ui/csslayout/CssLayoutServerRpc.java11
-rw-r--r--src/com/vaadin/shared/ui/csslayout/CssLayoutState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutState.java)6
-rw-r--r--src/com/vaadin/shared/ui/customlayout/CustomLayoutState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/customlayout/CustomLayoutState.java)6
-rw-r--r--src/com/vaadin/shared/ui/dd/AcceptCriterion.java (renamed from src/com/vaadin/terminal/gwt/client/ui/dd/AcceptCriterion.java)4
-rw-r--r--src/com/vaadin/shared/ui/dd/DragEventType.java9
-rw-r--r--src/com/vaadin/shared/ui/dd/HorizontalDropLocation.java (renamed from src/com/vaadin/terminal/gwt/client/ui/dd/HorizontalDropLocation.java)2
-rw-r--r--src/com/vaadin/shared/ui/dd/VerticalDropLocation.java (renamed from src/com/vaadin/terminal/gwt/client/ui/dd/VerticalDropLocation.java)2
-rw-r--r--src/com/vaadin/shared/ui/embedded/EmbeddedServerRpc.java10
-rw-r--r--src/com/vaadin/shared/ui/form/FormState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/form/FormState.java)6
-rw-r--r--src/com/vaadin/shared/ui/gridlayout/GridLayoutServerRpc.java11
-rw-r--r--src/com/vaadin/shared/ui/gridlayout/GridLayoutState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutState.java)4
-rw-r--r--src/com/vaadin/shared/ui/label/ContentMode.java46
-rw-r--r--src/com/vaadin/shared/ui/label/LabelState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/label/LabelState.java)4
-rw-r--r--src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutServerRpc.java12
-rw-r--r--src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutState.java)8
-rw-r--r--src/com/vaadin/shared/ui/panel/PanelServerRpc.java11
-rw-r--r--src/com/vaadin/shared/ui/panel/PanelState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/panel/PanelState.java)4
-rw-r--r--src/com/vaadin/shared/ui/root/PageClientRpc.java (renamed from src/com/vaadin/terminal/gwt/client/ui/root/PageClientRpc.java)4
-rw-r--r--src/com/vaadin/shared/ui/root/RootServerRpc.java11
-rw-r--r--src/com/vaadin/shared/ui/root/RootState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/root/RootState.java)6
-rw-r--r--src/com/vaadin/shared/ui/splitpanel/AbstractSplitPanelRpc.java (renamed from src/com/vaadin/terminal/gwt/client/ui/splitpanel/AbstractSplitPanelRpc.java)6
-rw-r--r--src/com/vaadin/shared/ui/splitpanel/AbstractSplitPanelState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/splitpanel/AbstractSplitPanelState.java)6
-rw-r--r--src/com/vaadin/shared/ui/textarea/TextAreaState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/textarea/TextAreaState.java)4
-rw-r--r--src/com/vaadin/shared/ui/textfield/AbstractTextFieldState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/textfield/AbstractTextFieldState.java)4
-rw-r--r--src/com/vaadin/shared/ui/video/VideoState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/video/VideoState.java)6
-rw-r--r--src/com/vaadin/shared/ui/window/WindowServerRpc.java10
-rw-r--r--src/com/vaadin/shared/ui/window/WindowState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/window/WindowState.java)4
-rw-r--r--src/com/vaadin/terminal/AbstractClientConnector.java28
-rw-r--r--src/com/vaadin/terminal/AbstractErrorMessage.java2
-rw-r--r--src/com/vaadin/terminal/AbstractJavaScriptExtension.java17
-rw-r--r--src/com/vaadin/terminal/ClassResource.java6
-rw-r--r--src/com/vaadin/terminal/CombinedRequest.java20
-rw-r--r--src/com/vaadin/terminal/DeploymentConfiguration.java27
-rw-r--r--src/com/vaadin/terminal/ExternalResource.java1
-rw-r--r--src/com/vaadin/terminal/FileResource.java7
-rw-r--r--src/com/vaadin/terminal/JavaScriptCallbackHelper.java3
-rw-r--r--src/com/vaadin/terminal/Page.java2
-rw-r--r--src/com/vaadin/terminal/StreamResource.java6
-rw-r--r--src/com/vaadin/terminal/ThemeResource.java1
-rw-r--r--src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml87
-rw-r--r--src/com/vaadin/terminal/gwt/VaadinBrowserSpecificOverrides.gwt.xml (renamed from src/com/vaadin/terminal/gwt/DefaultWidgetSetBrowserSpecificOverrides.gwt.xml)0
-rw-r--r--src/com/vaadin/terminal/gwt/client/ApplicationConfiguration.java45
-rw-r--r--src/com/vaadin/terminal/gwt/client/ApplicationConnection.java250
-rw-r--r--src/com/vaadin/terminal/gwt/client/BrowserInfo.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ComponentConnector.java13
-rw-r--r--src/com/vaadin/terminal/gwt/client/ComponentLocator.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ConnectorMap.java38
-rw-r--r--src/com/vaadin/terminal/gwt/client/EventHelper.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/JavaScriptConnectorHelper.java39
-rw-r--r--src/com/vaadin/terminal/gwt/client/JavaScriptExtension.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/MouseEventDetailsBuilder.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/NullConsole.java9
-rw-r--r--src/com/vaadin/terminal/gwt/client/ResourceLoader.java540
-rw-r--r--src/com/vaadin/terminal/gwt/client/ServerConnector.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/SimpleTree.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/SuperDevMode.java253
-rw-r--r--src/com/vaadin/terminal/gwt/client/TooltipInfo.java19
-rw-r--r--src/com/vaadin/terminal/gwt/client/UIDL.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/Util.java90
-rw-r--r--src/com/vaadin/terminal/gwt/client/VCaption.java29
-rw-r--r--src/com/vaadin/terminal/gwt/client/VConsole.java30
-rw-r--r--src/com/vaadin/terminal/gwt/client/VDebugConsole.java109
-rw-r--r--src/com/vaadin/terminal/gwt/client/VSchedulerImpl.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/VTooltip.java219
-rw-r--r--src/com/vaadin/terminal/gwt/client/VUIDLBrowser.java158
-rw-r--r--src/com/vaadin/terminal/gwt/client/WidgetLoader.java6
-rw-r--r--src/com/vaadin/terminal/gwt/client/communication/InitializableServerRpc.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/communication/JsonDecoder.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/communication/JsonEncoder.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/communication/RpcManager.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/communication/RpcMethod.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/communication/RpcProxy.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/communication/URLReference_Serializer.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/extensions/javascriptmanager/JavaScriptManagerConnector.java7
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/AbstractClickEventHandler.java5
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/AbstractComponentConnector.java240
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/AbstractComponentContainerConnector.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java19
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/AbstractFieldConnector.java23
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/AbstractLayoutConnector.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/Action.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/ClickEventHandler.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/ConnectorClassBasedFactory.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/ConnectorStateFactory.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/ConnectorWidgetFactory.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/FocusableFlexTable.java5
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/FocusableFlowPanel.java5
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/FocusableScrollPanel.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/JavaScriptComponentConnector.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/LayoutClickEventHandler.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/MediaBaseConnector.java24
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/ShortcutActionHandler.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/SimpleFocusablePanel.java5
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/TouchScrollDelegate.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/TreeImages.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/UnknownComponentConnector.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VContextMenu.java10
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VOverlay.java243
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/Vaadin6Connector.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutConnector.java9
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutServerRpc.java11
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/accordion/AccordionConnector.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/accordion/VAccordion.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/audio/AudioConnector.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/button/ButtonConnector.java13
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/button/VButton.java6
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/checkbox/CheckBoxConnector.java11
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/checkbox/VCheckBox.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/combobox/ComboBoxConnector.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/combobox/VFilterSelect.java43
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutConnector.java9
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutServerRpc.java11
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/csslayout/VCssLayout.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/customcomponent/CustomComponentConnector.java5
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/customfield/CustomFieldConnector.java6
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/customlayout/CustomLayoutConnector.java16
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/datefield/AbstractDateFieldConnector.java21
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/datefield/InlineDateFieldConnector.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/datefield/PopupDateFieldConnector.java38
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/datefield/VCalendarPanel.java12
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/datefield/VDateField.java11
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/datefield/VDateFieldCalendar.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/datefield/VPopupCalendar.java6
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/datefield/VTextualDate.java8
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/DDUtil.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VAbstractDropHandler.java8
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VAcceptAll.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VAcceptCriterion.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VAnd.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VContainsDataFlavor.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VDragAndDropManager.java11
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VDragSourceIs.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VIsOverId.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VItemIdIs.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VLazyInitItemIdentifiers.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VNot.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VOr.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VServerAccept.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VSourceIsTarget.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VTargetDetailIs.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/dd/VTargetInSubtree.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/draganddropwrapper/DragAndDropWrapperConnector.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/draganddropwrapper/VDragAndDropWrapper.java23
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/embedded/EmbeddedConnector.java28
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/embedded/EmbeddedServerRpc.java10
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/embedded/VEmbedded.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/form/FormConnector.java6
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/form/VForm.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/formlayout/FormLayoutConnector.java42
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/formlayout/VFormLayout.java26
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutConnector.java15
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutServerRpc.java11
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/gridlayout/VGridLayout.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/label/ContentMode.java48
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/label/LabelConnector.java5
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/label/VLabel.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/layout/LayoutDependencyTree.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/layout/VLayoutSlot.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/link/LinkConnector.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/link/VLink.java6
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/listselect/ListSelectConnector.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/listselect/TooltipListBox.java41
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/listselect/VListSelect.java16
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/menubar/MenuBar.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/menubar/MenuBarConnector.java32
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/menubar/MenuItem.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/menubar/VMenuBar.java99
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/nativebutton/NativeButtonConnector.java10
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/nativebutton/VNativeButton.java11
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/nativeselect/NativeSelectConnector.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/nativeselect/VNativeSelect.java17
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/notification/VNotification.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/optiongroup/OptionGroupBaseConnector.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/optiongroup/OptionGroupConnector.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/optiongroup/VOptionGroup.java7
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/optiongroup/VOptionGroupBase.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java12
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutServerRpc.java12
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/orderedlayout/HorizontalLayoutConnector.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VMeasuringOrderedLayout.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VerticalLayoutConnector.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/panel/PanelConnector.java11
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/panel/PanelServerRpc.java11
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/panel/VPanel.java6
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/passwordfield/PasswordFieldConnector.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/popupview/PopupViewConnector.java5
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/popupview/VPopupView.java47
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/progressindicator/ProgressIndicatorConnector.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/richtextarea/RichTextAreaConnector.java6
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/richtextarea/VRichTextArea.java12
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/richtextarea/VRichTextToolbar.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/root/RootConnector.java21
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/root/RootServerRpc.java11
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/root/VRoot.java8
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/slider/SliderConnector.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/slider/VSlider.java9
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/splitpanel/AbstractSplitPanelConnector.java9
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/splitpanel/HorizontalSplitPanelConnector.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/splitpanel/VAbstractSplitPanel.java23
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/splitpanel/VerticalSplitPanelConnector.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/table/TableConnector.java50
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/table/VScrollTable.java175
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/tabsheet/TabsheetBaseConnector.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/tabsheet/TabsheetConnector.java34
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/tabsheet/VTabsheet.java63
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/textarea/TextAreaConnector.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/textarea/VTextArea.java1
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/textfield/TextFieldConnector.java8
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/textfield/VTextField.java18
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/tree/TreeConnector.java52
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/tree/VTree.java46
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/treetable/TreeTableConnector.java2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/treetable/VTreeTable.java45
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/twincolselect/TwinColSelectConnector.java5
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/twincolselect/VTwinColSelect.java6
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/upload/UploadConnector.java5
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/upload/VUpload.java13
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/video/VideoConnector.java5
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/window/VWindow.java16
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/window/WindowConnector.java13
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/window/WindowServerRpc.java10
-rw-r--r--src/com/vaadin/terminal/gwt/server/AbstractApplicationPortlet.java203
-rw-r--r--src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java250
-rw-r--r--src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java403
-rw-r--r--src/com/vaadin/terminal/gwt/server/AbstractDeploymentConfiguration.java121
-rw-r--r--src/com/vaadin/terminal/gwt/server/AbstractStreamingEvent.java4
-rw-r--r--src/com/vaadin/terminal/gwt/server/AbstractWebApplicationContext.java16
-rw-r--r--src/com/vaadin/terminal/gwt/server/ApplicationPortlet2.java6
-rw-r--r--src/com/vaadin/terminal/gwt/server/ApplicationResourceHandler.java1
-rw-r--r--src/com/vaadin/terminal/gwt/server/ApplicationServlet.java10
-rw-r--r--src/com/vaadin/terminal/gwt/server/BootstrapHandler.java54
-rw-r--r--src/com/vaadin/terminal/gwt/server/ChangeVariablesErrorEvent.java1
-rw-r--r--src/com/vaadin/terminal/gwt/server/ClientConnector.java14
-rw-r--r--src/com/vaadin/terminal/gwt/server/ClientMethodInvocation.java1
-rw-r--r--src/com/vaadin/terminal/gwt/server/CommunicationManager.java147
-rw-r--r--src/com/vaadin/terminal/gwt/server/Constants.java2
-rw-r--r--src/com/vaadin/terminal/gwt/server/DragAndDropService.java27
-rw-r--r--src/com/vaadin/terminal/gwt/server/GAEApplicationServlet.java24
-rw-r--r--src/com/vaadin/terminal/gwt/server/JsonCodec.java45
-rw-r--r--src/com/vaadin/terminal/gwt/server/JsonPaintTarget.java69
-rw-r--r--src/com/vaadin/terminal/gwt/server/LegacyChangeVariablesInvocation.java2
-rw-r--r--src/com/vaadin/terminal/gwt/server/PortletApplicationContext2.java33
-rw-r--r--src/com/vaadin/terminal/gwt/server/PortletCommunicationManager.java139
-rw-r--r--src/com/vaadin/terminal/gwt/server/ResourceReference.java18
-rw-r--r--src/com/vaadin/terminal/gwt/server/RestrictedRenderResponse.java25
-rw-r--r--src/com/vaadin/terminal/gwt/server/ServerRpcManager.java3
-rw-r--r--src/com/vaadin/terminal/gwt/server/ServerRpcMethodInvocation.java4
-rw-r--r--src/com/vaadin/terminal/gwt/server/ServletPortletHelper.java52
-rw-r--r--src/com/vaadin/terminal/gwt/server/StreamingErrorEventImpl.java1
-rw-r--r--src/com/vaadin/terminal/gwt/server/StreamingStartEventImpl.java1
-rw-r--r--src/com/vaadin/terminal/gwt/server/UnsupportedBrowserHandler.java1
-rw-r--r--src/com/vaadin/terminal/gwt/server/WebApplicationContext.java1
-rw-r--r--src/com/vaadin/terminal/gwt/server/WebBrowser.java5
-rw-r--r--src/com/vaadin/terminal/gwt/server/WrappedHttpServletRequest.java9
-rw-r--r--src/com/vaadin/terminal/gwt/server/WrappedHttpServletResponse.java2
-rw-r--r--src/com/vaadin/terminal/gwt/server/WrappedPortletRequest.java30
-rw-r--r--src/com/vaadin/terminal/gwt/server/WrappedPortletResponse.java9
-rw-r--r--src/com/vaadin/terminal/gwt/widgetsetutils/AcceptCriteriaFactoryGenerator.java2
-rw-r--r--src/com/vaadin/terminal/gwt/widgetsetutils/ClassPathExplorer.java1
-rw-r--r--src/com/vaadin/terminal/gwt/widgetsetutils/CustomWidgetMapGenerator.java4
-rw-r--r--src/com/vaadin/terminal/gwt/widgetsetutils/EagerWidgetMapGenerator.java2
-rw-r--r--src/com/vaadin/terminal/gwt/widgetsetutils/GeneratedRpcMethodProviderGenerator.java2
-rw-r--r--src/com/vaadin/terminal/gwt/widgetsetutils/LazyWidgetMapGenerator.java2
-rw-r--r--src/com/vaadin/terminal/gwt/widgetsetutils/RpcProxyCreatorGenerator.java6
-rw-r--r--src/com/vaadin/terminal/gwt/widgetsetutils/RpcProxyGenerator.java4
-rw-r--r--src/com/vaadin/terminal/gwt/widgetsetutils/SerializerMapGenerator.java64
-rw-r--r--src/com/vaadin/terminal/gwt/widgetsetutils/WidgetMapGenerator.java6
-rw-r--r--src/com/vaadin/tools/WidgetsetCompiler.java4
-rw-r--r--src/com/vaadin/ui/AbsoluteLayout.java14
-rw-r--r--src/com/vaadin/ui/AbstractComponent.java50
-rw-r--r--src/com/vaadin/ui/AbstractComponentContainer.java10
-rw-r--r--src/com/vaadin/ui/AbstractField.java38
-rw-r--r--src/com/vaadin/ui/AbstractJavaScriptComponent.java19
-rw-r--r--src/com/vaadin/ui/AbstractLayout.java6
-rw-r--r--src/com/vaadin/ui/AbstractMedia.java8
-rw-r--r--src/com/vaadin/ui/AbstractOrderedLayout.java21
-rw-r--r--src/com/vaadin/ui/AbstractSelect.java76
-rw-r--r--src/com/vaadin/ui/AbstractSplitPanel.java16
-rw-r--r--src/com/vaadin/ui/AbstractTextField.java10
-rw-r--r--src/com/vaadin/ui/Alignment.java2
-rw-r--r--src/com/vaadin/ui/Button.java14
-rw-r--r--src/com/vaadin/ui/CheckBox.java7
-rw-r--r--src/com/vaadin/ui/Component.java10
-rw-r--r--src/com/vaadin/ui/ConnectorTracker.java129
-rw-r--r--src/com/vaadin/ui/CssLayout.java14
-rw-r--r--src/com/vaadin/ui/CustomComponent.java6
-rw-r--r--src/com/vaadin/ui/CustomField.java16
-rw-r--r--src/com/vaadin/ui/CustomLayout.java7
-rw-r--r--src/com/vaadin/ui/DateField.java6
-rw-r--r--src/com/vaadin/ui/DefaultFieldFactory.java2
-rw-r--r--src/com/vaadin/ui/DragAndDropWrapper.java24
-rw-r--r--src/com/vaadin/ui/Embedded.java7
-rw-r--r--src/com/vaadin/ui/Field.java1
-rw-r--r--src/com/vaadin/ui/Form.java21
-rw-r--r--src/com/vaadin/ui/GridLayout.java21
-rw-r--r--src/com/vaadin/ui/JavaScript.java17
-rw-r--r--src/com/vaadin/ui/Label.java40
-rw-r--r--src/com/vaadin/ui/Layout.java4
-rw-r--r--src/com/vaadin/ui/Link.java2
-rw-r--r--src/com/vaadin/ui/LoginForm.java9
-rw-r--r--src/com/vaadin/ui/MenuBar.java2
-rw-r--r--src/com/vaadin/ui/Notification.java22
-rw-r--r--src/com/vaadin/ui/OptionGroup.java4
-rw-r--r--src/com/vaadin/ui/Panel.java24
-rw-r--r--src/com/vaadin/ui/PopupView.java10
-rw-r--r--src/com/vaadin/ui/ProgressIndicator.java2
-rw-r--r--src/com/vaadin/ui/RichTextArea.java2
-rw-r--r--src/com/vaadin/ui/Root.java47
-rw-r--r--src/com/vaadin/ui/Select.java6
-rw-r--r--src/com/vaadin/ui/Slider.java2
-rw-r--r--src/com/vaadin/ui/TabSheet.java29
-rw-r--r--src/com/vaadin/ui/Table.java68
-rw-r--r--src/com/vaadin/ui/TextArea.java2
-rw-r--r--src/com/vaadin/ui/Tree.java21
-rw-r--r--src/com/vaadin/ui/TreeTable.java30
-rw-r--r--src/com/vaadin/ui/Upload.java11
-rw-r--r--src/com/vaadin/ui/Video.java6
-rw-r--r--src/com/vaadin/ui/Window.java15
-rw-r--r--tests/client-side/com/vaadin/terminal/gwt/client/TestVBrowserDetailsUserAgentParser.java2
-rw-r--r--tests/client-side/com/vaadin/terminal/gwt/server/JSONSerializerTest.java2
-rw-r--r--tests/integration-testscripts/GateIn-3/integration-test-GateIn-3.1.0-portlet2.html3
-rw-r--r--tests/integration-testscripts/Liferay-5/integration-test-liferay-5.2.3-portlet2.html3
-rw-r--r--tests/integration-testscripts/Liferay-6/Liferay6-theme.html16
-rw-r--r--tests/integration-testscripts/Liferay-6EE/Liferay6EE-theme.html16
-rw-r--r--tests/integration-testscripts/eXo-3/integration-test-eXo-3.0.3-portlet2.html23
-rw-r--r--tests/integration_tests.xml4
-rw-r--r--tests/server-side/com/vaadin/data/util/AbstractContainerTest.java1
-rw-r--r--tests/server-side/com/vaadin/data/util/BeanContainerTest.java3
-rw-r--r--tests/server-side/com/vaadin/data/util/BeanItemTest.java1
-rw-r--r--tests/server-side/com/vaadin/data/util/TestContainerSorting.java1
-rw-r--r--tests/server-side/com/vaadin/data/util/TestHierarchicalContainer.java2
-rw-r--r--tests/server-side/com/vaadin/data/util/filter/AbstractFilterTest.java7
-rw-r--r--tests/server-side/com/vaadin/data/util/sqlcontainer/SQLContainerTest.java33
-rw-r--r--tests/server-side/com/vaadin/data/util/sqlcontainer/TicketTests.java3
-rw-r--r--tests/server-side/com/vaadin/data/util/sqlcontainer/connection/MockInitialContextFactory.java1
-rw-r--r--tests/server-side/com/vaadin/terminal/gwt/server/TestAbstractApplicationServletStaticFilesLocation.java6
-rw-r--r--tests/server-side/com/vaadin/tests/VaadinClasses.java1
-rw-r--r--tests/server-side/com/vaadin/tests/data/converter/ConverterFactory.java4
-rw-r--r--tests/server-side/com/vaadin/tests/server/SourceFileChecker.java1
-rw-r--r--tests/server-side/com/vaadin/tests/server/TestEventRouter.java2
-rw-r--r--tests/server-side/com/vaadin/tests/server/TestStreamVariableMapping.java77
-rw-r--r--tests/server-side/com/vaadin/tests/server/TransactionListenersConcurrency.java4
-rw-r--r--tests/server-side/com/vaadin/tests/server/component/abstractfield/AbstractFieldValueConversions.java12
-rw-r--r--tests/server-side/com/vaadin/tests/server/component/abstractfield/RemoveListenersOnDetach.java3
-rw-r--r--tests/server-side/com/vaadin/tests/server/component/button/ButtonClick.java1
-rw-r--r--tests/server-side/com/vaadin/tests/server/component/menubar/MenuBarIds.java1
-rw-r--r--tests/server-side/com/vaadin/tests/server/component/table/TableSerialization.java3
-rw-r--r--tests/server-side/com/vaadin/tests/server/component/textfield/TextFieldWithPropertyFormatter.java1
-rw-r--r--tests/server-side/com/vaadin/tests/server/component/tree/TestListeners.java2
-rw-r--r--tests/server-side/com/vaadin/tests/server/component/window/AttachDetachWindow.java6
-rw-r--r--tests/server-side/com/vaadin/tests/server/components/ComponentAttachDetachListenerTest.java2
-rw-r--r--tests/server-side/com/vaadin/tests/server/navigator/ClassBasedViewProviderTest.java1
-rw-r--r--tests/server-side/com/vaadin/tests/server/navigator/NavigatorTest.java18
-rw-r--r--tests/server-side/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java2
-rw-r--r--tests/test.xml2
-rw-r--r--tests/testbench/com/vaadin/launcher/ApplicationRunnerServlet.java3
-rw-r--r--tests/testbench/com/vaadin/launcher/DemoLauncher.java2
-rw-r--r--tests/testbench/com/vaadin/launcher/DevelopmentServerLauncher.java5
-rw-r--r--tests/testbench/com/vaadin/tests/Components.java4
-rw-r--r--tests/testbench/com/vaadin/tests/CustomLayoutDemo.java4
-rw-r--r--tests/testbench/com/vaadin/tests/FocusingComponents.java1
-rw-r--r--tests/testbench/com/vaadin/tests/LayoutDemo.java2
-rw-r--r--tests/testbench/com/vaadin/tests/ListenerOrder.java6
-rw-r--r--tests/testbench/com/vaadin/tests/ModalWindow.java1
-rw-r--r--tests/testbench/com/vaadin/tests/NativeWindowing.java6
-rw-r--r--tests/testbench/com/vaadin/tests/OrderedLayoutSwapComponents.java2
-rw-r--r--tests/testbench/com/vaadin/tests/Parameters.java1
-rw-r--r--tests/testbench/com/vaadin/tests/PerformanceTestBasicComponentRendering.java2
-rw-r--r--tests/testbench/com/vaadin/tests/PerformanceTestLabelsAndOrderedLayouts.java4
-rw-r--r--tests/testbench/com/vaadin/tests/PerformanceTestSubTreeCaching.java4
-rw-r--r--tests/testbench/com/vaadin/tests/ScrollbarStressTest.java1
-rw-r--r--tests/testbench/com/vaadin/tests/StressComponentsInTable.java1
-rw-r--r--tests/testbench/com/vaadin/tests/TableChangingDatasource.java1
-rw-r--r--tests/testbench/com/vaadin/tests/TableSelectTest.java1
-rw-r--r--tests/testbench/com/vaadin/tests/TestBench.java2
-rw-r--r--tests/testbench/com/vaadin/tests/TestCaptionWrapper.java3
-rw-r--r--tests/testbench/com/vaadin/tests/TestComponentAddAndRecursion.java7
-rw-r--r--tests/testbench/com/vaadin/tests/TestContainerChanges.java10
-rw-r--r--tests/testbench/com/vaadin/tests/TestForBasicApplicationLayout.java2
-rw-r--r--tests/testbench/com/vaadin/tests/TestForChildComponentRendering.java3
-rw-r--r--tests/testbench/com/vaadin/tests/TestForContainerFilterable.java2
-rw-r--r--tests/testbench/com/vaadin/tests/TestForGridLayoutChildComponentRendering.java3
-rw-r--r--tests/testbench/com/vaadin/tests/TestForMultipleStyleNames.java1
-rw-r--r--tests/testbench/com/vaadin/tests/TestForNativeWindowing.java6
-rw-r--r--tests/testbench/com/vaadin/tests/TestForPreconfiguredComponents.java5
-rw-r--r--tests/testbench/com/vaadin/tests/TestForRichTextEditor.java4
-rw-r--r--tests/testbench/com/vaadin/tests/TestForStyledUpload.java14
-rw-r--r--tests/testbench/com/vaadin/tests/TestForTabSheet.java2
-rw-r--r--tests/testbench/com/vaadin/tests/TestForTablesInitialColumnWidthLogicRendering.java2
-rw-r--r--tests/testbench/com/vaadin/tests/TestForTrees.java5
-rw-r--r--tests/testbench/com/vaadin/tests/TestForUpload.java18
-rw-r--r--tests/testbench/com/vaadin/tests/TestForWindowOpen.java3
-rw-r--r--tests/testbench/com/vaadin/tests/TestForWindowing.java2
-rw-r--r--tests/testbench/com/vaadin/tests/TestIFrames.java2
-rw-r--r--tests/testbench/com/vaadin/tests/TestSetVisibleAndCaching.java1
-rw-r--r--tests/testbench/com/vaadin/tests/TestSizeableIncomponents.java3
-rw-r--r--tests/testbench/com/vaadin/tests/TreeFilesystem.java3
-rw-r--r--tests/testbench/com/vaadin/tests/TreeFilesystemContainer.java1
-rw-r--r--tests/testbench/com/vaadin/tests/UpgradingSample.java4
-rw-r--r--tests/testbench/com/vaadin/tests/UsingCustomNewItemHandlerInSelect.java1
-rw-r--r--tests/testbench/com/vaadin/tests/UsingObjectsInSelect.java3
-rw-r--r--tests/testbench/com/vaadin/tests/appengine/GAESyncTest.java3
-rw-r--r--tests/testbench/com/vaadin/tests/application/ApplicationCloseTest.java3
-rw-r--r--tests/testbench/com/vaadin/tests/application/ErrorInUnloadEvent.java2
-rw-r--r--tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.java1
-rw-r--r--tests/testbench/com/vaadin/tests/application/ThreadLocalInstances.java4
-rw-r--r--tests/testbench/com/vaadin/tests/application/WebBrowserSizeTest.java1
-rw-r--r--tests/testbench/com/vaadin/tests/application/WebBrowserTest.java1
-rw-r--r--tests/testbench/com/vaadin/tests/applicationcontext/ChangeSessionId.java2
-rw-r--r--tests/testbench/com/vaadin/tests/applicationcontext/RemoveTransactionListener.java6
-rw-r--r--tests/testbench/com/vaadin/tests/components/AbstractComponentContainerTest.java19
-rw-r--r--tests/testbench/com/vaadin/tests/components/AbstractComponentTest.java11
-rw-r--r--tests/testbench/com/vaadin/tests/components/AbstractComponentTestCase.java15
-rw-r--r--tests/testbench/com/vaadin/tests/components/AbstractLayoutTest.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/AbstractOrderedLayoutTest.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java5
-rw-r--r--tests/testbench/com/vaadin/tests/components/AddRemoveSetStyleNamesTest.html456
-rw-r--r--tests/testbench/com/vaadin/tests/components/AddRemoveSetStyleNamesTest.java83
-rw-r--r--tests/testbench/com/vaadin/tests/components/ComponentTestCase.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/CustomComponentwithUndefinedSize.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/DisableEnableCascade.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/FocusAndBlurListeners.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/FocusFromShortcutAction.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/LayoutAttachListenerInfo.java7
-rw-r--r--tests/testbench/com/vaadin/tests/components/LongTooltip.html33
-rw-r--r--tests/testbench/com/vaadin/tests/components/TestBase.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/TouchScrollables.java11
-rw-r--r--tests/testbench/com/vaadin/tests/components/absolutelayout/MoveComponentsFromAbsoluteLayoutToInnerLayout.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractcomponent/AllComponentTooltipTest.java50
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractcomponent/EnableState.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractcomponent/TooltipTests.html92
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractcomponent/TooltipTests.java100
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractfield/AbstractComponentDataBindingTest.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldDataSourceReadOnly.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldTest.java22
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractfield/AbstractTextFieldTest.java12
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractfield/DateFieldBasedOnLong.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractfield/IntegerDoubleFieldsWithDataSource.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractfield/IntegerFieldWithoutDataSource.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractfield/ShortcutAddAndRemove.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractfield/TextFieldConversions.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/abstractfield/Vaadin6ImplicitDoubleConverter.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/accordion/RemoveTabs.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/beanitemcontainer/BeanItemContainerNullValues.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/button/ButtonErrorMessage.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/button/ButtonHtml.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/button/ButtonMouseDetails.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/button/Buttons2.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/button/ShortCutListenerModification.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/button/TooltipForDisabledButton.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/caption/IconsInCaption.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/checkbox/CheckBoxNullValue.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/checkbox/CheckBoxes2.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxCombinedWithEnterShortcut.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxDataSourceChange.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxEnablesComboBox.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxIdenticalItems.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInPopup.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxReapperingOldValue.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSlow.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSlowInFF.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSuggestionOnDetach.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxTextFieldEventOrder.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxValueUpdate.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxes2.java5
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboFocusBlurEvents.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/Comboboxes.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/NewItemsESCPress.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/RemovalOfSelectedIcon.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/customcomponent/ClipContent.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/customcomponent/CustomComponentGrowingContent.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/customcomponent/CustomComponentSizeUpdate.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/customcomponent/CustomLayoutUsingTemplate.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/customcomponent/CustomLayoutUsingTheme.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/customfield/AbstractNestedFormExample.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/customfield/AddressFormExample.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/customfield/BooleanField.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/customfield/BooleanFieldExample.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/CommitInvalid.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/CustomDateFormats.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/DateFieldEmptyValid.java8
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/DateFieldInSubWindow.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/DateFieldLocale.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/DateFieldMinResolution.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/DateFieldReadOnly.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/DateFieldTest.java5
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/DateFieldTimezone.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/DateFieldUnparsableDate.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/DefaultHandleUnparsableDateField.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/DisabledDateFieldWidth.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/InlineDateFields.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/LenientMode.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/LowResolution.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldExtendedRange.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldTest.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/PopupDateFields.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/ShowSelectedDateAfterInvalid.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/ValueThroughProperty.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/datefield/WidthRecalculationOnEnableStateChange.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragAndDropWrapperTooltips.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.html2
-rw-r--r--tests/testbench/com/vaadin/tests/components/embedded/EmbeddedAltText.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/embedded/EmbeddedClickListenerRelativeCoordinates.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/embedded/EmbeddedImageRefresh.java5
-rw-r--r--tests/testbench/com/vaadin/tests/components/embedded/EmbeddedPdf.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/form/FormClearDatasourceRepaint.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/form/FormCommitWithInvalidValues.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/form/FormDescription.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/form/FormRenderingFlicker.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/form/FormTest.java10
-rw-r--r--tests/testbench/com/vaadin/tests/components/form/FormWithEnterShortCut.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/form/FormWithPropertyFormatterConnected.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/formlayout/FormLayoutCaptionStyles.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/formlayout/FormLayoutErrorHover.html2
-rw-r--r--tests/testbench/com/vaadin/tests/components/gridlayout/GridLayoutInForm.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/gridlayout/MoveComponentsFromGridLayoutToInnerLayout.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.html62
-rw-r--r--tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.java107
-rw-r--r--tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponentConnector.js40
-rw-r--r--tests/testbench/com/vaadin/tests/components/label/HundredPercentWideLabelResize.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/label/LabelModes.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/label/LabelTest.java6
-rw-r--r--tests/testbench/com/vaadin/tests/components/label/LabelWrapping.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/label/Labels.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/label/MarginsInLabels.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/link/LinkToPercentage.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/listselect/ListSelects.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/loginform/LoginFormInIframe.html_disabled61
-rw-r--r--tests/testbench/com/vaadin/tests/components/loginform/LoginFormTest.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/loginform/LoginFormWithMultipleWindows.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/media/Media.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/menubar/MenuBarHtmlItems.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/menubar/MenuBarNavigation.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/menubar/MenuBarRootItemSelectWithKeyboard.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/menubar/MenuBarTest.java12
-rw-r--r--tests/testbench/com/vaadin/tests/components/nativebutton/NativeButtonHtml.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/nativeselect/NativeSelects.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/notification/Notifications.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/notification/NotificationsHtmlAllowed.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/optiongroup/DisabledOptionGroupItems.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/optiongroup/HtmlOptionGroupItems.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/optiongroup/OptionGroupMultipleValueChange.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/optiongroup/OptionGroups.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutClickListenerTest.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutResizeTest.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/orderedlayout/OrderedLayoutCases.java18
-rw-r--r--tests/testbench/com/vaadin/tests/components/orderedlayout/ReplaceComponentNPE.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/orderedlayout/VerticalLayoutWidthCalculation.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/panel/BasicPanelTest.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/panel/PanelChangeContents.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/panel/PanelClickListenerRelativeCoordinates.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/panel/PanelShouldNotScroll.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/panel/PanelShouldRemoveActionHandler.java7
-rw-r--r--tests/testbench/com/vaadin/tests/components/popupview/PopupViewClickShortcut.java78
-rw-r--r--tests/testbench/com/vaadin/tests/components/popupview/PopupViewNullValues.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/popupview/PopupViewOffScreen.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/popupview/PopupViewShouldCloseOnTabOut.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/popupview/PopupViewWithRTE.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/popupview/ReopenPopupView.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/progressindicator/ProgressIndicatorInvisible.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaScrolling.html27
-rw-r--r--tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaScrolling.java57
-rw-r--r--tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaTest.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaWithKeyboardShortcuts.java7
-rw-r--r--tests/testbench/com/vaadin/tests/components/root/LazyInitRoots.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/root/UriFragmentTest.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/select/AbstractSelectTestCase.java7
-rw-r--r--tests/testbench/com/vaadin/tests/components/select/ComboBoxAddWhileFiltering.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/select/FocusListenerBreaksDropdownMenu.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/select/NativeSelects.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/select/NullSelectionItemId.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/select/SelectDisplaysOldValue.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/select/TwinColSelectCaptionStyles.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/select/TwinColSelectTest.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/slider/SliderTest.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/splitpanel/AbstractSplitPanelTest.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelReversePosition.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelSplitterWidth.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelSwapComponents.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/AddItemToEmptyTable.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/AddNonRenderedRow.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/CellStyleGeneratorTest.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ColumnGeneratorAddingOrder.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ColumnHeaderAlignments.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ColumnReorderEvent.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ColumnResizeEvent.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ContainerChangeWithPartlySamePropertyIds.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ContainerSizeChange.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/DisabledTableShouldNotSendPageLengthUpdates.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/DoublesInTable.java20
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/EditableModeChange.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/EditableTableLeak.java5
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/Footer.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/FooterClick.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/HeaderClick.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/HeaderFooterClickLeftRightMiddle.java7
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/HeaderUpdateWhenNoRows.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/HiddenColumnsExpandRatios.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/HugeRowCount.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ItemClickEvents.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/KeyControl.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/KeyboardNavigationWithChangingContent.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/LongMultiselect.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/MissingScrollbar.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ModifyContainerProperty.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/MultiClickingItemThatDetachesTable.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/MultiSelectValueOrder.html275
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/MultiSelectWithNotIdentityEqualIds.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/MultiSelectWithRemovedRow.html150
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/MultiSelectWithRemovedRow.java93
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ProgrammaticUnselectInRange.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/PropertyValueChange.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/RowAdditionTest.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/RowGenerators.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/RowUpdateShouldRetainContextMenu.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/SafariRenderingBugWhiteSpace.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ScrollDetachSynchronization.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/SelectableEditable.html32
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/SelectableEditable.java37
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/SelectingItemScrollsRight.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/SetCurrentPageFirstItemId.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableAndBrowserContextMenu.java7
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableCacheBuildEfficiency.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableClickAndDragOnIconAndComponents.java6
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableColumnResizeContentsWidth.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableContextMenu.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableContextMenuOnField.java7
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableHeightWhenHidingHeaders.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableInTabsheet.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableItemDescriptionGeneratorTest.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableModifcationsWhenScrolledRight.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableMultiSelectSimple.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TablePageLengthUpdate.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableRepaintWhenMadeVisibile.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableRowHeight.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableRowNoHeightNoRows.html122
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableScrollOnFocus.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableShouldNotEatValueChanges.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableSingleSelect.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableSorting.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableToggleVisibility.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableUndefinedSize.java7
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableUnregisterComponent.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableVisibleColumnsUpdate.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableWithChildComponents.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableWithContainerRequiringEqualsForItemId.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/Tables.java38
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TestCurrentPageFirstItem.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TextFieldRelativeWidth.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TextFieldValueGoesMissing.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/UncollapsedCollumnWidth.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/AddAndRemoveTabs.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/PreventTabChange.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/RemoveTabs.java5
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabGetAndReplaceComponent.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabKeyboardNavigation.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetCaptions.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetDisabling.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetDiscardsMovedComponents.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetIndexOperations.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetMinimal.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetTabStyleNames.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetTest.java10
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabsheetNPE.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabsheetScrolling.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/WrapTabSheetInTabSheet.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/textarea/TextAreaCursorPosition.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/textarea/TextAreaTest.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/textarea/Wordwrap.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/EnterShortcutMaySendInputPromptAsValue.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/MultipleTextChangeEvents.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/OutOfSyncIssueWithKeyboardShortcut.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/SelectionAndCursorPosition.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/SetTabIndex.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/TextChangeEvents.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/TextChangeEvents2.java12
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/TextChangeEventsEternalLoop.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/TextChangeEventsWithNonImmediateValueChange.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/TextChangeListenerChangingNonTextProperties.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/TextFieldEagerRepaint.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/TextFieldFocusAndBlurListeners.java6
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/TextFieldInputPromptAndClickShortcut.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/TextFieldWithProperty.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/textfield/TextFieldWithPropertyFormatter.java7
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/CtrlShiftMultiselect.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/ExpandCollapseTree.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/ItemStyleGenerator.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/TreeConnectors.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/TreeContainerChange.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/TreeDragAndDropFromTable.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/TreeFiltering.java8
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/TreeFocusGaining.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/TreeItemClickListening.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/TreeScrollingOnSelection.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/TreeToolTips.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/TreeWithPreselectedItemNotShown.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/tree/Trees.java16
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/AddNodesOnExpand.java7
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/ChangeDataSourcePageLengthZero.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.html32
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.java25
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/DynamicallyModified.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/KeepAllItemsVisible.java6
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticCollapse.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticSelect.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/RemoveAllItemsRefresh.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdates.java6
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/TreeTableModifyAndSetCollapsed.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/TreeTableNegativeArraySize.html6
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/TreeTableOutOfSync.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/TreeTableSetCollapsed.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/TreeTableTest.java11
-rw-r--r--tests/testbench/com/vaadin/tests/components/twincolselect/TwinColSelects.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/upload/ForceSubmit.java5
-rw-r--r--tests/testbench/com/vaadin/tests/components/upload/TestFileUpload.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/upload/TestImmediateUploadInFormLayout.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/upload/TestUpload.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/upload/TestUploadAndDisableOnSuccess.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/upload/TestUploadFilename.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/AttachShouldBeCalledForSubWindows.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/CloseSubWindow.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/DownloadAndUpdate.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/ExecuteJavaScript.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/ExtraWindowShown.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/LazyWindowResize.java7
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/LongNotifications.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/RepaintWindowContents.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/SubWindowFocus.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/SubWindowFocusAndBlurListeners.java5
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/SubWindowOrder.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/SubWindowWithUndefinedHeight.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/SubWindows.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/SubwindowDraggability.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/TooltipInWindow.html69
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/TooltipInWindow.java41
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/WindowClickEvents.java5
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/WindowResizeListener.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/WindowScrollingComponentIntoView.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/WindowScrollingUp.java1
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/WindowShouldRemoveActionHandler.java7
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/WindowStyleNames.java3
-rw-r--r--tests/testbench/com/vaadin/tests/containers/BeanItemContainerFilteringTest.java4
-rw-r--r--tests/testbench/com/vaadin/tests/containers/HierarchicalWrapperOrdering.java1
-rw-r--r--tests/testbench/com/vaadin/tests/containers/IndexedContainerFilteringTest.java4
-rw-r--r--tests/testbench/com/vaadin/tests/containers/TestItemSorter.java1
-rw-r--r--tests/testbench/com/vaadin/tests/containers/filesystemcontainer/FileSystemContainerInTreeTable.java5
-rw-r--r--tests/testbench/com/vaadin/tests/containers/sqlcontainer/CheckboxUpdateProblem.java81
-rw-r--r--tests/testbench/com/vaadin/tests/containers/sqlcontainer/ComboBoxUpdateProblem.java27
-rw-r--r--tests/testbench/com/vaadin/tests/containers/sqlcontainer/DatabaseHelper.java91
-rw-r--r--tests/testbench/com/vaadin/tests/containers/sqlcontainer/MassInsertMemoryLeakTestApp.java1
-rw-r--r--tests/testbench/com/vaadin/tests/converter/ConverterThatEnforcesAFormat.java1
-rw-r--r--tests/testbench/com/vaadin/tests/dd/AcceptAnythingWindow.java4
-rw-r--r--tests/testbench/com/vaadin/tests/dd/AcceptFromComponent.java5
-rw-r--r--tests/testbench/com/vaadin/tests/dd/ActiveDragSourceClassName.java3
-rw-r--r--tests/testbench/com/vaadin/tests/dd/CustomDDImplementation.java4
-rw-r--r--tests/testbench/com/vaadin/tests/dd/DDTest1.java5
-rw-r--r--tests/testbench/com/vaadin/tests/dd/DDTest2.java6
-rw-r--r--tests/testbench/com/vaadin/tests/dd/DDTest4.java4
-rw-r--r--tests/testbench/com/vaadin/tests/dd/DDTest5.java2
-rw-r--r--tests/testbench/com/vaadin/tests/dd/DDTest6.java20
-rw-r--r--tests/testbench/com/vaadin/tests/dd/DDTest7.java2
-rw-r--r--tests/testbench/com/vaadin/tests/dd/DDTest8.java4
-rw-r--r--tests/testbench/com/vaadin/tests/dd/DragAndDropFiles.java9
-rw-r--r--tests/testbench/com/vaadin/tests/dd/DragDropPane.java11
-rw-r--r--tests/testbench/com/vaadin/tests/dd/HorizontalLayoutSortableWithWrappers.java2
-rw-r--r--tests/testbench/com/vaadin/tests/dd/HorizontalSortableCssLayoutWithWrappers.java2
-rw-r--r--tests/testbench/com/vaadin/tests/dd/MyDragSourceConnector.java3
-rw-r--r--tests/testbench/com/vaadin/tests/dd/MyDropTargetConnector.java3
-rw-r--r--tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSource.java3
-rw-r--r--tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSourceInTabSheet.java2
-rw-r--r--tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.java5
-rw-r--r--tests/testbench/com/vaadin/tests/dd/StartHtml5Drag.java2
-rw-r--r--tests/testbench/com/vaadin/tests/dd/TreeDragStart.java8
-rw-r--r--tests/testbench/com/vaadin/tests/dd/VMyDragSource.java3
-rw-r--r--tests/testbench/com/vaadin/tests/dd/VMyDropTarget.java7
-rw-r--r--tests/testbench/com/vaadin/tests/extensions/BasicExtension.java15
-rw-r--r--tests/testbench/com/vaadin/tests/extensions/BasicExtensionTest.html32
-rw-r--r--tests/testbench/com/vaadin/tests/extensions/BasicExtensionTest.java34
-rw-r--r--tests/testbench/com/vaadin/tests/extensions/HelloWorldExtension.java (renamed from src/com/vaadin/ui/HelloWorldExtension.java)10
-rw-r--r--tests/testbench/com/vaadin/tests/extensions/HelloWorldExtensionTest.java4
-rw-r--r--tests/testbench/com/vaadin/tests/extensions/JavascriptManagerTest.java1
-rw-r--r--tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java16
-rw-r--r--tests/testbench/com/vaadin/tests/fieldgroup/AbstractBeanFieldGroupTest.java3
-rw-r--r--tests/testbench/com/vaadin/tests/fieldgroup/BasicPersonForm.java5
-rw-r--r--tests/testbench/com/vaadin/tests/fieldgroup/FieldBinderWithBeanValidation.java3
-rw-r--r--tests/testbench/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html6
-rw-r--r--tests/testbench/com/vaadin/tests/integration/EmbedSizeTest.java2
-rw-r--r--tests/testbench/com/vaadin/tests/integration/IntegrationTestApplication.java1
-rw-r--r--tests/testbench/com/vaadin/tests/integration/JSR286PortletApplication.java (renamed from tests/testbench/com/vaadin/tests/integration/JSR286PortletRoot.java)58
-rw-r--r--tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java25
-rw-r--r--tests/testbench/com/vaadin/tests/integration/PortletConnectorResource.css3
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/AbsoluteLayoutAddRemove.java1
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/CaptionsInLayouts.java5
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/ComplexGLColumnExpansionWithColSpan.java2
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java2
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/CssLayoutRemoveComponent.java1
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/CssLayoutRemoveComponentWithCaption.java1
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/CssLayoutSizeChangePropagation.java1
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/DeepComponentTrees.java2
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/FormLayoutWithInvisibleComponent.java1
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/GridLayoutCaptions.java3
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/GridLayoutExpandRatioModification.java1
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/GridLayoutMoveComponent.java3
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/GridLayoutNPE.java2
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/GridLayoutRemoveFinalRow.java1
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/GridLayoutWidthChange.java1
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/HiddenHorizontalLayout.java3
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/LayoutPerformanceTests.java2
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/MovingComponentsWhileOldParentInvisible.java2
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/MovingInvisibleField.java1
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/OrderedLayoutBasics.java3
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/TestAbsoluteLayout.java5
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/TestLayoutClickListeners.java6
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/TestLayoutPerformance.java3
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/VerticalLayoutExpandRatioModification.java1
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/VerticalLayoutWithRelativeSizeComponentsInitiallyHidden.java1
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/layouttester/GridLayoutTests.java22
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/layouttester/HorizontalLayoutTests.java20
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/layouttester/LayoutTesterApplication.java2
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/layouttester/VerticalLayoutTests.java20
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/DynamicImageRoot.java1
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/FindCurrentRootAndApplication.java12
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldDataSource.java5
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldStandalone.java1
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/StringMyTypeConverter.java5
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingUriFragments.java2
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyComponent.java3
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyPickerConnector.java2
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyPickerWidget.java1
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a2/ResourceInStateComponent.java7
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetContainer.java3
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetcontainerRoot.java1
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/Analytics.java37
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/AnalyticsRoot.java27
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesBean.java27
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesComponent.java53
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesRoot.java19
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesRpc.java18
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/Flot.java62
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotClickRpc.java7
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotHighlightRpc.java11
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotJavaScriptRoot.java31
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotState.java18
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/RedButton.java16
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/RedButtonRoot.java15
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/analytics_connector.js13
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/complex_types_connector.js17
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/flot_connector.js31
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/jquery.flot.js2599
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a3/redbutton.css3
-rw-r--r--tests/testbench/com/vaadin/tests/requesthandlers/AppResource404.java1
-rw-r--r--tests/testbench/com/vaadin/tests/resources/DownloadLargeFileResource.java1
-rw-r--r--tests/testbench/com/vaadin/tests/resources/NonExistingFileResource.java1
-rw-r--r--tests/testbench/com/vaadin/tests/resources/ResourceDownload.java6
-rw-r--r--tests/testbench/com/vaadin/tests/serialization/SerializerTest.html107
-rw-r--r--tests/testbench/com/vaadin/tests/serialization/SerializerTest.java39
-rw-r--r--tests/testbench/com/vaadin/tests/themes/ButtonsTest.java5
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1225.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1230.java9
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket124.java4
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1365.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1368.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1397.java11
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1435.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1444.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1465ModalNotification.java5
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1506_Panel.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1506_TestContainer.java13
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1506_TestContainer2.java13
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1572.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1581.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1589.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1598.java7
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket161.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1632.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1659.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1673.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1710.java3
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1772.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1775.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1804.java4
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1805.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1806.java3
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1811.java3
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1819.java3
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1834PanelScrolling.java4
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1857.java5
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1878.java3
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1900.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1919.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1921.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1939.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1969.java5
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1970.java4
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1973.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1973_2.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1975.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1982.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1983.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1995.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket20.java3
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2001.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2007.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2009.java3
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2014.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2021.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2023.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2029.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2037.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2038.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2042.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2048.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2053.java3
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2060.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2061.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2061b.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2061c.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2090.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2099.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2104.java5
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2106.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2107.java3
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2117.java3
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2119.java4
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2125.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2126.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2179.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2181.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2204.java3
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2208.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2209.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2209OL.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2209OL2.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2221.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2240.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2242.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2244.java4
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2267.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2282.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2287.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2289.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2292.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2304.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2310.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2329.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2337.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2347.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2365.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2406.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2415.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2426.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2431.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2436.java3
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2526.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2998.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket3146.java4
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket34.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket5952.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket6002.java2
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket677.java7
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket695.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket736.java4
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket8291.java125
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket846.java1
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket932.java2
-rw-r--r--tests/testbench/com/vaadin/tests/util/Log.java2
-rw-r--r--tests/testbench/com/vaadin/tests/util/SampleDirectory.java2
-rw-r--r--tests/testbench/com/vaadin/tests/util/TestClickListener.java1
-rw-r--r--tests/testbench/com/vaadin/tests/validation/EmptyFieldErrorIndicators.java2
-rw-r--r--tests/testbench/com/vaadin/tests/validation/TestValidators.java1
-rw-r--r--tests/testbench/com/vaadin/tests/validation/ValidationOfRequiredEmptyFields.html16
-rw-r--r--tests/testbench/com/vaadin/tests/validation/ValidationOfRequiredEmptyFields.java4
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/BasicExtensionTestConnector.java27
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/ComplexTestBean.java2
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/MissingFromDefaultWidgetsetConnector.java2
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestConnector.java22
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestRpc.java6
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/helloworldfeature/GreetAgainRpc.java (renamed from src/com/vaadin/terminal/gwt/client/ui/helloworldfeature/GreetAgainRpc.java)4
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/helloworldfeature/HelloWorldExtensionConnector.java (renamed from src/com/vaadin/terminal/gwt/client/ui/helloworldfeature/HelloWorldExtensionConnector.java)11
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/helloworldfeature/HelloWorldRpc.java (renamed from src/com/vaadin/terminal/gwt/client/ui/helloworldfeature/HelloWorldRpc.java)4
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/helloworldfeature/HelloWorldState.java (renamed from src/com/vaadin/terminal/gwt/client/ui/helloworldfeature/HelloWorldState.java)4
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ComponentInStateState.java4
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ComponentInStateStateConnector.java2
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentClientRpc.java2
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentConnector.java6
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentServerRpc.java4
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentState.java2
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ResourceInStateConnector.java4
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ResourceInStateState.java4
-rw-r--r--tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/WidgetContainerConnector.java3
1146 files changed, 13814 insertions, 2920 deletions
diff --git a/WebContent/VAADIN/themes/base/table/table.css b/WebContent/VAADIN/themes/base/table/table.css
index 653063ccb5..55728e3264 100644
--- a/WebContent/VAADIN/themes/base/table/table.css
+++ b/WebContent/VAADIN/themes/base/table/table.css
@@ -241,6 +241,11 @@
.v-off {
color: #ddd;
}
+
+.v-table .v-checkbox {
+ display: inline-block;
+}
+
/*************************************
* Drag'n'drop styles
*************************************/
diff --git a/WebContent/VAADIN/themes/base/textfield/richtext.css b/WebContent/VAADIN/themes/base/textfield/richtext.css
index a304fa2a57..6a236886cc 100644
--- a/WebContent/VAADIN/themes/base/textfield/richtext.css
+++ b/WebContent/VAADIN/themes/base/textfield/richtext.css
@@ -6,7 +6,9 @@
background: #fff;
border: none;
}
-
+.v-richtextarea .gwt-HTML {
+ height: 100%;
+}
.v-richtextarea .gwt-RichTextToolbar {
white-space: nowrap;
background: #959595 url(img/richtext-toolbar-bg.png) repeat-x 0 -42px;
diff --git a/WebContent/VAADIN/themes/base/treetable/treetable.css b/WebContent/VAADIN/themes/base/treetable/treetable.css
index de505ba774..4d9ad5031b 100644
--- a/WebContent/VAADIN/themes/base/treetable/treetable.css
+++ b/WebContent/VAADIN/themes/base/treetable/treetable.css
@@ -4,14 +4,17 @@
height: 10px;
/* defines the amount of indent per level */
width: 18px;
+ position: absolute;
+ left: 0;
+ top: 5px;
}
.v-treetable-node-closed {
- background: url(../treetable/img/arrow-right.png) right center no-repeat;
+ background: url(../treetable/img/arrow-right.png) right top no-repeat;
}
.v-treetable-node-open {
- background: url(../treetable/img/arrow-down.png) right center no-repeat;
+ background: url(../treetable/img/arrow-down.png) right top no-repeat;
}
.v-treetable .v-checkbox {
@@ -25,6 +28,10 @@
z-index: 10;
}
+.v-treetable .v-table-cell-wrapper {
+ position: relative;
+}
+
.v-treetable .v-table-body .v-table-table .v-table-row-animating {
zoom:1;
z-index:1;
diff --git a/WebContent/VAADIN/themes/reindeer/table/table.css b/WebContent/VAADIN/themes/reindeer/table/table.css
index 9b78d86e34..5d67cfe564 100644
--- a/WebContent/VAADIN/themes/reindeer/table/table.css
+++ b/WebContent/VAADIN/themes/reindeer/table/table.css
@@ -112,9 +112,9 @@
text-shadow: #f3f5f8 0 1px 0;
line-height: normal;
}
-.v-table-generated-row .v-table-cell-content {
- padding-top: 1px;
- padding-bottom: 2px;
+.v-table-generated-row .v-table-cell-wrapper {
+ padding-top: 4px;
+ padding-bottom: 5px;
}
.v-table-cell-content:last-child {
border-right-color: transparent;
diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html
index 6f2eb8c2cc..1e4016db90 100644
--- a/WebContent/release-notes.html
+++ b/WebContent/release-notes.html
@@ -71,47 +71,50 @@
<h2 id="enhancements">Enhancements in Vaadin @version-minor@</h2>
<p>
- @version-minor@ is the second development release of the upcoming Version 7 of the
- Vaadin Framework. It introduces the second set of new features in Vaadin 7, for the
+ @version-minor@ is the third development release of the upcoming Version 7 of the
+ Vaadin Framework. It introduces the third set of new features in Vaadin 7, for the
purpose of receiving feedback about the changes.
</p>
- <p>The major changes in this second alpha phase are:</p>
+ <p>The major changes in this third alpha phase are:</p>
<ul>
- <li>Complete overhaul of the client-server communication architecture
+ <li>GWT is now built into Vaadin Framework
<ul>
- <li>All add-on components that have widgets need to be ported to Vaadin 7</li>
- <li>Integration of a GWT widget is done in a <i>connector</i> class</li>
- <li>Component-to-widget mapping now defined on the client-side, in the connector</li>
- <li>No more <b style="text-decoration: line-through">Paintable</b> or <b style="text-decoration: line-through">VariableOwner</b>
- <li>Server-side component and client-side widget can have a <emphasis>shared state</emphasis> object which is automatically synchronized</li>
- <li>Both client-side and server-side can make RPC calls to the other side
- <ul>
- <li>Communicated in the next request/response</li>
- <li>No return values
- <li>Typically for communicating events</li>
- </ul>
- </li>
- <li>UIDL is deprecated</li>
- <li>Compatibility layer for Vaadin 6 included for easy migration</li>
+ <li>New SuperDevMode allows debugging client-side Java code in the browser without any plugins</li>
</ul>
</li>
- <li>Get computed style of a component from the browser</li>
- <li>Support for border, padding, and margin in core layout components</li>
+ <li>Support for JavaScript components - GWT integration code not required</li>
+ <li>Handle JavaScript callbacks on the server-side</li>
+ <li>Component and root extensions</li>
+ <li>Navigation API for view navigation
+ <ul>
+ <li>View navigation with bookmarking/linking with URI fragments and browser history support</li>
+ <li>Access control for views, view change confirmation</li>
+ </ul>
+ </li>
+ <li>Resource loading (JS/CSS) by the framework</li>
</ul>
-
+
<p>
- The enchancements are described in more detail in the <a
+ The enhancements are described in more detail in the <a
href="https://vaadin.com/wiki/-/wiki/Main/Vaadin+7">mini-tutorials</a> in the
Vaadin Wiki.
</p>
+ <p>
+ Please see the release notes for <a
+ href="http://vaadin.com/download/prerelease/7.0/7.0.0/7.0.0.alpha1/release-notes.html">alpha1</a>
+ and <a
+ href="http://vaadin.com/download/prerelease/7.0/7.0.0/7.0.0.alpha2/release-notes.html">alpha2</a>
+ for a complete list of major enhancements for Vaadin 7 so far.
+ </p>
+
<h3 id="changelog">ChangeLog</h3>
<p>
For a complete list of changes in this release, please see the <a
- href="http://dev.vaadin.com/query?status=closed&group=resolution&milestone=Vaadin+7.0.0.alpha2">list
+ href="http://dev.vaadin.com/query?status=closed&group=resolution&milestone=Vaadin+7.0.0.alpha3">list
of closed tickets</a>.
</p>
@@ -142,18 +145,6 @@
<h2 id="dependencies">Vaadin @version@ Dependencies</h2>
- <h3>Google Web Toolkit (GWT)</h3>
-
- <p>
- Vaadin uses GWT @gwt-version@ for widget set compilation. GWT can be downloaded
- from <a
- href="http://code.google.com/webtoolkit/">http://code.google.com/webtoolkit/</a>.
- GWT can also be automatically downloaded by the Vaadin Plug-in for Eclipse. Please
- note that GWT @gwt-version@ requires the <i>validation-api-1.0.0.GA.jar</i> and
- <i>validation-api-1.0.0.GA-sources.jar</i> files in addition to <i>gwt-dev.jar</i>
- and <i>gwt-user.jar</i> for widget set compilation.
- </p>
-
<h3>Bean Validation</h3>
<p>
@@ -307,9 +298,8 @@
<h2 id="supportedversions">Supported Technologies</h2>
<p>
- Vaadin 7 is compatible with <b>Java 5</b> and it is also compatible with most other
- operating system supporting Java 5 or newer. However, using Java 6 is recommended,
- as it is required by widget set compilation.
+ Vaadin 7 is compatible with <b>Java 6</b> and it is also compatible with most other
+ operating system supporting Java 6 or newer.
</p>
<p>
diff --git a/WebContent/statictestfiles/LoginFormIframe.html b/WebContent/statictestfiles/LoginFormIframe.html
new file mode 100644
index 0000000000..0d6ee9d86b
--- /dev/null
+++ b/WebContent/statictestfiles/LoginFormIframe.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<title>LoginForm</title>
+<script type="text/javascript">
+ window.name="LoginForm";
+</script>
+</head>
+<body>
+<p>Tests that LoginForm can be submitted even when the Application is embedded inside an iframe</p>
+<iframe src="/run/com.vaadin.tests.components.loginform.LoginFormTest?restartApplication" name="LoginForm" height="500px" width="500px"></iframe>
+</body>
+</html> \ No newline at end of file
diff --git a/WebContent/statictestfiles/jsconnector.js b/WebContent/statictestfiles/jsconnector.js
deleted file mode 100644
index d7f697dbf5..0000000000
--- a/WebContent/statictestfiles/jsconnector.js
+++ /dev/null
@@ -1,13 +0,0 @@
-window.com_vaadin_tests_components_javascriptcomponent_BasicJavaScriptComponent_ExampleWidget = function() {
- var connector = this;
-
- var rootElement = connector.getWidgetElement();
- rootElement.innerHTML = 'Hello world!';
- rootElement.onclick = function() {
- connector.getRpcProxy().onClick("message");
- connector.onclick("another message");
- }
- connector.onStateChange = function() {
- console.log('state change:', this.getState());
- }
-} \ No newline at end of file
diff --git a/build/GWT-VERSION.properties b/build/GWT-VERSION.properties
index 028ad8b4de..e5bb635e01 100644
--- a/build/GWT-VERSION.properties
+++ b/build/GWT-VERSION.properties
@@ -1,2 +1,2 @@
-gwt-version=2.4.0
+gwt-version=2.5.0
gwt-version-dependencies=validation-api-1.0.0.GA.jar, validation-api-1.0.0.GA-sources.jar
diff --git a/build/build.properties b/build/build.properties
index a1b285c952..0260cc54a9 100644
--- a/build/build.properties
+++ b/build/build.properties
@@ -4,6 +4,7 @@ product-file=vaadin
product-name=Vaadin
vaadin-package=com/vaadin
gwt-dir=lib/core/gwt
+required.java.version=1.6
# repository into which Maven snapshots should be published
snapshot.repository.url=http://oss.sonatype.org/content/repositories/vaadin-snapshots
diff --git a/build/build.xml b/build/build.xml
index 97f7c1c274..f7d910e4b0 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -34,16 +34,69 @@
<path id="additional.jar.path">
<fileset dir="build" includes="lib/**/*.jar" ></fileset>
</path>
+
+ <!-- Default location for GWT check-out: trunk and tools in a directory next to Vaadin project -->
+ <property name="gwt.root" value="${basedir}/../trunk"/>
+
+ <property name="gwt.build.dir" value="${gwt.root}/build"/>
+ <property name="gwt.tools" value="${gwt.root}/../tools"/>
+ <property name="gwt.tools.lib" value="${gwt.tools}/lib"/>
+ <property name="gwt.lib.dir" value="${gwt.build.dir}/lib"/>
+
+ <property name="gwt.user.jar" value="${gwt.lib.dir}/gwt-user.jar"/>
+ <property name="gwt.dev.jar" value="${gwt.lib.dir}/gwt-dev.jar"/>
+ <property name="gwt.codeserver.jar" value="${gwt.lib.dir}/gwt-codeserver.jar"/>
+ <property name="gwt.elemental.jar" value="${gwt.lib.dir}/gwt-elemental.jar"/>
+
+ <property name="gwt.user.dir" value="${gwt.root}/user"/>
+ <property name="gwt.user.bin" value="${gwt.build.dir}/out/user/bin"/>
+
+ <property name="jarjar-jar" value="${gwt.tools.lib}/tonicsystems/jarjar-1.0rc8.jar"/>
+
<path id="compile.classpath.server-side">
<path refid="additional.jar.path" />
+
+ <!-- GWT -->
+ <pathelement location="${gwt.user.jar}" />
+ <pathelement location="${gwt.dev.jar}" />
+
+ <!-- GWT dependencies - included in gwt-user.jar -->
+ <!--
+ <pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
+ <pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar" />
+ -->
+
<path refid="ivy.compile.classpath.server-side" />
</path>
<path id="compile.classpath.client-side">
- <path refid="additional.jar.path" />
- <path refid="ivy.compile.classpath.client-side" />
+ <path refid="additional.jar.path" />
+
+ <!-- GWT user -->
+ <!--
+ <pathelement path="${gwt.user.dir}/src" />
+ <pathelement path="${gwt.user.dir}/super" />
+ <pathelement path="${gwt.user.dir}/out/user/bin"/>
+ -->
+ <!-- GWT -->
+ <pathelement location="${gwt.user.jar}" />
+ <pathelement location="${gwt.dev.jar}" />
+
+ <!-- GWT dependencies - included in gwt-user.jar -->
+ <!--
+ <pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
+ <pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar" />
+ -->
+
+ <path refid="ivy.compile.classpath.client-side" />
</path>
<path id="compile.classpath.server-side-tests">
<path refid="additional.jar.path" />
+
+ <!-- GWT -->
+ <pathelement location="${gwt.user.jar}" />
+ <!-- needed at least for Apache Commons -->
+ <pathelement location="${gwt.dev.jar}" />
+
<path refid="ivy.compile.classpath.server-side-tests" />
</path>
</target>
@@ -68,6 +121,7 @@
<property name="result-classes-core" value="${result-path}/classes/core"/>
<property name="result-classes-junit" value="${result-path}/classes/junit"/>
<property name="result-classes-testbench" value="${result-path}/classes/testbench"/>
+ <property name="result-precompiled-widgetsets" value="${result-path}/classes/widgetsets"/>
<!-- Folder where Emma instrumented classes are placed (if Emma is used)-->
<property name="result-classes-core-for-emma-war" value="${result-path}/classes/emma-war"/>
<property name="result-classes-core-for-emma-junit" value="${result-path}/classes/emma-junit"/>
@@ -77,6 +131,7 @@
<path refid="compile.classpath.client-side" />
<pathelement location="${result-classes-core}" />
<pathelement location="${result-src-core}" />
+ <pathelement location="${result-precompiled-widgetsets}" />
</path>
</target>
<target name="clean-all" depends="clean-result">
@@ -85,6 +140,7 @@
<include name="*.png" />
</fileset>
</delete>
+ <delete failonerror="false" dir="WebContent/VAADIN/gwt-unitCache" />
</target>
<!-- ================================================================== -->
@@ -95,11 +151,11 @@
<target name="check-java-version">
<condition property="java.version.matches">
<or>
- <equals arg1="${ant.java.version}" arg2="1.5"/>
+ <equals arg1="${ant.java.version}" arg2="${required.java.version}"/>
<isset property="ignoreversion"/>
</or>
</condition>
- <fail unless="java.version.matches" message="Java version is ${ant.java.version}, but Vaadin must be compiled with genuine Java 1.5 compiler. Use -Dignoreversion=1 for ant to ignore the version check."/>
+ <fail unless="java.version.matches" message="Java version is ${ant.java.version}, but Vaadin must be compiled with genuine Java ${required.java.version} compiler. Use -Dignoreversion=1 for ant to ignore the version check."/>
<echo>Java version is ${ant.java.version} as required.</echo>
</target>
@@ -107,7 +163,7 @@
<!-- Initialization - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- ================================================================== -->
- <target name="init" depends="init-deps, build.properties">
+ <target name="init" depends="init-deps, build.properties, check-java-version">
<!-- Current timestamp in different formats. -->
<tstamp>
<format property="build.date" pattern="yyyy-MM-dd"/>
@@ -265,7 +321,7 @@
description="Build package required files, without packing them.">
</target>
- <target name="compile-server-side" depends="compile-core, webcontent"/>
+ <target name="compile-server-side" depends="compile-gwt, compile-core, webcontent"/>
<!-- Copy and preprocess sources for packaging
NOTE: Replaces <version></version> tags with build version tag for some "textual" files
@@ -348,10 +404,6 @@
</fileset>
</copy>
- <!-- Unify mix usage of mac/Linux/Win characters -->
- <echo>Unifying mix usage of Mac/Linux/Win linefeeds for java/html/css/xml files.</echo>
- <fixcrlf srcdir="${result-path}/src" eol="crlf" tablength="4" tab="asis" includes="**/*.java **/*.html **/*.css **/*.xml" />
-
<!-- Add other files such as images, these are not filtered or processed by fixcrlf task -->
<echo>Copying non java/html/css/xml files such as images.</echo>
<copy todir="${result-src-core}">
@@ -439,7 +491,7 @@
<echo>Compiling src (server-side)</echo>
<!-- Compile core sources first as the other sources depend on these -->
<mkdir dir="${result-classes-core}" />
- <javac source="1.5" target="1.5" classpathref="compile.classpath.server-side" destdir="${result-classes-core}" debug="true" encoding="UTF-8" includeantruntime="false">
+ <javac source="${required.java.version}" target="${required.java.version}" classpathref="compile.classpath.server-side" destdir="${result-classes-core}" debug="true" encoding="UTF-8" includeantruntime="false">
<src path="${result-src-core}"/>
</javac>
</target>
@@ -448,7 +500,7 @@
<echo>Compiling src (Server and client side JUnit tests)</echo>
<!-- Compile server and client side JUnit tests -->
<mkdir dir="${result-classes-junit}" />
- <javac source="1.5" target="1.5" classpathref="compile.classpath.server-side-tests" destdir="${result-classes-junit}" debug="true" encoding="UTF-8" includeantruntime="false">
+ <javac source="${required.java.version}" target="${required.java.version}" classpathref="compile.classpath.server-side-tests" destdir="${result-classes-junit}" debug="true" encoding="UTF-8" includeantruntime="false">
<classpath path="${result-classes-core}"></classpath>
<src path="${result-src-junit}"/>
</javac>
@@ -456,7 +508,7 @@
<echo>Compiling src (TestBench tests)</echo>
<!-- Compile TestBench tests -->
<mkdir dir="${result-classes-testbench}" />
- <javac source="1.5" target="1.5" classpathref="compile.classpath.server-side" destdir="${result-classes-testbench}" debug="true" encoding="UTF-8" includeantruntime="false">
+ <javac source="${required.java.version}" target="${required.java.version}" classpathref="compile.classpath.server-side" destdir="${result-classes-testbench}" debug="true" encoding="UTF-8" includeantruntime="false">
<classpath path="${result-classes-junit}"></classpath>
<classpath path="${result-classes-core}"></classpath>
<src path="${result-src-testbench}"/>
@@ -467,7 +519,7 @@
<target name="compile-helpers" depends="init">
<mkdir dir="${buildhelpers-classes}" />
<ivy:cachepath pathid="buildhelpers.dependencies" resolveId="buildhelpers" conf="compile" file="build/ivy/buildhelpers-ivy.xml"/>
- <javac source="1.5" target="1.5" includeantruntime="false" srcdir="${buildhelpers-src}"
+ <javac source="${required.java.version}" target="${required.java.version}" includeantruntime="false" srcdir="${buildhelpers-src}"
classpathref="buildhelpers.dependencies" destdir="${buildhelpers-classes}" debug="true" encoding="UTF-8" />
</target>
@@ -520,6 +572,22 @@
<property name="widgetset-extraParams" value="" />
<echo>Compiling widgetset ${widgetset}. Output directory: ${widgetsets-output-dir}</echo>
<mkdir dir="${widgetsets-output-dir}"/>
+
+ <!-- Disabled to reduce JAR size: precompile the widgetset to a .gwtar file -->
+ <!--
+ <java classname="com.google.gwt.dev.CompileModule" classpathref="compile.classpath.widgetset" failonerror="yes" fork="yes" maxmemory="512m">
+ <arg value="-out" />
+ <arg value="${result-precompiled-widgetsets}" />
+ <arg value="-strict" />
+ <arg value="${widgetset}" />
+
+ <jvmarg value="-Xss8M"/>
+ <jvmarg value="-XX:MaxPermSize=256M"/>
+ <jvmarg value="-Djava.awt.headless=true"/>
+ </java>
+ -->
+
+ <!-- compile the widgetset -->
<java classname="com.google.gwt.dev.Compiler" classpathref="compile.classpath.widgetset" failonerror="yes" fork="yes" maxmemory="512m">
<arg value="-war" />
<arg value="${widgetsets-output-dir}" />
@@ -528,13 +596,16 @@
<arg value="-strict" />
<arg value="-localWorkers" />
<arg value="${widgetset-localWorkers}" />
- <arg line="${widgetset-extraParams}" />
+ <arg line="${widgetset-extraParams}" />
<arg value="${widgetset}" />
+
+ <sysproperty key="vFailIfNotSerializable" value="true" />
<jvmarg value="-Xss8M"/>
<jvmarg value="-XX:MaxPermSize=256M"/>
<jvmarg value="-Djava.awt.headless=true"/>
</java>
+
<antcall target="remove-widgetset-gwt-tmp"/>
<echo>Compiled ${widgetset}</echo>
@@ -570,7 +641,7 @@
<!-- Compiles all widgetsets. -->
<!-- This is called when building packages and when compiling all -->
<!-- widgetsets, but not when compiling individual widgetsets. -->
- <target name="compile-client-side" depends="compile-server-side, compile-tests">
+ <target name="compile-client-side" depends="compile-gwt, compile-server-side, compile-tests">
<echo>Compiling widget sets in parallel.</echo>
<parallel threadsperprocessor="1">
<antcall inheritrefs="true" target="compile-widgetset-default"/>
@@ -592,14 +663,31 @@
<target name="widgetsets" depends="init-nonpackage, init, compile-widgetset-generator, compile-client-side"/>
<!-- Build each widgetset locally, i.e., not for an installation package. -->
- <target name="widgetset-default" depends="init-nonpackage, init, compile-widgetset-generator, compile-widgetset-default" description="Compile the DefaultWidgetSet"/>
- <target name="widgetset-testing" depends="init-nonpackage, init, compile-tests, compile-widgetset-generator, compile-widgetset-testing"/>
- <target name="widgetset-portal-default" depends="init-nonpackage, init, compile-widgetset-generator, compile-widgetset-portal-default"/>
+ <target name="widgetset-default" depends="init-nonpackage, init, compile-gwt, compile-widgetset-generator, compile-widgetset-default" description="Compile the DefaultWidgetSet"/>
+ <target name="widgetset-testing" depends="init-nonpackage, init, compile-gwt, compile-tests, compile-widgetset-generator, compile-widgetset-testing"/>
+ <target name="widgetset-portal-default" depends="init-nonpackage, init, compile-gwt, compile-widgetset-generator, compile-widgetset-portal-default"/>
<!-- ================================================================== -->
<!-- Libraries and Tests -->
<!-- ================================================================== -->
+ <target name="compile-gwt" depends="init" unless="use.precompiled.gwt">
+ <!-- skipped based on a parameter, use pre-compiled JARs from elsewhere -->
+ <!-- Compile GWT in a directory defined by properties -->
+ <ant antfile="${gwt.root}/build.xml" target="user" dir="${gwt.root}" inheritall="false" inheritrefs="false">
+ <property name="gwt.root" value="${gwt.root}"/>
+ </ant>
+ <ant antfile="${gwt.root}/build.xml" target="dev" dir="${gwt.root}" inheritall="false" inheritrefs="false">
+ <property name="gwt.root" value="${gwt.root}"/>
+ </ant>
+ <ant antfile="${gwt.root}/build.xml" target="codeserver" dir="${gwt.root}" inheritall="false" inheritrefs="false">
+ <property name="gwt.root" value="${gwt.root}"/>
+ </ant>
+ <ant antfile="${gwt.root}/build.xml" target="elemental" dir="${gwt.root}" inheritall="false" inheritrefs="false">
+ <property name="gwt.root" value="${gwt.root}"/>
+ </ant>
+ </target>
+
<!-- Compile the Vaadin library JAR. -->
<!-- Need only the default widgetset for this, but can't depend -->
<!-- specifically on it, because dependence does not see compiled -->
@@ -610,7 +698,6 @@
<!-- Create Vaadin JAR -->
<mkdir dir="${output-dir}/META-INF"/>
<echo file="${output-dir}/META-INF/VERSION">${version.full}</echo>
- <echo file="${output-dir}/META-INF/GWT-VERSION">${gwt-version}</echo>
<emma enabled="${emma.enabled}" >
<instr instrpath="${result-classes-core}"
@@ -622,10 +709,13 @@
<filter includes="com.vaadin.*" />
<filter excludes="com.vaadin.terminal.gwt.*" />
</instr>
- </emma>
+ </emma>
- <jar jarfile="${output-dir}/WebContent/WEB-INF/lib/${lib-jar-name}"
- compress="true" manifest="build/package/META-INF/MANIFEST.MF" duplicate="preserve">
+ <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask"
+ classpath="${jarjar-jar}"/>
+
+ <jarjar jarfile="${output-dir}/WebContent/WEB-INF/lib/${lib-jar-name}"
+ compress="true" manifest="build/package/META-INF/MANIFEST.MF" duplicate="preserve" index="true">
<metainf dir="${output-dir}/META-INF"/>
<manifest>
<attribute name="Vaadin-Package-Version" value="1" />
@@ -633,7 +723,8 @@
<attribute name="Implementation-Vendor" value="Vaadin Ltd" />
<attribute name="Implementation-URL" value="http://vaadin.com" />
<attribute name="Implementation-Version" value="${version.full}" />
- <attribute name="GWT-Version" value="${gwt-version}" />
+ <!-- No separate GWT-Version attribute or file -->
+ <!-- <attribute name="GWT-Version" value="${gwt-version}" /> -->
<attribute name="GWT-Version-Dependencies" value="${gwt-version-dependencies}" />
<attribute name="Bundle-Version" value="${version.full}" />
</manifest>
@@ -658,7 +749,91 @@
<include name="img/**" />
</patternset>
</fileset>
- </jar>
+
+ <!-- Precompiled widgetset (.gwtar file) not included to limit JAR size -->
+ <!-- <fileset dir="${result-precompiled-widgetsets}" includes="com/vaadin/terminal.gwt.DefaultWidgetSet.gwtar" /> -->
+
+ <!-- TODO GWT related license files etc. should be in subdirectories -->
+
+ <!-- GWT -->
+ <!-- Precompiled GWT modules (.gwtar file) not included to limit JAR size -->
+ <zipfileset src="${gwt.user.jar}" excludes="META-INF/**,javax/servlet/**,**/*.gwtar" />
+
+ <!-- TODO depends on locally compiled gwt-user -->
+ <!--
+ <fileset dir="${gwt.user.dir}/src" excludes="**/package.html" />
+ <fileset dir="${gwt.user.dir}/super" excludes="**/package.html" />
+ <fileset dir="${gwt.user.bin}" excludes="**/*.gwtar" />
+
+ <zipfileset src="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
+ <zipfileset src="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar" />
+ <zipfileset src="${gwt.tools.lib}/streamhtmlparser/streamhtmlparser-jsilver-r10/streamhtmlparser-jsilver-r10-1.5-rebased.jar" />
+ -->
+
+ <!-- GWT development JAR contents including many external dependencies -->
+ <zipfileset src="${gwt.dev.jar}" excludes="javax/servlet/**,javax/xml/**" />
+
+ <!-- Alternative approach: GWT compiler and its dependencies only from the dev JAR -->
+ <!--
+ <zipfileset src="${gwt.dev.jar}">
+ <include name="com/google/gwt/core/client/**"/>
+ <include name="com/google/gwt/core/shared/**"/>
+
+ <include name="com/google/gwt/core/ext/**"/>
+ <include name="com/google/gwt/core/linker/**"/>
+ <include name="com/google/gwt/dev/About.java"/>
+ <include name="com/google/gwt/dev/GwtVersion.java"/>
+ <include name="com/google/gwt/dev/Permutation.java"/>
+ <include name="com/google/gwt/dev/asm/**"/>
+ <include name="com/google/gwt/dev/cfg/**"/>
+ <include name="com/google/gwt/dev/javac/**"/>
+ <include name="com/google/gwt/dev/jdt/**"/>
+ <include name="com/google/gwt/dev/jjs/**"/>
+ <include name="com/google/gwt/dev/js/**"/>
+ <include name="com/google/gwt/dev/json/**"/>
+ <include name="com/google/gwt/dev/resource/**"/>
+ <include name="com/google/gwt/dev/util/**"/>
+ <include name="com/google/gwt/soyc/**"/>
+ <include name="com/google/gwt/util/**"/>
+ <include name="org/eclipse/jdt/**"/>
+ </zipfileset>
+ <zipfileset src="${gwt.tools.lib}/apache/ant-1.6.5.jar" />
+ <zipfileset src="${gwt.tools.lib}/eclipse/jdt-3.4.2_r894.jar" />
+ <zipfileset src="${gwt.tools.lib}/tomcat/commons-collections-3.1.jar" />
+ <zipfileset src="${gwt.tools.lib}/guava/guava-10.0.1/guava-10.0.1-rebased.jar" />
+ <zipfileset src="${gwt.tools.lib}/jscomp/r1649/compiler-rebased.jar" />
+ -->
+
+ <!-- GWT SuperDevMode -->
+ <zipfileset src="${gwt.codeserver.jar}" />
+
+ <!-- GWT Elemental -->
+ <zipfileset src="${gwt.elemental.jar}" />
+
+ <!-- jarjar rules: rebase packages from gwt-dev.jar but not those from gwt-user -->
+
+ <!-- Don't rebase these -->
+ <!-- xalan is used via reflection -->
+ <rule pattern="org.apache.xalan.**" result="@0"/>
+ <rule pattern="org.apache.xml.**" result="@0"/>
+ <!-- Cannot rebase - used in APIs etc. -->
+ <!-- <rule pattern="org.mortbay.**" result="@0"/> -->
+ <!-- <rule pattern="org.xml.**" result="@0"/> -->
+
+ <!-- Rebase these -->
+ <rule pattern="com.gargoylesoftware.**" result="com.vaadin.external.@0"/>
+ <rule pattern="com.ibm.**" result="com.vaadin.external.@0"/>
+ <rule pattern="com.steadystate.**" result="com.vaadin.external.@0"/>
+ <rule pattern="mx4j.**" result="com.vaadin.external.@0"/>
+ <rule pattern="net.sourceforge.htmlunit.**" result="com.vaadin.external.@0"/>
+ <rule pattern="org.apache.**" result="com.vaadin.external.@0"/>
+ <rule pattern="org.cyberneko.**" result="com.vaadin.external.@0"/>
+ <rule pattern="org.eclipse.**" result="com.vaadin.external.@0"/>
+ <!-- looked up based on class name? -->
+ <rule pattern="org.hibernate.validator.**" result="com.vaadin.external.@0"/>
+ <rule pattern="org.jdesktop.swingworker.**" result="com.vaadin.external.@0"/>
+ <rule pattern="org.kohsuke.args4j.**" result="com.vaadin.external.@0"/>
+ </jarjar>
<!-- Generate the Export-Package attribute in the manifest of the JAR -->
<java classname="com.vaadin.buildhelpers.GeneratePackageExports" failonerror="true" fork="yes">
@@ -704,7 +879,7 @@
<doctitle>${javadoc.doctitle}</doctitle>
<!-- <header><![CDATA[<script type="text/javascript" src=".html-style/style.js"></script>]]></header> -->
<bottom>${javadoc.bottom}</bottom>
- <link offline="true" href="http://java.sun.com/j2se/1.5.0/docs/api/" packagelistLoc="build/javadoc/j2se-1.5.0" />
+ <link offline="true" href="http://docs.oracle.com/javase/6/docs/api/" packagelistLoc="build/javadoc/j2se-1.6.0" />
<link offline="true" href="http://java.sun.com/j2ee/1.4/docs/api/" packagelistLoc="build/javadoc/j2ee-1.4" />
</javadoc>
diff --git a/build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.java b/build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.java
index 6f477601ed..0deebdc9a1 100644
--- a/build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.java
+++ b/build/buildhelpers/com/vaadin/buildhelpers/GeneratePackageExports.java
@@ -7,37 +7,40 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.Vector;
import java.util.jar.Attributes;
+import java.util.jar.Attributes.Name;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
-import java.util.jar.Attributes.Name;
/**
* Generates Export-Packages attribute for OSGi compatible manifest.
*
* Reads the included Java packages in Vaadin JAR, generates a corresponding
- * MANIFEST.MF file, and replaces the dummy one in the JAR with the
- * generated one.
+ * MANIFEST.MF file, and replaces the dummy one in the JAR with the generated
+ * one.
*
* See #3521 for details.
*
* @author magi
*/
public class GeneratePackageExports {
+ public static final String VAADIN_PACKAGE_PATH_PREFIX = "com/vaadin/";
+ public static final String GOOGLE_PACKAGE_PATH_PREFIX = "com/google/";
+
public static void main(String[] args) {
if (args.length < 1) {
- System.err.println("Invalid number of parameters\n"+
- "Usage: java -cp .. GenerateManifest <package.jar>");
+ System.err.println("Invalid number of parameters\n"
+ + "Usage: java -cp .. GenerateManifest <package.jar>");
System.exit(1);
}
- // Open tje JAR
+ // Open the JAR
String jarFilename = args[0];
JarFile jar = null;
try {
jar = new JarFile(jarFilename);
} catch (IOException e) {
- System.err.println("Unable to open JAR '"+jarFilename+"'");
+ System.err.println("Unable to open JAR '" + jarFilename + "'");
System.exit(1);
}
@@ -45,9 +48,12 @@ public class GeneratePackageExports {
HashSet<String> packages = new HashSet<String>();
for (Enumeration<JarEntry> it = jar.entries(); it.hasMoreElements();) {
JarEntry entry = it.nextElement();
- if (entry.getName().startsWith("com") && entry.getName().endsWith(".class")) {
+ if ((entry.getName().startsWith(VAADIN_PACKAGE_PATH_PREFIX) || entry
+ .getName().startsWith(GOOGLE_PACKAGE_PATH_PREFIX))
+ && entry.getName().endsWith(".class")) {
int lastSlash = entry.getName().lastIndexOf('/');
- String pkg = entry.getName().substring(0, lastSlash).replace('/', '.');
+ String pkg = entry.getName().substring(0, lastSlash)
+ .replace('/', '.');
packages.add(pkg);
}
}
@@ -55,14 +61,16 @@ public class GeneratePackageExports {
// List theme packages
for (Enumeration<JarEntry> it = jar.entries(); it.hasMoreElements();) {
JarEntry entry = it.nextElement();
- if (entry.isDirectory() && entry.getName().startsWith("VAADIN/themes")) {
+ if (entry.isDirectory()
+ && entry.getName().startsWith("VAADIN/themes")) {
// Strip ending slash
int lastSlash = entry.getName().lastIndexOf('/');
- String pkg = entry.getName().substring(0, lastSlash).replace('/', '.');
+ String pkg = entry.getName().substring(0, lastSlash)
+ .replace('/', '.');
packages.add(pkg);
}
}
-
+
// Replacement for the "Export-Package" attribute in the manifest
String exportPackage = "";
@@ -70,13 +78,14 @@ public class GeneratePackageExports {
String packageArray[] = new String[packages.size()];
packages.toArray(packageArray);
Arrays.sort(packageArray);
- for (int i=0; i<packageArray.length; i++) {
- if (i == 0)
+ for (int i = 0; i < packageArray.length; i++) {
+ if (i == 0) {
exportPackage = packageArray[i];
- else
+ } else {
exportPackage += ", " + packageArray[i];
+ }
}
-
+
// Read old manifest
Manifest oldMF = null;
try {
@@ -84,11 +93,12 @@ public class GeneratePackageExports {
} catch (IOException e) {
e.printStackTrace();
}
-
+
// Read main attributes
Attributes mainAtts = oldMF.getMainAttributes();
Vector<String> keys = new Vector<String>(mainAtts.size());
- for (Iterator<Object> attrit = mainAtts.keySet().iterator(); attrit.hasNext();) {
+ for (Iterator<Object> attrit = mainAtts.keySet().iterator(); attrit
+ .hasNext();) {
Name name = (Name) attrit.next();
keys.add(name.toString());
}
@@ -98,11 +108,11 @@ public class GeneratePackageExports {
try {
jar.close();
} catch (IOException e) {
- System.err.println("Unable to close JAR '"+jarFilename+"'");
+ System.err.println("Unable to close JAR '" + jarFilename + "'");
}
-
+
// Put the manifest version as the first line
- String orderedKeys[] = new String[keys.size()];
+ String orderedKeys[] = new String[keys.size()];
keys.toArray(orderedKeys);
Arrays.sort(orderedKeys); // Must sort to be able to search
int mvPos = Arrays.binarySearch(orderedKeys, "Manifest-Version");
@@ -110,20 +120,21 @@ public class GeneratePackageExports {
orderedKeys[0] = "Manifest-Version";
// This final ordering is just for esthetic reasons and
- // in practice unnecessary and will actually be messed up
+ // in practice unnecessary and will actually be messed up
// when the 'jar' command reads the manifest
- Arrays.sort(orderedKeys, 1, orderedKeys.length-1);
+ Arrays.sort(orderedKeys, 1, orderedKeys.length - 1);
// Create the modified manifest
ManifestWriter manifest = new ManifestWriter();
- for (int i=0; i<orderedKeys.length; i++) {
+ for (int i = 0; i < orderedKeys.length; i++) {
// Skip an existing Export-Package attribute
if (orderedKeys[i].equals("Export-Package")) {
// Copy the attribute to the modified manifest
- manifest.writeAttribute(orderedKeys[i], mainAtts.getValue(orderedKeys[i]));
+ manifest.writeAttribute(orderedKeys[i],
+ mainAtts.getValue(orderedKeys[i]));
}
}
-
+
// Add the Export-Package attribute at the end of the manifest.
// The alternative would be replacing an existing attribute in
// the loop above, but it's not guaranteed that it exists.
@@ -133,8 +144,9 @@ public class GeneratePackageExports {
// before this is done.
int status = manifest.updateJar(jarFilename);
- if (status != 0)
+ if (status != 0) {
System.exit(status);
+ }
}
-
+
}
diff --git a/build/ivy/ivy.xml b/build/ivy/ivy.xml
index ffcf7b19c8..fb94277434 100644
--- a/build/ivy/ivy.xml
+++ b/build/ivy/ivy.xml
@@ -12,6 +12,9 @@
<publications />
<dependencies defaultconf="ss.compile" defaultconfmapping="ss.compile->master">
+ <!--Servlet API version 2.5 -->
+ <dependency org="javax.servlet" name="servlet-api" rev="2.5" />
+
<!-- Liferay Portal Service -->
<dependency org="com.liferay.portal" name="portal-service" rev="6.0.2" />
<!--Portlet API version 2.0 (JSR-286) -->
@@ -19,17 +22,21 @@
<!-- Google App Engine -->
<dependency org="com.google.appengine" name="appengine-api-1.0-sdk" rev="1.2.1" />
- <!-- GWT user with dependencies (validation-api) -->
- <dependency org="com.google.gwt" name="gwt-user" rev="2.4.0" conf="cs.compile->master" />
+ <!-- GWT dependencies (validation-api) -->
<dependency org="javax.validation" name="validation-api" rev="1.0.0.GA" conf="cs.compile->master,sources" />
- <!-- GWT dev (incl. servlet-api 2.4 classes) -->
- <dependency org="com.google.gwt" name="gwt-dev" rev="2.4.0" conf="cs.compile->master" />
<!-- Test frameworks & related -->
<dependency org="junit" name="junit" rev="4.5" conf="ss.test.compile -> master"/>
<dependency org="org.easymock" name="easymock" rev="3.0" conf="ss.test.compile -> master, runtime(*)"/>
<dependency org="org.hsqldb" name="hsqldb" rev="2.2.6" conf="ss.test.compile -> master, runtime(*)"/>
-
+
+ <!-- Additional libraries used by tests - also included from GWT -->
+ <dependency org="org.mortbay.jetty" name="jetty" rev="6.1.26" conf="ss.test.compile -> master"/>
+ <dependency org="org.mortbay.jetty" name="jetty-util" rev="6.1.26" conf="ss.test.compile -> master"/>
+ <dependency org="commons-lang" name="commons-lang" rev="2.6" conf="ss.test.compile -> master"/>
+ <dependency org="commons-io" name="commons-io" rev="2.3" conf="ss.test.compile -> master"/>
+ <dependency org="commons-codec" name="commons-codec" rev="1.6" conf="ss.test.compile -> master"/>
+
<!-- Ant tasks -->
<dependency org="ant-contrib" name="ant-contrib" rev="1.0b3" conf="taskdefs ->master"/>
<dependency org="org.apache.maven" name="maven-ant-tasks" rev="2.0.10" conf="taskdefs ->master"/>
diff --git a/build/javadoc/j2se-1.5.0/package-list b/build/javadoc/j2se-1.6.0/package-list
index 48783362ea..42c9b950ef 100644
--- a/build/javadoc/j2se-1.5.0/package-list
+++ b/build/javadoc/j2se-1.6.0/package-list
@@ -39,6 +39,7 @@ java.security.interfaces
java.security.spec
java.sql
java.text
+java.text.spi
java.util
java.util.concurrent
java.util.concurrent.atomic
@@ -47,9 +48,13 @@ java.util.jar
java.util.logging
java.util.prefs
java.util.regex
+java.util.spi
java.util.zip
javax.accessibility
+javax.activation
javax.activity
+javax.annotation
+javax.annotation.processing
javax.crypto
javax.crypto.interfaces
javax.crypto.spec
@@ -60,6 +65,12 @@ javax.imageio.plugins.bmp
javax.imageio.plugins.jpeg
javax.imageio.spi
javax.imageio.stream
+javax.jws
+javax.jws.soap
+javax.lang.model
+javax.lang.model.element
+javax.lang.model.type
+javax.lang.model.util
javax.management
javax.management.loading
javax.management.modelmbean
@@ -83,6 +94,7 @@ javax.print.event
javax.rmi
javax.rmi.CORBA
javax.rmi.ssl
+javax.script
javax.security.auth
javax.security.auth.callback
javax.security.auth.kerberos
@@ -116,17 +128,42 @@ javax.swing.text.html.parser
javax.swing.text.rtf
javax.swing.tree
javax.swing.undo
+javax.tools
javax.transaction
javax.transaction.xa
javax.xml
+javax.xml.bind
+javax.xml.bind.annotation
+javax.xml.bind.annotation.adapters
+javax.xml.bind.attachment
+javax.xml.bind.helpers
+javax.xml.bind.util
+javax.xml.crypto
+javax.xml.crypto.dom
+javax.xml.crypto.dsig
+javax.xml.crypto.dsig.dom
+javax.xml.crypto.dsig.keyinfo
+javax.xml.crypto.dsig.spec
javax.xml.datatype
javax.xml.namespace
javax.xml.parsers
+javax.xml.soap
+javax.xml.stream
+javax.xml.stream.events
+javax.xml.stream.util
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.sax
+javax.xml.transform.stax
javax.xml.transform.stream
javax.xml.validation
+javax.xml.ws
+javax.xml.ws.handler
+javax.xml.ws.handler.soap
+javax.xml.ws.http
+javax.xml.ws.soap
+javax.xml.ws.spi
+javax.xml.ws.wsaddressing
javax.xml.xpath
org.ietf.jgss
org.omg.CORBA
@@ -163,4 +200,4 @@ org.w3c.dom.events
org.w3c.dom.ls
org.xml.sax
org.xml.sax.ext
-org.xml.sax.helpers
+org.xml.sax.helpers \ No newline at end of file
diff --git a/scripts/merge-check.sh b/scripts/merge-check.sh
new file mode 100755
index 0000000000..ef52cd44f4
--- /dev/null
+++ b/scripts/merge-check.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+SINCE=$1
+UNTIL=$2
+
+if [ "$SINCE" = "" ] || [ "$UNTIL" = "" ]
+then
+ echo "Usage: $0 <since> <until>"
+ exit 3
+fi
+
+testname="merge check for `pwd|sed "s/.*\///"`"
+echo "##teamcity[testStarted name='$testname' captureStandardOutput='true']"
+
+command="git --no-pager log --no-color $SINCE..$UNTIL"
+# TODO Why do I get whitespace in the beginning of the wc output?
+change_count=`$command --oneline|wc -l|tr -d ' '`
+
+if [ "$change_count" = "0" ]
+then
+ echo "No unmerged commits"
+else
+ command="$command --format=short"
+ message="There are $change_count commits that have not been merged from $UNTIL to $SINCE"
+ echo $message
+ echo ""
+ $command
+ details=`$command|perl -p -e 's/\n/|n/' | sed "s/['\|\[\]]/|\&/g"`
+ echo "##teamcity[testFailed name='$testname' message='$message' details='|n$details']"
+fi
+
+echo "##teamcity[testFinished name='$testname']"
diff --git a/src/com/vaadin/Application.java b/src/com/vaadin/Application.java
index 84a8df5053..086caa5509 100644
--- a/src/com/vaadin/Application.java
+++ b/src/com/vaadin/Application.java
@@ -1066,6 +1066,7 @@ public class Application implements Terminal.ErrorListener, Serializable {
* @see com.vaadin.terminal.Terminal.ErrorListener#terminalError(com.vaadin.terminal.Terminal.ErrorEvent)
*/
+ @Override
public void terminalError(Terminal.ErrorEvent event) {
final Throwable t = event.getThrowable();
if (t instanceof SocketException) {
@@ -1810,6 +1811,7 @@ public class Application implements Terminal.ErrorListener, Serializable {
this.throwable = throwable;
}
+ @Override
public Throwable getThrowable() {
return throwable;
}
@@ -2373,4 +2375,18 @@ public class Application implements Terminal.ErrorListener, Serializable {
private static final Logger getLogger() {
return Logger.getLogger(Application.class.getName());
}
+
+ /**
+ * Returns a Root with the given id.
+ * <p>
+ * This is meant for framework internal use.
+ * </p>
+ *
+ * @param rootId
+ * The root id
+ * @return The root with the given id or null if not found
+ */
+ public Root getRootById(int rootId) {
+ return roots.get(rootId);
+ }
}
diff --git a/src/com/vaadin/Vaadin.gwt.xml b/src/com/vaadin/Vaadin.gwt.xml
new file mode 100644
index 0000000000..07d7c941e6
--- /dev/null
+++ b/src/com/vaadin/Vaadin.gwt.xml
@@ -0,0 +1,85 @@
+<module>
+ <!-- This GWT module inherits all Vaadin client side functionality modules.
+ This is the module you want to inherit in your client side project to be
+ able to use com.vaadin.* classes. -->
+
+ <!-- Hint for WidgetSetBuilder not to automatically update the file -->
+ <!-- WS Compiler: manually edited -->
+
+ <inherits name="com.google.gwt.user.User" />
+
+ <inherits name="com.google.gwt.http.HTTP" />
+
+ <inherits name="com.google.gwt.json.JSON" />
+
+ <inherits name="com.vaadin.terminal.gwt.VaadinBrowserSpecificOverrides" />
+
+ <source path="terminal/gwt/client" />
+ <source path="shared" />
+
+ <!-- Use own Scheduler implementation to be able to track if commands are
+ running -->
+ <replace-with class="com.vaadin.terminal.gwt.client.VSchedulerImpl">
+ <when-type-is class="com.google.gwt.core.client.impl.SchedulerImpl" />
+ </replace-with>
+
+ <!-- Generators for serializators for classes used in communication between
+ server and client -->
+ <generate-with
+ class="com.vaadin.terminal.gwt.widgetsetutils.SerializerMapGenerator">
+ <when-type-is
+ class="com.vaadin.terminal.gwt.client.communication.SerializerMap" />
+ </generate-with>
+
+ <replace-with class="com.vaadin.terminal.gwt.client.VDebugConsole">
+ <when-type-is class="com.vaadin.terminal.gwt.client.Console" />
+ </replace-with>
+
+ <generate-with
+ class="com.vaadin.terminal.gwt.widgetsetutils.EagerWidgetMapGenerator">
+ <when-type-is class="com.vaadin.terminal.gwt.client.WidgetMap" />
+ </generate-with>
+
+ <generate-with
+ class="com.vaadin.terminal.gwt.widgetsetutils.AcceptCriteriaFactoryGenerator">
+ <when-type-is
+ class="com.vaadin.terminal.gwt.client.ui.dd.VAcceptCriterionFactory" />
+ </generate-with>
+
+ <!-- Generate client side proxies for client to server RPC interfaces -->
+ <generate-with
+ class="com.vaadin.terminal.gwt.widgetsetutils.RpcProxyGenerator">
+ <when-type-assignable
+ class="com.vaadin.shared.communication.ServerRpc" />
+ </generate-with>
+
+ <!-- Generate client side proxies for client to server RPC interfaces -->
+ <generate-with
+ class="com.vaadin.terminal.gwt.widgetsetutils.RpcProxyCreatorGenerator">
+ <when-type-assignable
+ class="com.vaadin.terminal.gwt.client.communication.RpcProxy.RpcProxyCreator" />
+ </generate-with>
+
+ <!-- Generate client side RPC manager for server to client RPC -->
+ <generate-with
+ class="com.vaadin.terminal.gwt.widgetsetutils.GeneratedRpcMethodProviderGenerator">
+ <when-type-assignable
+ class="com.vaadin.terminal.gwt.client.communication.GeneratedRpcMethodProvider" />
+ </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>
+
+ <!-- Use the new cross site linker to get a nocache.js without document.write -->
+ <add-linker name="xsiframe" />
+
+</module>
diff --git a/src/com/vaadin/annotations/JavaScript.java b/src/com/vaadin/annotations/JavaScript.java
new file mode 100644
index 0000000000..f97457c1cd
--- /dev/null
+++ b/src/com/vaadin/annotations/JavaScript.java
@@ -0,0 +1,42 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import com.vaadin.terminal.gwt.server.ClientConnector;
+
+/**
+ * If this annotation is present on a {@link ClientConnector} class, the
+ * framework ensures the referenced JavaScript files are loaded before the init
+ * method for the corresponding client-side connector is invoked.
+ * <p>
+ * Absolute URLs including protocol and host are used as is on the client-side.
+ * Relative urls are mapped to APP/CONNECTOR/[url] which are by default served
+ * from the classpath relative to the class where the annotation is defined.
+ * <p>
+ * Example: {@code @JavaScript( "http://host.com/file1.js", "file2.js"})} on
+ * the class com.example.MyConnector would load the file
+ * http://host.com/file1.js as is and file2.js from /com/example/file2.js on the
+ * server's classpath using the ClassLoader that was used to load
+ * com.example.MyConnector.
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+public @interface JavaScript {
+ /**
+ * JavaScript files to load before initializing the client-side connector.
+ *
+ * @return an array of JavaScript file urls
+ */
+ public String[] value();
+}
diff --git a/src/com/vaadin/annotations/LoadScripts.java b/src/com/vaadin/annotations/LoadScripts.java
deleted file mode 100644
index 84ac2d2fb7..0000000000
--- a/src/com/vaadin/annotations/LoadScripts.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-package com.vaadin.annotations;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Temporary hack used for ensuring external javascript libraries are included.
- * To add a javascript, add this annotation to your Root class.
- *
- * @deprecated Will be removed in favor of a more robust solution before version
- * 7.0.0
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-@Deprecated
-public @interface LoadScripts {
- public String[] value();
-
-}
diff --git a/src/com/vaadin/annotations/StyleSheet.java b/src/com/vaadin/annotations/StyleSheet.java
new file mode 100644
index 0000000000..d082cb8d30
--- /dev/null
+++ b/src/com/vaadin/annotations/StyleSheet.java
@@ -0,0 +1,38 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import com.vaadin.terminal.gwt.server.ClientConnector;
+
+/**
+ * If this annotation is present on a {@link ClientConnector} class, the
+ * framework ensures the referenced style sheets are loaded before the init
+ * method for the corresponding client-side connector is invoked.
+ * <p>
+ * Example: {@code @StyleSheet( "http://host.com/file1.css", "file2.css"})} on
+ * the class com.example.MyConnector would load the file
+ * http://host.com/file1.css as is and file2.css from /com/example/file2.css on
+ * the server's classpath using the ClassLoader that was used to load
+ * com.example.MyConnector.
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+public @interface StyleSheet {
+ /**
+ * Style sheets to load before initializing the client-side connector.
+ *
+ * @return an array of style sheet urls
+ */
+ public String[] value();
+}
diff --git a/src/com/vaadin/data/Container.java b/src/com/vaadin/data/Container.java
index f722e07741..f4c0ed9794 100644
--- a/src/com/vaadin/data/Container.java
+++ b/src/com/vaadin/data/Container.java
@@ -697,6 +697,7 @@ public interface Container extends Serializable {
* @return <code>true</code> if the operation succeeded,
* <code>false</code> if not
*/
+ @Override
public boolean removeItem(Object itemId)
throws UnsupportedOperationException;
}
diff --git a/src/com/vaadin/data/fieldgroup/DefaultFieldGroupFieldFactory.java b/src/com/vaadin/data/fieldgroup/DefaultFieldGroupFieldFactory.java
index 569f643998..be0db328f2 100644
--- a/src/com/vaadin/data/fieldgroup/DefaultFieldGroupFieldFactory.java
+++ b/src/com/vaadin/data/fieldgroup/DefaultFieldGroupFieldFactory.java
@@ -23,6 +23,7 @@ public class DefaultFieldGroupFieldFactory implements FieldGroupFieldFactory {
public static final Object CAPTION_PROPERTY_ID = "Caption";
+ @Override
public <T extends Field> T createField(Class<?> type, Class<T> fieldType) {
if (Enum.class.isAssignableFrom(type)) {
return createEnumField(type, fieldType);
diff --git a/src/com/vaadin/data/util/AbstractBeanContainer.java b/src/com/vaadin/data/util/AbstractBeanContainer.java
index 300f92ea3a..2f428d2cb6 100644
--- a/src/com/vaadin/data/util/AbstractBeanContainer.java
+++ b/src/com/vaadin/data/util/AbstractBeanContainer.java
@@ -96,6 +96,7 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
this.propertyId = propertyId;
}
+ @Override
@SuppressWarnings("unchecked")
public IDTYPE getIdForBean(BEANTYPE bean)
throws IllegalArgumentException {
@@ -163,6 +164,7 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
*
* @see com.vaadin.data.Container#getType(java.lang.Object)
*/
+ @Override
public Class<?> getType(Object propertyId) {
return model.get(propertyId).getPropertyType();
}
@@ -195,6 +197,7 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
*
* @see com.vaadin.data.Container#getContainerPropertyIds()
*/
+ @Override
public Collection<String> getContainerPropertyIds() {
return model.keySet();
}
@@ -258,6 +261,7 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
* @see com.vaadin.data.Container#getContainerProperty(java.lang.Object,
* java.lang.Object)
*/
+ @Override
public Property<?> getContainerProperty(Object itemId, Object propertyId) {
Item item = getItem(itemId);
if (item == null) {
@@ -300,6 +304,7 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
/**
* Re-filter the container when one of the monitored properties changes.
*/
+ @Override
public void valueChange(ValueChangeEvent event) {
// if a property that is used in a filter is changed, refresh filtering
filterAll();
@@ -312,6 +317,7 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
* com.vaadin.data.Container.Filterable#addContainerFilter(java.lang.Object,
* java.lang.String, boolean, boolean)
*/
+ @Override
public void addContainerFilter(Object propertyId, String filterString,
boolean ignoreCase, boolean onlyMatchPrefix) {
try {
@@ -328,6 +334,7 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
*
* @see com.vaadin.data.Container.Filterable#removeAllContainerFilters()
*/
+ @Override
public void removeAllContainerFilters() {
if (!getFilters().isEmpty()) {
for (Item item : itemIdToItem.values()) {
@@ -344,6 +351,7 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
* com.vaadin.data.Container.Filterable#removeContainerFilters(java.lang
* .Object)
*/
+ @Override
public void removeContainerFilters(Object propertyId) {
Collection<Filter> removedFilters = super.removeFilters(propertyId);
if (!removedFilters.isEmpty()) {
@@ -354,11 +362,13 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
}
}
+ @Override
public void addContainerFilter(Filter filter)
throws UnsupportedFilterException {
addFilter(filter);
}
+ @Override
public void removeContainerFilter(Filter filter) {
removeFilter(filter);
}
@@ -416,6 +426,7 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
*
* @see com.vaadin.data.Container.Sortable#getSortableContainerPropertyIds()
*/
+ @Override
public Collection<?> getSortableContainerPropertyIds() {
return getSortablePropertyIds();
}
@@ -426,6 +437,7 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
* @see com.vaadin.data.Container.Sortable#sort(java.lang.Object[],
* boolean[])
*/
+ @Override
public void sort(Object[] propertyId, boolean[] ascending) {
sortContainer(propertyId, ascending);
}
diff --git a/src/com/vaadin/data/util/AbstractContainer.java b/src/com/vaadin/data/util/AbstractContainer.java
index 58a3a8687a..7d96c2d757 100644
--- a/src/com/vaadin/data/util/AbstractContainer.java
+++ b/src/com/vaadin/data/util/AbstractContainer.java
@@ -52,6 +52,7 @@ public abstract class AbstractContainer implements Container {
super(source);
}
+ @Override
public Container getContainer() {
return (Container) getSource();
}
@@ -72,6 +73,7 @@ public abstract class AbstractContainer implements Container {
super(source);
}
+ @Override
public Container getContainer() {
return (Container) getSource();
}
diff --git a/src/com/vaadin/data/util/AbstractInMemoryContainer.java b/src/com/vaadin/data/util/AbstractInMemoryContainer.java
index 795aabb419..b7832756f2 100644
--- a/src/com/vaadin/data/util/AbstractInMemoryContainer.java
+++ b/src/com/vaadin/data/util/AbstractInMemoryContainer.java
@@ -125,6 +125,7 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
// Container interface methods with more specific return class
// default implementation, can be overridden
+ @Override
public ITEMCLASS getItem(Object itemId) {
if (containsId(itemId)) {
return getUnfilteredItem(itemId);
@@ -152,10 +153,12 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
// Container interface method implementations
+ @Override
public int size() {
return getVisibleItemIds().size();
}
+ @Override
public boolean containsId(Object itemId) {
// only look at visible items after filtering
if (itemId == null) {
@@ -165,12 +168,14 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
}
}
+ @Override
public List<?> getItemIds() {
return Collections.unmodifiableList(getVisibleItemIds());
}
// Container.Ordered
+ @Override
public ITEMIDTYPE nextItemId(Object itemId) {
int index = indexOfId(itemId);
if (index >= 0 && index < size() - 1) {
@@ -181,6 +186,7 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
}
}
+ @Override
public ITEMIDTYPE prevItemId(Object itemId) {
int index = indexOfId(itemId);
if (index > 0) {
@@ -191,6 +197,7 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
}
}
+ @Override
public ITEMIDTYPE firstItemId() {
if (size() > 0) {
return getIdByIndex(0);
@@ -199,6 +206,7 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
}
}
+ @Override
public ITEMIDTYPE lastItemId() {
if (size() > 0) {
return getIdByIndex(size() - 1);
@@ -207,6 +215,7 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
}
}
+ @Override
public boolean isFirstId(Object itemId) {
if (itemId == null) {
return false;
@@ -214,6 +223,7 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
return itemId.equals(firstItemId());
}
+ @Override
public boolean isLastId(Object itemId) {
if (itemId == null) {
return false;
@@ -223,66 +233,78 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
// Container.Indexed
+ @Override
public ITEMIDTYPE getIdByIndex(int index) {
return getVisibleItemIds().get(index);
}
+ @Override
public int indexOfId(Object itemId) {
return getVisibleItemIds().indexOf(itemId);
}
// methods that are unsupported by default, override to support
+ @Override
public Object addItemAt(int index) throws UnsupportedOperationException {
throw new UnsupportedOperationException(
"Adding items not supported. Override the relevant addItem*() methods if required as specified in AbstractInMemoryContainer javadoc.");
}
+ @Override
public Item addItemAt(int index, Object newItemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException(
"Adding items not supported. Override the relevant addItem*() methods if required as specified in AbstractInMemoryContainer javadoc.");
}
+ @Override
public Object addItemAfter(Object previousItemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException(
"Adding items not supported. Override the relevant addItem*() methods if required as specified in AbstractInMemoryContainer javadoc.");
}
+ @Override
public Item addItemAfter(Object previousItemId, Object newItemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException(
"Adding items not supported. Override the relevant addItem*() methods if required as specified in AbstractInMemoryContainer javadoc.");
}
+ @Override
public Item addItem(Object itemId) throws UnsupportedOperationException {
throw new UnsupportedOperationException(
"Adding items not supported. Override the relevant addItem*() methods if required as specified in AbstractInMemoryContainer javadoc.");
}
+ @Override
public Object addItem() throws UnsupportedOperationException {
throw new UnsupportedOperationException(
"Adding items not supported. Override the relevant addItem*() methods if required as specified in AbstractInMemoryContainer javadoc.");
}
+ @Override
public boolean removeItem(Object itemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException(
"Removing items not supported. Override the removeItem() method if required as specified in AbstractInMemoryContainer javadoc.");
}
+ @Override
public boolean removeAllItems() throws UnsupportedOperationException {
throw new UnsupportedOperationException(
"Removing items not supported. Override the removeAllItems() method if required as specified in AbstractInMemoryContainer javadoc.");
}
+ @Override
public boolean addContainerProperty(Object propertyId, Class<?> type,
Object defaultValue) throws UnsupportedOperationException {
throw new UnsupportedOperationException(
"Adding container properties not supported. Override the addContainerProperty() method if required.");
}
+ @Override
public boolean removeContainerProperty(Object propertyId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException(
diff --git a/src/com/vaadin/data/util/AbstractProperty.java b/src/com/vaadin/data/util/AbstractProperty.java
index 3b6db3807e..373a8dfd58 100644
--- a/src/com/vaadin/data/util/AbstractProperty.java
+++ b/src/com/vaadin/data/util/AbstractProperty.java
@@ -42,10 +42,12 @@ public abstract class AbstractProperty<T> implements Property<T>,
* Override for additional restrictions on what is considered a read-only
* property.
*/
+ @Override
public boolean isReadOnly() {
return readOnly;
}
+ @Override
public void setReadOnly(boolean newStatus) {
boolean oldStatus = isReadOnly();
readOnly = newStatus;
@@ -93,6 +95,7 @@ public abstract class AbstractProperty<T> implements Property<T>,
*
* @return source Property of the event.
*/
+ @Override
public Property getProperty() {
return (Property) getSource();
}
@@ -105,6 +108,7 @@ public abstract class AbstractProperty<T> implements Property<T>,
* @param listener
* the new Listener to be registered.
*/
+ @Override
public void addListener(Property.ReadOnlyStatusChangeListener listener) {
if (readOnlyStatusChangeListeners == null) {
readOnlyStatusChangeListeners = new LinkedList<ReadOnlyStatusChangeListener>();
@@ -118,6 +122,7 @@ public abstract class AbstractProperty<T> implements Property<T>,
* @param listener
* the listener to be removed.
*/
+ @Override
public void removeListener(Property.ReadOnlyStatusChangeListener listener) {
if (readOnlyStatusChangeListeners != null) {
readOnlyStatusChangeListeners.remove(listener);
@@ -161,12 +166,14 @@ public abstract class AbstractProperty<T> implements Property<T>,
*
* @return source Property of the event.
*/
+ @Override
public Property getProperty() {
return (Property) getSource();
}
}
+ @Override
public void addListener(ValueChangeListener listener) {
if (valueChangeListeners == null) {
valueChangeListeners = new LinkedList<ValueChangeListener>();
@@ -175,6 +182,7 @@ public abstract class AbstractProperty<T> implements Property<T>,
}
+ @Override
public void removeListener(ValueChangeListener listener) {
if (valueChangeListeners != null) {
valueChangeListeners.remove(listener);
diff --git a/src/com/vaadin/data/util/BeanItemContainer.java b/src/com/vaadin/data/util/BeanItemContainer.java
index 245a623d5d..dc4deaebdc 100644
--- a/src/com/vaadin/data/util/BeanItemContainer.java
+++ b/src/com/vaadin/data/util/BeanItemContainer.java
@@ -59,6 +59,7 @@ public class BeanItemContainer<BEANTYPE> extends
private static class IdentityBeanIdResolver<BT> implements
BeanIdResolver<BT, BT> {
+ @Override
public BT getIdForBean(BT bean) {
return bean;
}
diff --git a/src/com/vaadin/data/util/ContainerHierarchicalWrapper.java b/src/com/vaadin/data/util/ContainerHierarchicalWrapper.java
index 9159fa358b..717ce834cf 100644
--- a/src/com/vaadin/data/util/ContainerHierarchicalWrapper.java
+++ b/src/com/vaadin/data/util/ContainerHierarchicalWrapper.java
@@ -71,6 +71,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
this.itemIds = itemIds;
}
+ @Override
public int compare(Object o1, Object o2) {
if (o1.equals(o2)) {
return 0;
@@ -233,6 +234,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* Can the specified Item have any children? Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public boolean areChildrenAllowed(Object itemId) {
// If the wrapped container implements the method directly, use it
@@ -253,6 +255,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Collection<?> getChildren(Object itemId) {
// If the wrapped container implements the method directly, use it
@@ -272,6 +275,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Object getParent(Object itemId) {
// If the wrapped container implements the method directly, use it
@@ -287,6 +291,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public boolean hasChildren(Object itemId) {
// If the wrapped container implements the method directly, use it
@@ -303,6 +308,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public boolean isRoot(Object itemId) {
// If the wrapped container implements the method directly, use it
@@ -322,6 +328,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Collection<?> rootItemIds() {
// If the wrapped container implements the method directly, use it
@@ -351,6 +358,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* @return <code>true</code> if the operation succeeded, <code>false</code>
* if not
*/
+ @Override
public boolean setChildrenAllowed(Object itemId, boolean childrenAllowed) {
// If the wrapped container implements the method directly, use it
@@ -391,6 +399,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* @return <code>true</code> if the operation succeeded, <code>false</code>
* if not
*/
+ @Override
public boolean setParent(Object itemId, Object newParentId) {
// If the wrapped container implements the method directly, use it
@@ -483,6 +492,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* @throws UnsupportedOperationException
* if the addItem is not supported.
*/
+ @Override
public Object addItem() throws UnsupportedOperationException {
final Object id = container.addItem();
@@ -502,6 +512,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* @throws UnsupportedOperationException
* if the addItem is not supported.
*/
+ @Override
public Item addItem(Object itemId) throws UnsupportedOperationException {
// Null ids are not accepted
@@ -524,6 +535,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* @throws UnsupportedOperationException
* if the removeAllItems is not supported.
*/
+ @Override
public boolean removeAllItems() throws UnsupportedOperationException {
final boolean success = container.removeAllItems();
@@ -548,6 +560,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* @throws UnsupportedOperationException
* if the removeItem is not supported.
*/
+ @Override
public boolean removeItem(Object itemId)
throws UnsupportedOperationException {
@@ -586,6 +599,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* @throws UnsupportedOperationException
* if the addContainerProperty is not supported.
*/
+ @Override
public boolean addContainerProperty(Object propertyId, Class<?> type,
Object defaultValue) throws UnsupportedOperationException {
@@ -606,6 +620,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* @throws UnsupportedOperationException
* if the removeContainerProperty is not supported.
*/
+ @Override
public boolean removeContainerProperty(Object propertyId)
throws UnsupportedOperationException {
return container.removeContainerProperty(propertyId);
@@ -616,6 +631,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public boolean containsId(Object itemId) {
return container.containsId(itemId);
}
@@ -624,6 +640,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* Gets the specified Item from the container. Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public Item getItem(Object itemId) {
return container.getItem(itemId);
}
@@ -633,6 +650,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Collection<?> getItemIds() {
return container.getItemIds();
}
@@ -642,6 +660,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* Container Don't add a JavaDoc comment here, we use the default
* documentation from implemented interface.
*/
+ @Override
public Property<?> getContainerProperty(Object itemId, Object propertyId) {
return container.getContainerProperty(itemId, propertyId);
}
@@ -651,6 +670,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Collection<?> getContainerPropertyIds() {
return container.getContainerPropertyIds();
}
@@ -660,6 +680,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* Don't add a JavaDoc comment here, we use the default documentation from
* implemented interface.
*/
+ @Override
public Class<?> getType(Object propertyId) {
return container.getType(propertyId);
}
@@ -668,6 +689,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* Gets the number of Items in the Container. Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public int size() {
return container.size();
}
@@ -677,6 +699,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public void addListener(Container.ItemSetChangeListener listener) {
if (container instanceof Container.ItemSetChangeNotifier) {
((Container.ItemSetChangeNotifier) container)
@@ -689,6 +712,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public void removeListener(Container.ItemSetChangeListener listener) {
if (container instanceof Container.ItemSetChangeNotifier) {
((Container.ItemSetChangeNotifier) container)
@@ -701,6 +725,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* add a JavaDoc comment here, we use the default documentation from
* implemented interface.
*/
+ @Override
public void addListener(Container.PropertySetChangeListener listener) {
if (container instanceof Container.PropertySetChangeNotifier) {
((Container.PropertySetChangeNotifier) container)
@@ -713,6 +738,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public void removeListener(Container.PropertySetChangeListener listener) {
if (container instanceof Container.PropertySetChangeNotifier) {
((Container.PropertySetChangeNotifier) container)
@@ -736,6 +762,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
listener = realListener;
}
+ @Override
public void containerItemSetChange(ItemSetChangeEvent event) {
updateHierarchicalWrapper();
((Container.ItemSetChangeListener) listener)
@@ -743,6 +770,7 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
}
+ @Override
public void containerPropertySetChange(PropertySetChangeEvent event) {
updateHierarchicalWrapper();
((Container.PropertySetChangeListener) listener)
diff --git a/src/com/vaadin/data/util/ContainerOrderedWrapper.java b/src/com/vaadin/data/util/ContainerOrderedWrapper.java
index f333edecf4..d3d6f88d3e 100644
--- a/src/com/vaadin/data/util/ContainerOrderedWrapper.java
+++ b/src/com/vaadin/data/util/ContainerOrderedWrapper.java
@@ -221,6 +221,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Object firstItemId() {
if (ordered) {
return ((Container.Ordered) container).firstItemId();
@@ -233,6 +234,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public boolean isFirstId(Object itemId) {
if (ordered) {
return ((Container.Ordered) container).isFirstId(itemId);
@@ -245,6 +247,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public boolean isLastId(Object itemId) {
if (ordered) {
return ((Container.Ordered) container).isLastId(itemId);
@@ -257,6 +260,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Object lastItemId() {
if (ordered) {
return ((Container.Ordered) container).lastItemId();
@@ -269,6 +273,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Object nextItemId(Object itemId) {
if (ordered) {
return ((Container.Ordered) container).nextItemId(itemId);
@@ -284,6 +289,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Object prevItemId(Object itemId) {
if (ordered) {
return ((Container.Ordered) container).prevItemId(itemId);
@@ -306,6 +312,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* @return <code>true</code> if the operation succeeded, <code>false</code>
* if not
*/
+ @Override
public boolean addContainerProperty(Object propertyId, Class<?> type,
Object defaultValue) throws UnsupportedOperationException {
@@ -321,6 +328,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* @throws UnsupportedOperationException
* if the addItem is not supported.
*/
+ @Override
public Object addItem() throws UnsupportedOperationException {
final Object id = container.addItem();
@@ -340,6 +348,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* @throws UnsupportedOperationException
* if the addItem is not supported.
*/
+ @Override
public Item addItem(Object itemId) throws UnsupportedOperationException {
final Item item = container.addItem(itemId);
if (!ordered && item != null) {
@@ -356,6 +365,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* @throws UnsupportedOperationException
* if the removeAllItems is not supported.
*/
+ @Override
public boolean removeAllItems() throws UnsupportedOperationException {
final boolean success = container.removeAllItems();
if (!ordered && success) {
@@ -377,6 +387,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* @throws UnsupportedOperationException
* if the removeItem is not supported.
*/
+ @Override
public boolean removeItem(Object itemId)
throws UnsupportedOperationException {
@@ -401,6 +412,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* @throws UnsupportedOperationException
* if the removeContainerProperty is not supported.
*/
+ @Override
public boolean removeContainerProperty(Object propertyId)
throws UnsupportedOperationException {
return container.removeContainerProperty(propertyId);
@@ -411,6 +423,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public boolean containsId(Object itemId) {
return container.containsId(itemId);
}
@@ -419,6 +432,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* Gets the specified Item from the container. Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public Item getItem(Object itemId) {
return container.getItem(itemId);
}
@@ -428,6 +442,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Collection<?> getItemIds() {
return container.getItemIds();
}
@@ -437,6 +452,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* Container Don't add a JavaDoc comment here, we use the default
* documentation from implemented interface.
*/
+ @Override
public Property<?> getContainerProperty(Object itemId, Object propertyId) {
return container.getContainerProperty(itemId, propertyId);
}
@@ -446,6 +462,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Collection<?> getContainerPropertyIds() {
return container.getContainerPropertyIds();
}
@@ -455,6 +472,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* Don't add a JavaDoc comment here, we use the default documentation from
* implemented interface.
*/
+ @Override
public Class<?> getType(Object propertyId) {
return container.getType(propertyId);
}
@@ -463,6 +481,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* Gets the number of Items in the Container. Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public int size() {
int newSize = container.size();
if (lastKnownSize != -1 && newSize != lastKnownSize
@@ -480,6 +499,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public void addListener(Container.ItemSetChangeListener listener) {
if (container instanceof Container.ItemSetChangeNotifier) {
((Container.ItemSetChangeNotifier) container)
@@ -492,6 +512,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public void removeListener(Container.ItemSetChangeListener listener) {
if (container instanceof Container.ItemSetChangeNotifier) {
((Container.ItemSetChangeNotifier) container)
@@ -504,6 +525,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* add a JavaDoc comment here, we use the default documentation from
* implemented interface.
*/
+ @Override
public void addListener(Container.PropertySetChangeListener listener) {
if (container instanceof Container.PropertySetChangeNotifier) {
((Container.PropertySetChangeNotifier) container)
@@ -516,6 +538,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public void removeListener(Container.PropertySetChangeListener listener) {
if (container instanceof Container.PropertySetChangeNotifier) {
((Container.PropertySetChangeNotifier) container)
@@ -529,6 +552,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
* @see com.vaadin.data.Container.Ordered#addItemAfter(java.lang.Object,
* java.lang.Object)
*/
+ @Override
public Item addItemAfter(Object previousItemId, Object newItemId)
throws UnsupportedOperationException {
@@ -553,6 +577,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
*
* @see com.vaadin.data.Container.Ordered#addItemAfter(java.lang.Object)
*/
+ @Override
public Object addItemAfter(Object previousItemId)
throws UnsupportedOperationException {
@@ -588,6 +613,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
listener = realListener;
}
+ @Override
public void containerItemSetChange(ItemSetChangeEvent event) {
updateOrderWrapper();
((Container.ItemSetChangeListener) listener)
@@ -595,6 +621,7 @@ public class ContainerOrderedWrapper implements Container.Ordered,
}
+ @Override
public void containerPropertySetChange(PropertySetChangeEvent event) {
updateOrderWrapper();
((Container.PropertySetChangeListener) listener)
diff --git a/src/com/vaadin/data/util/DefaultItemSorter.java b/src/com/vaadin/data/util/DefaultItemSorter.java
index 47db5d7507..81b15ebd4f 100644
--- a/src/com/vaadin/data/util/DefaultItemSorter.java
+++ b/src/com/vaadin/data/util/DefaultItemSorter.java
@@ -61,6 +61,7 @@ public class DefaultItemSorter implements ItemSorter {
* @see com.vaadin.data.util.ItemSorter#compare(java.lang.Object,
* java.lang.Object)
*/
+ @Override
public int compare(Object o1, Object o2) {
Item item1 = container.getItem(o1);
Item item2 = container.getItem(o2);
@@ -147,6 +148,7 @@ public class DefaultItemSorter implements ItemSorter {
* com.vaadin.data.util.ItemSorter#setSortProperties(com.vaadin.data.Container
* .Sortable, java.lang.Object[], boolean[])
*/
+ @Override
public void setSortProperties(Container.Sortable container,
Object[] propertyId, boolean[] ascending) {
this.container = container;
@@ -181,6 +183,7 @@ public class DefaultItemSorter implements ItemSorter {
public static class DefaultPropertyValueComparator implements
Comparator<Object>, Serializable {
+ @Override
@SuppressWarnings("unchecked")
public int compare(Object o1, Object o2) {
int r = 0;
diff --git a/src/com/vaadin/data/util/FilesystemContainer.java b/src/com/vaadin/data/util/FilesystemContainer.java
index 7100286712..cdfeb57e14 100644
--- a/src/com/vaadin/data/util/FilesystemContainer.java
+++ b/src/com/vaadin/data/util/FilesystemContainer.java
@@ -187,6 +187,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* @return <code>true</code> if the specified Item is a directory,
* <code>false</code> otherwise.
*/
+ @Override
public boolean areChildrenAllowed(Object itemId) {
return itemId instanceof File && ((File) itemId).canRead()
&& ((File) itemId).isDirectory();
@@ -197,6 +198,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* add a JavaDoc comment here, we use the default documentation from
* implemented interface.
*/
+ @Override
public Collection<File> getChildren(Object itemId) {
if (!(itemId instanceof File)) {
@@ -223,6 +225,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* Gets the parent item of the specified Item. Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public Object getParent(Object itemId) {
if (!(itemId instanceof File)) {
@@ -235,6 +238,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* Tests if the specified Item has any children. Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public boolean hasChildren(Object itemId) {
if (!(itemId instanceof File)) {
@@ -254,6 +258,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public boolean isRoot(Object itemId) {
if (!(itemId instanceof File)) {
@@ -272,6 +277,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Collection<File> rootItemIds() {
File[] f;
@@ -311,6 +317,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* @throws UnsupportedOperationException
* if the setChildrenAllowed is not supported.
*/
+ @Override
public boolean setChildrenAllowed(Object itemId, boolean areChildrenAllowed)
throws UnsupportedOperationException {
@@ -332,6 +339,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* @throws UnsupportedOperationException
* if the setParent is not supported.
*/
+ @Override
public boolean setParent(Object itemId, Object newParentId)
throws UnsupportedOperationException {
@@ -343,6 +351,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public boolean containsId(Object itemId) {
if (!(itemId instanceof File)) {
@@ -371,6 +380,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* Gets the specified Item from the filesystem. Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public Item getItem(Object itemId) {
if (!(itemId instanceof File)) {
@@ -416,6 +426,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* Gets the IDs of Items in the filesystem. Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public Collection<File> getItemIds() {
if (recursive) {
@@ -459,6 +470,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* the property's ID.
* @return the requested property's value, or <code>null</code>
*/
+ @Override
public Property<?> getContainerProperty(Object itemId, Object propertyId) {
if (!(itemId instanceof File)) {
@@ -493,6 +505,7 @@ public class FilesystemContainer implements Container.Hierarchical {
*
* @return Unmodifiable collection containing all available file properties.
*/
+ @Override
public Collection<String> getContainerPropertyIds() {
return FILE_PROPERTIES;
}
@@ -506,6 +519,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* the ID of the property whose type is requested.
* @return data type of the requested property, or <code>null</code>
*/
+ @Override
public Class<?> getType(Object propertyId) {
if (propertyId.equals(PROPERTY_NAME)) {
@@ -556,6 +570,7 @@ public class FilesystemContainer implements Container.Hierarchical {
*
* @return Number of Items in the container.
*/
+ @Override
public int size() {
if (recursive) {
@@ -609,6 +624,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* Gets the specified property of this file. Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public Property<?> getItemProperty(Object id) {
return getContainerProperty(file, id);
}
@@ -618,6 +634,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* JavaDoc comment here, we use the default documentation from
* implemented interface.
*/
+ @Override
public Collection<String> getItemPropertyIds() {
return getContainerPropertyIds();
}
@@ -716,6 +733,7 @@ public class FilesystemContainer implements Container.Hierarchical {
*
* @see com.vaadin.data.Item#addItemProperty(Object, Property)
*/
+ @Override
public boolean addItemProperty(Object id, Property property)
throws UnsupportedOperationException {
throw new UnsupportedOperationException("Filesystem container "
@@ -727,6 +745,7 @@ public class FilesystemContainer implements Container.Hierarchical {
*
* @see com.vaadin.data.Item#removeItemProperty(Object)
*/
+ @Override
public boolean removeItemProperty(Object id)
throws UnsupportedOperationException {
throw new UnsupportedOperationException(
@@ -763,6 +782,7 @@ public class FilesystemContainer implements Container.Hierarchical {
*
* @see java.io.FilenameFilter#accept(File, String)
*/
+ @Override
public boolean accept(File dir, String name) {
if (name.endsWith(filter)) {
return true;
@@ -832,6 +852,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* @see com.vaadin.data.Container#addContainerProperty(java.lang.Object,
* java.lang.Class, java.lang.Object)
*/
+ @Override
public boolean addContainerProperty(Object propertyId, Class<?> type,
Object defaultValue) throws UnsupportedOperationException {
throw new UnsupportedOperationException(
@@ -843,6 +864,7 @@ public class FilesystemContainer implements Container.Hierarchical {
*
* @see com.vaadin.data.Container#addItem()
*/
+ @Override
public Object addItem() throws UnsupportedOperationException {
throw new UnsupportedOperationException(
"File system container does not support this operation");
@@ -853,6 +875,7 @@ public class FilesystemContainer implements Container.Hierarchical {
*
* @see com.vaadin.data.Container#addItem(java.lang.Object)
*/
+ @Override
public Item addItem(Object itemId) throws UnsupportedOperationException {
throw new UnsupportedOperationException(
"File system container does not support this operation");
@@ -863,6 +886,7 @@ public class FilesystemContainer implements Container.Hierarchical {
*
* @see com.vaadin.data.Container#removeAllItems()
*/
+ @Override
public boolean removeAllItems() throws UnsupportedOperationException {
throw new UnsupportedOperationException(
"File system container does not support this operation");
@@ -873,6 +897,7 @@ public class FilesystemContainer implements Container.Hierarchical {
*
* @see com.vaadin.data.Container#removeItem(java.lang.Object)
*/
+ @Override
public boolean removeItem(Object itemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException(
@@ -884,6 +909,7 @@ public class FilesystemContainer implements Container.Hierarchical {
*
* @see com.vaadin.data.Container#removeContainerProperty(java.lang.Object )
*/
+ @Override
public boolean removeContainerProperty(Object propertyId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException(
diff --git a/src/com/vaadin/data/util/HierarchicalContainer.java b/src/com/vaadin/data/util/HierarchicalContainer.java
index 1291c8fcc4..06ab77c0e7 100644
--- a/src/com/vaadin/data/util/HierarchicalContainer.java
+++ b/src/com/vaadin/data/util/HierarchicalContainer.java
@@ -77,6 +77,7 @@ public class HierarchicalContainer extends IndexedContainer implements
* Can the specified Item have any children? Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public boolean areChildrenAllowed(Object itemId) {
if (noChildrenAllowed.contains(itemId)) {
return false;
@@ -89,6 +90,7 @@ public class HierarchicalContainer extends IndexedContainer implements
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Collection<?> getChildren(Object itemId) {
LinkedList<Object> c;
@@ -109,6 +111,7 @@ public class HierarchicalContainer extends IndexedContainer implements
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Object getParent(Object itemId) {
if (filteredParent != null) {
return filteredParent.get(itemId);
@@ -121,6 +124,7 @@ public class HierarchicalContainer extends IndexedContainer implements
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public boolean hasChildren(Object itemId) {
if (filteredChildren != null) {
return filteredChildren.containsKey(itemId);
@@ -134,6 +138,7 @@ public class HierarchicalContainer extends IndexedContainer implements
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public boolean isRoot(Object itemId) {
// If the container is filtered the itemId must be among filteredRoots
// to be a root.
@@ -156,6 +161,7 @@ public class HierarchicalContainer extends IndexedContainer implements
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public Collection<?> rootItemIds() {
if (filteredRoots != null) {
return Collections.unmodifiableCollection(filteredRoots);
@@ -183,6 +189,7 @@ public class HierarchicalContainer extends IndexedContainer implements
* @return <code>true</code> if the operation succeeded, <code>false</code>
* if not
*/
+ @Override
public boolean setChildrenAllowed(Object itemId, boolean childrenAllowed) {
// Checks that the item is in the container
@@ -217,6 +224,7 @@ public class HierarchicalContainer extends IndexedContainer implements
* @return <code>true</code> if the operation succeeded, <code>false</code>
* if not
*/
+ @Override
public boolean setParent(Object itemId, Object newParentId) {
// Checks that the item is in the container
diff --git a/src/com/vaadin/data/util/HierarchicalContainerOrderedWrapper.java b/src/com/vaadin/data/util/HierarchicalContainerOrderedWrapper.java
index b7eac3e378..172dc0dd4f 100644
--- a/src/com/vaadin/data/util/HierarchicalContainerOrderedWrapper.java
+++ b/src/com/vaadin/data/util/HierarchicalContainerOrderedWrapper.java
@@ -25,35 +25,43 @@ public class HierarchicalContainerOrderedWrapper extends
hierarchical = toBeWrapped;
}
+ @Override
public boolean areChildrenAllowed(Object itemId) {
return hierarchical.areChildrenAllowed(itemId);
}
+ @Override
public Collection<?> getChildren(Object itemId) {
return hierarchical.getChildren(itemId);
}
+ @Override
public Object getParent(Object itemId) {
return hierarchical.getParent(itemId);
}
+ @Override
public boolean hasChildren(Object itemId) {
return hierarchical.hasChildren(itemId);
}
+ @Override
public boolean isRoot(Object itemId) {
return hierarchical.isRoot(itemId);
}
+ @Override
public Collection<?> rootItemIds() {
return hierarchical.rootItemIds();
}
+ @Override
public boolean setChildrenAllowed(Object itemId, boolean areChildrenAllowed)
throws UnsupportedOperationException {
return hierarchical.setChildrenAllowed(itemId, areChildrenAllowed);
}
+ @Override
public boolean setParent(Object itemId, Object newParentId)
throws UnsupportedOperationException {
return hierarchical.setParent(itemId, newParentId);
diff --git a/src/com/vaadin/data/util/IndexedContainer.java b/src/com/vaadin/data/util/IndexedContainer.java
index bcaa5eda42..b95b2c4de8 100644
--- a/src/com/vaadin/data/util/IndexedContainer.java
+++ b/src/com/vaadin/data/util/IndexedContainer.java
@@ -128,6 +128,7 @@ public class IndexedContainer extends
*
* @see com.vaadin.data.Container#getContainerPropertyIds()
*/
+ @Override
public Collection<?> getContainerPropertyIds() {
return Collections.unmodifiableCollection(propertyIds);
}
@@ -139,6 +140,7 @@ public class IndexedContainer extends
* the ID of the Property.
* @return Type of the requested Property
*/
+ @Override
public Class<?> getType(Object propertyId) {
return types.get(propertyId);
}
@@ -149,6 +151,7 @@ public class IndexedContainer extends
* @see com.vaadin.data.Container#getContainerProperty(java.lang.Object,
* java.lang.Object)
*/
+ @Override
public Property<?> getContainerProperty(Object itemId, Object propertyId) {
if (!containsId(itemId)) {
return null;
@@ -466,6 +469,7 @@ public class IndexedContainer extends
*
* @see com.vaadin.data.Property.ValueChangeEvent#getProperty()
*/
+ @Override
public Property getProperty() {
return (Property) getSource();
}
@@ -488,6 +492,7 @@ public class IndexedContainer extends
* @see com.vaadin.data.Property.ValueChangeNotifier#addListener(com.
* vaadin.data.Property.ValueChangeListener)
*/
+ @Override
public void addListener(Property.ValueChangeListener listener) {
if (propertyValueChangeListeners == null) {
propertyValueChangeListeners = new LinkedList<Property.ValueChangeListener>();
@@ -501,6 +506,7 @@ public class IndexedContainer extends
* @see com.vaadin.data.Property.ValueChangeNotifier#removeListener(com
* .vaadin.data.Property.ValueChangeListener)
*/
+ @Override
public void removeListener(Property.ValueChangeListener listener) {
if (propertyValueChangeListeners != null) {
propertyValueChangeListeners.remove(listener);
@@ -679,10 +685,12 @@ public class IndexedContainer extends
*
* @see com.vaadin.data.Item#getItemProperty(java.lang.Object)
*/
+ @Override
public Property<?> getItemProperty(Object id) {
return new IndexedContainerProperty(itemId, id);
}
+ @Override
public Collection<?> getItemPropertyIds() {
return Collections.unmodifiableCollection(propertyIds);
}
@@ -753,6 +761,7 @@ public class IndexedContainer extends
*
* @see com.vaadin.data.Item#addProperty(Object, Property)
*/
+ @Override
public boolean addItemProperty(Object id, Property property)
throws UnsupportedOperationException {
throw new UnsupportedOperationException("Indexed container item "
@@ -766,6 +775,7 @@ public class IndexedContainer extends
*
* @see com.vaadin.data.Item#removeProperty(Object)
*/
+ @Override
public boolean removeItemProperty(Object id)
throws UnsupportedOperationException {
throw new UnsupportedOperationException(
@@ -824,6 +834,7 @@ public class IndexedContainer extends
*
* @see com.vaadin.data.Property#getType()
*/
+ @Override
public Class<?> getType() {
return types.get(propertyId);
}
@@ -833,6 +844,7 @@ public class IndexedContainer extends
*
* @see com.vaadin.data.Property#getValue()
*/
+ @Override
public Object getValue() {
return items.get(itemId).get(propertyId);
}
@@ -842,6 +854,7 @@ public class IndexedContainer extends
*
* @see com.vaadin.data.Property#isReadOnly()
*/
+ @Override
public boolean isReadOnly() {
return readOnlyProperties.contains(this);
}
@@ -851,6 +864,7 @@ public class IndexedContainer extends
*
* @see com.vaadin.data.Property#setReadOnly(boolean)
*/
+ @Override
public void setReadOnly(boolean newStatus) {
if (newStatus) {
readOnlyProperties.add(this);
@@ -864,6 +878,7 @@ public class IndexedContainer extends
*
* @see com.vaadin.data.Property#setValue(java.lang.Object)
*/
+ @Override
public void setValue(Object newValue) throws Property.ReadOnlyException {
// Gets the Property set
final Map<Object, Object> propertySet = items.get(itemId);
@@ -946,6 +961,7 @@ public class IndexedContainer extends
* @see com.vaadin.data.Property.ValueChangeNotifier#addListener(
* com.vaadin.data.Property.ValueChangeListener)
*/
+ @Override
public void addListener(Property.ValueChangeListener listener) {
addSinglePropertyChangeListener(propertyId, itemId, listener);
}
@@ -956,6 +972,7 @@ public class IndexedContainer extends
* @see com.vaadin.data.Property.ValueChangeNotifier#removeListener
* (com.vaadin.data.Property.ValueChangeListener)
*/
+ @Override
public void removeListener(Property.ValueChangeListener listener) {
removeSinglePropertyChangeListener(propertyId, itemId, listener);
}
@@ -972,6 +989,7 @@ public class IndexedContainer extends
* @see com.vaadin.data.Container.Sortable#sort(java.lang.Object[],
* boolean[])
*/
+ @Override
public void sort(Object[] propertyId, boolean[] ascending) {
sortContainer(propertyId, ascending);
}
@@ -982,6 +1000,7 @@ public class IndexedContainer extends
* @see com.vaadin.data.Container.Sortable#getSortableContainerPropertyIds
* ()
*/
+ @Override
public Collection<?> getSortableContainerPropertyIds() {
return getSortablePropertyIds();
}
@@ -1054,6 +1073,7 @@ public class IndexedContainer extends
return nc;
}
+ @Override
public void addContainerFilter(Object propertyId, String filterString,
boolean ignoreCase, boolean onlyMatchPrefix) {
try {
@@ -1065,19 +1085,23 @@ public class IndexedContainer extends
}
}
+ @Override
public void removeAllContainerFilters() {
removeAllFilters();
}
+ @Override
public void removeContainerFilters(Object propertyId) {
removeFilters(propertyId);
}
+ @Override
public void addContainerFilter(Filter filter)
throws UnsupportedFilterException {
addFilter(filter);
}
+ @Override
public void removeContainerFilter(Filter filter) {
removeFilter(filter);
}
diff --git a/src/com/vaadin/data/util/ItemSorter.java b/src/com/vaadin/data/util/ItemSorter.java
index 7f9e3a3f13..4399dbe292 100644
--- a/src/com/vaadin/data/util/ItemSorter.java
+++ b/src/com/vaadin/data/util/ItemSorter.java
@@ -51,6 +51,7 @@ public interface ItemSorter extends Comparator<Object>, Cloneable, Serializable
*
* @see Comparator#compare(Object, Object)
*/
+ @Override
int compare(Object itemId1, Object itemId2);
}
diff --git a/src/com/vaadin/data/util/MethodProperty.java b/src/com/vaadin/data/util/MethodProperty.java
index 7df45e04ab..0c64d90481 100644
--- a/src/com/vaadin/data/util/MethodProperty.java
+++ b/src/com/vaadin/data/util/MethodProperty.java
@@ -568,6 +568,7 @@ public class MethodProperty<T> extends AbstractProperty<T> {
*
* @return type of the Property
*/
+ @Override
public final Class<? extends T> getType() {
return type;
}
@@ -591,6 +592,7 @@ public class MethodProperty<T> extends AbstractProperty<T> {
*
* @return the value of the Property
*/
+ @Override
public T getValue() {
try {
return (T) getMethod.invoke(instance, getArgs);
@@ -638,6 +640,7 @@ public class MethodProperty<T> extends AbstractProperty<T> {
* read-only mode.
* @see #invokeSetMethod(Object)
*/
+ @Override
@SuppressWarnings("unchecked")
public void setValue(Object newValue) throws Property.ReadOnlyException {
diff --git a/src/com/vaadin/data/util/MethodPropertyDescriptor.java b/src/com/vaadin/data/util/MethodPropertyDescriptor.java
index 5fdb982b9e..a2a76ec6cf 100644
--- a/src/com/vaadin/data/util/MethodPropertyDescriptor.java
+++ b/src/com/vaadin/data/util/MethodPropertyDescriptor.java
@@ -112,14 +112,17 @@ public class MethodPropertyDescriptor<BT> implements
}
};
+ @Override
public String getName() {
return name;
}
+ @Override
public Class<?> getPropertyType() {
return propertyType;
}
+ @Override
public Property<?> createProperty(Object bean) {
return new MethodProperty<Object>(propertyType, bean, readMethod,
writeMethod);
diff --git a/src/com/vaadin/data/util/NestedMethodProperty.java b/src/com/vaadin/data/util/NestedMethodProperty.java
index d7b0f44912..9bff38456d 100644
--- a/src/com/vaadin/data/util/NestedMethodProperty.java
+++ b/src/com/vaadin/data/util/NestedMethodProperty.java
@@ -165,6 +165,7 @@ public class NestedMethodProperty<T> extends AbstractProperty<T> {
this.setMethod = setMethod;
}
+ @Override
public Class<? extends T> getType() {
return type;
}
@@ -180,6 +181,7 @@ public class NestedMethodProperty<T> extends AbstractProperty<T> {
*
* @return the value of the Property
*/
+ @Override
public T getValue() {
try {
Object object = instance;
@@ -202,6 +204,7 @@ public class NestedMethodProperty<T> extends AbstractProperty<T> {
* read-only mode.
* @see #invokeSetMethod(Object)
*/
+ @Override
public void setValue(Object newValue) throws ReadOnlyException {
// Checks the mode
if (isReadOnly()) {
diff --git a/src/com/vaadin/data/util/NestedPropertyDescriptor.java b/src/com/vaadin/data/util/NestedPropertyDescriptor.java
index 6404f6361d..b67b425d1d 100644
--- a/src/com/vaadin/data/util/NestedPropertyDescriptor.java
+++ b/src/com/vaadin/data/util/NestedPropertyDescriptor.java
@@ -42,14 +42,17 @@ public class NestedPropertyDescriptor<BT> implements
this.propertyType = property.getType();
}
+ @Override
public String getName() {
return name;
}
+ @Override
public Class<?> getPropertyType() {
return propertyType;
}
+ @Override
public Property<?> createProperty(BT bean) {
return new NestedMethodProperty<Object>(bean, name);
}
diff --git a/src/com/vaadin/data/util/ObjectProperty.java b/src/com/vaadin/data/util/ObjectProperty.java
index 9c60b9146e..cb85b44c2a 100644
--- a/src/com/vaadin/data/util/ObjectProperty.java
+++ b/src/com/vaadin/data/util/ObjectProperty.java
@@ -91,6 +91,7 @@ public class ObjectProperty<T> extends AbstractProperty<T> {
*
* @return type of the Property
*/
+ @Override
public final Class<T> getType() {
return type;
}
@@ -100,6 +101,7 @@ public class ObjectProperty<T> extends AbstractProperty<T> {
*
* @return the value stored in the Property
*/
+ @Override
public T getValue() {
return value;
}
@@ -115,6 +117,7 @@ public class ObjectProperty<T> extends AbstractProperty<T> {
* @throws <code>Property.ReadOnlyException</code> if the object is in
* read-only mode
*/
+ @Override
@SuppressWarnings("unchecked")
public void setValue(Object newValue) throws Property.ReadOnlyException {
diff --git a/src/com/vaadin/data/util/PropertyFormatter.java b/src/com/vaadin/data/util/PropertyFormatter.java
index a63973535b..3d65726309 100644
--- a/src/com/vaadin/data/util/PropertyFormatter.java
+++ b/src/com/vaadin/data/util/PropertyFormatter.java
@@ -75,6 +75,7 @@ public abstract class PropertyFormatter<T> extends AbstractProperty<String>
* @return the current data source as a Property, or <code>null</code> if
* none defined.
*/
+ @Override
public Property<T> getPropertyDataSource() {
return dataSource;
}
@@ -91,6 +92,7 @@ public abstract class PropertyFormatter<T> extends AbstractProperty<String>
* @param newDataSource
* the new data source Property.
*/
+ @Override
public void setPropertyDataSource(Property newDataSource) {
boolean readOnly = false;
@@ -132,6 +134,7 @@ public abstract class PropertyFormatter<T> extends AbstractProperty<String>
}
/* Documented in the interface */
+ @Override
public Class<String> getType() {
return String.class;
}
@@ -142,6 +145,7 @@ public abstract class PropertyFormatter<T> extends AbstractProperty<String>
* @return If the datasource returns null, this is null. Otherwise this is
* String given by format().
*/
+ @Override
public String getValue() {
T value = dataSource == null ? null : dataSource.getValue();
if (value == null) {
@@ -195,6 +199,7 @@ public abstract class PropertyFormatter<T> extends AbstractProperty<String>
}
}
+ @Override
public void setValue(Object newValue) throws ReadOnlyException {
if (dataSource == null) {
return;
@@ -221,6 +226,7 @@ public abstract class PropertyFormatter<T> extends AbstractProperty<String>
*
* This should not be called directly.
*/
+ @Override
public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {
fireValueChange();
}
@@ -230,6 +236,7 @@ public abstract class PropertyFormatter<T> extends AbstractProperty<String>
*
* This should not be called directly.
*/
+ @Override
public void readOnlyStatusChange(
com.vaadin.data.Property.ReadOnlyStatusChangeEvent event) {
fireReadOnlyStatusChange();
diff --git a/src/com/vaadin/data/util/PropertysetItem.java b/src/com/vaadin/data/util/PropertysetItem.java
index 3270fa31f9..22f2da75b2 100644
--- a/src/com/vaadin/data/util/PropertysetItem.java
+++ b/src/com/vaadin/data/util/PropertysetItem.java
@@ -57,6 +57,7 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
* the identifier of the Property to get.
* @return the Property with the given ID or <code>null</code>
*/
+ @Override
public Property<?> getItemProperty(Object id) {
return map.get(id);
}
@@ -67,6 +68,7 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
* @return unmodifiable collection containing IDs of the Properties stored
* the Item
*/
+ @Override
public Collection<?> getItemPropertyIds() {
return Collections.unmodifiableCollection(list);
}
@@ -83,6 +85,7 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
* @return <code>true</code> if the operation succeeded <code>false</code>
* if not
*/
+ @Override
public boolean removeItemProperty(Object id) {
// Cant remove missing properties
@@ -107,6 +110,7 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
* @return <code>true</code> if the operation succeeded, <code>false</code>
* if not
*/
+ @Override
public boolean addItemProperty(Object id, Property property) {
// Null ids are not accepted
@@ -175,6 +179,7 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
*
* @return source object of the event as an <code>Item</code>
*/
+ @Override
public Item getItem() {
return (Item) getSource();
}
@@ -186,6 +191,7 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
* @param listener
* the new Listener to be registered.
*/
+ @Override
public void addListener(Item.PropertySetChangeListener listener) {
if (propertySetChangeListeners == null) {
propertySetChangeListeners = new LinkedList<PropertySetChangeListener>();
@@ -199,6 +205,7 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
* @param listener
* the Listener to be removed.
*/
+ @Override
public void removeListener(Item.PropertySetChangeListener listener) {
if (propertySetChangeListeners != null) {
propertySetChangeListeners.remove(listener);
diff --git a/src/com/vaadin/data/util/QueryContainer.java b/src/com/vaadin/data/util/QueryContainer.java
index 7fef63e7f1..dc7c883a7e 100644
--- a/src/com/vaadin/data/util/QueryContainer.java
+++ b/src/com/vaadin/data/util/QueryContainer.java
@@ -188,6 +188,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @return Item Id.
*/
+ @Override
public Item getItem(Object id) {
return new Row(id);
}
@@ -198,6 +199,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @return Collection of Property ID.
*/
+ @Override
public Collection<String> getContainerPropertyIds() {
return propertyIds;
}
@@ -207,6 +209,7 @@ public class QueryContainer implements Container, Container.Ordered,
*
* @return collection of Item IDs
*/
+ @Override
public Collection<?> getItemIds() {
final Collection<Integer> c = new ArrayList<Integer>(size);
for (int i = 1; i <= size; i++) {
@@ -229,6 +232,7 @@ public class QueryContainer implements Container, Container.Ordered,
* otherwise.
*/
+ @Override
public synchronized Property<?> getContainerProperty(Object itemId,
Object propertyId) {
if (!(itemId instanceof Integer && propertyId instanceof String)) {
@@ -256,6 +260,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @return data type of the Properties
*/
+ @Override
public Class<?> getType(Object id) {
return propertyTypes.get(id);
}
@@ -265,6 +270,7 @@ public class QueryContainer implements Container, Container.Ordered,
*
* @return the number of items in the container.
*/
+ @Override
public int size() {
return size;
}
@@ -277,6 +283,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @return <code>true</code> if given id is in the container;
* <code>false</code> otherwise.
*/
+ @Override
public boolean containsId(Object id) {
if (!(id instanceof Integer)) {
return false;
@@ -302,6 +309,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @throws UnsupportedOperationException
* if the addItem method is not supported.
*/
+ @Override
public Item addItem(Object itemId) throws UnsupportedOperationException {
throw new UnsupportedOperationException();
}
@@ -313,6 +321,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @throws UnsupportedOperationException
* if the addItem method is not supported.
*/
+ @Override
public Object addItem() throws UnsupportedOperationException {
throw new UnsupportedOperationException();
}
@@ -327,6 +336,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @throws UnsupportedOperationException
* if the removeItem method is not supported.
*/
+ @Override
public boolean removeItem(Object itemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -346,6 +356,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @throws UnsupportedOperationException
* if the addContainerProperty method is not supported.
*/
+ @Override
public boolean addContainerProperty(Object propertyId, Class<?> type,
Object defaultValue) throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -361,6 +372,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @throws UnsupportedOperationException
* if the removeContainerProperty method is not supported.
*/
+ @Override
public boolean removeContainerProperty(Object propertyId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -374,6 +386,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @throws UnsupportedOperationException
* if the removeAllItems method is not supported.
*/
+ @Override
public boolean removeAllItems() throws UnsupportedOperationException {
throw new UnsupportedOperationException();
}
@@ -389,6 +402,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @throws UnsupportedOperationException
* if the addItemAfter method is not supported.
*/
+ @Override
public Item addItemAfter(Object previousItemId, Object newItemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -404,6 +418,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @throws UnsupportedOperationException
* if the addItemAfter method is not supported.
*/
+ @Override
public Object addItemAfter(Object previousItemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -414,6 +429,7 @@ public class QueryContainer implements Container, Container.Ordered,
*
* @return ID of the first Item in the list.
*/
+ @Override
public Object firstItemId() {
if (size < 1) {
return null;
@@ -427,6 +443,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @param id
* ID of an Item in the Container.
*/
+ @Override
public boolean isFirstId(Object id) {
return size > 0 && (id instanceof Integer)
&& ((Integer) id).intValue() == 1;
@@ -439,6 +456,7 @@ public class QueryContainer implements Container, Container.Ordered,
* ID of an Item in the Container
*
*/
+ @Override
public boolean isLastId(Object id) {
return size > 0 && (id instanceof Integer)
&& ((Integer) id).intValue() == size;
@@ -449,6 +467,7 @@ public class QueryContainer implements Container, Container.Ordered,
*
* @return ID of the last Item.
*/
+ @Override
public Object lastItemId() {
if (size < 1) {
return null;
@@ -463,6 +482,7 @@ public class QueryContainer implements Container, Container.Ordered,
* ID of an Item in the Container.
* @return ID of the next Item or null.
*/
+ @Override
public Object nextItemId(Object id) {
if (size < 1 || !(id instanceof Integer)) {
return null;
@@ -481,6 +501,7 @@ public class QueryContainer implements Container, Container.Ordered,
* ID of an Item in the Container.
* @return ID of the previous Item or null.
*/
+ @Override
public Object prevItemId(Object id) {
if (size < 1 || !(id instanceof Integer)) {
return null;
@@ -519,6 +540,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @throws UnsupportedOperationException
* if the addItemProperty method is not supported.
*/
+ @Override
public boolean addItemProperty(Object id, Property property)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -532,6 +554,7 @@ public class QueryContainer implements Container, Container.Ordered,
* identifier of the Property to get
* @return the Property with the given ID or <code>null</code>
*/
+ @Override
public Property<?> getItemProperty(Object propertyId) {
return getContainerProperty(id, propertyId);
}
@@ -542,6 +565,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @return unmodifiable collection containing IDs of the Properties
* stored the Item.
*/
+ @Override
public Collection<String> getItemPropertyIds() {
return propertyIds;
}
@@ -556,6 +580,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @throws UnsupportedOperationException
* if the removeItemProperty is not supported.
*/
+ @Override
public boolean removeItemProperty(Object id)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -588,6 +613,7 @@ public class QueryContainer implements Container, Container.Ordered,
* @throws UnsupportedOperationException
* if the addItemAt is not supported.
*/
+ @Override
public Item addItemAt(int index, Object newItemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -605,6 +631,7 @@ public class QueryContainer implements Container, Container.Ordered,
* if the addItemAt is not supported.
*/
+ @Override
public Object addItemAt(int index) throws UnsupportedOperationException {
throw new UnsupportedOperationException();
}
@@ -616,6 +643,7 @@ public class QueryContainer implements Container, Container.Ordered,
* Index Id.
* @return ID in the given index.
*/
+ @Override
public Object getIdByIndex(int index) {
if (size < 1 || index < 0 || index >= size) {
return null;
@@ -632,6 +660,7 @@ public class QueryContainer implements Container, Container.Ordered,
* Item
*/
+ @Override
public int indexOfId(Object id) {
if (size < 1 || !(id instanceof Integer)) {
return -1;
diff --git a/src/com/vaadin/data/util/TextFileProperty.java b/src/com/vaadin/data/util/TextFileProperty.java
index 5ebba98062..598b721a9c 100644
--- a/src/com/vaadin/data/util/TextFileProperty.java
+++ b/src/com/vaadin/data/util/TextFileProperty.java
@@ -64,6 +64,7 @@ public class TextFileProperty extends AbstractProperty<String> {
*
* @see com.vaadin.data.Property#getType()
*/
+ @Override
public Class<String> getType() {
return String.class;
}
@@ -73,6 +74,7 @@ public class TextFileProperty extends AbstractProperty<String> {
*
* @see com.vaadin.data.Property#getValue()
*/
+ @Override
public String getValue() {
if (file == null) {
return null;
@@ -114,6 +116,7 @@ public class TextFileProperty extends AbstractProperty<String> {
*
* @see com.vaadin.data.Property#setValue(java.lang.Object)
*/
+ @Override
public void setValue(Object newValue) throws ReadOnlyException {
if (isReadOnly()) {
throw new ReadOnlyException();
diff --git a/src/com/vaadin/data/util/TransactionalPropertyWrapper.java b/src/com/vaadin/data/util/TransactionalPropertyWrapper.java
index 06ec0935c3..d042bfaac2 100644
--- a/src/com/vaadin/data/util/TransactionalPropertyWrapper.java
+++ b/src/com/vaadin/data/util/TransactionalPropertyWrapper.java
@@ -44,6 +44,7 @@ public class TransactionalPropertyWrapper<T> extends AbstractProperty<T>
((ValueChangeNotifier) wrappedProperty)
.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
fireValueChange();
}
@@ -51,29 +52,35 @@ public class TransactionalPropertyWrapper<T> extends AbstractProperty<T>
}
}
+ @Override
public Class getType() {
return wrappedProperty.getType();
}
+ @Override
public T getValue() {
return wrappedProperty.getValue();
}
+ @Override
public void setValue(Object newValue) throws ReadOnlyException {
// Causes a value change to be sent to this listener which in turn fires
// a new value change event for this property
wrappedProperty.setValue(newValue);
}
+ @Override
public void startTransaction() {
inTransaction = true;
valueBeforeTransaction = getValue();
}
+ @Override
public void commit() {
endTransaction();
}
+ @Override
public void rollback() {
try {
wrappedProperty.setValue(valueBeforeTransaction);
diff --git a/src/com/vaadin/data/util/converter/DateToLongConverter.java b/src/com/vaadin/data/util/converter/DateToLongConverter.java
index 537800f617..aeba38aa1f 100644
--- a/src/com/vaadin/data/util/converter/DateToLongConverter.java
+++ b/src/com/vaadin/data/util/converter/DateToLongConverter.java
@@ -24,6 +24,7 @@ public class DateToLongConverter implements Converter<Date, Long> {
* com.vaadin.data.util.converter.Converter#convertToModel(java.lang.Object,
* java.util.Locale)
*/
+ @Override
public Long convertToModel(Date value, Locale locale) {
if (value == null) {
return null;
@@ -39,6 +40,7 @@ public class DateToLongConverter implements Converter<Date, Long> {
* com.vaadin.data.util.converter.Converter#convertToPresentation(java.lang
* .Object, java.util.Locale)
*/
+ @Override
public Date convertToPresentation(Long value, Locale locale) {
if (value == null) {
return null;
@@ -52,6 +54,7 @@ public class DateToLongConverter implements Converter<Date, Long> {
*
* @see com.vaadin.data.util.converter.Converter#getModelType()
*/
+ @Override
public Class<Long> getModelType() {
return Long.class;
}
@@ -61,6 +64,7 @@ public class DateToLongConverter implements Converter<Date, Long> {
*
* @see com.vaadin.data.util.converter.Converter#getPresentationType()
*/
+ @Override
public Class<Date> getPresentationType() {
return Date.class;
}
diff --git a/src/com/vaadin/data/util/converter/DefaultConverterFactory.java b/src/com/vaadin/data/util/converter/DefaultConverterFactory.java
index 3ad7b6a85b..afb95d81ed 100644
--- a/src/com/vaadin/data/util/converter/DefaultConverterFactory.java
+++ b/src/com/vaadin/data/util/converter/DefaultConverterFactory.java
@@ -27,6 +27,7 @@ public class DefaultConverterFactory implements ConverterFactory {
private final static Logger log = Logger
.getLogger(DefaultConverterFactory.class.getName());
+ @Override
public <PRESENTATION, MODEL> Converter<PRESENTATION, MODEL> createConverter(
Class<PRESENTATION> presentationType, Class<MODEL> modelType) {
Converter<PRESENTATION, MODEL> converter = findConverter(
diff --git a/src/com/vaadin/data/util/converter/ReverseConverter.java b/src/com/vaadin/data/util/converter/ReverseConverter.java
index 1c561f29e8..fa1bb5daf1 100644
--- a/src/com/vaadin/data/util/converter/ReverseConverter.java
+++ b/src/com/vaadin/data/util/converter/ReverseConverter.java
@@ -42,6 +42,7 @@ public class ReverseConverter<PRESENTATION, MODEL> implements
* @see com.vaadin.data.util.converter.Converter#convertToModel(java
* .lang.Object, java.util.Locale)
*/
+ @Override
public MODEL convertToModel(PRESENTATION value, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
return realConverter.convertToPresentation(value, locale);
@@ -54,6 +55,7 @@ public class ReverseConverter<PRESENTATION, MODEL> implements
* com.vaadin.data.util.converter.Converter#convertToPresentation(java.lang
* .Object, java.util.Locale)
*/
+ @Override
public PRESENTATION convertToPresentation(MODEL value, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
return realConverter.convertToModel(value, locale);
@@ -64,6 +66,7 @@ public class ReverseConverter<PRESENTATION, MODEL> implements
*
* @see com.vaadin.data.util.converter.Converter#getSourceType()
*/
+ @Override
public Class<MODEL> getModelType() {
return realConverter.getPresentationType();
}
@@ -73,6 +76,7 @@ public class ReverseConverter<PRESENTATION, MODEL> implements
*
* @see com.vaadin.data.util.converter.Converter#getTargetType()
*/
+ @Override
public Class<PRESENTATION> getPresentationType() {
return realConverter.getModelType();
}
diff --git a/src/com/vaadin/data/util/converter/StringToBooleanConverter.java b/src/com/vaadin/data/util/converter/StringToBooleanConverter.java
index 96a3a3d071..999f575dc4 100644
--- a/src/com/vaadin/data/util/converter/StringToBooleanConverter.java
+++ b/src/com/vaadin/data/util/converter/StringToBooleanConverter.java
@@ -27,6 +27,7 @@ public class StringToBooleanConverter implements Converter<String, Boolean> {
* com.vaadin.data.util.converter.Converter#convertToModel(java.lang.Object,
* java.util.Locale)
*/
+ @Override
public Boolean convertToModel(String value, Locale locale)
throws ConversionException {
if (value == null) {
@@ -71,6 +72,7 @@ public class StringToBooleanConverter implements Converter<String, Boolean> {
* com.vaadin.data.util.converter.Converter#convertToPresentation(java.lang
* .Object, java.util.Locale)
*/
+ @Override
public String convertToPresentation(Boolean value, Locale locale)
throws ConversionException {
if (value == null) {
@@ -88,6 +90,7 @@ public class StringToBooleanConverter implements Converter<String, Boolean> {
*
* @see com.vaadin.data.util.converter.Converter#getModelType()
*/
+ @Override
public Class<Boolean> getModelType() {
return Boolean.class;
}
@@ -97,6 +100,7 @@ public class StringToBooleanConverter implements Converter<String, Boolean> {
*
* @see com.vaadin.data.util.converter.Converter#getPresentationType()
*/
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
diff --git a/src/com/vaadin/data/util/converter/StringToDateConverter.java b/src/com/vaadin/data/util/converter/StringToDateConverter.java
index 6f3c2e47f6..487b02b2aa 100644
--- a/src/com/vaadin/data/util/converter/StringToDateConverter.java
+++ b/src/com/vaadin/data/util/converter/StringToDateConverter.java
@@ -52,6 +52,7 @@ public class StringToDateConverter implements Converter<String, Date> {
* com.vaadin.data.util.converter.Converter#convertToModel(java.lang.Object,
* java.util.Locale)
*/
+ @Override
public Date convertToModel(String value, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
if (value == null) {
@@ -78,6 +79,7 @@ public class StringToDateConverter implements Converter<String, Date> {
* com.vaadin.data.util.converter.Converter#convertToPresentation(java.lang
* .Object, java.util.Locale)
*/
+ @Override
public String convertToPresentation(Date value, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
if (value == null) {
@@ -92,6 +94,7 @@ public class StringToDateConverter implements Converter<String, Date> {
*
* @see com.vaadin.data.util.converter.Converter#getModelType()
*/
+ @Override
public Class<Date> getModelType() {
return Date.class;
}
@@ -101,6 +104,7 @@ public class StringToDateConverter implements Converter<String, Date> {
*
* @see com.vaadin.data.util.converter.Converter#getPresentationType()
*/
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
diff --git a/src/com/vaadin/data/util/converter/StringToDoubleConverter.java b/src/com/vaadin/data/util/converter/StringToDoubleConverter.java
index 60a38f4127..251f91855b 100644
--- a/src/com/vaadin/data/util/converter/StringToDoubleConverter.java
+++ b/src/com/vaadin/data/util/converter/StringToDoubleConverter.java
@@ -49,6 +49,7 @@ public class StringToDoubleConverter implements Converter<String, Double> {
* com.vaadin.data.util.converter.Converter#convertToModel(java.lang.Object,
* java.util.Locale)
*/
+ @Override
public Double convertToModel(String value, Locale locale)
throws ConversionException {
if (value == null) {
@@ -74,6 +75,7 @@ public class StringToDoubleConverter implements Converter<String, Double> {
* com.vaadin.data.util.converter.Converter#convertToPresentation(java.lang
* .Object, java.util.Locale)
*/
+ @Override
public String convertToPresentation(Double value, Locale locale)
throws ConversionException {
if (value == null) {
@@ -88,6 +90,7 @@ public class StringToDoubleConverter implements Converter<String, Double> {
*
* @see com.vaadin.data.util.converter.Converter#getModelType()
*/
+ @Override
public Class<Double> getModelType() {
return Double.class;
}
@@ -97,6 +100,7 @@ public class StringToDoubleConverter implements Converter<String, Double> {
*
* @see com.vaadin.data.util.converter.Converter#getPresentationType()
*/
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
diff --git a/src/com/vaadin/data/util/converter/StringToIntegerConverter.java b/src/com/vaadin/data/util/converter/StringToIntegerConverter.java
index e55feec3b6..950f01c6ab 100644
--- a/src/com/vaadin/data/util/converter/StringToIntegerConverter.java
+++ b/src/com/vaadin/data/util/converter/StringToIntegerConverter.java
@@ -39,6 +39,7 @@ public class StringToIntegerConverter implements Converter<String, Integer> {
return NumberFormat.getIntegerInstance(locale);
}
+ @Override
public Integer convertToModel(String value, Locale locale)
throws ConversionException {
if (value == null) {
@@ -64,6 +65,7 @@ public class StringToIntegerConverter implements Converter<String, Integer> {
return parsedValue.intValue();
}
+ @Override
public String convertToPresentation(Integer value, Locale locale)
throws ConversionException {
if (value == null) {
@@ -73,10 +75,12 @@ public class StringToIntegerConverter implements Converter<String, Integer> {
return getFormat(locale).format(value);
}
+ @Override
public Class<Integer> getModelType() {
return Integer.class;
}
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
diff --git a/src/com/vaadin/data/util/converter/StringToNumberConverter.java b/src/com/vaadin/data/util/converter/StringToNumberConverter.java
index d1816007e7..42699a326a 100644
--- a/src/com/vaadin/data/util/converter/StringToNumberConverter.java
+++ b/src/com/vaadin/data/util/converter/StringToNumberConverter.java
@@ -45,6 +45,7 @@ public class StringToNumberConverter implements Converter<String, Number> {
* com.vaadin.data.util.converter.Converter#convertToModel(java.lang.Object,
* java.util.Locale)
*/
+ @Override
public Number convertToModel(String value, Locale locale)
throws ConversionException {
if (value == null) {
@@ -77,6 +78,7 @@ public class StringToNumberConverter implements Converter<String, Number> {
* com.vaadin.data.util.converter.Converter#convertToPresentation(java.lang
* .Object, java.util.Locale)
*/
+ @Override
public String convertToPresentation(Number value, Locale locale)
throws ConversionException {
if (value == null) {
@@ -91,6 +93,7 @@ public class StringToNumberConverter implements Converter<String, Number> {
*
* @see com.vaadin.data.util.converter.Converter#getModelType()
*/
+ @Override
public Class<Number> getModelType() {
return Number.class;
}
@@ -100,6 +103,7 @@ public class StringToNumberConverter implements Converter<String, Number> {
*
* @see com.vaadin.data.util.converter.Converter#getPresentationType()
*/
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
diff --git a/src/com/vaadin/data/util/filter/AbstractJunctionFilter.java b/src/com/vaadin/data/util/filter/AbstractJunctionFilter.java
index 0f20e28586..482b10120c 100644
--- a/src/com/vaadin/data/util/filter/AbstractJunctionFilter.java
+++ b/src/com/vaadin/data/util/filter/AbstractJunctionFilter.java
@@ -45,6 +45,7 @@ public abstract class AbstractJunctionFilter implements Filter {
* If there are no sub-filters, false is returned - override in subclasses
* to change this behavior.
*/
+ @Override
public boolean appliesToProperty(Object propertyId) {
for (Filter filter : getFilters()) {
if (filter.appliesToProperty(propertyId)) {
diff --git a/src/com/vaadin/data/util/filter/And.java b/src/com/vaadin/data/util/filter/And.java
index 08182794a8..ca6c35aba7 100644
--- a/src/com/vaadin/data/util/filter/And.java
+++ b/src/com/vaadin/data/util/filter/And.java
@@ -30,6 +30,7 @@ public final class And extends AbstractJunctionFilter {
super(filters);
}
+ @Override
public boolean passesFilter(Object itemId, Item item)
throws UnsupportedFilterException {
for (Filter filter : getFilters()) {
diff --git a/src/com/vaadin/data/util/filter/Between.java b/src/com/vaadin/data/util/filter/Between.java
index dd47d36c7f..b00a74d13d 100644
--- a/src/com/vaadin/data/util/filter/Between.java
+++ b/src/com/vaadin/data/util/filter/Between.java
@@ -30,6 +30,7 @@ public class Between implements Filter {
return endValue;
}
+ @Override
public boolean passesFilter(Object itemId, Item item)
throws UnsupportedOperationException {
Object value = item.getItemProperty(getPropertyId()).getValue();
@@ -41,6 +42,7 @@ public class Between implements Filter {
return false;
}
+ @Override
public boolean appliesToProperty(Object propertyId) {
return getPropertyId() != null && getPropertyId().equals(propertyId);
}
diff --git a/src/com/vaadin/data/util/filter/Compare.java b/src/com/vaadin/data/util/filter/Compare.java
index 111d95f055..4091f5b922 100644
--- a/src/com/vaadin/data/util/filter/Compare.java
+++ b/src/com/vaadin/data/util/filter/Compare.java
@@ -227,6 +227,7 @@ public abstract class Compare implements Filter {
this.operation = operation;
}
+ @Override
public boolean passesFilter(Object itemId, Item item) {
final Property<?> p = item.getItemProperty(getPropertyId());
if (null == p) {
@@ -264,6 +265,7 @@ public abstract class Compare implements Filter {
+ value1 + ", " + getValue());
}
+ @Override
public boolean appliesToProperty(Object propertyId) {
return getPropertyId().equals(propertyId);
}
diff --git a/src/com/vaadin/data/util/filter/IsNull.java b/src/com/vaadin/data/util/filter/IsNull.java
index aad71a7c80..3faf4153ee 100644
--- a/src/com/vaadin/data/util/filter/IsNull.java
+++ b/src/com/vaadin/data/util/filter/IsNull.java
@@ -33,6 +33,7 @@ public final class IsNull implements Filter {
this.propertyId = propertyId;
}
+ @Override
public boolean passesFilter(Object itemId, Item item)
throws UnsupportedOperationException {
final Property<?> p = item.getItemProperty(getPropertyId());
@@ -42,6 +43,7 @@ public final class IsNull implements Filter {
return null == p.getValue();
}
+ @Override
public boolean appliesToProperty(Object propertyId) {
return getPropertyId().equals(propertyId);
}
diff --git a/src/com/vaadin/data/util/filter/Like.java b/src/com/vaadin/data/util/filter/Like.java
index 723623bb69..3dcc48e809 100644
--- a/src/com/vaadin/data/util/filter/Like.java
+++ b/src/com/vaadin/data/util/filter/Like.java
@@ -37,6 +37,7 @@ public class Like implements Filter {
return caseSensitive;
}
+ @Override
public boolean passesFilter(Object itemId, Item item)
throws UnsupportedOperationException {
if (!item.getItemProperty(getPropertyId()).getType()
@@ -54,6 +55,7 @@ public class Like implements Filter {
return colValue.toUpperCase().matches(pattern.toUpperCase());
}
+ @Override
public boolean appliesToProperty(Object propertyId) {
return getPropertyId() != null && getPropertyId().equals(propertyId);
}
diff --git a/src/com/vaadin/data/util/filter/Not.java b/src/com/vaadin/data/util/filter/Not.java
index 1731dcc2b5..bbfc9ca86a 100644
--- a/src/com/vaadin/data/util/filter/Not.java
+++ b/src/com/vaadin/data/util/filter/Not.java
@@ -36,6 +36,7 @@ public final class Not implements Filter {
return filter;
}
+ @Override
public boolean passesFilter(Object itemId, Item item)
throws UnsupportedOperationException {
return !filter.passesFilter(itemId, item);
@@ -48,6 +49,7 @@ public final class Not implements Filter {
*
* @return boolean
*/
+ @Override
public boolean appliesToProperty(Object propertyId) {
return filter.appliesToProperty(propertyId);
}
diff --git a/src/com/vaadin/data/util/filter/Or.java b/src/com/vaadin/data/util/filter/Or.java
index 194afbc7da..b60074f7e3 100644
--- a/src/com/vaadin/data/util/filter/Or.java
+++ b/src/com/vaadin/data/util/filter/Or.java
@@ -30,6 +30,7 @@ public final class Or extends AbstractJunctionFilter {
super(filters);
}
+ @Override
public boolean passesFilter(Object itemId, Item item)
throws UnsupportedFilterException {
for (Filter filter : getFilters()) {
diff --git a/src/com/vaadin/data/util/filter/SimpleStringFilter.java b/src/com/vaadin/data/util/filter/SimpleStringFilter.java
index 6203251045..f98b2c02b4 100644
--- a/src/com/vaadin/data/util/filter/SimpleStringFilter.java
+++ b/src/com/vaadin/data/util/filter/SimpleStringFilter.java
@@ -39,6 +39,7 @@ public final class SimpleStringFilter implements Filter {
this.onlyMatchPrefix = onlyMatchPrefix;
}
+ @Override
public boolean passesFilter(Object itemId, Item item) {
final Property<?> p = item.getItemProperty(propertyId);
if (p == null) {
@@ -62,6 +63,7 @@ public final class SimpleStringFilter implements Filter {
return true;
}
+ @Override
public boolean appliesToProperty(Object propertyId) {
return this.propertyId.equals(propertyId);
}
diff --git a/src/com/vaadin/data/util/sqlcontainer/ColumnProperty.java b/src/com/vaadin/data/util/sqlcontainer/ColumnProperty.java
index d84a164bfa..168bce1880 100644
--- a/src/com/vaadin/data/util/sqlcontainer/ColumnProperty.java
+++ b/src/com/vaadin/data/util/sqlcontainer/ColumnProperty.java
@@ -61,6 +61,7 @@ final public class ColumnProperty implements Property {
this.readOnly = readOnly;
}
+ @Override
public Object getValue() {
if (isModified()) {
return changedValue;
@@ -68,6 +69,7 @@ final public class ColumnProperty implements Property {
return value;
}
+ @Override
public void setValue(Object newValue) throws ReadOnlyException {
if (newValue == null && !nullable) {
throw new NotNullableException(
@@ -134,10 +136,12 @@ final public class ColumnProperty implements Property {
|| newValue.equals(referenceValue);
}
+ @Override
public Class<?> getType() {
return type;
}
+ @Override
public boolean isReadOnly() {
return readOnly;
}
@@ -146,6 +150,7 @@ final public class ColumnProperty implements Property {
return allowReadOnlyChange;
}
+ @Override
public void setReadOnly(boolean newStatus) {
if (allowReadOnlyChange) {
readOnly = newStatus;
diff --git a/src/com/vaadin/data/util/sqlcontainer/RowItem.java b/src/com/vaadin/data/util/sqlcontainer/RowItem.java
index adededb65c..d613a06b63 100644
--- a/src/com/vaadin/data/util/sqlcontainer/RowItem.java
+++ b/src/com/vaadin/data/util/sqlcontainer/RowItem.java
@@ -48,6 +48,7 @@ public final class RowItem implements Item {
this.id = id;
}
+ @Override
public Property<?> getItemProperty(Object id) {
if (id instanceof String && id != null) {
for (ColumnProperty cp : properties) {
@@ -59,6 +60,7 @@ public final class RowItem implements Item {
return null;
}
+ @Override
public Collection<?> getItemPropertyIds() {
Collection<String> ids = new ArrayList<String>(properties.size());
for (ColumnProperty cp : properties) {
@@ -71,6 +73,7 @@ public final class RowItem implements Item {
* Adding properties is not supported. Properties are generated by
* SQLContainer.
*/
+ @Override
public boolean addItemProperty(Object id, Property property)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -80,6 +83,7 @@ public final class RowItem implements Item {
* Removing properties is not supported. Properties are generated by
* SQLContainer.
*/
+ @Override
public boolean removeItemProperty(Object id)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
diff --git a/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java b/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java
index e9b5b4fea3..5827390723 100644
--- a/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java
+++ b/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java
@@ -130,6 +130,7 @@ public class SQLContainer implements Container, Container.Filterable,
* {@inheritDoc}
*/
+ @Override
public Object addItem() throws UnsupportedOperationException {
Object emptyKey[] = new Object[delegate.getPrimaryKeyColumns().size()];
RowId itemId = new TemporaryRowId(emptyKey);
@@ -186,6 +187,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container#containsId(java.lang.Object)
*/
+ @Override
public boolean containsId(Object itemId) {
if (itemId == null) {
return false;
@@ -227,6 +229,7 @@ public class SQLContainer implements Container, Container.Filterable,
* java.lang.Object)
*/
+ @Override
public Property<?> getContainerProperty(Object itemId, Object propertyId) {
Item item = getItem(itemId);
if (item == null) {
@@ -241,6 +244,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container#getContainerPropertyIds()
*/
+ @Override
public Collection<?> getContainerPropertyIds() {
return Collections.unmodifiableCollection(propertyIds);
}
@@ -251,6 +255,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container#getItem(java.lang.Object)
*/
+ @Override
public Item getItem(Object itemId) {
if (!cachedItems.containsKey(itemId)) {
int index = indexOfId(itemId);
@@ -298,6 +303,7 @@ public class SQLContainer implements Container, Container.Filterable,
* {@inheritDoc}
*/
+ @Override
public Collection<?> getItemIds() {
updateCount();
ArrayList<RowId> ids = new ArrayList<RowId>();
@@ -355,6 +361,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container#getType(java.lang.Object)
*/
+ @Override
public Class<?> getType(Object propertyId) {
if (!propertyIds.contains(propertyId)) {
return null;
@@ -368,6 +375,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container#size()
*/
+ @Override
public int size() {
updateCount();
return size + sizeOfAddedItems() - removedItems.size();
@@ -379,6 +387,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container#removeItem(java.lang.Object)
*/
+ @Override
public boolean removeItem(Object itemId)
throws UnsupportedOperationException {
if (!containsId(itemId)) {
@@ -447,6 +456,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container#removeAllItems()
*/
+ @Override
public boolean removeAllItems() throws UnsupportedOperationException {
if (autoCommit) {
/* Remove and commit instantly. */
@@ -508,6 +518,7 @@ public class SQLContainer implements Container, Container.Filterable,
* {@inheritDoc}
*/
+ @Override
public void addContainerFilter(Filter filter)
throws UnsupportedFilterException {
// filter.setCaseSensitive(!ignoreCase);
@@ -520,8 +531,10 @@ public class SQLContainer implements Container, Container.Filterable,
* {@inheritDoc}
*/
+ @Override
public void removeContainerFilter(Filter filter) {
filters.remove(filter);
+ refresh();
}
/**
@@ -560,6 +573,7 @@ public class SQLContainer implements Container, Container.Filterable,
* {@inheritDoc}
*/
+ @Override
public void removeAllContainerFilters() {
filters.clear();
refresh();
@@ -575,6 +589,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container.Indexed#indexOfId(java.lang.Object)
*/
+ @Override
public int indexOfId(Object itemId) {
// First check if the id is in the added items
for (int ix = 0; ix < addedItems.size(); ix++) {
@@ -622,6 +637,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container.Indexed#getIdByIndex(int)
*/
+ @Override
public Object getIdByIndex(int index) {
if (index < 0 || index > size() - 1) {
return null;
@@ -649,6 +665,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container.Ordered#nextItemId(java.lang.Object)
*/
+ @Override
public Object nextItemId(Object itemId) {
return getIdByIndex(indexOfId(itemId) + 1);
}
@@ -659,6 +676,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container.Ordered#prevItemId(java.lang.Object)
*/
+ @Override
public Object prevItemId(Object itemId) {
return getIdByIndex(indexOfId(itemId) - 1);
}
@@ -669,6 +687,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container.Ordered#firstItemId()
*/
+ @Override
public Object firstItemId() {
updateCount();
if (size == 0) {
@@ -697,6 +716,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container.Ordered#lastItemId()
*/
+ @Override
public Object lastItemId() {
if (addedItems.isEmpty()) {
int lastIx = size() - 1;
@@ -723,6 +743,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container.Ordered#isFirstId(java.lang.Object)
*/
+ @Override
public boolean isFirstId(Object itemId) {
return firstItemId().equals(itemId);
}
@@ -733,6 +754,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container.Ordered#isLastId(java.lang.Object)
*/
+ @Override
public boolean isLastId(Object itemId) {
return lastItemId().equals(itemId);
}
@@ -748,6 +770,7 @@ public class SQLContainer implements Container, Container.Filterable,
* boolean[])
*/
+ @Override
public void sort(Object[] propertyId, boolean[] ascending) {
sorters.clear();
if (propertyId == null || propertyId.length == 0) {
@@ -777,6 +800,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container.Sortable#getSortableContainerPropertyIds()
*/
+ @Override
public Collection<?> getSortableContainerPropertyIds() {
return getContainerPropertyIds();
}
@@ -1351,6 +1375,7 @@ public class SQLContainer implements Container, Container.Filterable,
* java.lang.Class, java.lang.Object)
*/
+ @Override
public boolean addContainerProperty(Object propertyId, Class<?> type,
Object defaultValue) throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -1362,6 +1387,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container#removeContainerProperty(java.lang.Object)
*/
+ @Override
public boolean removeContainerProperty(Object propertyId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -1373,6 +1399,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container#addItem(java.lang.Object)
*/
+ @Override
public Item addItem(Object itemId) throws UnsupportedOperationException {
throw new UnsupportedOperationException();
}
@@ -1384,6 +1411,7 @@ public class SQLContainer implements Container, Container.Filterable,
* java.lang.Object)
*/
+ @Override
public Item addItemAfter(Object previousItemId, Object newItemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -1395,6 +1423,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container.Indexed#addItemAt(int, java.lang.Object)
*/
+ @Override
public Item addItemAt(int index, Object newItemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -1406,6 +1435,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container.Indexed#addItemAt(int)
*/
+ @Override
public Object addItemAt(int index) throws UnsupportedOperationException {
throw new UnsupportedOperationException();
}
@@ -1416,6 +1446,7 @@ public class SQLContainer implements Container, Container.Filterable,
* @see com.vaadin.data.Container.Ordered#addItemAfter(java.lang.Object)
*/
+ @Override
public Object addItemAfter(Object previousItemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException();
@@ -1433,6 +1464,7 @@ public class SQLContainer implements Container, Container.Filterable,
* .data.Container.ItemSetChangeListener)
*/
+ @Override
public void addListener(Container.ItemSetChangeListener listener) {
if (itemSetChangeListeners == null) {
itemSetChangeListeners = new LinkedList<Container.ItemSetChangeListener>();
@@ -1448,6 +1480,7 @@ public class SQLContainer implements Container, Container.Filterable,
* .data.Container.ItemSetChangeListener)
*/
+ @Override
public void removeListener(Container.ItemSetChangeListener listener) {
if (itemSetChangeListeners != null) {
itemSetChangeListeners.remove(listener);
@@ -1477,6 +1510,7 @@ public class SQLContainer implements Container, Container.Filterable,
super(source);
}
+ @Override
public Container getContainer() {
return (Container) getSource();
}
diff --git a/src/com/vaadin/data/util/sqlcontainer/connection/J2EEConnectionPool.java b/src/com/vaadin/data/util/sqlcontainer/connection/J2EEConnectionPool.java
index 40d0d0426f..9aa4f7c4be 100644
--- a/src/com/vaadin/data/util/sqlcontainer/connection/J2EEConnectionPool.java
+++ b/src/com/vaadin/data/util/sqlcontainer/connection/J2EEConnectionPool.java
@@ -26,6 +26,7 @@ public class J2EEConnectionPool implements JDBCConnectionPool {
this.dataSourceJndiName = dataSourceJndiName;
}
+ @Override
public Connection reserveConnection() throws SQLException {
Connection conn = getDataSource().getConnection();
conn.setAutoCommit(false);
@@ -51,6 +52,7 @@ public class J2EEConnectionPool implements JDBCConnectionPool {
}
}
+ @Override
public void releaseConnection(Connection conn) {
if (conn != null) {
try {
@@ -62,6 +64,7 @@ public class J2EEConnectionPool implements JDBCConnectionPool {
}
}
+ @Override
public void destroy() {
dataSource = null;
}
diff --git a/src/com/vaadin/data/util/sqlcontainer/connection/SimpleJDBCConnectionPool.java b/src/com/vaadin/data/util/sqlcontainer/connection/SimpleJDBCConnectionPool.java
index 2a1068e786..21760014b9 100644
--- a/src/com/vaadin/data/util/sqlcontainer/connection/SimpleJDBCConnectionPool.java
+++ b/src/com/vaadin/data/util/sqlcontainer/connection/SimpleJDBCConnectionPool.java
@@ -81,6 +81,7 @@ public class SimpleJDBCConnectionPool implements JDBCConnectionPool {
initialized = true;
}
+ @Override
public synchronized Connection reserveConnection() throws SQLException {
if (!initialized) {
initializeConnections();
@@ -100,6 +101,7 @@ public class SimpleJDBCConnectionPool implements JDBCConnectionPool {
return c;
}
+ @Override
public synchronized void releaseConnection(Connection conn) {
if (conn == null || !initialized) {
return;
@@ -139,6 +141,7 @@ public class SimpleJDBCConnectionPool implements JDBCConnectionPool {
return c;
}
+ @Override
public void destroy() {
for (Connection c : availableConnections) {
try {
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/FreeformQuery.java b/src/com/vaadin/data/util/sqlcontainer/query/FreeformQuery.java
index 56a8455a16..ec986fab95 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/FreeformQuery.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/FreeformQuery.java
@@ -99,6 +99,7 @@ public class FreeformQuery implements QueryDelegate {
*
* {@inheritDoc}
*/
+ @Override
public int getCount() throws SQLException {
// First try the delegate
int count = countByDelegate();
@@ -187,6 +188,7 @@ public class FreeformQuery implements QueryDelegate {
*
* @see FreeformQueryDelegate#getQueryString(int, int)
*/
+ @Override
@SuppressWarnings("deprecation")
public ResultSet getResults(int offset, int pagelength) throws SQLException {
if (activeConnection == null) {
@@ -218,6 +220,7 @@ public class FreeformQuery implements QueryDelegate {
return rs;
}
+ @Override
@SuppressWarnings("deprecation")
public boolean implementationRespectsPagingLimits() {
if (delegate == null) {
@@ -251,6 +254,7 @@ public class FreeformQuery implements QueryDelegate {
* com.vaadin.data.util.sqlcontainer.query.QueryDelegate#setFilters(java
* .util.List)
*/
+ @Override
public void setFilters(List<Filter> filters)
throws UnsupportedOperationException {
if (delegate != null) {
@@ -268,6 +272,7 @@ public class FreeformQuery implements QueryDelegate {
* com.vaadin.data.util.sqlcontainer.query.QueryDelegate#setOrderBy(java
* .util.List)
*/
+ @Override
public void setOrderBy(List<OrderBy> orderBys)
throws UnsupportedOperationException {
if (delegate != null) {
@@ -285,6 +290,7 @@ public class FreeformQuery implements QueryDelegate {
* com.vaadin.data.util.sqlcontainer.query.QueryDelegate#storeRow(com.vaadin
* .data.util.sqlcontainer.RowItem)
*/
+ @Override
public int storeRow(RowItem row) throws SQLException {
if (activeConnection == null) {
throw new IllegalStateException("No transaction is active!");
@@ -307,6 +313,7 @@ public class FreeformQuery implements QueryDelegate {
* com.vaadin.data.util.sqlcontainer.query.QueryDelegate#removeRow(com.vaadin
* .data.util.sqlcontainer.RowItem)
*/
+ @Override
public boolean removeRow(RowItem row) throws SQLException {
if (activeConnection == null) {
throw new IllegalStateException("No transaction is active!");
@@ -328,6 +335,7 @@ public class FreeformQuery implements QueryDelegate {
* @see
* com.vaadin.data.util.sqlcontainer.query.QueryDelegate#beginTransaction()
*/
+ @Override
public synchronized void beginTransaction()
throws UnsupportedOperationException, SQLException {
if (activeConnection != null) {
@@ -342,6 +350,7 @@ public class FreeformQuery implements QueryDelegate {
*
* @see com.vaadin.data.util.sqlcontainer.query.QueryDelegate#commit()
*/
+ @Override
public synchronized void commit() throws UnsupportedOperationException,
SQLException {
if (activeConnection == null) {
@@ -359,6 +368,7 @@ public class FreeformQuery implements QueryDelegate {
*
* @see com.vaadin.data.util.sqlcontainer.query.QueryDelegate#rollback()
*/
+ @Override
public synchronized void rollback() throws UnsupportedOperationException,
SQLException {
if (activeConnection == null) {
@@ -376,6 +386,7 @@ public class FreeformQuery implements QueryDelegate {
* com.vaadin.data.util.sqlcontainer.query.QueryDelegate#getPrimaryKeyColumns
* ()
*/
+ @Override
public List<String> getPrimaryKeyColumns() {
return primaryKeyColumns;
}
@@ -403,6 +414,7 @@ public class FreeformQuery implements QueryDelegate {
* @see FreeformQueryDelegate#getContainsRowQueryString(Object...)
*
*/
+ @Override
@SuppressWarnings("deprecation")
public boolean containsRowWithKey(Object... keys) throws SQLException {
String query = null;
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/TableQuery.java b/src/com/vaadin/data/util/sqlcontainer/query/TableQuery.java
index 22ca30cc32..d0606704f7 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/TableQuery.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/TableQuery.java
@@ -111,6 +111,7 @@ public class TableQuery implements QueryDelegate,
*
* @see com.vaadin.addon.sqlcontainer.query.QueryDelegate#getCount()
*/
+ @Override
public int getCount() throws SQLException {
getLogger().log(Level.FINE, "Fetching count...");
StatementHelper sh = sqlGenerator.generateSelectQuery(tableName,
@@ -137,6 +138,7 @@ public class TableQuery implements QueryDelegate,
* @see com.vaadin.addon.sqlcontainer.query.QueryDelegate#getResults(int,
* int)
*/
+ @Override
public ResultSet getResults(int offset, int pagelength) throws SQLException {
StatementHelper sh;
/*
@@ -161,6 +163,7 @@ public class TableQuery implements QueryDelegate,
* @see com.vaadin.addon.sqlcontainer.query.QueryDelegate#
* implementationRespectsPagingLimits()
*/
+ @Override
public boolean implementationRespectsPagingLimits() {
return true;
}
@@ -172,6 +175,7 @@ public class TableQuery implements QueryDelegate,
* com.vaadin.addon.sqlcontainer.query.QueryDelegate#storeRow(com.vaadin
* .addon.sqlcontainer.RowItem)
*/
+ @Override
public int storeRow(RowItem row) throws UnsupportedOperationException,
SQLException {
if (row == null) {
@@ -254,6 +258,7 @@ public class TableQuery implements QueryDelegate,
* com.vaadin.addon.sqlcontainer.query.QueryDelegate#setFilters(java.util
* .List)
*/
+ @Override
public void setFilters(List<Filter> filters)
throws UnsupportedOperationException {
if (filters == null) {
@@ -270,6 +275,7 @@ public class TableQuery implements QueryDelegate,
* com.vaadin.addon.sqlcontainer.query.QueryDelegate#setOrderBy(java.util
* .List)
*/
+ @Override
public void setOrderBy(List<OrderBy> orderBys)
throws UnsupportedOperationException {
if (orderBys == null) {
@@ -284,6 +290,7 @@ public class TableQuery implements QueryDelegate,
*
* @see com.vaadin.addon.sqlcontainer.query.QueryDelegate#beginTransaction()
*/
+ @Override
public void beginTransaction() throws UnsupportedOperationException,
SQLException {
if (transactionOpen && activeConnection != null) {
@@ -301,6 +308,7 @@ public class TableQuery implements QueryDelegate,
*
* @see com.vaadin.addon.sqlcontainer.query.QueryDelegate#commit()
*/
+ @Override
public void commit() throws UnsupportedOperationException, SQLException {
if (transactionOpen && activeConnection != null) {
getLogger().log(Level.FINE, "DB -> commit");
@@ -329,6 +337,7 @@ public class TableQuery implements QueryDelegate,
*
* @see com.vaadin.addon.sqlcontainer.query.QueryDelegate#rollback()
*/
+ @Override
public void rollback() throws UnsupportedOperationException, SQLException {
if (transactionOpen && activeConnection != null) {
getLogger().log(Level.FINE, "DB -> rollback");
@@ -346,6 +355,7 @@ public class TableQuery implements QueryDelegate,
* @see
* com.vaadin.addon.sqlcontainer.query.QueryDelegate#getPrimaryKeyColumns()
*/
+ @Override
public List<String> getPrimaryKeyColumns() {
return Collections.unmodifiableList(primaryKeyColumns);
}
@@ -581,6 +591,7 @@ public class TableQuery implements QueryDelegate,
* com.vaadin.addon.sqlcontainer.query.QueryDelegate#removeRow(com.vaadin
* .addon.sqlcontainer.RowItem)
*/
+ @Override
public boolean removeRow(RowItem row) throws UnsupportedOperationException,
SQLException {
getLogger().log(Level.FINE,
@@ -604,6 +615,7 @@ public class TableQuery implements QueryDelegate,
* com.vaadin.addon.sqlcontainer.query.QueryDelegate#containsRowWithKey(
* java.lang.Object[])
*/
+ @Override
public boolean containsRowWithKey(Object... keys) throws SQLException {
ArrayList<Filter> filtersAndKeys = new ArrayList<Filter>();
if (filters != null) {
@@ -665,10 +677,12 @@ public class TableQuery implements QueryDelegate,
this.newId = newId;
}
+ @Override
public RowId getNewRowId() {
return newId;
}
+ @Override
public RowId getOldRowId() {
return oldId;
}
@@ -677,6 +691,7 @@ public class TableQuery implements QueryDelegate,
/**
* Adds RowIdChangeListener to this query
*/
+ @Override
public void addListener(RowIdChangeListener listener) {
if (rowIdChangeListeners == null) {
rowIdChangeListeners = new LinkedList<QueryDelegate.RowIdChangeListener>();
@@ -687,6 +702,7 @@ public class TableQuery implements QueryDelegate,
/**
* Removes the given RowIdChangeListener from this query
*/
+ @Override
public void removeListener(RowIdChangeListener listener) {
if (rowIdChangeListeners != null) {
rowIdChangeListeners.remove(listener);
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/generator/DefaultSQLGenerator.java b/src/com/vaadin/data/util/sqlcontainer/query/generator/DefaultSQLGenerator.java
index 24d283c9ab..6485330541 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/generator/DefaultSQLGenerator.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/generator/DefaultSQLGenerator.java
@@ -24,11 +24,25 @@ import com.vaadin.data.util.sqlcontainer.query.generator.filter.StringDecorator;
@SuppressWarnings("serial")
public class DefaultSQLGenerator implements SQLGenerator {
+ private Class<? extends StatementHelper> statementHelperClass = null;
+
public DefaultSQLGenerator() {
}
/**
+ * Create a new DefaultSqlGenerator instance that uses the given
+ * implementation of {@link StatementHelper}
+ *
+ * @param statementHelper
+ */
+ public DefaultSQLGenerator(
+ Class<? extends StatementHelper> statementHelperClazz) {
+ this();
+ statementHelperClass = statementHelperClazz;
+ }
+
+ /**
* Construct a DefaultSQLGenerator with the specified identifiers for start
* and end of quoted strings. The identifiers may be different depending on
* the database engine and it's settings.
@@ -44,6 +58,20 @@ public class DefaultSQLGenerator implements SQLGenerator {
quoteEnd));
}
+ /**
+ * Same as {@link #DefaultSQLGenerator(String, String)} but with support for
+ * custom {@link StatementHelper} implementation.
+ *
+ * @param quoteStart
+ * @param quoteEnd
+ * @param statementHelperClazz
+ */
+ public DefaultSQLGenerator(String quoteStart, String quoteEnd,
+ Class<? extends StatementHelper> statementHelperClazz) {
+ this(quoteStart, quoteEnd);
+ statementHelperClass = statementHelperClazz;
+ }
+
/*
* (non-Javadoc)
*
@@ -51,6 +79,7 @@ public class DefaultSQLGenerator implements SQLGenerator {
* generateSelectQuery(java.lang.String, java.util.List, java.util.List,
* int, int, java.lang.String)
*/
+ @Override
public StatementHelper generateSelectQuery(String tableName,
List<Filter> filters, List<OrderBy> orderBys, int offset,
int pagelength, String toSelect) {
@@ -58,7 +87,7 @@ public class DefaultSQLGenerator implements SQLGenerator {
throw new IllegalArgumentException("Table name must be given.");
}
toSelect = toSelect == null ? "*" : toSelect;
- StatementHelper sh = new StatementHelper();
+ StatementHelper sh = getStatementHelper();
StringBuffer query = new StringBuffer();
query.append("SELECT " + toSelect + " FROM ").append(
SQLUtil.escapeSQL(tableName));
@@ -84,6 +113,7 @@ public class DefaultSQLGenerator implements SQLGenerator {
* generateUpdateQuery(java.lang.String,
* com.vaadin.addon.sqlcontainer.RowItem)
*/
+ @Override
public StatementHelper generateUpdateQuery(String tableName, RowItem item) {
if (tableName == null || tableName.trim().equals("")) {
throw new IllegalArgumentException("Table name must be given.");
@@ -91,7 +121,7 @@ public class DefaultSQLGenerator implements SQLGenerator {
if (item == null) {
throw new IllegalArgumentException("Updated item must be given.");
}
- StatementHelper sh = new StatementHelper();
+ StatementHelper sh = getStatementHelper();
StringBuffer query = new StringBuffer();
query.append("UPDATE ").append(tableName).append(" SET");
@@ -133,6 +163,7 @@ public class DefaultSQLGenerator implements SQLGenerator {
* generateInsertQuery(java.lang.String,
* com.vaadin.addon.sqlcontainer.RowItem)
*/
+ @Override
public StatementHelper generateInsertQuery(String tableName, RowItem item) {
if (tableName == null || tableName.trim().equals("")) {
throw new IllegalArgumentException("Table name must be given.");
@@ -144,7 +175,7 @@ public class DefaultSQLGenerator implements SQLGenerator {
throw new IllegalArgumentException(
"Cannot generate an insert query for item already in database.");
}
- StatementHelper sh = new StatementHelper();
+ StatementHelper sh = getStatementHelper();
StringBuffer query = new StringBuffer();
query.append("INSERT INTO ").append(tableName).append(" (");
@@ -184,6 +215,7 @@ public class DefaultSQLGenerator implements SQLGenerator {
* generateDeleteQuery(java.lang.String,
* com.vaadin.addon.sqlcontainer.RowItem)
*/
+ @Override
public StatementHelper generateDeleteQuery(String tableName,
List<String> primaryKeyColumns, String versionColumn, RowItem item) {
if (tableName == null || tableName.trim().equals("")) {
@@ -197,7 +229,7 @@ public class DefaultSQLGenerator implements SQLGenerator {
throw new IllegalArgumentException(
"Valid keyColumnNames must be provided.");
}
- StatementHelper sh = new StatementHelper();
+ StatementHelper sh = getStatementHelper();
StringBuffer query = new StringBuffer();
query.append("DELETE FROM ").append(tableName).append(" WHERE ");
int count = 1;
@@ -308,4 +340,28 @@ public class DefaultSQLGenerator implements SQLGenerator {
}
return rowIdentifiers;
}
-} \ No newline at end of file
+
+ /**
+ * Returns the statement helper for the generator. Override this to handle
+ * platform specific data types.
+ *
+ * @see http://dev.vaadin.com/ticket/9148
+ * @return a new instance of the statement helper
+ */
+ protected StatementHelper getStatementHelper() {
+ if (statementHelperClass == null) {
+ return new StatementHelper();
+ }
+
+ try {
+ return statementHelperClass.newInstance();
+ } catch (InstantiationException e) {
+ throw new RuntimeException(
+ "Unable to instantiate custom StatementHelper", e);
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException(
+ "Unable to instantiate custom StatementHelper", e);
+ }
+ }
+
+}
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/generator/MSSQLGenerator.java b/src/com/vaadin/data/util/sqlcontainer/query/generator/MSSQLGenerator.java
index 52c13feecb..13ef1d0090 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/generator/MSSQLGenerator.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/generator/MSSQLGenerator.java
@@ -50,7 +50,7 @@ public class MSSQLGenerator extends DefaultSQLGenerator {
offset = pagelength > 1 ? ++offset : offset;
pagelength = pagelength > 1 ? --pagelength : pagelength;
toSelect = toSelect == null ? "*" : toSelect;
- StatementHelper sh = new StatementHelper();
+ StatementHelper sh = getStatementHelper();
StringBuffer query = new StringBuffer();
/* Row count request is handled here */
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/generator/OracleGenerator.java b/src/com/vaadin/data/util/sqlcontainer/query/generator/OracleGenerator.java
index 8e33211154..43a562d3a8 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/generator/OracleGenerator.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/generator/OracleGenerator.java
@@ -16,6 +16,10 @@ public class OracleGenerator extends DefaultSQLGenerator {
}
+ public OracleGenerator(Class<? extends StatementHelper> statementHelperClazz) {
+ super(statementHelperClazz);
+ }
+
/**
* Construct an OracleSQLGenerator with the specified identifiers for start
* and end of quoted strings. The identifiers may be different depending on
@@ -31,6 +35,11 @@ public class OracleGenerator extends DefaultSQLGenerator {
super(quoteStart, quoteEnd);
}
+ public OracleGenerator(String quoteStart, String quoteEnd,
+ Class<? extends StatementHelper> statementHelperClazz) {
+ super(quoteStart, quoteEnd, statementHelperClazz);
+ }
+
/*
* (non-Javadoc)
*
@@ -50,7 +59,7 @@ public class OracleGenerator extends DefaultSQLGenerator {
offset = pagelength > 1 ? ++offset : offset;
pagelength = pagelength > 1 ? --pagelength : pagelength;
toSelect = toSelect == null ? "*" : toSelect;
- StatementHelper sh = new StatementHelper();
+ StatementHelper sh = getStatementHelper();
StringBuffer query = new StringBuffer();
/* Row count request is handled here */
@@ -99,4 +108,5 @@ public class OracleGenerator extends DefaultSQLGenerator {
sh.setQueryString(query.toString());
return sh;
}
+
} \ No newline at end of file
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/generator/StatementHelper.java b/src/com/vaadin/data/util/sqlcontainer/query/generator/StatementHelper.java
index 3fd92e920d..f9458609c3 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/generator/StatementHelper.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/generator/StatementHelper.java
@@ -128,8 +128,32 @@ public class StatementHelper implements Serializable {
} else if (Timestamp.class.equals(dataTypes.get(i))) {
pstmt.setTimestamp(i + 1, null);
} else {
+
+ if (handleUnrecognizedTypeNullValue(i, pstmt, dataTypes)) {
+ return;
+ }
+
throw new SQLException("Data type not supported by SQLContainer: "
+ parameters.get(i).getClass().toString());
}
}
+
+ /**
+ * Handle unrecognized null values. Override this to handle null values for
+ * platform specific data types that are not handled by the default
+ * implementation of the {@link StatementHelper}.
+ *
+ * @param i
+ * @param pstmt
+ * @param dataTypes2
+ *
+ * @return true if handled, false otherwise
+ *
+ * @see {@link http://dev.vaadin.com/ticket/9148}
+ */
+ protected boolean handleUnrecognizedTypeNullValue(int i,
+ PreparedStatement pstmt, Map<Integer, Class<?>> dataTypes)
+ throws SQLException {
+ return false;
+ }
}
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/AndTranslator.java b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/AndTranslator.java
index 02d6671b60..251a543a8a 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/AndTranslator.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/AndTranslator.java
@@ -9,10 +9,12 @@ import com.vaadin.data.util.sqlcontainer.query.generator.StatementHelper;
public class AndTranslator implements FilterTranslator {
+ @Override
public boolean translatesFilter(Filter filter) {
return filter instanceof And;
}
+ @Override
public String getWhereStringForFilter(Filter filter, StatementHelper sh) {
return QueryBuilder.group(QueryBuilder.getJoinedFilterString(
((And) filter).getFilters(), "AND", sh));
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/BetweenTranslator.java b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/BetweenTranslator.java
index e8a87a82d8..4fcaf759ea 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/BetweenTranslator.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/BetweenTranslator.java
@@ -9,10 +9,12 @@ import com.vaadin.data.util.sqlcontainer.query.generator.StatementHelper;
public class BetweenTranslator implements FilterTranslator {
+ @Override
public boolean translatesFilter(Filter filter) {
return filter instanceof Between;
}
+ @Override
public String getWhereStringForFilter(Filter filter, StatementHelper sh) {
Between between = (Between) filter;
sh.addParameterValue(between.getStartValue());
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/CompareTranslator.java b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/CompareTranslator.java
index 72d72dd069..4293e1d630 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/CompareTranslator.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/CompareTranslator.java
@@ -9,10 +9,12 @@ import com.vaadin.data.util.sqlcontainer.query.generator.StatementHelper;
public class CompareTranslator implements FilterTranslator {
+ @Override
public boolean translatesFilter(Filter filter) {
return filter instanceof Compare;
}
+ @Override
public String getWhereStringForFilter(Filter filter, StatementHelper sh) {
Compare compare = (Compare) filter;
sh.addParameterValue(compare.getValue());
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/IsNullTranslator.java b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/IsNullTranslator.java
index 2593bbae57..a2a6cd2c09 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/IsNullTranslator.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/IsNullTranslator.java
@@ -9,10 +9,12 @@ import com.vaadin.data.util.sqlcontainer.query.generator.StatementHelper;
public class IsNullTranslator implements FilterTranslator {
+ @Override
public boolean translatesFilter(Filter filter) {
return filter instanceof IsNull;
}
+ @Override
public String getWhereStringForFilter(Filter filter, StatementHelper sh) {
IsNull in = (IsNull) filter;
return QueryBuilder.quote(in.getPropertyId()) + " IS NULL";
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/LikeTranslator.java b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/LikeTranslator.java
index b1c779ae73..25a85caec0 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/LikeTranslator.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/LikeTranslator.java
@@ -9,10 +9,12 @@ import com.vaadin.data.util.sqlcontainer.query.generator.StatementHelper;
public class LikeTranslator implements FilterTranslator {
+ @Override
public boolean translatesFilter(Filter filter) {
return filter instanceof Like;
}
+ @Override
public String getWhereStringForFilter(Filter filter, StatementHelper sh) {
Like like = (Like) filter;
if (like.isCaseSensitive()) {
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/NotTranslator.java b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/NotTranslator.java
index 7c1bba2bb5..5dfbe240e7 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/NotTranslator.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/NotTranslator.java
@@ -10,10 +10,12 @@ import com.vaadin.data.util.sqlcontainer.query.generator.StatementHelper;
public class NotTranslator implements FilterTranslator {
+ @Override
public boolean translatesFilter(Filter filter) {
return filter instanceof Not;
}
+ @Override
public String getWhereStringForFilter(Filter filter, StatementHelper sh) {
Not not = (Not) filter;
if (not.getFilter() instanceof IsNull) {
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/OrTranslator.java b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/OrTranslator.java
index 9724ee7944..2f0ed814e0 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/OrTranslator.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/OrTranslator.java
@@ -9,10 +9,12 @@ import com.vaadin.data.util.sqlcontainer.query.generator.StatementHelper;
public class OrTranslator implements FilterTranslator {
+ @Override
public boolean translatesFilter(Filter filter) {
return filter instanceof Or;
}
+ @Override
public String getWhereStringForFilter(Filter filter, StatementHelper sh) {
return QueryBuilder.group(QueryBuilder.getJoinedFilterString(
((Or) filter).getFilters(), "OR", sh));
diff --git a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/SimpleStringTranslator.java b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/SimpleStringTranslator.java
index 1aae68abc0..f108003535 100644
--- a/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/SimpleStringTranslator.java
+++ b/src/com/vaadin/data/util/sqlcontainer/query/generator/filter/SimpleStringTranslator.java
@@ -10,10 +10,12 @@ import com.vaadin.data.util.sqlcontainer.query.generator.StatementHelper;
public class SimpleStringTranslator implements FilterTranslator {
+ @Override
public boolean translatesFilter(Filter filter) {
return filter instanceof SimpleStringFilter;
}
+ @Override
public String getWhereStringForFilter(Filter filter, StatementHelper sh) {
SimpleStringFilter ssf = (SimpleStringFilter) filter;
// Create a Like filter based on the SimpleStringFilter and execute the
diff --git a/src/com/vaadin/data/validator/AbstractValidator.java b/src/com/vaadin/data/validator/AbstractValidator.java
index 27eaaca485..8febe5338a 100644
--- a/src/com/vaadin/data/validator/AbstractValidator.java
+++ b/src/com/vaadin/data/validator/AbstractValidator.java
@@ -84,6 +84,7 @@ public abstract class AbstractValidator<T> implements Validator {
*/
protected abstract boolean isValidValue(T value);
+ @Override
public void validate(Object value) throws InvalidValueException {
// isValidType ensures that value can safely be cast to TYPE
if (!isValidType(value) || !isValidValue((T) value)) {
diff --git a/src/com/vaadin/data/validator/BeanValidator.java b/src/com/vaadin/data/validator/BeanValidator.java
index 817df85248..816ff79b83 100644
--- a/src/com/vaadin/data/validator/BeanValidator.java
+++ b/src/com/vaadin/data/validator/BeanValidator.java
@@ -67,10 +67,12 @@ public class BeanValidator implements Validator {
this.descriptor = descriptor;
}
+ @Override
public ConstraintDescriptor<?> getConstraintDescriptor() {
return descriptor;
}
+ @Override
public Object getValidatedValue() {
return value;
}
@@ -96,6 +98,7 @@ public class BeanValidator implements Validator {
*
* @see com.vaadin.data.Validator#validate(java.lang.Object)
*/
+ @Override
public void validate(final Object value) throws InvalidValueException {
Set<?> violations = getJavaxBeanValidator().validateValue(beanClass,
propertyName, value);
diff --git a/src/com/vaadin/data/validator/CompositeValidator.java b/src/com/vaadin/data/validator/CompositeValidator.java
index 956d773032..cad31c9d4d 100644
--- a/src/com/vaadin/data/validator/CompositeValidator.java
+++ b/src/com/vaadin/data/validator/CompositeValidator.java
@@ -101,6 +101,7 @@ public class CompositeValidator implements Validator {
* @throws Validator.InvalidValueException
* if the value is not valid.
*/
+ @Override
public void validate(Object value) throws Validator.InvalidValueException {
switch (mode) {
case AND:
diff --git a/src/com/vaadin/data/validator/NullValidator.java b/src/com/vaadin/data/validator/NullValidator.java
index 62b2580d48..551d88c776 100644
--- a/src/com/vaadin/data/validator/NullValidator.java
+++ b/src/com/vaadin/data/validator/NullValidator.java
@@ -43,6 +43,7 @@ public class NullValidator implements Validator {
* @throws Validator.InvalidValueException
* if the value was invalid.
*/
+ @Override
public void validate(Object value) throws Validator.InvalidValueException {
if ((onlyNullAllowed && value != null)
|| (!onlyNullAllowed && value == null)) {
diff --git a/src/com/vaadin/event/ActionManager.java b/src/com/vaadin/event/ActionManager.java
index 08e9c85043..64fdeea69b 100644
--- a/src/com/vaadin/event/ActionManager.java
+++ b/src/com/vaadin/event/ActionManager.java
@@ -75,6 +75,7 @@ public class ActionManager implements Action.Container, Action.Handler,
requestRepaint(); // this goes to the new viewer
}
+ @Override
public <T extends Action & Action.Listener> void addAction(T action) {
if (ownActions == null) {
ownActions = new HashSet<Action>();
@@ -84,6 +85,7 @@ public class ActionManager implements Action.Container, Action.Handler,
}
}
+ @Override
public <T extends Action & Action.Listener> void removeAction(T action) {
if (ownActions != null) {
if (ownActions.remove(action)) {
@@ -92,6 +94,7 @@ public class ActionManager implements Action.Container, Action.Handler,
}
}
+ @Override
public void addActionHandler(Handler actionHandler) {
if (actionHandler == this) {
// don't add the actionHandler to itself
@@ -109,6 +112,7 @@ public class ActionManager implements Action.Container, Action.Handler,
}
}
+ @Override
public void removeActionHandler(Action.Handler actionHandler) {
if (actionHandlers != null && actionHandlers.contains(actionHandler)) {
@@ -206,6 +210,7 @@ public class ActionManager implements Action.Container, Action.Handler,
}
}
+ @Override
public Action[] getActions(Object target, Object sender) {
HashSet<Action> actions = new HashSet<Action>();
if (ownActions != null) {
@@ -226,6 +231,7 @@ public class ActionManager implements Action.Container, Action.Handler,
return actions.toArray(new Action[actions.size()]);
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
if (actionHandlers != null) {
Handler[] array = actionHandlers.toArray(new Handler[actionHandlers
diff --git a/src/com/vaadin/event/EventRouter.java b/src/com/vaadin/event/EventRouter.java
index 49b29de9bb..90c080b860 100644
--- a/src/com/vaadin/event/EventRouter.java
+++ b/src/com/vaadin/event/EventRouter.java
@@ -35,6 +35,7 @@ public class EventRouter implements MethodEventSource {
* events generated by this component. Don't add a JavaDoc comment here, we
* use the default documentation from implemented interface.
*/
+ @Override
public void addListener(Class<?> eventType, Object object, Method method) {
if (listenerList == null) {
listenerList = new LinkedHashSet<ListenerMethod>();
@@ -47,6 +48,7 @@ public class EventRouter implements MethodEventSource {
* listen events generated by this component. Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public void addListener(Class<?> eventType, Object object, String methodName) {
if (listenerList == null) {
listenerList = new LinkedHashSet<ListenerMethod>();
@@ -59,6 +61,7 @@ public class EventRouter implements MethodEventSource {
* a JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public void removeListener(Class<?> eventType, Object target) {
if (listenerList != null) {
final Iterator<ListenerMethod> i = listenerList.iterator();
@@ -77,6 +80,7 @@ public class EventRouter implements MethodEventSource {
* Don't add a JavaDoc comment here, we use the default documentation from
* implemented interface.
*/
+ @Override
public void removeListener(Class<?> eventType, Object target, Method method) {
if (listenerList != null) {
final Iterator<ListenerMethod> i = listenerList.iterator();
@@ -95,6 +99,7 @@ public class EventRouter implements MethodEventSource {
* Don't add a JavaDoc comment here, we use the default documentation from
* implemented interface.
*/
+ @Override
public void removeListener(Class<?> eventType, Object target,
String methodName) {
diff --git a/src/com/vaadin/event/FieldEvents.java b/src/com/vaadin/event/FieldEvents.java
index 20e9fabb36..8f101c1913 100644
--- a/src/com/vaadin/event/FieldEvents.java
+++ b/src/com/vaadin/event/FieldEvents.java
@@ -7,8 +7,8 @@ package com.vaadin.event;
import java.io.Serializable;
import java.lang.reflect.Method;
-import com.vaadin.terminal.gwt.client.EventId;
-import com.vaadin.terminal.gwt.client.communication.FieldRpc.FocusAndBlurServerRpc;
+import com.vaadin.shared.EventId;
+import com.vaadin.shared.communication.FieldRpc.FocusAndBlurServerRpc;
import com.vaadin.tools.ReflectTools;
import com.vaadin.ui.Component;
import com.vaadin.ui.Component.Event;
@@ -261,10 +261,12 @@ public interface FieldEvents {
protected abstract void fireEvent(Event event);
+ @Override
public void blur() {
fireEvent(new BlurEvent(component));
}
+ @Override
public void focus() {
fireEvent(new FocusEvent(component));
}
diff --git a/src/com/vaadin/event/ItemClickEvent.java b/src/com/vaadin/event/ItemClickEvent.java
index bb41398e8d..0aa0e106c5 100644
--- a/src/com/vaadin/event/ItemClickEvent.java
+++ b/src/com/vaadin/event/ItemClickEvent.java
@@ -9,7 +9,7 @@ import java.lang.reflect.Method;
import com.vaadin.data.Item;
import com.vaadin.data.Property;
import com.vaadin.event.MouseEvents.ClickEvent;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
+import com.vaadin.shared.MouseEventDetails;
import com.vaadin.ui.Component;
/**
diff --git a/src/com/vaadin/event/LayoutEvents.java b/src/com/vaadin/event/LayoutEvents.java
index 960fff00c0..602440ea07 100644
--- a/src/com/vaadin/event/LayoutEvents.java
+++ b/src/com/vaadin/event/LayoutEvents.java
@@ -7,8 +7,8 @@ import java.io.Serializable;
import java.lang.reflect.Method;
import com.vaadin.event.MouseEvents.ClickEvent;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.MouseEventDetails;
import com.vaadin.tools.ReflectTools;
import com.vaadin.ui.Component;
import com.vaadin.ui.ComponentContainer;
diff --git a/src/com/vaadin/event/MouseEvents.java b/src/com/vaadin/event/MouseEvents.java
index 2327b78f64..fafd44be89 100644
--- a/src/com/vaadin/event/MouseEvents.java
+++ b/src/com/vaadin/event/MouseEvents.java
@@ -6,7 +6,7 @@ package com.vaadin.event;
import java.lang.reflect.Method;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
+import com.vaadin.shared.MouseEventDetails;
import com.vaadin.tools.ReflectTools;
import com.vaadin.ui.Component;
diff --git a/src/com/vaadin/event/ShortcutListener.java b/src/com/vaadin/event/ShortcutListener.java
index 0656ed0e1f..b760cfabe6 100644
--- a/src/com/vaadin/event/ShortcutListener.java
+++ b/src/com/vaadin/event/ShortcutListener.java
@@ -28,5 +28,6 @@ public abstract class ShortcutListener extends ShortcutAction implements
super(shorthandCaption);
}
+ @Override
abstract public void handleAction(Object sender, Object target);
}
diff --git a/src/com/vaadin/event/TransferableImpl.java b/src/com/vaadin/event/TransferableImpl.java
index 621ea95bc1..4c973571f7 100644
--- a/src/com/vaadin/event/TransferableImpl.java
+++ b/src/com/vaadin/event/TransferableImpl.java
@@ -24,18 +24,22 @@ public class TransferableImpl implements Transferable {
this.rawVariables = rawVariables;
}
+ @Override
public Component getSourceComponent() {
return sourceComponent;
}
+ @Override
public Object getData(String dataFlavor) {
return rawVariables.get(dataFlavor);
}
+ @Override
public void setData(String dataFlavor, Object value) {
rawVariables.put(dataFlavor, value);
}
+ @Override
public Collection<String> getDataFlavors() {
return rawVariables.keySet();
}
diff --git a/src/com/vaadin/event/dd/TargetDetailsImpl.java b/src/com/vaadin/event/dd/TargetDetailsImpl.java
index 27afc32680..4a459777ed 100644
--- a/src/com/vaadin/event/dd/TargetDetailsImpl.java
+++ b/src/com/vaadin/event/dd/TargetDetailsImpl.java
@@ -29,6 +29,7 @@ public class TargetDetailsImpl implements TargetDetails {
this.dropTarget = dropTarget;
}
+ @Override
public Object getData(String key) {
return data.get(key);
}
@@ -37,6 +38,7 @@ public class TargetDetailsImpl implements TargetDetails {
return data.put(key, value);
}
+ @Override
public DropTarget getTarget() {
return dropTarget;
}
diff --git a/src/com/vaadin/event/dd/acceptcriteria/AcceptAll.java b/src/com/vaadin/event/dd/acceptcriteria/AcceptAll.java
index 52ffab9263..1457ea9df3 100644
--- a/src/com/vaadin/event/dd/acceptcriteria/AcceptAll.java
+++ b/src/com/vaadin/event/dd/acceptcriteria/AcceptAll.java
@@ -29,6 +29,7 @@ public final class AcceptAll extends ClientSideCriterion {
return singleton;
}
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
return true;
}
diff --git a/src/com/vaadin/event/dd/acceptcriteria/And.java b/src/com/vaadin/event/dd/acceptcriteria/And.java
index a0340a9cdb..4122d67160 100644
--- a/src/com/vaadin/event/dd/acceptcriteria/And.java
+++ b/src/com/vaadin/event/dd/acceptcriteria/And.java
@@ -41,6 +41,7 @@ public class And extends ClientSideCriterion {
}
}
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
for (ClientSideCriterion crit : criteria) {
if (!crit.accept(dragEvent)) {
diff --git a/src/com/vaadin/event/dd/acceptcriteria/ClientSideCriterion.java b/src/com/vaadin/event/dd/acceptcriteria/ClientSideCriterion.java
index 0f4ae2990c..7d2c42ecb0 100644
--- a/src/com/vaadin/event/dd/acceptcriteria/ClientSideCriterion.java
+++ b/src/com/vaadin/event/dd/acceptcriteria/ClientSideCriterion.java
@@ -33,10 +33,12 @@ public abstract class ClientSideCriterion implements Serializable,
* com.vaadin.event.dd.acceptCriteria.AcceptCriterion#isClientSideVerifiable
* ()
*/
+ @Override
public final boolean isClientSideVerifiable() {
return true;
}
+ @Override
public void paint(PaintTarget target) throws PaintException {
target.startTag("-ac");
target.addAttribute("name", getIdentifier());
@@ -51,6 +53,7 @@ public abstract class ClientSideCriterion implements Serializable,
return getClass().getCanonicalName();
}
+ @Override
public final void paintResponse(PaintTarget target) throws PaintException {
// NOP, nothing to do as this is client side verified criterion
}
diff --git a/src/com/vaadin/event/dd/acceptcriteria/ContainsDataFlavor.java b/src/com/vaadin/event/dd/acceptcriteria/ContainsDataFlavor.java
index 7eb04d9647..4c52698a4a 100644
--- a/src/com/vaadin/event/dd/acceptcriteria/ContainsDataFlavor.java
+++ b/src/com/vaadin/event/dd/acceptcriteria/ContainsDataFlavor.java
@@ -39,6 +39,7 @@ public class ContainsDataFlavor extends ClientSideCriterion {
target.addAttribute("p", dataFlavorId);
}
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
return dragEvent.getTransferable().getDataFlavors()
.contains(dataFlavorId);
diff --git a/src/com/vaadin/event/dd/acceptcriteria/Not.java b/src/com/vaadin/event/dd/acceptcriteria/Not.java
index 85ff7e9bc9..1ed40a324d 100644
--- a/src/com/vaadin/event/dd/acceptcriteria/Not.java
+++ b/src/com/vaadin/event/dd/acceptcriteria/Not.java
@@ -31,6 +31,7 @@ public class Not extends ClientSideCriterion {
acceptCriterion.paint(target);
}
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
return !acceptCriterion.accept(dragEvent);
}
diff --git a/src/com/vaadin/event/dd/acceptcriteria/Or.java b/src/com/vaadin/event/dd/acceptcriteria/Or.java
index 077e9114d8..6ad45c54af 100644
--- a/src/com/vaadin/event/dd/acceptcriteria/Or.java
+++ b/src/com/vaadin/event/dd/acceptcriteria/Or.java
@@ -39,6 +39,7 @@ public class Or extends ClientSideCriterion {
}
}
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
for (AcceptCriterion crit : criteria) {
if (crit.accept(dragEvent)) {
diff --git a/src/com/vaadin/event/dd/acceptcriteria/ServerSideCriterion.java b/src/com/vaadin/event/dd/acceptcriteria/ServerSideCriterion.java
index 77840bc94f..47f06d434c 100644
--- a/src/com/vaadin/event/dd/acceptcriteria/ServerSideCriterion.java
+++ b/src/com/vaadin/event/dd/acceptcriteria/ServerSideCriterion.java
@@ -31,10 +31,12 @@ public abstract class ServerSideCriterion implements Serializable,
private static final long serialVersionUID = 2128510128911628902L;
+ @Override
public final boolean isClientSideVerifiable() {
return false;
}
+ @Override
public void paint(PaintTarget target) throws PaintException {
target.startTag("-ac");
target.addAttribute("name", getIdentifier());
@@ -45,6 +47,7 @@ public abstract class ServerSideCriterion implements Serializable,
public void paintContent(PaintTarget target) {
}
+ @Override
public void paintResponse(PaintTarget target) throws PaintException {
}
diff --git a/src/com/vaadin/event/dd/acceptcriteria/SourceIs.java b/src/com/vaadin/event/dd/acceptcriteria/SourceIs.java
index d7c47dc915..d4fd20c952 100644
--- a/src/com/vaadin/event/dd/acceptcriteria/SourceIs.java
+++ b/src/com/vaadin/event/dd/acceptcriteria/SourceIs.java
@@ -49,6 +49,7 @@ public class SourceIs extends ClientSideCriterion {
target.addAttribute("c", paintedComponents);
}
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
if (dragEvent.getTransferable() instanceof TransferableImpl) {
Component sourceComponent = ((TransferableImpl) dragEvent
diff --git a/src/com/vaadin/event/dd/acceptcriteria/SourceIsTarget.java b/src/com/vaadin/event/dd/acceptcriteria/SourceIsTarget.java
index 454159b3da..a644b858e2 100644
--- a/src/com/vaadin/event/dd/acceptcriteria/SourceIsTarget.java
+++ b/src/com/vaadin/event/dd/acceptcriteria/SourceIsTarget.java
@@ -33,6 +33,7 @@ public class SourceIsTarget extends ClientSideCriterion {
private SourceIsTarget() {
}
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
if (dragEvent.getTransferable() instanceof TransferableImpl) {
Component sourceComponent = ((TransferableImpl) dragEvent
diff --git a/src/com/vaadin/event/dd/acceptcriteria/TargetDetailIs.java b/src/com/vaadin/event/dd/acceptcriteria/TargetDetailIs.java
index 641fddc3ea..5df8f3f618 100644
--- a/src/com/vaadin/event/dd/acceptcriteria/TargetDetailIs.java
+++ b/src/com/vaadin/event/dd/acceptcriteria/TargetDetailIs.java
@@ -58,6 +58,7 @@ public class TargetDetailIs extends ClientSideCriterion {
}
}
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
Object data = dragEvent.getTargetDetails().getData(propertyName);
return value.equals(data);
diff --git a/src/com/vaadin/external/json/JSONException.java b/src/com/vaadin/external/json/JSONException.java
index fecc38974e..895ffcb457 100644
--- a/src/com/vaadin/external/json/JSONException.java
+++ b/src/com/vaadin/external/json/JSONException.java
@@ -25,6 +25,7 @@ public class JSONException extends Exception {
this.cause = cause;
}
+ @Override
public Throwable getCause() {
return this.cause;
}
diff --git a/src/com/vaadin/external/json/JSONStringer.java b/src/com/vaadin/external/json/JSONStringer.java
index e4ccc8e195..ae905cb15f 100644
--- a/src/com/vaadin/external/json/JSONStringer.java
+++ b/src/com/vaadin/external/json/JSONStringer.java
@@ -77,6 +77,7 @@ public class JSONStringer extends JSONWriter {
*
* @return The JSON text.
*/
+ @Override
public String toString() {
return this.mode == 'd' ? this.writer.toString() : null;
}
diff --git a/src/com/vaadin/navigator/Navigator.java b/src/com/vaadin/navigator/Navigator.java
index 3ff727b504..1813301fe6 100644
--- a/src/com/vaadin/navigator/Navigator.java
+++ b/src/com/vaadin/navigator/Navigator.java
@@ -14,6 +14,7 @@ import com.vaadin.terminal.Page;
import com.vaadin.terminal.Page.FragmentChangedEvent;
import com.vaadin.terminal.Page.FragmentChangedListener;
import com.vaadin.ui.Component;
+import com.vaadin.ui.ComponentContainer;
import com.vaadin.ui.CssLayout;
import com.vaadin.ui.CustomComponent;
@@ -53,6 +54,7 @@ public class Navigator implements Serializable {
setHeight("0px");
}
+ @Override
public void navigateTo(String fragmentParameters) {
// nothing to do
}
@@ -87,14 +89,17 @@ public class Navigator implements Serializable {
page.addListener(this);
}
+ @Override
public String getFragment() {
return page.getFragment();
}
+ @Override
public void setFragment(String fragment) {
page.setFragment(fragment, false);
}
+ @Override
public void fragmentChanged(FragmentChangedEvent event) {
UriFragmentManager.this.navigator.navigateTo(getFragment());
}
@@ -121,6 +126,7 @@ public class Navigator implements Serializable {
setSizeFull();
}
+ @Override
public void showView(View view) {
if (view instanceof Component) {
setCompositionRoot((Component) view);
@@ -132,6 +138,41 @@ public class Navigator implements Serializable {
}
/**
+ * View display that replaces the contents of a {@link ComponentContainer}
+ * with the active {@link View}.
+ *
+ * All components of the container are removed before adding the new view to
+ * it.
+ *
+ * This display only supports views that are {@link Component}s themselves.
+ * Attempting to display a view that is not a component causes an exception
+ * to be thrown.
+ */
+ public static class ComponentContainerViewDisplay implements ViewDisplay {
+
+ private final ComponentContainer container;
+
+ /**
+ * Create new {@link ViewDisplay} that updates a
+ * {@link ComponentContainer} to show the view.
+ */
+ public ComponentContainerViewDisplay(ComponentContainer container) {
+ this.container = container;
+ }
+
+ @Override
+ public void showView(View view) {
+ if (view instanceof Component) {
+ container.removeAllComponents();
+ container.addComponent((Component) view);
+ } else {
+ throw new IllegalArgumentException("View is not a component: "
+ + view);
+ }
+ }
+ }
+
+ /**
* View provider which supports mapping a single view name to a single
* pre-initialized view instance.
*
@@ -155,6 +196,7 @@ public class Navigator implements Serializable {
this.view = view;
}
+ @Override
public String getViewName(String viewAndParameters) {
if (null == viewAndParameters) {
return null;
@@ -165,6 +207,7 @@ public class Navigator implements Serializable {
return null;
}
+ @Override
public View getView(String viewName) {
if (this.viewName.equals(viewName)) {
return view;
@@ -215,6 +258,7 @@ public class Navigator implements Serializable {
this.viewClass = viewClass;
}
+ @Override
public String getViewName(String viewAndParameters) {
if (null == viewAndParameters) {
return null;
@@ -226,6 +270,7 @@ public class Navigator implements Serializable {
return null;
}
+ @Override
public View getView(String viewName) {
if (this.viewName.equals(viewName)) {
try {
@@ -268,31 +313,56 @@ public class Navigator implements Serializable {
private List<ViewProvider> providers = new LinkedList<ViewProvider>();
/**
- * Create a navigator that is tracking the active view using URI fragments.
- *
- * @param page
- * whose URI fragments are used
- * @param display
- * where to display the views
+ * Create a navigator that is tracking the active view using URI fragments
+ * of the current {@link Page} and replacing the contents of a
+ * {@link ComponentContainer} with the active view.
+ *
+ * In case the container is not on the current page, use another
+ * {@link Navigator#Navigator(Page, ViewDisplay)} with an explicitly created
+ * {@link ComponentContainerViewDisplay}.
+ *
+ * All components of the container are removed each time before adding the
+ * active {@link View}. Views must implement {@link Component} when using
+ * this constructor.
+ *
+ * <p>
+ * After all {@link View}s and {@link ViewProvider}s have been registered,
+ * the application should trigger navigation to the current fragment using
+ * e.g.
+ *
+ * <pre>
+ * navigator.navigateTo(Page.getCurrent().getFragment());
+ * </pre>
+ *
+ * @param container
+ * ComponentContainer whose contents should be replaced with the
+ * active view on view change
*/
- public Navigator(Page page, ViewDisplay display) {
- this.display = display;
- fragmentManager = new UriFragmentManager(page, this);
- navigateTo(page.getFragment());
+ public Navigator(ComponentContainer container) {
+ display = new ComponentContainerViewDisplay(container);
+ fragmentManager = new UriFragmentManager(Page.getCurrent(), this);
}
/**
* Create a navigator that is tracking the active view using URI fragments.
- * By default, a {@link SimpleViewDisplay} is used and can be obtained using
- * {@link #getDisplay()}.
+ *
+ * <p>
+ * After all {@link View}s and {@link ViewProvider}s have been registered,
+ * the application should trigger navigation to the current fragment using
+ * e.g.
+ *
+ * <pre>
+ * navigator.navigateTo(Page.getCurrent().getFragment());
+ * </pre>
*
* @param page
* whose URI fragments are used
+ * @param display
+ * where to display the views
*/
- public Navigator(Page page) {
- display = new SimpleViewDisplay();
+ public Navigator(Page page, ViewDisplay display) {
+ this.display = display;
fragmentManager = new UriFragmentManager(page, this);
- navigateTo(page.getFragment());
}
/**
diff --git a/src/com/vaadin/terminal/gwt/client/AbstractFieldState.java b/src/com/vaadin/shared/AbstractFieldState.java
index 3a66a01f23..33fc0ff92c 100644
--- a/src/com/vaadin/terminal/gwt/client/AbstractFieldState.java
+++ b/src/com/vaadin/shared/AbstractFieldState.java
@@ -1,9 +1,9 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client;
+package com.vaadin.shared;
-import com.vaadin.terminal.gwt.client.ui.TabIndexState;
+import com.vaadin.shared.ui.TabIndexState;
import com.vaadin.ui.AbstractField;
/**
@@ -121,6 +121,7 @@ public class AbstractFieldState extends ComponentState implements TabIndexState
*
* @see com.vaadin.terminal.gwt.client.ComponentState#getTabIndex()
*/
+ @Override
public int getTabIndex() {
return tabIndex;
}
@@ -130,6 +131,7 @@ public class AbstractFieldState extends ComponentState implements TabIndexState
*
* @see com.vaadin.terminal.gwt.client.ui.TabIndexState#setTabIndex(int)
*/
+ @Override
public void setTabIndex(int tabIndex) {
this.tabIndex = tabIndex;
}
diff --git a/src/com/vaadin/terminal/gwt/client/ComponentState.java b/src/com/vaadin/shared/ComponentState.java
index a603368f44..c4269de676 100644
--- a/src/com/vaadin/terminal/gwt/client/ComponentState.java
+++ b/src/com/vaadin/shared/ComponentState.java
@@ -2,14 +2,14 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client;
+package com.vaadin.shared;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
-import com.vaadin.terminal.gwt.client.communication.URLReference;
+import com.vaadin.shared.communication.SharedState;
+import com.vaadin.shared.communication.URLReference;
import com.vaadin.ui.Component;
/**
diff --git a/src/com/vaadin/terminal/gwt/client/Connector.java b/src/com/vaadin/shared/Connector.java
index 9b2fcf61f1..e09d4d51b7 100644
--- a/src/com/vaadin/terminal/gwt/client/Connector.java
+++ b/src/com/vaadin/shared/Connector.java
@@ -1,11 +1,12 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client;
+package com.vaadin.shared;
import java.io.Serializable;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
+import com.vaadin.shared.communication.SharedState;
+import com.vaadin.terminal.gwt.client.ServerConnector;
import com.vaadin.terminal.gwt.server.ClientConnector;
/**
diff --git a/src/com/vaadin/terminal/gwt/client/EventId.java b/src/com/vaadin/shared/EventId.java
index d3ef2e4e7e..616d37dcd0 100644
--- a/src/com/vaadin/terminal/gwt/client/EventId.java
+++ b/src/com/vaadin/shared/EventId.java
@@ -1,7 +1,7 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client;
+package com.vaadin.shared;
public interface EventId {
public static final String BLUR = "blur";
diff --git a/src/com/vaadin/shared/JavaScriptConnectorState.java b/src/com/vaadin/shared/JavaScriptConnectorState.java
new file mode 100644
index 0000000000..8371623e68
--- /dev/null
+++ b/src/com/vaadin/shared/JavaScriptConnectorState.java
@@ -0,0 +1,14 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.shared;
+
+import java.util.Map;
+import java.util.Set;
+
+public interface JavaScriptConnectorState {
+ public Set<String> getCallbackNames();
+
+ public Map<String, Set<String>> getRpcInterfaces();
+} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/JavaScriptExtensionState.java b/src/com/vaadin/shared/JavaScriptExtensionState.java
index e7bfbc4bb2..35a7213239 100644
--- a/src/com/vaadin/terminal/gwt/client/JavaScriptExtensionState.java
+++ b/src/com/vaadin/shared/JavaScriptExtensionState.java
@@ -2,15 +2,14 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client;
+package com.vaadin.shared;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import com.vaadin.terminal.gwt.client.JavaScriptConnectorHelper.JavaScriptConnectorState;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
+import com.vaadin.shared.communication.SharedState;
public class JavaScriptExtensionState extends SharedState implements
JavaScriptConnectorState {
@@ -18,6 +17,7 @@ public class JavaScriptExtensionState extends SharedState implements
private Set<String> callbackNames = new HashSet<String>();
private Map<String, Set<String>> rpcInterfaces = new HashMap<String, Set<String>>();
+ @Override
public Set<String> getCallbackNames() {
return callbackNames;
}
@@ -26,6 +26,7 @@ public class JavaScriptExtensionState extends SharedState implements
this.callbackNames = callbackNames;
}
+ @Override
public Map<String, Set<String>> getRpcInterfaces() {
return rpcInterfaces;
}
diff --git a/src/com/vaadin/terminal/gwt/client/MouseEventDetails.java b/src/com/vaadin/shared/MouseEventDetails.java
index f5ff707eed..bc7ede4c60 100644
--- a/src/com/vaadin/terminal/gwt/client/MouseEventDetails.java
+++ b/src/com/vaadin/shared/MouseEventDetails.java
@@ -1,7 +1,7 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client;
+package com.vaadin.shared;
import java.io.Serializable;
diff --git a/src/com/vaadin/terminal/gwt/client/VBrowserDetails.java b/src/com/vaadin/shared/VBrowserDetails.java
index 6e0417149c..0cd9fe6436 100644
--- a/src/com/vaadin/terminal/gwt/client/VBrowserDetails.java
+++ b/src/com/vaadin/shared/VBrowserDetails.java
@@ -1,10 +1,11 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client;
+package com.vaadin.shared;
import java.io.Serializable;
+import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.server.WebBrowser;
/**
diff --git a/src/com/vaadin/terminal/gwt/client/communication/ClientRpc.java b/src/com/vaadin/shared/communication/ClientRpc.java
index 45dbe69454..d49bc05260 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/ClientRpc.java
+++ b/src/com/vaadin/shared/communication/ClientRpc.java
@@ -2,7 +2,7 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.communication;
+package com.vaadin.shared.communication;
import java.io.Serializable;
diff --git a/src/com/vaadin/terminal/gwt/client/communication/FieldRpc.java b/src/com/vaadin/shared/communication/FieldRpc.java
index de464f1fb9..33e6f01028 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/FieldRpc.java
+++ b/src/com/vaadin/shared/communication/FieldRpc.java
@@ -1,7 +1,7 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.communication;
+package com.vaadin.shared.communication;
public class FieldRpc {
public interface FocusServerRpc extends ServerRpc {
diff --git a/src/com/vaadin/terminal/gwt/client/communication/MethodInvocation.java b/src/com/vaadin/shared/communication/MethodInvocation.java
index e61775a640..589c7b5d9b 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/MethodInvocation.java
+++ b/src/com/vaadin/shared/communication/MethodInvocation.java
@@ -2,7 +2,7 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.communication;
+package com.vaadin.shared.communication;
import java.io.Serializable;
import java.util.Arrays;
diff --git a/src/com/vaadin/terminal/gwt/client/communication/ServerRpc.java b/src/com/vaadin/shared/communication/ServerRpc.java
index 664c4a391c..5ee42a4bef 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/ServerRpc.java
+++ b/src/com/vaadin/shared/communication/ServerRpc.java
@@ -2,7 +2,7 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.communication;
+package com.vaadin.shared.communication;
import java.io.Serializable;
diff --git a/src/com/vaadin/terminal/gwt/client/communication/SharedState.java b/src/com/vaadin/shared/communication/SharedState.java
index b087907f9e..2882b1ed07 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/SharedState.java
+++ b/src/com/vaadin/shared/communication/SharedState.java
@@ -2,11 +2,11 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.communication;
+package com.vaadin.shared.communication;
import java.io.Serializable;
-import com.vaadin.terminal.gwt.client.Connector;
+import com.vaadin.shared.Connector;
import com.vaadin.terminal.gwt.client.ServerConnector;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
diff --git a/src/com/vaadin/terminal/gwt/client/communication/URLReference.java b/src/com/vaadin/shared/communication/URLReference.java
index 569c4eff47..a4868cdb57 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/URLReference.java
+++ b/src/com/vaadin/shared/communication/URLReference.java
@@ -1,7 +1,7 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.communication;
+package com.vaadin.shared.communication;
import java.io.Serializable;
diff --git a/src/com/vaadin/terminal/gwt/client/communication/UidlValue.java b/src/com/vaadin/shared/communication/UidlValue.java
index 2a21074037..0314488ef3 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/UidlValue.java
+++ b/src/com/vaadin/shared/communication/UidlValue.java
@@ -2,7 +2,7 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.communication;
+package com.vaadin.shared.communication;
import java.io.Serializable;
diff --git a/src/com/vaadin/terminal/gwt/client/extensions/javascriptmanager/ExecuteJavaScriptRpc.java b/src/com/vaadin/shared/extension/javascriptmanager/ExecuteJavaScriptRpc.java
index f1185586d5..097913c37f 100644
--- a/src/com/vaadin/terminal/gwt/client/extensions/javascriptmanager/ExecuteJavaScriptRpc.java
+++ b/src/com/vaadin/shared/extension/javascriptmanager/ExecuteJavaScriptRpc.java
@@ -2,9 +2,9 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.extensions.javascriptmanager;
+package com.vaadin.shared.extension.javascriptmanager;
-import com.vaadin.terminal.gwt.client.communication.ClientRpc;
+import com.vaadin.shared.communication.ClientRpc;
public interface ExecuteJavaScriptRpc extends ClientRpc {
public void executeJavaScript(String script);
diff --git a/src/com/vaadin/terminal/gwt/client/extensions/javascriptmanager/JavaScriptManagerState.java b/src/com/vaadin/shared/extension/javascriptmanager/JavaScriptManagerState.java
index fc246aff04..85647d0abd 100644
--- a/src/com/vaadin/terminal/gwt/client/extensions/javascriptmanager/JavaScriptManagerState.java
+++ b/src/com/vaadin/shared/extension/javascriptmanager/JavaScriptManagerState.java
@@ -2,12 +2,12 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.extensions.javascriptmanager;
+package com.vaadin.shared.extension.javascriptmanager;
import java.util.HashSet;
import java.util.Set;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
+import com.vaadin.shared.communication.SharedState;
public class JavaScriptManagerState extends SharedState {
private Set<String> names = new HashSet<String>();
diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbstractLayoutState.java b/src/com/vaadin/shared/ui/AbstractLayoutState.java
index fee5ea746a..9eaa11a9c6 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/AbstractLayoutState.java
+++ b/src/com/vaadin/shared/ui/AbstractLayoutState.java
@@ -1,9 +1,9 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui;
+package com.vaadin.shared.ui;
-import com.vaadin.terminal.gwt.client.ComponentState;
+import com.vaadin.shared.ComponentState;
public class AbstractLayoutState extends ComponentState {
private int marginsBitmask;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbstractMediaState.java b/src/com/vaadin/shared/ui/AbstractMediaState.java
index 0ab3851671..8cee16575d 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/AbstractMediaState.java
+++ b/src/com/vaadin/shared/ui/AbstractMediaState.java
@@ -1,13 +1,13 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui;
+package com.vaadin.shared.ui;
import java.util.ArrayList;
import java.util.List;
-import com.vaadin.terminal.gwt.client.ComponentState;
-import com.vaadin.terminal.gwt.client.communication.URLReference;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.communication.URLReference;
public class AbstractMediaState extends ComponentState {
private boolean showControls;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/AlignmentInfo.java b/src/com/vaadin/shared/ui/AlignmentInfo.java
index 041ab6c1ad..ff800de646 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/AlignmentInfo.java
+++ b/src/com/vaadin/shared/ui/AlignmentInfo.java
@@ -2,7 +2,7 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui;
+package com.vaadin.shared.ui;
public final class AlignmentInfo {
/** Bitmask values for client server communication */
diff --git a/src/com/vaadin/terminal/gwt/client/ui/ClickRpc.java b/src/com/vaadin/shared/ui/ClickRpc.java
index 37d6443f55..61bde1a5e9 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/ClickRpc.java
+++ b/src/com/vaadin/shared/ui/ClickRpc.java
@@ -1,10 +1,10 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui;
+package com.vaadin.shared.ui;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.communication.ServerRpc;
public interface ClickRpc extends ServerRpc {
/**
diff --git a/src/com/vaadin/terminal/gwt/client/ui/Connect.java b/src/com/vaadin/shared/ui/Connect.java
index 0581bdb99c..aa60096eb9 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/Connect.java
+++ b/src/com/vaadin/shared/ui/Connect.java
@@ -1,14 +1,14 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui;
+package com.vaadin.shared.ui;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import com.vaadin.terminal.gwt.client.Connector;
+import com.vaadin.shared.Connector;
import com.vaadin.terminal.gwt.server.ClientConnector;
import com.vaadin.terminal.gwt.widgetsetutils.CustomWidgetMapGenerator;
import com.vaadin.terminal.gwt.widgetsetutils.EagerWidgetMapGenerator;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/JavaScriptComponentState.java b/src/com/vaadin/shared/ui/JavaScriptComponentState.java
index 6728f85ec9..d20b4701c2 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/JavaScriptComponentState.java
+++ b/src/com/vaadin/shared/ui/JavaScriptComponentState.java
@@ -2,15 +2,15 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui;
+package com.vaadin.shared.ui;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import com.vaadin.terminal.gwt.client.ComponentState;
-import com.vaadin.terminal.gwt.client.JavaScriptConnectorHelper.JavaScriptConnectorState;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.JavaScriptConnectorState;
public class JavaScriptComponentState extends ComponentState implements
JavaScriptConnectorState {
@@ -18,6 +18,7 @@ public class JavaScriptComponentState extends ComponentState implements
private Set<String> callbackNames = new HashSet<String>();
private Map<String, Set<String>> rpcInterfaces = new HashMap<String, Set<String>>();
+ @Override
public Set<String> getCallbackNames() {
return callbackNames;
}
@@ -26,6 +27,7 @@ public class JavaScriptComponentState extends ComponentState implements
this.callbackNames = callbackNames;
}
+ @Override
public Map<String, Set<String>> getRpcInterfaces() {
return rpcInterfaces;
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/LayoutClickRpc.java b/src/com/vaadin/shared/ui/LayoutClickRpc.java
index 5b76f398a9..48e62083b1 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/LayoutClickRpc.java
+++ b/src/com/vaadin/shared/ui/LayoutClickRpc.java
@@ -1,11 +1,11 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui;
+package com.vaadin.shared.ui;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.communication.ServerRpc;
public interface LayoutClickRpc extends ServerRpc {
/**
diff --git a/src/com/vaadin/shared/ui/MediaControl.java b/src/com/vaadin/shared/ui/MediaControl.java
new file mode 100644
index 0000000000..0a608a1685
--- /dev/null
+++ b/src/com/vaadin/shared/ui/MediaControl.java
@@ -0,0 +1,24 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.shared.ui;
+
+import com.vaadin.shared.communication.ClientRpc;
+
+/**
+ * Server to client RPC interface for controlling playback of the media.
+ *
+ * @since 7.0
+ */
+public interface MediaControl extends ClientRpc {
+ /**
+ * Start playing the media.
+ */
+ public void play();
+
+ /**
+ * Pause playback of the media.
+ */
+ public void pause();
+} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/TabIndexState.java b/src/com/vaadin/shared/ui/TabIndexState.java
index 7ffb328add..774c9b33a0 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/TabIndexState.java
+++ b/src/com/vaadin/shared/ui/TabIndexState.java
@@ -1,7 +1,7 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui;
+package com.vaadin.shared.ui;
/**
* Interface implemented by state classes that support tab indexes.
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VMarginInfo.java b/src/com/vaadin/shared/ui/VMarginInfo.java
index 7ba1f4708c..b17a03626f 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VMarginInfo.java
+++ b/src/com/vaadin/shared/ui/VMarginInfo.java
@@ -2,7 +2,7 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui;
+package com.vaadin.shared.ui;
import java.io.Serializable;
diff --git a/src/com/vaadin/shared/ui/absolutelayout/AbsoluteLayoutServerRpc.java b/src/com/vaadin/shared/ui/absolutelayout/AbsoluteLayoutServerRpc.java
new file mode 100644
index 0000000000..7d1f75f833
--- /dev/null
+++ b/src/com/vaadin/shared/ui/absolutelayout/AbsoluteLayoutServerRpc.java
@@ -0,0 +1,11 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.shared.ui.absolutelayout;
+
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.ui.LayoutClickRpc;
+
+public interface AbsoluteLayoutServerRpc extends LayoutClickRpc, ServerRpc {
+
+} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutState.java b/src/com/vaadin/shared/ui/absolutelayout/AbsoluteLayoutState.java
index 4e1a43dd8b..f57b2c0d67 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutState.java
+++ b/src/com/vaadin/shared/ui/absolutelayout/AbsoluteLayoutState.java
@@ -1,13 +1,13 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.absolutelayout;
+package com.vaadin.shared.ui.absolutelayout;
import java.util.HashMap;
import java.util.Map;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.ui.AbstractLayoutState;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.ui.AbstractLayoutState;
public class AbsoluteLayoutState extends AbstractLayoutState {
// Maps each component to a position
diff --git a/src/com/vaadin/terminal/gwt/client/ui/button/ButtonServerRpc.java b/src/com/vaadin/shared/ui/button/ButtonServerRpc.java
index 4a379c9262..0e55b07aea 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/button/ButtonServerRpc.java
+++ b/src/com/vaadin/shared/ui/button/ButtonServerRpc.java
@@ -1,10 +1,10 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.button;
+package com.vaadin.shared.ui.button;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.communication.ServerRpc;
/**
* RPC interface for calls from client to server.
diff --git a/src/com/vaadin/terminal/gwt/client/ui/button/ButtonState.java b/src/com/vaadin/shared/ui/button/ButtonState.java
index 2daceea0e8..c423e18d46 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/button/ButtonState.java
+++ b/src/com/vaadin/shared/ui/button/ButtonState.java
@@ -2,10 +2,10 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.button;
+package com.vaadin.shared.ui.button;
-import com.vaadin.terminal.gwt.client.ComponentState;
-import com.vaadin.terminal.gwt.client.ui.TabIndexState;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.ui.TabIndexState;
import com.vaadin.ui.Button;
/**
@@ -102,6 +102,7 @@ public class ButtonState extends ComponentState implements TabIndexState {
*
* @see com.vaadin.terminal.gwt.client.ui.TabIndexState#getTabIndex()
*/
+ @Override
public int getTabIndex() {
return tabIndex;
}
@@ -111,6 +112,7 @@ public class ButtonState extends ComponentState implements TabIndexState {
*
* @see com.vaadin.terminal.gwt.client.ui.TabIndexState#setTabIndex(int)
*/
+ @Override
public void setTabIndex(int tabIndex) {
this.tabIndex = tabIndex;
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/checkbox/CheckBoxServerRpc.java b/src/com/vaadin/shared/ui/checkbox/CheckBoxServerRpc.java
index 05091ff6ed..fafd9bf2ff 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/checkbox/CheckBoxServerRpc.java
+++ b/src/com/vaadin/shared/ui/checkbox/CheckBoxServerRpc.java
@@ -1,10 +1,10 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.checkbox;
+package com.vaadin.shared.ui.checkbox;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.communication.ServerRpc;
public interface CheckBoxServerRpc extends ServerRpc {
public void setChecked(boolean checked, MouseEventDetails mouseEventDetails);
diff --git a/src/com/vaadin/terminal/gwt/client/ui/checkbox/CheckBoxState.java b/src/com/vaadin/shared/ui/checkbox/CheckBoxState.java
index d6d51cad36..d43959327c 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/checkbox/CheckBoxState.java
+++ b/src/com/vaadin/shared/ui/checkbox/CheckBoxState.java
@@ -1,9 +1,9 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.checkbox;
+package com.vaadin.shared.ui.checkbox;
-import com.vaadin.terminal.gwt.client.AbstractFieldState;
+import com.vaadin.shared.AbstractFieldState;
public class CheckBoxState extends AbstractFieldState {
private boolean checked = false;
diff --git a/src/com/vaadin/shared/ui/csslayout/CssLayoutServerRpc.java b/src/com/vaadin/shared/ui/csslayout/CssLayoutServerRpc.java
new file mode 100644
index 0000000000..0672aa32ce
--- /dev/null
+++ b/src/com/vaadin/shared/ui/csslayout/CssLayoutServerRpc.java
@@ -0,0 +1,11 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.shared.ui.csslayout;
+
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.ui.LayoutClickRpc;
+
+public interface CssLayoutServerRpc extends LayoutClickRpc, ServerRpc {
+
+} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutState.java b/src/com/vaadin/shared/ui/csslayout/CssLayoutState.java
index 07a8c1804a..03b4a947f5 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutState.java
+++ b/src/com/vaadin/shared/ui/csslayout/CssLayoutState.java
@@ -1,13 +1,13 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.csslayout;
+package com.vaadin.shared.ui.csslayout;
import java.util.HashMap;
import java.util.Map;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.ui.AbstractLayoutState;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.ui.AbstractLayoutState;
public class CssLayoutState extends AbstractLayoutState {
private Map<Connector, String> childCss = new HashMap<Connector, String>();
diff --git a/src/com/vaadin/terminal/gwt/client/ui/customlayout/CustomLayoutState.java b/src/com/vaadin/shared/ui/customlayout/CustomLayoutState.java
index 6b374a8099..4399e0ece1 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/customlayout/CustomLayoutState.java
+++ b/src/com/vaadin/shared/ui/customlayout/CustomLayoutState.java
@@ -1,13 +1,13 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.customlayout;
+package com.vaadin.shared.ui.customlayout;
import java.util.HashMap;
import java.util.Map;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.ui.AbstractLayoutState;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.ui.AbstractLayoutState;
public class CustomLayoutState extends AbstractLayoutState {
Map<Connector, String> childLocations = new HashMap<Connector, String>();
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/AcceptCriterion.java b/src/com/vaadin/shared/ui/dd/AcceptCriterion.java
index 8a026e4d2e..19c2e5f273 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/AcceptCriterion.java
+++ b/src/com/vaadin/shared/ui/dd/AcceptCriterion.java
@@ -2,13 +2,15 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.dd;
+package com.vaadin.shared.ui.dd;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import com.vaadin.terminal.gwt.client.ui.dd.VAcceptCriterion;
+
/**
* An annotation type used to point the server side counterpart for client side
* a {@link VAcceptCriterion} class.
diff --git a/src/com/vaadin/shared/ui/dd/DragEventType.java b/src/com/vaadin/shared/ui/dd/DragEventType.java
new file mode 100644
index 0000000000..e03b347ada
--- /dev/null
+++ b/src/com/vaadin/shared/ui/dd/DragEventType.java
@@ -0,0 +1,9 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.shared.ui.dd;
+
+public enum DragEventType {
+ ENTER, LEAVE, OVER, DROP
+} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/HorizontalDropLocation.java b/src/com/vaadin/shared/ui/dd/HorizontalDropLocation.java
index 5e90acd6f1..065b880953 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/HorizontalDropLocation.java
+++ b/src/com/vaadin/shared/ui/dd/HorizontalDropLocation.java
@@ -1,7 +1,7 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.dd;
+package com.vaadin.shared.ui.dd;
public enum HorizontalDropLocation {
LEFT, RIGHT, CENTER
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VerticalDropLocation.java b/src/com/vaadin/shared/ui/dd/VerticalDropLocation.java
index de392a0e98..2658921124 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VerticalDropLocation.java
+++ b/src/com/vaadin/shared/ui/dd/VerticalDropLocation.java
@@ -1,7 +1,7 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.dd;
+package com.vaadin.shared.ui.dd;
public enum VerticalDropLocation {
TOP, BOTTOM, MIDDLE
diff --git a/src/com/vaadin/shared/ui/embedded/EmbeddedServerRpc.java b/src/com/vaadin/shared/ui/embedded/EmbeddedServerRpc.java
new file mode 100644
index 0000000000..27af1623b0
--- /dev/null
+++ b/src/com/vaadin/shared/ui/embedded/EmbeddedServerRpc.java
@@ -0,0 +1,10 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.shared.ui.embedded;
+
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.ui.ClickRpc;
+
+public interface EmbeddedServerRpc extends ClickRpc, ServerRpc {
+} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/form/FormState.java b/src/com/vaadin/shared/ui/form/FormState.java
index c1acc0971d..a3035491bf 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/form/FormState.java
+++ b/src/com/vaadin/shared/ui/form/FormState.java
@@ -1,10 +1,10 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.form;
+package com.vaadin.shared.ui.form;
-import com.vaadin.terminal.gwt.client.AbstractFieldState;
-import com.vaadin.terminal.gwt.client.Connector;
+import com.vaadin.shared.AbstractFieldState;
+import com.vaadin.shared.Connector;
public class FormState extends AbstractFieldState {
private Connector layout;
diff --git a/src/com/vaadin/shared/ui/gridlayout/GridLayoutServerRpc.java b/src/com/vaadin/shared/ui/gridlayout/GridLayoutServerRpc.java
new file mode 100644
index 0000000000..110b9c33f9
--- /dev/null
+++ b/src/com/vaadin/shared/ui/gridlayout/GridLayoutServerRpc.java
@@ -0,0 +1,11 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.shared.ui.gridlayout;
+
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.ui.LayoutClickRpc;
+
+public interface GridLayoutServerRpc extends LayoutClickRpc, ServerRpc {
+
+} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutState.java b/src/com/vaadin/shared/ui/gridlayout/GridLayoutState.java
index 109dc7dea6..9179a61d27 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutState.java
+++ b/src/com/vaadin/shared/ui/gridlayout/GridLayoutState.java
@@ -1,9 +1,9 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.gridlayout;
+package com.vaadin.shared.ui.gridlayout;
-import com.vaadin.terminal.gwt.client.ui.AbstractLayoutState;
+import com.vaadin.shared.ui.AbstractLayoutState;
public class GridLayoutState extends AbstractLayoutState {
private boolean spacing = false;
diff --git a/src/com/vaadin/shared/ui/label/ContentMode.java b/src/com/vaadin/shared/ui/label/ContentMode.java
new file mode 100644
index 0000000000..a58f2cdebb
--- /dev/null
+++ b/src/com/vaadin/shared/ui/label/ContentMode.java
@@ -0,0 +1,46 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.shared.ui.label;
+
+/**
+ * Content modes defining how the client should interpret a Label's value.
+ *
+ * @since 7.0.0
+ */
+public enum ContentMode {
+ /**
+ * Content mode, where the label contains only plain text.
+ */
+ TEXT,
+
+ /**
+ * Content mode, where the label contains pre formatted text. In this mode
+ * newlines are preserved when rendered on the screen.
+ */
+ PREFORMATTED,
+
+ /**
+ * Content mode, where the label contains XHTML. Care should be taken to
+ * ensure
+ */
+ XHTML,
+
+ /**
+ * Content mode, where the label contains well-formed or well-balanced XML.
+ * This is handled in the same way as {@link #XHTML}.
+ *
+ * @deprecated Use {@link #XHTML} instead
+ */
+ @Deprecated
+ XML,
+
+ /**
+ * Legacy content mode, where the label contains RAW output. This is handled
+ * in exactly the same way as {@link #XHTML}.
+ *
+ * @deprecated Use {@link #XHTML} instead
+ */
+ @Deprecated
+ RAW;
+}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/label/LabelState.java b/src/com/vaadin/shared/ui/label/LabelState.java
index 25bbca3c3d..0298e40179 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/label/LabelState.java
+++ b/src/com/vaadin/shared/ui/label/LabelState.java
@@ -1,9 +1,9 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.label;
+package com.vaadin.shared.ui.label;
-import com.vaadin.terminal.gwt.client.ComponentState;
+import com.vaadin.shared.ComponentState;
public class LabelState extends ComponentState {
private ContentMode contentMode = ContentMode.TEXT;
diff --git a/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutServerRpc.java b/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutServerRpc.java
new file mode 100644
index 0000000000..3de8ec0220
--- /dev/null
+++ b/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutServerRpc.java
@@ -0,0 +1,12 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.shared.ui.orderedlayout;
+
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.ui.LayoutClickRpc;
+
+public interface AbstractOrderedLayoutServerRpc extends LayoutClickRpc,
+ ServerRpc {
+
+} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutState.java b/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutState.java
index 1d57358490..c18a128912 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutState.java
+++ b/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutState.java
@@ -1,14 +1,14 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.orderedlayout;
+package com.vaadin.shared.ui.orderedlayout;
import java.io.Serializable;
import java.util.HashMap;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.ui.AbstractLayoutState;
-import com.vaadin.terminal.gwt.client.ui.AlignmentInfo;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.ui.AbstractLayoutState;
+import com.vaadin.shared.ui.AlignmentInfo;
public class AbstractOrderedLayoutState extends AbstractLayoutState {
private boolean spacing = false;
diff --git a/src/com/vaadin/shared/ui/panel/PanelServerRpc.java b/src/com/vaadin/shared/ui/panel/PanelServerRpc.java
new file mode 100644
index 0000000000..6ed4652070
--- /dev/null
+++ b/src/com/vaadin/shared/ui/panel/PanelServerRpc.java
@@ -0,0 +1,11 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.shared.ui.panel;
+
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.ui.ClickRpc;
+
+public interface PanelServerRpc extends ClickRpc, ServerRpc {
+
+} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/panel/PanelState.java b/src/com/vaadin/shared/ui/panel/PanelState.java
index fc7921825f..ed31ed1ea3 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/panel/PanelState.java
+++ b/src/com/vaadin/shared/ui/panel/PanelState.java
@@ -1,9 +1,9 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.panel;
+package com.vaadin.shared.ui.panel;
-import com.vaadin.terminal.gwt.client.ComponentState;
+import com.vaadin.shared.ComponentState;
public class PanelState extends ComponentState {
private int tabIndex;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/root/PageClientRpc.java b/src/com/vaadin/shared/ui/root/PageClientRpc.java
index a02ecc8ded..c7d587938d 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/root/PageClientRpc.java
+++ b/src/com/vaadin/shared/ui/root/PageClientRpc.java
@@ -2,9 +2,9 @@
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.root;
+package com.vaadin.shared.ui.root;
-import com.vaadin.terminal.gwt.client.communication.ClientRpc;
+import com.vaadin.shared.communication.ClientRpc;
public interface PageClientRpc extends ClientRpc {
diff --git a/src/com/vaadin/shared/ui/root/RootServerRpc.java b/src/com/vaadin/shared/ui/root/RootServerRpc.java
new file mode 100644
index 0000000000..2e670553b8
--- /dev/null
+++ b/src/com/vaadin/shared/ui/root/RootServerRpc.java
@@ -0,0 +1,11 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.shared.ui.root;
+
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.ui.ClickRpc;
+
+public interface RootServerRpc extends ClickRpc, ServerRpc {
+
+} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/root/RootState.java b/src/com/vaadin/shared/ui/root/RootState.java
index 85d5e45022..26844cba32 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/root/RootState.java
+++ b/src/com/vaadin/shared/ui/root/RootState.java
@@ -1,10 +1,10 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.root;
+package com.vaadin.shared.ui.root;
-import com.vaadin.terminal.gwt.client.ComponentState;
-import com.vaadin.terminal.gwt.client.Connector;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.Connector;
public class RootState extends ComponentState {
private Connector content;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/splitpanel/AbstractSplitPanelRpc.java b/src/com/vaadin/shared/ui/splitpanel/AbstractSplitPanelRpc.java
index cc043838ff..e2ebcb0de3 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/splitpanel/AbstractSplitPanelRpc.java
+++ b/src/com/vaadin/shared/ui/splitpanel/AbstractSplitPanelRpc.java
@@ -1,10 +1,10 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.splitpanel;
+package com.vaadin.shared.ui.splitpanel;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.communication.ServerRpc;
public interface AbstractSplitPanelRpc extends ServerRpc {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/splitpanel/AbstractSplitPanelState.java b/src/com/vaadin/shared/ui/splitpanel/AbstractSplitPanelState.java
index db3a39d3a5..d94d5d8608 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/splitpanel/AbstractSplitPanelState.java
+++ b/src/com/vaadin/shared/ui/splitpanel/AbstractSplitPanelState.java
@@ -1,12 +1,12 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.splitpanel;
+package com.vaadin.shared.ui.splitpanel;
import java.io.Serializable;
-import com.vaadin.terminal.gwt.client.ComponentState;
-import com.vaadin.terminal.gwt.client.Connector;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.Connector;
public class AbstractSplitPanelState extends ComponentState {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/textarea/TextAreaState.java b/src/com/vaadin/shared/ui/textarea/TextAreaState.java
index 71bdd230b7..3b3bd42f87 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/textarea/TextAreaState.java
+++ b/src/com/vaadin/shared/ui/textarea/TextAreaState.java
@@ -1,9 +1,9 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.textarea;
+package com.vaadin.shared.ui.textarea;
-import com.vaadin.terminal.gwt.client.ui.textfield.AbstractTextFieldState;
+import com.vaadin.shared.ui.textfield.AbstractTextFieldState;
public class TextAreaState extends AbstractTextFieldState {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/textfield/AbstractTextFieldState.java b/src/com/vaadin/shared/ui/textfield/AbstractTextFieldState.java
index d11b049f56..d980eccae2 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/textfield/AbstractTextFieldState.java
+++ b/src/com/vaadin/shared/ui/textfield/AbstractTextFieldState.java
@@ -1,9 +1,9 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.textfield;
+package com.vaadin.shared.ui.textfield;
-import com.vaadin.terminal.gwt.client.AbstractFieldState;
+import com.vaadin.shared.AbstractFieldState;
public class AbstractTextFieldState extends AbstractFieldState {
/**
diff --git a/src/com/vaadin/terminal/gwt/client/ui/video/VideoState.java b/src/com/vaadin/shared/ui/video/VideoState.java
index f59d9ccac1..1dc8d07b7c 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/video/VideoState.java
+++ b/src/com/vaadin/shared/ui/video/VideoState.java
@@ -1,10 +1,10 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.video;
+package com.vaadin.shared.ui.video;
-import com.vaadin.terminal.gwt.client.communication.URLReference;
-import com.vaadin.terminal.gwt.client.ui.AbstractMediaState;
+import com.vaadin.shared.communication.URLReference;
+import com.vaadin.shared.ui.AbstractMediaState;
public class VideoState extends AbstractMediaState {
private URLReference poster;
diff --git a/src/com/vaadin/shared/ui/window/WindowServerRpc.java b/src/com/vaadin/shared/ui/window/WindowServerRpc.java
new file mode 100644
index 0000000000..11abfae4be
--- /dev/null
+++ b/src/com/vaadin/shared/ui/window/WindowServerRpc.java
@@ -0,0 +1,10 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.shared.ui.window;
+
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.ui.ClickRpc;
+
+public interface WindowServerRpc extends ClickRpc, ServerRpc {
+} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/window/WindowState.java b/src/com/vaadin/shared/ui/window/WindowState.java
index b057d76b16..428bd75167 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/window/WindowState.java
+++ b/src/com/vaadin/shared/ui/window/WindowState.java
@@ -1,9 +1,9 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.window;
+package com.vaadin.shared.ui.window;
-import com.vaadin.terminal.gwt.client.ui.panel.PanelState;
+import com.vaadin.shared.ui.panel.PanelState;
public class WindowState extends PanelState {
private boolean modal = false;
diff --git a/src/com/vaadin/terminal/AbstractClientConnector.java b/src/com/vaadin/terminal/AbstractClientConnector.java
index 9de444d70e..9c68361382 100644
--- a/src/com/vaadin/terminal/AbstractClientConnector.java
+++ b/src/com/vaadin/terminal/AbstractClientConnector.java
@@ -19,9 +19,9 @@ import java.util.NoSuchElementException;
import java.util.logging.Logger;
import com.vaadin.Application;
-import com.vaadin.terminal.gwt.client.communication.ClientRpc;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
+import com.vaadin.shared.communication.ClientRpc;
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.communication.SharedState;
import com.vaadin.terminal.gwt.server.ClientConnector;
import com.vaadin.terminal.gwt.server.ClientMethodInvocation;
import com.vaadin.terminal.gwt.server.RpcManager;
@@ -69,6 +69,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
private ClientConnector parent;
/* Documentation copied from interface */
+ @Override
public void requestRepaint() {
Root root = getRoot();
if (root != null) {
@@ -125,6 +126,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
registerRpc(implementation, type);
}
+ @Override
public SharedState getState() {
if (null == sharedState) {
sharedState = createState();
@@ -164,6 +166,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
*
* @see com.vaadin.terminal.gwt.server.ClientConnector#getStateType()
*/
+ @Override
public Class<? extends SharedState> getStateType() {
try {
Method m = getClass().getMethod("getState", (Class[]) null);
@@ -214,6 +217,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
this.connector = connector;
}
+ @Override
public Iterator<ClientConnector> iterator() {
CombinedIterator<ClientConnector> iterator = new CombinedIterator<ClientConnector>();
iterator.addIterator(connector.getExtensions().iterator());
@@ -236,6 +240,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
rpcInterfaceName = rpcInterface.getName().replaceAll("\\$", ".");
}
+ @Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
addMethodInvocationToQueue(rpcInterfaceName, method, args);
@@ -274,10 +279,12 @@ public abstract class AbstractClientConnector implements ClientConnector {
*
* @since 7.0
*/
+ @Override
public RpcManager getRpcManager(Class<?> rpcInterface) {
return rpcManagerMap.get(rpcInterface);
}
+ @Override
public List<ClientMethodInvocation> retrievePendingRpcCalls() {
if (pendingInvocations.isEmpty()) {
return Collections.emptyList();
@@ -288,6 +295,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
}
}
+ @Override
public String getConnectorId() {
if (connectorId == null) {
if (getApplication() == null) {
@@ -322,7 +330,8 @@ public abstract class AbstractClientConnector implements ClientConnector {
* @return the Root ancestor of this connector, or <code>null</code> if none
* is found.
*/
- protected Root getRoot() {
+ @Override
+ public Root getRoot() {
ClientConnector connector = this;
while (connector != null) {
if (connector instanceof Root) {
@@ -337,6 +346,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
return Logger.getLogger(AbstractClientConnector.class.getName());
}
+ @Override
public void requestRepaintAll() {
requestRepaint();
@@ -354,6 +364,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
iterators.add(iterator);
}
+ @Override
public boolean hasNext() {
for (Iterator<? extends T> i : iterators) {
if (i.hasNext()) {
@@ -363,6 +374,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
return false;
}
+ @Override
public T next() {
for (Iterator<? extends T> i : iterators) {
if (i.hasNext()) {
@@ -372,6 +384,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
throw new NoSuchElementException();
}
+ @Override
public void remove() {
throw new UnsupportedOperationException();
}
@@ -390,6 +403,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
return new AllChildrenIterable(connector);
}
+ @Override
public Collection<Extension> getExtensions() {
return Collections.unmodifiableCollection(extensions);
}
@@ -416,12 +430,14 @@ public abstract class AbstractClientConnector implements ClientConnector {
requestRepaint();
}
+ @Override
public void removeExtension(Extension extension) {
extension.setParent(null);
extensions.remove(extension);
requestRepaint();
}
+ @Override
public void setParent(ClientConnector parent) {
// If the parent is not changed, don't do anything
@@ -448,10 +464,12 @@ public abstract class AbstractClientConnector implements ClientConnector {
}
}
+ @Override
public ClientConnector getParent() {
return parent;
}
+ @Override
public void attach() {
requestRepaint();
@@ -471,6 +489,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
* <code>null</code> after this method is called.
* </p>
*/
+ @Override
public void detach() {
for (ClientConnector connector : getAllChildrenIterable(this)) {
connector.detach();
@@ -479,6 +498,7 @@ public abstract class AbstractClientConnector implements ClientConnector {
getRoot().getConnectorTracker().unregisterConnector(this);
}
+ @Override
public boolean isConnectorEnabled() {
if (getParent() == null) {
// No parent -> the component cannot receive updates from the client
diff --git a/src/com/vaadin/terminal/AbstractErrorMessage.java b/src/com/vaadin/terminal/AbstractErrorMessage.java
index 3f526f7339..f7cd0e6aad 100644
--- a/src/com/vaadin/terminal/AbstractErrorMessage.java
+++ b/src/com/vaadin/terminal/AbstractErrorMessage.java
@@ -68,6 +68,7 @@ public abstract class AbstractErrorMessage implements ErrorMessage {
}
/* Documented in interface */
+ @Override
public ErrorLevel getErrorLevel() {
return level;
}
@@ -92,6 +93,7 @@ public abstract class AbstractErrorMessage implements ErrorMessage {
causes.add(cause);
}
+ @Override
public String getFormattedHtmlMessage() {
String result = null;
switch (getMode()) {
diff --git a/src/com/vaadin/terminal/AbstractJavaScriptExtension.java b/src/com/vaadin/terminal/AbstractJavaScriptExtension.java
index bdcd948c74..df44c3edd5 100644
--- a/src/com/vaadin/terminal/AbstractJavaScriptExtension.java
+++ b/src/com/vaadin/terminal/AbstractJavaScriptExtension.java
@@ -4,7 +4,8 @@
package com.vaadin.terminal;
-import com.vaadin.terminal.gwt.client.JavaScriptExtensionState;
+import com.vaadin.shared.JavaScriptExtensionState;
+import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.ui.JavaScriptCallback;
/**
@@ -34,9 +35,9 @@ import com.vaadin.ui.JavaScriptCallback;
* the connector's parent. If <code>connectorId</code> is provided, the id of
* the parent of the corresponding connector with the passed id is returned
* instead.</li>
- * <li><code>getWidgetElement([connectorId])</code> - returns the DOM Element
- * that is the root of a connector's widget. <code>null</code> is returned if
- * the connector can not be found or if the connector doesn't have a widget. If
+ * <li><code>getElement([connectorId])</code> - returns the DOM Element that is
+ * the root of a connector's widget. <code>null</code> is returned if the
+ * connector can not be found or if the connector doesn't have a widget. If
* <code>connectorId</code> is not provided, the connector id of the current
* connector will be used.</li>
* <li><code>getState()</code> - returns an object corresponding to the shared
@@ -63,6 +64,9 @@ import com.vaadin.ui.JavaScriptCallback;
* exception when called. The scheme for conversion between Java types in the
* RPC interface and the JavaScript values that should be passed to the
* functions is described bellow.</li>
+ * <li><code>translateVaadinUri(uri)</code> - Translates a Vaadin URI to a URL
+ * that can be used in the browser. This is just way of accessing
+ * {@link ApplicationConnection#translateVaadinUri(String)}</li>
* </ul>
* The connector wrapper also supports these special functions:
* <ul>
@@ -139,8 +143,9 @@ public abstract class AbstractJavaScriptExtension extends AbstractExtension {
/**
* 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 primitive
- * boxing types, arrays, String, List, Set, Map, Connector and JavaBeans.
+ * 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
diff --git a/src/com/vaadin/terminal/ClassResource.java b/src/com/vaadin/terminal/ClassResource.java
index e7419576f1..b74c8e7bb7 100644
--- a/src/com/vaadin/terminal/ClassResource.java
+++ b/src/com/vaadin/terminal/ClassResource.java
@@ -89,6 +89,7 @@ public class ClassResource implements ApplicationResource, Serializable {
*
* @see com.vaadin.terminal.Resource#getMIMEType()
*/
+ @Override
public String getMIMEType() {
return FileTypeResolver.getMIMEType(resourceName);
}
@@ -98,6 +99,7 @@ public class ClassResource implements ApplicationResource, Serializable {
*
* @see com.vaadin.terminal.ApplicationResource#getApplication()
*/
+ @Override
public Application getApplication() {
return application;
}
@@ -108,6 +110,7 @@ public class ClassResource implements ApplicationResource, Serializable {
* @return the file name associated to this resource.
* @see com.vaadin.terminal.ApplicationResource#getFilename()
*/
+ @Override
public String getFilename() {
int index = 0;
int next = 0;
@@ -123,6 +126,7 @@ public class ClassResource implements ApplicationResource, Serializable {
*
* @see com.vaadin.terminal.ApplicationResource#getStream()
*/
+ @Override
public DownloadStream getStream() {
final DownloadStream ds = new DownloadStream(
associatedClass.getResourceAsStream(resourceName),
@@ -133,6 +137,7 @@ public class ClassResource implements ApplicationResource, Serializable {
}
/* documented in superclass */
+ @Override
public int getBufferSize() {
return bufferSize;
}
@@ -148,6 +153,7 @@ public class ClassResource implements ApplicationResource, Serializable {
}
/* documented in superclass */
+ @Override
public long getCacheTime() {
return cacheTime;
}
diff --git a/src/com/vaadin/terminal/CombinedRequest.java b/src/com/vaadin/terminal/CombinedRequest.java
index abf5e0412a..5b92feb39a 100644
--- a/src/com/vaadin/terminal/CombinedRequest.java
+++ b/src/com/vaadin/terminal/CombinedRequest.java
@@ -63,6 +63,7 @@ public class CombinedRequest implements WrappedRequest {
}
+ @Override
public String getParameter(String parameter) {
String[] strings = getParameterMap().get(parameter);
if (strings == null || strings.length == 0) {
@@ -72,48 +73,60 @@ public class CombinedRequest implements WrappedRequest {
}
}
+ @Override
public Map<String, String[]> getParameterMap() {
return parameterMap;
}
+ @Override
public int getContentLength() {
return secondRequest.getContentLength();
}
+ @Override
public InputStream getInputStream() throws IOException {
return secondRequest.getInputStream();
}
+ @Override
public Object getAttribute(String name) {
return secondRequest.getAttribute(name);
}
+ @Override
public void setAttribute(String name, Object value) {
secondRequest.setAttribute(name, value);
}
+ @Override
public String getRequestPathInfo() {
return secondRequest.getParameter("initialPath");
}
+ @Override
public int getSessionMaxInactiveInterval() {
return secondRequest.getSessionMaxInactiveInterval();
}
+ @Override
public Object getSessionAttribute(String name) {
return secondRequest.getSessionAttribute(name);
}
+ @Override
public void setSessionAttribute(String name, Object attribute) {
secondRequest.setSessionAttribute(name, attribute);
}
+ @Override
public String getContentType() {
return secondRequest.getContentType();
}
+ @Override
public BrowserDetails getBrowserDetails() {
return new BrowserDetails() {
+ @Override
public String getUriFragment() {
String fragment = secondRequest.getParameter("fr");
if (fragment == null) {
@@ -123,10 +136,12 @@ public class CombinedRequest implements WrappedRequest {
}
}
+ @Override
public String getWindowName() {
return secondRequest.getParameter("wn");
}
+ @Override
public WebBrowser getWebBrowser() {
WebApplicationContext context = (WebApplicationContext) Application
.getCurrent().getContext();
@@ -145,22 +160,27 @@ public class CombinedRequest implements WrappedRequest {
return secondRequest;
}
+ @Override
public Locale getLocale() {
return secondRequest.getLocale();
}
+ @Override
public String getRemoteAddr() {
return secondRequest.getRemoteAddr();
}
+ @Override
public boolean isSecure() {
return secondRequest.isSecure();
}
+ @Override
public String getHeader(String name) {
return secondRequest.getHeader(name);
}
+ @Override
public DeploymentConfiguration getDeploymentConfiguration() {
return secondRequest.getDeploymentConfiguration();
}
diff --git a/src/com/vaadin/terminal/DeploymentConfiguration.java b/src/com/vaadin/terminal/DeploymentConfiguration.java
index 02a3f0200f..ddb42349d8 100644
--- a/src/com/vaadin/terminal/DeploymentConfiguration.java
+++ b/src/com/vaadin/terminal/DeploymentConfiguration.java
@@ -5,6 +5,10 @@
package com.vaadin.terminal;
import java.io.Serializable;
+import java.util.Properties;
+
+import javax.portlet.PortletContext;
+import javax.servlet.ServletContext;
/**
* Provide deployment specific settings that are required outside terminal
@@ -83,4 +87,27 @@ public interface DeploymentConfiguration extends Serializable {
* @return the class loader to use, or <code>null</code>
*/
public ClassLoader getClassLoader();
+
+ /**
+ * Returns the MIME type of the specified file, or null if the MIME type is
+ * not known. The MIME type is determined by the configuration of the
+ * container, and may be specified in a deployment descriptor. Common MIME
+ * types are "text/html" and "image/gif".
+ *
+ * @param resourceName
+ * a String specifying the name of a file
+ * @return a String specifying the file's MIME type
+ *
+ * @see ServletContext#getMimeType(String)
+ * @see PortletContext#getMimeType(String)
+ */
+ public String getMimeType(String resourceName);
+
+ /**
+ * Gets the properties configured for the deployment, e.g. as init
+ * parameters to the servlet or portlet.
+ *
+ * @return properties for the application.
+ */
+ public Properties getInitParameters();
}
diff --git a/src/com/vaadin/terminal/ExternalResource.java b/src/com/vaadin/terminal/ExternalResource.java
index 0abff91638..84fcc65a44 100644
--- a/src/com/vaadin/terminal/ExternalResource.java
+++ b/src/com/vaadin/terminal/ExternalResource.java
@@ -100,6 +100,7 @@ public class ExternalResource implements Resource, Serializable {
*
* @see com.vaadin.terminal.Resource#getMIMEType()
*/
+ @Override
public String getMIMEType() {
if (mimeType == null) {
mimeType = FileTypeResolver.getMIMEType(getURL().toString());
diff --git a/src/com/vaadin/terminal/FileResource.java b/src/com/vaadin/terminal/FileResource.java
index 8dc3b00fd0..e3c9f0172a 100644
--- a/src/com/vaadin/terminal/FileResource.java
+++ b/src/com/vaadin/terminal/FileResource.java
@@ -61,6 +61,7 @@ public class FileResource implements ApplicationResource {
*
* @see com.vaadin.terminal.ApplicationResource#getStream()
*/
+ @Override
public DownloadStream getStream() {
try {
final DownloadStream ds = new DownloadStream(new FileInputStream(
@@ -74,6 +75,7 @@ public class FileResource implements ApplicationResource {
// Log the exception using the application error handler
getApplication().getErrorHandler().terminalError(new ErrorEvent() {
+ @Override
public Throwable getThrowable() {
return e;
}
@@ -106,6 +108,7 @@ public class FileResource implements ApplicationResource {
/**
* @see com.vaadin.terminal.ApplicationResource#getApplication()
*/
+ @Override
public Application getApplication() {
return application;
}
@@ -113,6 +116,7 @@ public class FileResource implements ApplicationResource {
/**
* @see com.vaadin.terminal.ApplicationResource#getFilename()
*/
+ @Override
public String getFilename() {
return sourceFile.getName();
}
@@ -120,6 +124,7 @@ public class FileResource implements ApplicationResource {
/**
* @see com.vaadin.terminal.Resource#getMIMEType()
*/
+ @Override
public String getMIMEType() {
return FileTypeResolver.getMIMEType(sourceFile);
}
@@ -132,6 +137,7 @@ public class FileResource implements ApplicationResource {
*
* @return Cache time in milliseconds.
*/
+ @Override
public long getCacheTime() {
return cacheTime;
}
@@ -150,6 +156,7 @@ public class FileResource implements ApplicationResource {
}
/* documented in superclass */
+ @Override
public int getBufferSize() {
return bufferSize;
}
diff --git a/src/com/vaadin/terminal/JavaScriptCallbackHelper.java b/src/com/vaadin/terminal/JavaScriptCallbackHelper.java
index 01db0267d9..131875a5a4 100644
--- a/src/com/vaadin/terminal/JavaScriptCallbackHelper.java
+++ b/src/com/vaadin/terminal/JavaScriptCallbackHelper.java
@@ -14,8 +14,8 @@ import java.util.Set;
import com.vaadin.external.json.JSONArray;
import com.vaadin.external.json.JSONException;
+import com.vaadin.shared.JavaScriptConnectorState;
import com.vaadin.terminal.gwt.client.JavaScriptConnectorHelper;
-import com.vaadin.terminal.gwt.client.JavaScriptConnectorHelper.JavaScriptConnectorState;
import com.vaadin.tools.ReflectTools;
import com.vaadin.ui.AbstractJavaScriptComponent;
import com.vaadin.ui.JavaScript.JavaScriptCallbackRpc;
@@ -65,6 +65,7 @@ public class JavaScriptCallbackHelper implements Serializable {
private void ensureRpc() {
if (javascriptCallbackRpc == null) {
javascriptCallbackRpc = new JavaScriptCallbackRpc() {
+ @Override
public void call(String name, JSONArray arguments) {
JavaScriptCallback callback = callbacks.get(name);
try {
diff --git a/src/com/vaadin/terminal/Page.java b/src/com/vaadin/terminal/Page.java
index 8ccb243a1e..a068e7573e 100644
--- a/src/com/vaadin/terminal/Page.java
+++ b/src/com/vaadin/terminal/Page.java
@@ -12,9 +12,9 @@ import java.util.LinkedList;
import java.util.List;
import com.vaadin.event.EventRouter;
+import com.vaadin.shared.ui.root.PageClientRpc;
import com.vaadin.terminal.WrappedRequest.BrowserDetails;
import com.vaadin.terminal.gwt.client.ui.notification.VNotification;
-import com.vaadin.terminal.gwt.client.ui.root.PageClientRpc;
import com.vaadin.terminal.gwt.client.ui.root.VRoot;
import com.vaadin.terminal.gwt.server.WebApplicationContext;
import com.vaadin.terminal.gwt.server.WebBrowser;
diff --git a/src/com/vaadin/terminal/StreamResource.java b/src/com/vaadin/terminal/StreamResource.java
index 1e13169292..1afd91dc08 100644
--- a/src/com/vaadin/terminal/StreamResource.java
+++ b/src/com/vaadin/terminal/StreamResource.java
@@ -79,6 +79,7 @@ public class StreamResource implements ApplicationResource {
/**
* @see com.vaadin.terminal.Resource#getMIMEType()
*/
+ @Override
public String getMIMEType() {
if (MIMEType != null) {
return MIMEType;
@@ -123,6 +124,7 @@ public class StreamResource implements ApplicationResource {
*
* @return the filename.
*/
+ @Override
public String getFilename() {
return filename;
}
@@ -140,6 +142,7 @@ public class StreamResource implements ApplicationResource {
/**
* @see com.vaadin.terminal.ApplicationResource#getApplication()
*/
+ @Override
public Application getApplication() {
return application;
}
@@ -147,6 +150,7 @@ public class StreamResource implements ApplicationResource {
/**
* @see com.vaadin.terminal.ApplicationResource#getStream()
*/
+ @Override
public DownloadStream getStream() {
final StreamSource ss = getStreamSource();
if (ss == null) {
@@ -176,6 +180,7 @@ public class StreamResource implements ApplicationResource {
}
/* documented in superclass */
+ @Override
public int getBufferSize() {
return bufferSize;
}
@@ -191,6 +196,7 @@ public class StreamResource implements ApplicationResource {
}
/* documented in superclass */
+ @Override
public long getCacheTime() {
return cacheTime;
}
diff --git a/src/com/vaadin/terminal/ThemeResource.java b/src/com/vaadin/terminal/ThemeResource.java
index d456047653..41674b2373 100644
--- a/src/com/vaadin/terminal/ThemeResource.java
+++ b/src/com/vaadin/terminal/ThemeResource.java
@@ -89,6 +89,7 @@ public class ThemeResource implements Resource {
/**
* @see com.vaadin.terminal.Resource#getMIMEType()
*/
+ @Override
public String getMIMEType() {
return FileTypeResolver.getMIMEType(getResourceId());
}
diff --git a/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml b/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml
index 697bf992e9..278d92f38f 100644
--- a/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml
+++ b/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml
@@ -6,93 +6,8 @@
<!-- Hint for WidgetSetBuilder not to automatically update the file -->
<!-- WS Compiler: manually edited -->
- <inherits name="com.google.gwt.user.User" />
-
- <inherits name="com.google.gwt.http.HTTP" />
-
- <inherits name="com.google.gwt.json.JSON" />
-
- <inherits
- name="com.vaadin.terminal.gwt.DefaultWidgetSetBrowserSpecificOverrides" />
-
- <source path="client" />
-
- <!-- TODO only for development -->
- <replace-with class="com.vaadin.terminal.gwt.client.ui.VerticalBoxLayoutConnector">
- <when-type-is class="com.vaadin.terminal.gwt.client.ui.orderedlayout.VerticalLayoutConnector" />
- </replace-with>
- <replace-with class="com.vaadin.terminal.gwt.client.ui.HorizontalBoxLayoutConnector">
- <when-type-is class="com.vaadin.terminal.gwt.client.ui.orderedlayout.HorizontalLayoutConnector" />
- </replace-with>
-
- <!-- Use own Scheduler implementation to be able to track if commands are
- running -->
- <replace-with class="com.vaadin.terminal.gwt.client.VSchedulerImpl">
- <when-type-is class="com.google.gwt.core.client.impl.SchedulerImpl" />
- </replace-with>
-
-
- <!-- Generators for serializators for classes used in communication between
- server and client -->
- <generate-with
- class="com.vaadin.terminal.gwt.widgetsetutils.SerializerMapGenerator">
- <when-type-is
- class="com.vaadin.terminal.gwt.client.communication.SerializerMap" />
- </generate-with>
-
- <replace-with class="com.vaadin.terminal.gwt.client.VDebugConsole">
- <when-type-is class="com.vaadin.terminal.gwt.client.Console" />
- </replace-with>
-
- <generate-with
- class="com.vaadin.terminal.gwt.widgetsetutils.EagerWidgetMapGenerator">
- <when-type-is class="com.vaadin.terminal.gwt.client.WidgetMap" />
- </generate-with>
-
- <generate-with
- class="com.vaadin.terminal.gwt.widgetsetutils.AcceptCriteriaFactoryGenerator">
- <when-type-is
- class="com.vaadin.terminal.gwt.client.ui.dd.VAcceptCriterionFactory" />
- </generate-with>
-
- <!-- Generate client side proxies for client to server RPC interfaces -->
- <generate-with
- class="com.vaadin.terminal.gwt.widgetsetutils.RpcProxyGenerator">
- <when-type-assignable
- class="com.vaadin.terminal.gwt.client.communication.ServerRpc" />
- </generate-with>
-
- <!-- Generate client side proxies for client to server RPC interfaces -->
- <generate-with
- class="com.vaadin.terminal.gwt.widgetsetutils.RpcProxyCreatorGenerator">
- <when-type-assignable
- class="com.vaadin.terminal.gwt.client.communication.RpcProxy.RpcProxyCreator" />
- </generate-with>
-
- <!-- Generate client side RPC manager for server to client RPC -->
- <generate-with
- class="com.vaadin.terminal.gwt.widgetsetutils.GeneratedRpcMethodProviderGenerator">
- <when-type-assignable
- class="com.vaadin.terminal.gwt.client.communication.GeneratedRpcMethodProvider" />
- </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>
+ <inherits name="com.vaadin.Vaadin" />
<entry-point class="com.vaadin.terminal.gwt.client.ApplicationConfiguration" />
- <!-- Use the new cross site linker to get a nocache.js without document.write -->
- <add-linker name="xsiframe" />
-
- <set-configuration-property name="devModeRedirectEnabled" value="true" />
-
</module>
diff --git a/src/com/vaadin/terminal/gwt/DefaultWidgetSetBrowserSpecificOverrides.gwt.xml b/src/com/vaadin/terminal/gwt/VaadinBrowserSpecificOverrides.gwt.xml
index b5ab61df64..b5ab61df64 100644
--- a/src/com/vaadin/terminal/gwt/DefaultWidgetSetBrowserSpecificOverrides.gwt.xml
+++ b/src/com/vaadin/terminal/gwt/VaadinBrowserSpecificOverrides.gwt.xml
diff --git a/src/com/vaadin/terminal/gwt/client/ApplicationConfiguration.java b/src/com/vaadin/terminal/gwt/client/ApplicationConfiguration.java
index 960b0a8b0e..71707e723a 100644
--- a/src/com/vaadin/terminal/gwt/client/ApplicationConfiguration.java
+++ b/src/com/vaadin/terminal/gwt/client/ApplicationConfiguration.java
@@ -23,6 +23,8 @@ import com.vaadin.terminal.gwt.client.ui.UnknownComponentConnector;
public class ApplicationConfiguration implements EntryPoint {
+ public static final String PORTLET_RESOUCE_URL_BASE = "portletAppURLBase";
+
/**
* Helper class for reading configuration options from the bootstap
* javascript
@@ -205,8 +207,6 @@ public class ApplicationConfiguration implements EntryPoint {
private ErrorMessage communicationError;
private ErrorMessage authorizationError;
private boolean useDebugIdInDom = true;
- private boolean usePortletURLs = false;
- private String portletUidlURLBase;
private HashMap<Integer, String> unknownComponents;
@@ -218,7 +218,7 @@ public class ApplicationConfiguration implements EntryPoint {
static// TODO consider to make this hashmap per application
LinkedList<Command> callbacks = new LinkedList<Command>();
- private static int widgetsLoading;
+ private static int dependenciesLoading;
private static ArrayList<ApplicationConnection> runningApplications = new ArrayList<ApplicationConnection>();
@@ -226,11 +226,12 @@ public class ApplicationConfiguration implements EntryPoint {
private Map<Integer, String> tagToServerSideClassName = new HashMap<Integer, String>();
public boolean usePortletURLs() {
- return usePortletURLs;
+ return getPortletResourceUrl() != null;
}
- public String getPortletUidlURLBase() {
- return portletUidlURLBase;
+ public String getPortletResourceUrl() {
+ return getJsoConfiguration(id)
+ .getConfigString(PORTLET_RESOUCE_URL_BASE);
}
public String getRootPanelId() {
@@ -319,12 +320,6 @@ public class ApplicationConfiguration implements EntryPoint {
useDebugIdInDom = jsoConfiguration.getConfigBoolean("useDebugIdInDom") != Boolean.FALSE;
// null -> false
- usePortletURLs = jsoConfiguration.getConfigBoolean("usePortletURLs") == Boolean.TRUE;
-
- portletUidlURLBase = jsoConfiguration
- .getConfigString("portletUidlURLBase");
-
- // null -> false
standalone = jsoConfiguration.getConfigBoolean("standalone") == Boolean.TRUE;
communicationError = jsoConfiguration.getConfigError("comErrMsg");
@@ -348,6 +343,7 @@ public class ApplicationConfiguration implements EntryPoint {
public static void startApplication(final String applicationId) {
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+ @Override
public void execute() {
ApplicationConfiguration appConf = getConfigFromDOM(applicationId);
ApplicationConnection a = GWT
@@ -454,26 +450,26 @@ public class ApplicationConfiguration implements EntryPoint {
*
* @param c
*/
- static void runWhenWidgetsLoaded(Command c) {
- if (widgetsLoading == 0) {
+ static void runWhenDependenciesLoaded(Command c) {
+ if (dependenciesLoading == 0) {
c.execute();
} else {
callbacks.add(c);
}
}
- static void startWidgetLoading() {
- widgetsLoading++;
+ static void startDependencyLoading() {
+ dependenciesLoading++;
}
- static void endWidgetLoading() {
- widgetsLoading--;
- if (widgetsLoading == 0 && !callbacks.isEmpty()) {
+ static void endDependencyLoading() {
+ dependenciesLoading--;
+ if (dependenciesLoading == 0 && !callbacks.isEmpty()) {
for (Command cmd : callbacks) {
cmd.execute();
}
callbacks.clear();
- } else if (widgetsLoading == 0 && deferredWidgetLoader != null) {
+ } else if (dependenciesLoading == 0 && deferredWidgetLoader != null) {
deferredWidgetLoader.trigger();
}
@@ -534,7 +530,7 @@ public class ApplicationConfiguration implements EntryPoint {
}
private boolean isBusy() {
- if (widgetsLoading > 0) {
+ if (dependenciesLoading > 0) {
communicationFree = 0;
return true;
}
@@ -553,6 +549,7 @@ public class ApplicationConfiguration implements EntryPoint {
private static DeferredWidgetLoader deferredWidgetLoader;
+ @Override
public void onModuleLoad() {
// Prepare VConsole for debugging
@@ -571,6 +568,7 @@ public class ApplicationConfiguration implements EntryPoint {
*/
GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
+ @Override
public void onUncaughtException(Throwable e) {
/*
* Note in case of null console (without ?debug) we eat
@@ -581,6 +579,11 @@ public class ApplicationConfiguration implements EntryPoint {
}
});
+ if (SuperDevMode.enableBasedOnParameter()) {
+ // Do not start any application as super dev mode will refresh the
+ // page once done compiling
+ return;
+ }
registerCallback(GWT.getModuleName());
deferredWidgetLoader = new DeferredWidgetLoader();
}
diff --git a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java
index f0470c8ee8..fb7af1404c 100644
--- a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java
+++ b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java
@@ -27,6 +27,7 @@ import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.RequestException;
import com.google.gwt.http.client.Response;
+import com.google.gwt.http.client.URL;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
@@ -35,21 +36,23 @@ import com.google.gwt.regexp.shared.RegExp;
import com.google.gwt.user.client.Command;
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.Timer;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.communication.MethodInvocation;
+import com.vaadin.shared.communication.SharedState;
+import com.vaadin.shared.communication.UidlValue;
import com.vaadin.terminal.gwt.client.ApplicationConfiguration.ErrorMessage;
+import com.vaadin.terminal.gwt.client.ResourceLoader.ResourceLoadEvent;
+import com.vaadin.terminal.gwt.client.ResourceLoader.ResourceLoadListener;
import com.vaadin.terminal.gwt.client.communication.HasJavaScriptConnectorHelper;
import com.vaadin.terminal.gwt.client.communication.JsonDecoder;
import com.vaadin.terminal.gwt.client.communication.JsonEncoder;
-import com.vaadin.terminal.gwt.client.communication.MethodInvocation;
import com.vaadin.terminal.gwt.client.communication.RpcManager;
import com.vaadin.terminal.gwt.client.communication.SerializerMap;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.communication.Type;
-import com.vaadin.terminal.gwt.client.communication.UidlValue;
import com.vaadin.terminal.gwt.client.extensions.AbstractExtensionConnector;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
import com.vaadin.terminal.gwt.client.ui.VContextMenu;
@@ -75,6 +78,19 @@ import com.vaadin.terminal.gwt.server.AbstractCommunicationManager;
* Entry point classes (widgetsets) define <code>onModuleLoad()</code>.
*/
public class ApplicationConnection {
+ public static final String APP_REQUEST_PATH = "APP/";
+
+ public static final String UIDL_REQUEST_PATH = "UIDL/";
+
+ public static final String APP_PROTOCOL_PREFIX = "app://";
+
+ public static final String V_RESOURCE_PATH = "v-resourcePath";
+
+ public static final String CONNECTOR_PROTOCOL_PREFIX = "connector://";
+
+ public static final String CONNECTOR_RESOURCE_PREFIX = APP_REQUEST_PATH
+ + "CONNECTOR";
+
// This indicates the whole page is generated by us (not embedded)
public static final String GENERATED_BODY_CLASSNAME = "v-generated-body";
@@ -131,7 +147,7 @@ public class ApplicationConnection {
*/
public static final String UIDL_REFRESH_TOKEN = "Vaadin-Refresh";
- private final boolean debugLogging = false;
+ private final boolean debugLogging = true || false;
// will hold the UIDL security key (for XSS protection) once received
private String uidlSecurityKey = "init";
@@ -506,12 +522,7 @@ public class ApplicationConnection {
final String payload = uidlSecurityKey + VAR_BURST_SEPARATOR
+ requestData;
VConsole.log("Making UIDL Request with params: " + payload);
- String uri;
- if (configuration.usePortletURLs()) {
- uri = configuration.getPortletUidlURLBase();
- } else {
- uri = getAppUri() + "UIDL";
- }
+ String uri = translateVaadinUri(APP_PROTOCOL_PREFIX + UIDL_REQUEST_PATH);
if (extraParams != null && extraParams.length() > 0) {
uri = addGetParameters(uri, extraParams);
@@ -538,11 +549,13 @@ public class ApplicationConnection {
final boolean synchronous) {
if (!synchronous) {
RequestCallback requestCallback = new RequestCallback() {
+ @Override
public void onError(Request request, Throwable exception) {
showCommunicationError(exception.getMessage(), -1);
endRequest();
}
+ @Override
public void onResponseReceived(Request request,
Response response) {
VConsole.log("Server visit took "
@@ -868,6 +881,7 @@ public class ApplicationConnection {
}
// deferring to avoid flickering
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
if (!hasActiveRequest()) {
hideLoadingIndicator();
@@ -1067,6 +1081,14 @@ public class ApplicationConnection {
json.getValueMap("typeMappings"), widgetSet);
}
+ VConsole.log("Handling resource dependencies");
+ if (json.containsKey("scriptDependencies")) {
+ loadScriptDependencies(json.getJSStringArray("scriptDependencies"));
+ }
+ if (json.containsKey("styleDependencies")) {
+ loadStyleDependencies(json.getJSStringArray("styleDependencies"));
+ }
+
handleUIDLDuration.logDuration(
" * Handling type mappings from server completed", 10);
/*
@@ -1077,6 +1099,7 @@ public class ApplicationConnection {
}
Command c = new Command() {
+ @Override
public void execute() {
handleUIDLDuration.logDuration(" * Loading widgets completed",
10);
@@ -1608,7 +1631,72 @@ public class ApplicationConnection {
}
};
- ApplicationConfiguration.runWhenWidgetsLoaded(c);
+ ApplicationConfiguration.runWhenDependenciesLoaded(c);
+ }
+
+ private void loadStyleDependencies(JsArrayString dependencies) {
+ // Assuming no reason to interpret in a defined order
+ ResourceLoadListener resourceLoadListener = new ResourceLoadListener() {
+ @Override
+ public void onLoad(ResourceLoadEvent event) {
+ ApplicationConfiguration.endDependencyLoading();
+ }
+
+ @Override
+ public void onError(ResourceLoadEvent event) {
+ VConsole.error(event.getResourceUrl()
+ + " could not be loaded, or the load detection failed because the stylesheet is empty.");
+ // The show must go on
+ onLoad(event);
+ }
+ };
+ ResourceLoader loader = ResourceLoader.get();
+ for (int i = 0; i < dependencies.length(); i++) {
+ String url = translateVaadinUri(dependencies.get(i));
+ ApplicationConfiguration.startDependencyLoading();
+ loader.loadStylesheet(url, resourceLoadListener);
+ }
+ }
+
+ private void loadScriptDependencies(final JsArrayString dependencies) {
+ if (dependencies.length() == 0) {
+ return;
+ }
+
+ // Listener that loads the next when one is completed
+ ResourceLoadListener resourceLoadListener = new ResourceLoadListener() {
+ @Override
+ public void onLoad(ResourceLoadEvent event) {
+ if (dependencies.length() != 0) {
+ String url = translateVaadinUri(dependencies.shift());
+ ApplicationConfiguration.startDependencyLoading();
+ // Load next in chain (hopefully already preloaded)
+ event.getResourceLoader().loadScript(url, this);
+ }
+ // Call start for next before calling end for current
+ ApplicationConfiguration.endDependencyLoading();
+ }
+
+ @Override
+ public void onError(ResourceLoadEvent event) {
+ VConsole.error(event.getResourceUrl() + " could not be loaded.");
+ // The show must go on
+ onLoad(event);
+ }
+ };
+
+ ResourceLoader loader = ResourceLoader.get();
+
+ // Start chain by loading first
+ String url = translateVaadinUri(dependencies.shift());
+ ApplicationConfiguration.startDependencyLoading();
+ loader.loadScript(url, resourceLoadListener);
+
+ // Preload all remaining
+ for (int i = 0; i < dependencies.length(); i++) {
+ String preloadUrl = translateVaadinUri(dependencies.get(i));
+ loader.preloadResource(preloadUrl, null);
+ }
}
// Redirect browser, null reloads current page
@@ -1669,6 +1757,7 @@ public class ApplicationConnection {
}
private final ScheduledCommand sendPendingCommand = new ScheduledCommand() {
+ @Override
public void execute() {
deferedSendPending = false;
doSendPendingVariableChanges();
@@ -2214,8 +2303,42 @@ public class ApplicationConnection {
}
uidlUri = themeUri + uidlUri.substring(7);
}
- if (uidlUri.startsWith("app://")) {
- uidlUri = getAppUri() + uidlUri.substring(6);
+
+ if (uidlUri.startsWith(CONNECTOR_PROTOCOL_PREFIX)) {
+ // getAppUri *should* always end with /
+ // substring *should* always start with / (connector:///foo.bar
+ // without connector://)
+ uidlUri = APP_PROTOCOL_PREFIX + CONNECTOR_RESOURCE_PREFIX
+ + uidlUri.substring(CONNECTOR_PROTOCOL_PREFIX.length());
+ // Let translation of app:// urls take care of the rest
+ }
+ if (uidlUri.startsWith(APP_PROTOCOL_PREFIX)) {
+ String relativeUrl = uidlUri
+ .substring(APP_PROTOCOL_PREFIX.length());
+ if (getConfiguration().usePortletURLs()) {
+ // Should put path in v-resourcePath parameter and append query
+ // params to base portlet url
+ String[] parts = relativeUrl.split("\\?", 2);
+ String path = parts[0];
+
+ String url = getConfiguration().getPortletResourceUrl();
+
+ // If there's a "?" followed by something, append it as a query
+ // string to the base URL
+ if (parts.length > 1) {
+ String appUrlParams = parts[1];
+ url = addGetParameters(url, appUrlParams);
+ }
+ if (!path.startsWith("/")) {
+ path = '/' + path;
+ }
+ String pathParam = V_RESOURCE_PATH + "="
+ + URL.encodeQueryString(path);
+ url = addGetParameters(url, pathParam);
+ uidlUri = url;
+ } else {
+ uidlUri = getAppUri() + relativeUrl;
+ }
}
return uidlUri;
}
@@ -2242,6 +2365,7 @@ public class ApplicationConnection {
this.url = url;
}
+ @Override
public void notificationHidden(HideEvent event) {
redirect(url);
}
@@ -2250,57 +2374,8 @@ public class ApplicationConnection {
/* Extended title handling */
- /**
- * Data showed in tooltips are stored centrilized as it may be needed in
- * varios place: caption, layouts, and in owner components themselves.
- *
- * Updating TooltipInfo is done in updateComponent method.
- *
- */
- public TooltipInfo getTooltipTitleInfo(ComponentConnector titleOwner,
- Object key) {
- if (null == titleOwner) {
- return null;
- }
- return connectorMap.getTooltipInfo(titleOwner, key);
- }
-
private final VTooltip tooltip = new VTooltip(this);
- /**
- * Component may want to delegate Tooltip handling to client. Layouts add
- * Tooltip (description, errors) to caption, but some components may want
- * them to appear one other elements too.
- *
- * Events wanted by this handler are same as in Tooltip.TOOLTIP_EVENTS
- *
- * @param event
- * @param owner
- */
- public void handleTooltipEvent(Event event, ComponentConnector owner) {
- tooltip.handleTooltipEvent(event, owner, null);
-
- }
-
- /**
- * Component may want to delegate Tooltip handling to client. Layouts add
- * Tooltip (description, errors) to caption, but some components may want
- * them to appear one other elements too.
- *
- * Events wanted by this handler are same as in Tooltip.TOOLTIP_EVENTS
- *
- * @param event
- * @param owner
- * @param key
- * the key for tooltip if this is "additional" tooltip, null for
- * components "main tooltip"
- */
- public void handleTooltipEvent(Event event, ComponentConnector owner,
- Object key) {
- tooltip.handleTooltipEvent(event, owner, key);
-
- }
-
private ConnectorMap connectorMap = GWT.create(ConnectorMap.class);
protected String getUidlSecurityKey() {
@@ -2328,34 +2403,6 @@ public class ApplicationConnection {
}
/**
- * If component has several tooltips in addition to the one provided by
- * {@link com.vaadin.ui.AbstractComponent}, component can register them with
- * this method.
- * <p>
- * Component must also pipe events to
- * {@link #handleTooltipEvent(Event, ComponentConnector, Object)} method.
- * <p>
- * This method can also be used to deregister tooltips by using null as
- * tooltip
- *
- * @param paintable
- * Paintable "owning" this tooltip
- * @param key
- * key assosiated with given tooltip. Can be any object. For
- * example a related dom element. Same key must be given for
- * {@link #handleTooltipEvent(Event, ComponentConnector, Object)}
- * method.
- *
- * @param tooltip
- * the TooltipInfo object containing details shown in tooltip,
- * null if deregistering tooltip
- */
- public void registerTooltip(ComponentConnector paintable, Object key,
- TooltipInfo tooltip) {
- connectorMap.registerTooltip(paintable, key, tooltip);
- }
-
- /**
* Gets the {@link ApplicationConfiguration} for the current application.
*
* @see ApplicationConfiguration
@@ -2437,15 +2484,15 @@ public class ApplicationConnection {
// connectorMap.unregisterConnector(p);
}
+ /**
+ * Get VTooltip instance related to application connection
+ *
+ * @return VTooltip instance
+ */
public VTooltip getVTooltip() {
return tooltip;
}
- @Deprecated
- public void handleTooltipEvent(Event event, Widget owner, Object key) {
- handleTooltipEvent(event, getConnectorMap().getConnector(owner), key);
- }
-
/**
* Method provided for backwards compatibility. Duties previously done by
* this method is now handled by the state change event handler in
@@ -2474,17 +2521,6 @@ public class ApplicationConnection {
}
@Deprecated
- public void handleTooltipEvent(Event event, Widget owner) {
- handleTooltipEvent(event, getConnectorMap().getConnector(owner));
-
- }
-
- @Deprecated
- public void registerTooltip(Widget owner, Object key, TooltipInfo info) {
- registerTooltip(getConnectorMap().getConnector(owner), key, info);
- }
-
- @Deprecated
public boolean hasEventListeners(Widget widget, String eventIdentifier) {
return hasEventListeners(getConnectorMap().getConnector(widget),
eventIdentifier);
diff --git a/src/com/vaadin/terminal/gwt/client/BrowserInfo.java b/src/com/vaadin/terminal/gwt/client/BrowserInfo.java
index 82cf925ec1..32bb0b8eed 100644
--- a/src/com/vaadin/terminal/gwt/client/BrowserInfo.java
+++ b/src/com/vaadin/terminal/gwt/client/BrowserInfo.java
@@ -5,6 +5,7 @@
package com.vaadin.terminal.gwt.client;
import com.google.gwt.user.client.ui.RootPanel;
+import com.vaadin.shared.VBrowserDetails;
/**
* Class used to query information about web browser.
diff --git a/src/com/vaadin/terminal/gwt/client/ComponentConnector.java b/src/com/vaadin/terminal/gwt/client/ComponentConnector.java
index 4e6a690a3c..e57a188b47 100644
--- a/src/com/vaadin/terminal/gwt/client/ComponentConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ComponentConnector.java
@@ -4,7 +4,9 @@
package com.vaadin.terminal.gwt.client;
+import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ComponentState;
/**
* An interface used by client-side widgets or paintable parts to receive
@@ -21,6 +23,7 @@ public interface ComponentConnector extends ServerConnector {
*
* @see com.vaadin.terminal.gwt.client.VPaintable#getState()
*/
+ @Override
public ComponentState getState();
/**
@@ -104,4 +107,14 @@ public interface ComponentConnector extends ServerConnector {
*/
public void setWidgetEnabled(boolean widgetEnabled);
+ /**
+ * Gets the tooltip info for the given element.
+ *
+ * @param element
+ * The element to lookup a tooltip for
+ * @return The tooltip for the element or null if no tooltip is defined for
+ * this element.
+ */
+ public TooltipInfo getTooltipInfo(Element element);
+
}
diff --git a/src/com/vaadin/terminal/gwt/client/ComponentLocator.java b/src/com/vaadin/terminal/gwt/client/ComponentLocator.java
index 0e7a0c1d1c..8df9dc41b9 100644
--- a/src/com/vaadin/terminal/gwt/client/ComponentLocator.java
+++ b/src/com/vaadin/terminal/gwt/client/ComponentLocator.java
@@ -12,7 +12,9 @@ import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.communication.SharedState;
import com.vaadin.terminal.gwt.client.ui.SubPartAware;
import com.vaadin.terminal.gwt.client.ui.VBoxLayout;
import com.vaadin.terminal.gwt.client.ui.gridlayout.VGridLayout;
diff --git a/src/com/vaadin/terminal/gwt/client/ConnectorMap.java b/src/com/vaadin/terminal/gwt/client/ConnectorMap.java
index efb50b5e00..8bc4a4aacf 100644
--- a/src/com/vaadin/terminal/gwt/client/ConnectorMap.java
+++ b/src/com/vaadin/terminal/gwt/client/ConnectorMap.java
@@ -200,49 +200,11 @@ public class ConnectorMap {
return idToConnector.size();
}
- /**
- * FIXME: Should be moved to VAbstractPaintableWidget
- *
- * @param paintable
- * @return
- */
- @Deprecated
- public TooltipInfo getTooltipInfo(ComponentConnector paintable, Object key) {
- ComponentDetail componentDetail = getComponentDetail(paintable);
- if (componentDetail == null) {
- return null;
- }
- return componentDetail.getTooltipInfo(key);
- }
-
- @Deprecated
- public TooltipInfo getWidgetTooltipInfo(Widget widget, Object key) {
- ComponentConnector connector = getConnector(widget);
- if (connector == null) {
- return null;
- }
- return getTooltipInfo(connector, key);
- }
-
public Collection<? extends ServerConnector> getConnectors() {
return Collections.unmodifiableCollection(idToConnector.values());
}
/**
- * FIXME: Should not be here
- *
- * @param componentConnector
- * @return
- */
- @Deprecated
- public void registerTooltip(ComponentConnector componentConnector,
- Object key, TooltipInfo tooltip) {
- getComponentDetail(componentConnector).putAdditionalTooltip(key,
- tooltip);
-
- }
-
- /**
* Tests if the widget is the root widget of a {@link ComponentConnector}.
*
* @param widget
diff --git a/src/com/vaadin/terminal/gwt/client/EventHelper.java b/src/com/vaadin/terminal/gwt/client/EventHelper.java
index 95f5125f1b..208768a0c1 100644
--- a/src/com/vaadin/terminal/gwt/client/EventHelper.java
+++ b/src/com/vaadin/terminal/gwt/client/EventHelper.java
@@ -3,8 +3,8 @@
*/
package com.vaadin.terminal.gwt.client;
-import static com.vaadin.terminal.gwt.client.EventId.BLUR;
-import static com.vaadin.terminal.gwt.client.EventId.FOCUS;
+import static com.vaadin.shared.EventId.BLUR;
+import static com.vaadin.shared.EventId.FOCUS;
import com.google.gwt.event.dom.client.BlurEvent;
import com.google.gwt.event.dom.client.BlurHandler;
diff --git a/src/com/vaadin/terminal/gwt/client/JavaScriptConnectorHelper.java b/src/com/vaadin/terminal/gwt/client/JavaScriptConnectorHelper.java
index bd62a759cb..69b8e00603 100644
--- a/src/com/vaadin/terminal/gwt/client/JavaScriptConnectorHelper.java
+++ b/src/com/vaadin/terminal/gwt/client/JavaScriptConnectorHelper.java
@@ -15,18 +15,13 @@ import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.user.client.Element;
-import com.vaadin.terminal.gwt.client.communication.MethodInvocation;
+import com.vaadin.shared.JavaScriptConnectorState;
+import com.vaadin.shared.communication.MethodInvocation;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent.StateChangeHandler;
public class JavaScriptConnectorHelper {
- public interface JavaScriptConnectorState {
- public Set<String> getCallbackNames();
-
- public Map<String, Set<String>> getRpcInterfaces();
- }
-
private final ServerConnector connector;
private final JavaScriptObject nativeState = JavaScriptObject
.createObject();
@@ -49,6 +44,7 @@ public class JavaScriptConnectorHelper {
public void init() {
connector.addStateChangeHandler(new StateChangeHandler() {
+ @Override
public void onStateChanged(StateChangeEvent stateChangeEvent) {
JavaScriptObject wrapper = getConnectorWrapper();
JavaScriptConnectorState state = getConnectorState();
@@ -149,8 +145,9 @@ public class JavaScriptConnectorHelper {
private JavaScriptObject getConnectorWrapper() {
if (connectorWrapper == null) {
- connectorWrapper = createConnectorWrapper(this, nativeState,
- rpcMap, connector.getConnectorId(), rpcObjects);
+ connectorWrapper = createConnectorWrapper(this,
+ connector.getConnection(), nativeState, rpcMap,
+ connector.getConnectorId(), rpcObjects);
}
return connectorWrapper;
@@ -165,9 +162,9 @@ public class JavaScriptConnectorHelper {
}-*/;
private static native JavaScriptObject createConnectorWrapper(
- JavaScriptConnectorHelper h, JavaScriptObject nativeState,
- JavaScriptObject registeredRpc, String connectorId,
- Map<String, JavaScriptObject> rpcObjects)
+ JavaScriptConnectorHelper h, ApplicationConnection c,
+ JavaScriptObject nativeState, JavaScriptObject registeredRpc,
+ String connectorId, Map<String, JavaScriptObject> rpcObjects)
/*-{
return {
'getConnectorId': function() {
@@ -185,7 +182,7 @@ public class JavaScriptConnectorHelper {
}
return rpcObjects.@java.util.Map::get(Ljava/lang/Object;)(iface);
}),
- 'getWidgetElement': $entry(function(connectorId) {
+ 'getElement': $entry(function(connectorId) {
return h.@com.vaadin.terminal.gwt.client.JavaScriptConnectorHelper::getWidgetElement(Ljava/lang/String;)(connectorId);
}),
'registerRpc': function(iface, rpcHandler) {
@@ -199,6 +196,9 @@ public class JavaScriptConnectorHelper {
}
registeredRpc[iface].push(rpcHandler);
},
+ 'translateVaadinUri': $entry(function(uri) {
+ return c.@com.vaadin.terminal.gwt.client.ApplicationConnection::translateVaadinUri(Ljava/lang/String;)(uri);
+ }),
};
}-*/;
@@ -238,8 +238,8 @@ public class JavaScriptConnectorHelper {
return connector;
}
- return ConnectorMap.get(connector.getConnection())
- .getConnector(connectorId);
+ return ConnectorMap.get(connector.getConnection()).getConnector(
+ connectorId);
}
private void fireRpc(String iface, String method,
@@ -331,9 +331,9 @@ public class JavaScriptConnectorHelper {
invokeCallback(getConnectorWrapper(), callbackName, arguments);
} else {
JavaScriptObject arguments = parametersJson.getJavaScriptObject();
- invokeJsRpc(rpcMap, iface, method, arguments);
+ invokeJsRpc(rpcMap, iface, method, arguments, getConnectorWrapper());
// Also invoke wildcard interface
- invokeJsRpc(rpcMap, "", method, arguments);
+ invokeJsRpc(rpcMap, "", method, arguments, getConnectorWrapper());
}
}
@@ -344,7 +344,8 @@ public class JavaScriptConnectorHelper {
}-*/;
private static native void invokeJsRpc(JavaScriptObject rpcMap,
- String interfaceName, String methodName, JavaScriptObject parameters)
+ String interfaceName, String methodName,
+ JavaScriptObject parameters, JavaScriptObject connector)
/*-{
var targets = rpcMap[interfaceName];
if (!targets) {
@@ -352,7 +353,7 @@ public class JavaScriptConnectorHelper {
}
for(var i = 0; i < targets.length; i++) {
var target = targets[i];
- target[methodName].apply(target, parameters);
+ target[methodName].apply(connector, parameters);
}
}-*/;
diff --git a/src/com/vaadin/terminal/gwt/client/JavaScriptExtension.java b/src/com/vaadin/terminal/gwt/client/JavaScriptExtension.java
index 2a97e4a770..a2170b9ab9 100644
--- a/src/com/vaadin/terminal/gwt/client/JavaScriptExtension.java
+++ b/src/com/vaadin/terminal/gwt/client/JavaScriptExtension.java
@@ -4,10 +4,11 @@
package com.vaadin.terminal.gwt.client;
+import com.vaadin.shared.JavaScriptExtensionState;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.AbstractJavaScriptExtension;
import com.vaadin.terminal.gwt.client.communication.HasJavaScriptConnectorHelper;
import com.vaadin.terminal.gwt.client.extensions.AbstractExtensionConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
@Connect(AbstractJavaScriptExtension.class)
public final class JavaScriptExtension extends AbstractExtensionConnector
@@ -21,6 +22,7 @@ public final class JavaScriptExtension extends AbstractExtensionConnector
helper.init();
}
+ @Override
public JavaScriptConnectorHelper getJavascriptConnectorHelper() {
return helper;
}
diff --git a/src/com/vaadin/terminal/gwt/client/MouseEventDetailsBuilder.java b/src/com/vaadin/terminal/gwt/client/MouseEventDetailsBuilder.java
index 58dd488351..d39f98a024 100644
--- a/src/com/vaadin/terminal/gwt/client/MouseEventDetailsBuilder.java
+++ b/src/com/vaadin/terminal/gwt/client/MouseEventDetailsBuilder.java
@@ -6,6 +6,7 @@ package com.vaadin.terminal.gwt.client;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.user.client.Event;
+import com.vaadin.shared.MouseEventDetails;
/**
* Helper class for constructing a MouseEventDetails object from a
diff --git a/src/com/vaadin/terminal/gwt/client/NullConsole.java b/src/com/vaadin/terminal/gwt/client/NullConsole.java
index 2d15ffd46c..7db513ca82 100644
--- a/src/com/vaadin/terminal/gwt/client/NullConsole.java
+++ b/src/com/vaadin/terminal/gwt/client/NullConsole.java
@@ -15,39 +15,48 @@ import com.google.gwt.core.client.GWT;
*/
public class NullConsole implements Console {
+ @Override
public void dirUIDL(ValueMap u, ApplicationConfiguration cnf) {
}
+ @Override
public void error(String msg) {
GWT.log(msg);
}
+ @Override
public void log(String msg) {
GWT.log(msg);
}
+ @Override
public void printObject(Object msg) {
GWT.log(msg.toString());
}
+ @Override
public void printLayoutProblems(ValueMap meta,
ApplicationConnection applicationConnection,
Set<ComponentConnector> zeroHeightComponents,
Set<ComponentConnector> zeroWidthComponents) {
}
+ @Override
public void log(Throwable e) {
GWT.log(e.getMessage(), e);
}
+ @Override
public void error(Throwable e) {
// Borrow exception handling from VDebugConsole
VDebugConsole.handleError(e, this);
}
+ @Override
public void setQuietMode(boolean quietDebugMode) {
}
+ @Override
public void init() {
}
diff --git a/src/com/vaadin/terminal/gwt/client/ResourceLoader.java b/src/com/vaadin/terminal/gwt/client/ResourceLoader.java
new file mode 100644
index 0000000000..21577ce87e
--- /dev/null
+++ b/src/com/vaadin/terminal/gwt/client/ResourceLoader.java
@@ -0,0 +1,540 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.terminal.gwt.client;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import com.google.gwt.core.client.Duration;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.RepeatingCommand;
+import com.google.gwt.dom.client.AnchorElement;
+import com.google.gwt.dom.client.Document;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.LinkElement;
+import com.google.gwt.dom.client.NodeList;
+import com.google.gwt.dom.client.ObjectElement;
+import com.google.gwt.dom.client.ScriptElement;
+import com.google.gwt.user.client.Timer;
+
+/**
+ * ResourceLoader lets you dynamically include external scripts and styles on
+ * the page and lets you know when the resource has been loaded.
+ *
+ * You can also preload resources, allowing them to get cached by the browser
+ * without being evaluated. This enables downloading multiple resources at once
+ * while still controlling in which order e.g. scripts are executed.
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+public class ResourceLoader {
+ /**
+ * Event fired when a resource has been loaded.
+ */
+ public static class ResourceLoadEvent {
+ private ResourceLoader loader;
+ private String resourceUrl;
+ private final boolean preload;
+
+ /**
+ * Creates a new event.
+ *
+ * @param loader
+ * the resource loader that has loaded the resource
+ * @param resourceUrl
+ * the url of the loaded resource
+ * @param preload
+ * true if the resource has only been preloaded, false if
+ * it's fully loaded
+ */
+ public ResourceLoadEvent(ResourceLoader loader, String resourceUrl,
+ boolean preload) {
+ this.loader = loader;
+ this.resourceUrl = resourceUrl;
+ this.preload = preload;
+ }
+
+ /**
+ * Gets the resource loader that has fired this event
+ *
+ * @return the resource loader
+ */
+ public ResourceLoader getResourceLoader() {
+ return loader;
+ }
+
+ /**
+ * Gets the absolute url of the loaded resource.
+ *
+ * @return the absolute url of the loaded resource
+ */
+ public String getResourceUrl() {
+ return resourceUrl;
+ }
+
+ /**
+ * Returns true if the resource has been preloaded, false if it's fully
+ * loaded
+ *
+ * @see ResourceLoader#preloadResource(String, ResourceLoadListener)
+ *
+ * @return true if the resource has been preloaded, false if it's fully
+ * loaded
+ */
+ public boolean isPreload() {
+ return preload;
+ }
+ }
+
+ /**
+ * Event listener that gets notified when a resource has been loaded
+ */
+ public interface ResourceLoadListener {
+ /**
+ * Notifies this ResourceLoadListener that a resource has been loaded.
+ * Some browsers do not support any way of detecting load errors. In
+ * these cases, onLoad will be called regardless of the status.
+ *
+ * @see ResourceLoadEvent
+ *
+ * @param event
+ * a resource load event with information about the loaded
+ * resource
+ */
+ public void onLoad(ResourceLoadEvent event);
+
+ /**
+ * Notifies this ResourceLoadListener that a resource could not be
+ * loaded, e.g. because the file could not be found or because the
+ * server did not respond. Some browsers do not support any way of
+ * detecting load errors. In these cases, onLoad will be called
+ * regardless of the status.
+ *
+ * @see ResourceLoadEvent
+ *
+ * @param event
+ * a resource load event with information about the resource
+ * that could not be loaded.
+ */
+ public void onError(ResourceLoadEvent event);
+ }
+
+ private static final ResourceLoader INSTANCE = GWT
+ .create(ResourceLoader.class);
+
+ private ApplicationConnection connection;
+
+ private final Set<String> loadedResources = new HashSet<String>();
+ private final Set<String> preloadedResources = new HashSet<String>();
+
+ private final Map<String, Collection<ResourceLoadListener>> loadListeners = new HashMap<String, Collection<ResourceLoadListener>>();
+ private final Map<String, Collection<ResourceLoadListener>> preloadListeners = new HashMap<String, Collection<ResourceLoadListener>>();
+
+ private final Element head;
+
+ /**
+ * Creates a new resource loader. You should generally not create you own
+ * resource loader, but instead use {@link ResourceLoader#get()} to get an
+ * instance.
+ */
+ protected ResourceLoader() {
+ Document document = Document.get();
+ head = document.getElementsByTagName("head").getItem(0);
+
+ // detect already loaded scripts and stylesheets
+ NodeList<Element> scripts = document.getElementsByTagName("script");
+ for (int i = 0; i < scripts.getLength(); i++) {
+ ScriptElement element = ScriptElement.as(scripts.getItem(i));
+ String src = element.getSrc();
+ if (src != null && src.length() != 0) {
+ loadedResources.add(src);
+ }
+ }
+
+ NodeList<Element> links = document.getElementsByTagName("link");
+ for (int i = 0; i < links.getLength(); i++) {
+ LinkElement linkElement = LinkElement.as(links.getItem(i));
+ String rel = linkElement.getRel();
+ String href = linkElement.getHref();
+ if ("stylesheet".equalsIgnoreCase(rel) && href != null
+ && href.length() != 0) {
+ loadedResources.add(href);
+ }
+ }
+ }
+
+ /**
+ * Returns the default ResourceLoader
+ *
+ * @return the default ResourceLoader
+ */
+ public static ResourceLoader get() {
+ return INSTANCE;
+ }
+
+ /**
+ * Load a script and notify a listener when the script is loaded. Calling
+ * this method when the script is currently loading or already loaded
+ * doesn't cause the script to be loaded again, but the listener will still
+ * be notified when appropriate.
+ *
+ *
+ * @param scriptUrl
+ * the url of the script to load
+ * @param resourceLoadListener
+ * the listener that will get notified when the script is loaded
+ */
+ public void loadScript(final String scriptUrl,
+ final ResourceLoadListener resourceLoadListener) {
+ final String url = getAbsoluteUrl(scriptUrl);
+ ResourceLoadEvent event = new ResourceLoadEvent(this, url, false);
+ if (loadedResources.contains(url)) {
+ if (resourceLoadListener != null) {
+ resourceLoadListener.onLoad(event);
+ }
+ return;
+ }
+
+ if (preloadListeners.containsKey(url)) {
+ // Preload going on, continue when preloaded
+ preloadResource(url, new ResourceLoadListener() {
+ @Override
+ public void onLoad(ResourceLoadEvent event) {
+ loadScript(url, resourceLoadListener);
+ }
+
+ @Override
+ public void onError(ResourceLoadEvent event) {
+ // Preload failed -> signal error to own listener
+ if (resourceLoadListener != null) {
+ resourceLoadListener.onError(event);
+ }
+ }
+ });
+ return;
+ }
+
+ if (addListener(url, resourceLoadListener, loadListeners)) {
+ ScriptElement scriptTag = Document.get().createScriptElement();
+ scriptTag.setSrc(url);
+ scriptTag.setType("text/javascript");
+ addOnloadHandler(scriptTag, new ResourceLoadListener() {
+ @Override
+ public void onLoad(ResourceLoadEvent event) {
+ fireLoad(event);
+ }
+
+ @Override
+ public void onError(ResourceLoadEvent event) {
+ fireError(event);
+ }
+ }, event);
+ head.appendChild(scriptTag);
+ }
+ }
+
+ private static String getAbsoluteUrl(String url) {
+ AnchorElement a = Document.get().createAnchorElement();
+ a.setHref(url);
+ return a.getHref();
+ }
+
+ /**
+ * Download a resource and notify a listener when the resource is loaded
+ * without attempting to interpret the resource. When a resource has been
+ * preloaded, it will be present in the browser's cache (provided the HTTP
+ * headers allow caching), making a subsequent load operation complete
+ * without having to wait for the resource to be downloaded again.
+ *
+ * Calling this method when the resource is currently loading, currently
+ * preloading, already preloaded or already loaded doesn't cause the
+ * resource to be preloaded again, but the listener will still be notified
+ * when appropriate.
+ *
+ * @param url
+ * the url of the resource to preload
+ * @param resourceLoadListener
+ * the listener that will get notified when the resource is
+ * preloaded
+ */
+ public void preloadResource(String url,
+ ResourceLoadListener resourceLoadListener) {
+ url = getAbsoluteUrl(url);
+ ResourceLoadEvent event = new ResourceLoadEvent(this, url, true);
+ if (loadedResources.contains(url) || preloadedResources.contains(url)) {
+ // Already loaded or preloaded -> just fire listener
+ if (resourceLoadListener != null) {
+ resourceLoadListener.onLoad(event);
+ }
+ return;
+ }
+
+ if (addListener(url, resourceLoadListener, preloadListeners)
+ && !loadListeners.containsKey(url)) {
+ // Inject loader element if this is the first time this is preloaded
+ // AND the resources isn't already being loaded in the normal way
+
+ Element element = getPreloadElement(url);
+ addOnloadHandler(element, new ResourceLoadListener() {
+ @Override
+ public void onLoad(ResourceLoadEvent event) {
+ fireLoad(event);
+ }
+
+ @Override
+ public void onError(ResourceLoadEvent event) {
+ fireError(event);
+ }
+ }, event);
+
+ // TODO Remove object when loaded (without causing spinner in FF)
+ Document.get().getBody().appendChild(element);
+ }
+ }
+
+ private static Element getPreloadElement(String url) {
+ if (BrowserInfo.get().isIE()) {
+ ScriptElement element = Document.get().createScriptElement();
+ element.setSrc(url);
+ element.setType("text/cache");
+ return element;
+ } else {
+ ObjectElement element = Document.get().createObjectElement();
+ element.setData(url);
+ element.setType("text/plain");
+ element.setHeight("0px");
+ element.setWidth("0px");
+ return element;
+ }
+ }
+
+ private native void addOnloadHandler(Element element,
+ ResourceLoadListener listener, ResourceLoadEvent event)
+ /*-{
+ element.onload = $entry(function() {
+ element.onload = null;
+ element.onerror = null;
+ element.onreadystatechange = null;
+ listener.@com.vaadin.terminal.gwt.client.ResourceLoader.ResourceLoadListener::onLoad(Lcom/vaadin/terminal/gwt/client/ResourceLoader$ResourceLoadEvent;)(event);
+ });
+ element.onerror = $entry(function() {
+ element.onload = null;
+ element.onerror = null;
+ element.onreadystatechange = null;
+ listener.@com.vaadin.terminal.gwt.client.ResourceLoader.ResourceLoadListener::onError(Lcom/vaadin/terminal/gwt/client/ResourceLoader$ResourceLoadEvent;)(event);
+ });
+ element.onreadystatechange = function() {
+ if ("loaded" === element.readyState || "complete" === element.readyState ) {
+ element.onload(arguments[0]);
+ }
+ };
+ }-*/;
+
+ /**
+ * Load a stylesheet and notify a listener when the stylesheet is loaded.
+ * Calling this method when the stylesheet is currently loading or already
+ * loaded doesn't cause the stylesheet to be loaded again, but the listener
+ * will still be notified when appropriate.
+ *
+ * @param stylesheetUrl
+ * the url of the stylesheet to load
+ * @param resourceLoadListener
+ * the listener that will get notified when the stylesheet is
+ * loaded
+ */
+ public void loadStylesheet(final String stylesheetUrl,
+ final ResourceLoadListener resourceLoadListener) {
+ final String url = getAbsoluteUrl(stylesheetUrl);
+ final ResourceLoadEvent event = new ResourceLoadEvent(this, url, false);
+ if (loadedResources.contains(url)) {
+ if (resourceLoadListener != null) {
+ resourceLoadListener.onLoad(event);
+ }
+ return;
+ }
+
+ if (preloadListeners.containsKey(url)) {
+ // Preload going on, continue when preloaded
+ preloadResource(url, new ResourceLoadListener() {
+ @Override
+ public void onLoad(ResourceLoadEvent event) {
+ loadStylesheet(url, resourceLoadListener);
+ }
+
+ @Override
+ public void onError(ResourceLoadEvent event) {
+ // Preload failed -> signal error to own listener
+ if (resourceLoadListener != null) {
+ resourceLoadListener.onError(event);
+ }
+ }
+ });
+ return;
+ }
+
+ if (addListener(url, resourceLoadListener, loadListeners)) {
+ LinkElement linkElement = Document.get().createLinkElement();
+ linkElement.setRel("stylesheet");
+ linkElement.setType("text/css");
+ linkElement.setHref(url);
+
+ if (BrowserInfo.get().isSafari()) {
+ // Safari doesn't fire any events for link elements
+ // See http://www.phpied.com/when-is-a-stylesheet-really-loaded/
+ Scheduler.get().scheduleFixedPeriod(new RepeatingCommand() {
+ private final Duration duration = new Duration();
+
+ @Override
+ public boolean execute() {
+ int styleSheetLength = getStyleSheetLength(url);
+ if (getStyleSheetLength(url) > 0) {
+ fireLoad(event);
+ return false; // Stop repeating
+ } else if (styleSheetLength == 0) {
+ // "Loaded" empty sheet -> most likely 404 error
+ fireError(event);
+ return true;
+ } else if (duration.elapsedMillis() > 60 * 1000) {
+ fireError(event);
+ return false;
+ } else {
+ return true; // Continue repeating
+ }
+ }
+ }, 10);
+ } else {
+ addOnloadHandler(linkElement, new ResourceLoadListener() {
+ @Override
+ public void onLoad(ResourceLoadEvent event) {
+ // Chrome && IE fires load for errors, must check
+ // stylesheet data
+ if (BrowserInfo.get().isChrome()
+ || BrowserInfo.get().isIE()) {
+ int styleSheetLength = getStyleSheetLength(url);
+ // Error if there's an empty stylesheet
+ if (styleSheetLength == 0) {
+ fireError(event);
+ return;
+ }
+ }
+ fireLoad(event);
+ }
+
+ @Override
+ public void onError(ResourceLoadEvent event) {
+ fireError(event);
+ }
+ }, event);
+ if (BrowserInfo.get().isOpera()) {
+ // Opera onerror never fired, assume error if no onload in x
+ // seconds
+ new Timer() {
+ @Override
+ public void run() {
+ if (!loadedResources.contains(url)) {
+ fireError(event);
+ }
+ }
+ }.schedule(5 * 1000);
+ }
+ }
+
+ head.appendChild(linkElement);
+ }
+ }
+
+ private static native int getStyleSheetLength(String url)
+ /*-{
+ for(var i = 0; i < $doc.styleSheets.length; i++) {
+ if ($doc.styleSheets[i].href === url) {
+ var sheet = $doc.styleSheets[i];
+ try {
+ var rules = sheet.cssRules
+ if (rules === undefined) {
+ rules = sheet.rules;
+ }
+
+ if (rules === null) {
+ // Style sheet loaded, but can't access length because of XSS -> assume there's something there
+ return 1;
+ }
+
+ // Return length so we can distinguish 0 (probably 404 error) from normal case.
+ return rules.length;
+ } catch (err) {
+ return 1;
+ }
+ }
+ }
+ // No matching stylesheet found -> not yet loaded
+ return -1;
+ }-*/;
+
+ private static boolean addListener(String url,
+ ResourceLoadListener listener,
+ Map<String, Collection<ResourceLoadListener>> listenerMap) {
+ Collection<ResourceLoadListener> listeners = listenerMap.get(url);
+ if (listeners == null) {
+ listeners = new HashSet<ResourceLoader.ResourceLoadListener>();
+ listeners.add(listener);
+ listenerMap.put(url, listeners);
+ return true;
+ } else {
+ listeners.add(listener);
+ return false;
+ }
+ }
+
+ private void fireError(ResourceLoadEvent event) {
+ String resource = event.getResourceUrl();
+
+ Collection<ResourceLoadListener> listeners;
+ if (event.isPreload()) {
+ // Also fire error for load listeners
+ fireError(new ResourceLoadEvent(this, resource, false));
+ listeners = preloadListeners.remove(resource);
+ } else {
+ listeners = loadListeners.remove(resource);
+ }
+ if (listeners != null && !listeners.isEmpty()) {
+ for (ResourceLoadListener listener : listeners) {
+ if (listener != null) {
+ listener.onError(event);
+ }
+ }
+ }
+ }
+
+ private void fireLoad(ResourceLoadEvent event) {
+ String resource = event.getResourceUrl();
+ Collection<ResourceLoadListener> listeners;
+ if (event.isPreload()) {
+ preloadedResources.add(resource);
+ listeners = preloadListeners.remove(resource);
+ } else {
+ if (preloadListeners.containsKey(resource)) {
+ // Also fire preload events for potential listeners
+ fireLoad(new ResourceLoadEvent(this, resource, true));
+ }
+ preloadedResources.remove(resource);
+ loadedResources.add(resource);
+ listeners = loadListeners.remove(resource);
+ }
+ if (listeners != null && !listeners.isEmpty()) {
+ for (ResourceLoadListener listener : listeners) {
+ if (listener != null) {
+ listener.onLoad(event);
+ }
+ }
+ }
+ }
+
+}
diff --git a/src/com/vaadin/terminal/gwt/client/ServerConnector.java b/src/com/vaadin/terminal/gwt/client/ServerConnector.java
index fcf5100c8e..a0f08b92b9 100644
--- a/src/com/vaadin/terminal/gwt/client/ServerConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ServerConnector.java
@@ -8,7 +8,8 @@ import java.util.List;
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.shared.Connector;
+import com.vaadin.shared.communication.ClientRpc;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent.StateChangeHandler;
/**
@@ -102,6 +103,7 @@ public interface ServerConnector extends Connector {
* @return The parent of this connector, as set by
* {@link #setParent(ServerConnector)}.
*/
+ @Override
public ServerConnector getParent();
/**
diff --git a/src/com/vaadin/terminal/gwt/client/SimpleTree.java b/src/com/vaadin/terminal/gwt/client/SimpleTree.java
index 350e0d707d..506d990aac 100644
--- a/src/com/vaadin/terminal/gwt/client/SimpleTree.java
+++ b/src/com/vaadin/terminal/gwt/client/SimpleTree.java
@@ -49,6 +49,7 @@ public class SimpleTree extends ComplexPanel {
getElement().appendChild(children);
addDomHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
if (event.getNativeEvent().getEventTarget().cast() == handle) {
if (children.getStyle().getDisplay().intern() == Display.NONE
diff --git a/src/com/vaadin/terminal/gwt/client/SuperDevMode.java b/src/com/vaadin/terminal/gwt/client/SuperDevMode.java
new file mode 100644
index 0000000000..e435b3c6ed
--- /dev/null
+++ b/src/com/vaadin/terminal/gwt/client/SuperDevMode.java
@@ -0,0 +1,253 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.terminal.gwt.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.http.client.UrlBuilder;
+import com.google.gwt.jsonp.client.JsonpRequestBuilder;
+import com.google.gwt.storage.client.Storage;
+import com.google.gwt.user.client.Window.Location;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.vaadin.terminal.gwt.client.ui.notification.VNotification;
+import com.vaadin.terminal.gwt.client.ui.notification.VNotification.EventListener;
+import com.vaadin.terminal.gwt.client.ui.notification.VNotification.HideEvent;
+
+/**
+ * Class that enables SuperDevMode using a ?superdevmode parameter in the url.
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0
+ *
+ */
+public class SuperDevMode {
+
+ private static final int COMPILE_TIMEOUT_IN_SECONDS = 60;
+ protected static final String SKIP_RECOMPILE = "VaadinSuperDevMode_skip_recompile";
+
+ public static class RecompileResult extends JavaScriptObject {
+ protected RecompileResult() {
+
+ }
+
+ public final native boolean ok()
+ /*-{
+ return this.status == "ok";
+ }-*/;
+ }
+
+ private static void recompileWidgetsetAndStartInDevMode(
+ final String serverUrl) {
+ VConsole.log("Recompiling widgetset using<br/>" + serverUrl
+ + "<br/>and then reloading in super dev mode");
+ VNotification n = new VNotification();
+ n.show("<b>Recompiling widgetset, this should not take too long</b>",
+ VNotification.CENTERED, VNotification.STYLE_SYSTEM);
+
+ JsonpRequestBuilder b = new JsonpRequestBuilder();
+ b.setCallbackParam("_callback");
+ b.setTimeout(COMPILE_TIMEOUT_IN_SECONDS * 1000);
+ b.requestObject(serverUrl + "recompile/" + GWT.getModuleName() + "?"
+ + getRecompileParameters(GWT.getModuleName()),
+ new AsyncCallback<RecompileResult>() {
+
+ @Override
+ public void onSuccess(RecompileResult result) {
+ VConsole.log("JSONP compile call successful");
+
+ if (!result.ok()) {
+ VConsole.log("* result: " + result);
+ failed();
+ return;
+ }
+
+ setSession(
+ getSuperDevModeHookKey(),
+ getSuperDevWidgetSetUrl(GWT.getModuleName(),
+ serverUrl));
+ setSession(SKIP_RECOMPILE, "1");
+
+ VConsole.log("* result: OK. Reloading");
+ Location.reload();
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ VConsole.error("JSONP compile call failed");
+ // Don't log exception as they are shown as
+ // notifications
+ VConsole.error(Util.getSimpleName(caught) + ": "
+ + caught.getMessage());
+ failed();
+
+ }
+
+ private void failed() {
+ VNotification n = new VNotification();
+ n.addEventListener(new EventListener() {
+
+ @Override
+ public void notificationHidden(HideEvent event) {
+ recompileWidgetsetAndStartInDevMode(serverUrl);
+ }
+ });
+ n.show("Recompilation failed.<br/>"
+ + "Make sure CodeServer is running, "
+ + "check its output and click to retry",
+ VNotification.CENTERED,
+ VNotification.STYLE_SYSTEM);
+ }
+ });
+
+ }
+
+ protected static String getSuperDevWidgetSetUrl(String widgetsetName,
+ String serverUrl) {
+ return serverUrl + GWT.getModuleName() + "/" + GWT.getModuleName()
+ + ".nocache.js";
+ }
+
+ private native static String getRecompileParameters(String moduleName)
+ /*-{
+ var prop_map = $wnd.__gwt_activeModules[moduleName].bindings();
+
+ // convert map to URL parameter string
+ var props = [];
+ for (var key in prop_map) {
+ props.push(encodeURIComponent(key) + '=' + encodeURIComponent(prop_map[key]))
+ }
+
+ return props.join('&') + '&';
+ }-*/;
+
+ private static void setSession(String key, String value) {
+ Storage.getSessionStorageIfSupported().setItem(key, value);
+ }
+
+ private static String getSession(String key) {
+ return Storage.getSessionStorageIfSupported().getItem(key);
+ }
+
+ private static void removeSession(String key) {
+ Storage.getSessionStorageIfSupported().removeItem(key);
+ }
+
+ protected static void disableDevModeAndReload() {
+ removeSession(getSuperDevModeHookKey());
+ redirect(false);
+ }
+
+ protected static void redirect(boolean devModeOn) {
+ UrlBuilder createUrlBuilder = Location.createUrlBuilder();
+ if (!devModeOn) {
+ createUrlBuilder.removeParameter("superdevmode");
+ } else {
+ createUrlBuilder.setParameter("superdevmode", "");
+ }
+
+ Location.assign(createUrlBuilder.buildString());
+
+ }
+
+ private static String getSuperDevModeHookKey() {
+ String widgetsetName = GWT.getModuleName();
+ final String superDevModeKey = "__gwtDevModeHook:" + widgetsetName;
+ return superDevModeKey;
+ }
+
+ private static boolean hasSession(String key) {
+ return getSession(key) != null;
+ }
+
+ /**
+ * The URL of the code server. The default URL (http://localhost:9876/) will
+ * be used if this is empty or null.
+ *
+ * @param serverUrl
+ * The url of the code server or null to use the default
+ * @return true if recompile started, false if we are running in
+ * SuperDevMode
+ */
+ protected static boolean recompileIfNeeded(String serverUrl) {
+ if (serverUrl == null || "".equals(serverUrl)) {
+ serverUrl = "http://localhost:9876/";
+ } else {
+ serverUrl = "http://" + serverUrl + "/";
+ }
+
+ if (hasSession(SKIP_RECOMPILE)) {
+ VConsole.log("Running in SuperDevMode");
+ // When we get here, we are running in super dev mode
+
+ // Remove the flag so next reload will recompile
+ removeSession(SKIP_RECOMPILE);
+
+ // Remove the gwt flag so we will not end up in dev mode if we
+ // remove the url parameter manually
+ removeSession(getSuperDevModeHookKey());
+
+ return false;
+ }
+
+ recompileWidgetsetAndStartInDevMode(serverUrl);
+ return true;
+ }
+
+ protected static boolean isSuperDevModeEnabledInModule() {
+ String moduleName = GWT.getModuleName();
+ return isSuperDevModeEnabledInModule(moduleName);
+ }
+
+ protected native static boolean isSuperDevModeEnabledInModule(
+ String moduleName)
+ /*-{
+ if (!$wnd.__gwt_activeModules)
+ return false;
+ var mod = $wnd.__gwt_activeModules[moduleName];
+ if (!mod)
+ return false;
+
+ if (mod.superdevmode) {
+ // Running in super dev mode already, it is supported
+ return true;
+ }
+
+ return !!mod.canRedirect;
+ }-*/;
+
+ /**
+ * Enables SuperDevMode if the url contains the "superdevmode" parameter.
+ * <p>
+ * The caller should not continue initialization of the application if this
+ * method returns true. The application will be restarted once compilation
+ * is done and then this method will return false.
+ * </p>
+ *
+ * @return true if a recompile operation has started and the page will be
+ * reloaded once it is done, false if no recompilation will be done.
+ */
+ public static boolean enableBasedOnParameter() {
+ String superDevModeParameter = Location.getParameter("superdevmode");
+ if (superDevModeParameter != null) {
+ // Need to check the recompile flag also because if we are running
+ // in super dev mode, as a result of the recompile, the enabled
+ // check will fail...
+ if (!isSuperDevModeEnabledInModule()) {
+ showError("SuperDevMode is not enabled for this module/widgetset.<br/>"
+ + "Ensure that your module definition (.gwt.xml) contains <br/>"
+ + "&lt;add-linker name=&quot;xsiframe&quot;/&gt;<br/>"
+ + "&lt;set-configuration-property name=&quot;devModeRedirectEnabled&quot; value=&quot;true&quot; /&gt;<br/>");
+ return false;
+ }
+ return SuperDevMode.recompileIfNeeded(superDevModeParameter);
+ }
+ return false;
+ }
+
+ private static void showError(String message) {
+ VNotification n = new VNotification();
+ n.show(message, VNotification.CENTERED_TOP, VNotification.STYLE_SYSTEM);
+ }
+}
diff --git a/src/com/vaadin/terminal/gwt/client/TooltipInfo.java b/src/com/vaadin/terminal/gwt/client/TooltipInfo.java
index fb33a56c56..712d263695 100644
--- a/src/com/vaadin/terminal/gwt/client/TooltipInfo.java
+++ b/src/com/vaadin/terminal/gwt/client/TooltipInfo.java
@@ -16,6 +16,11 @@ public class TooltipInfo {
setTitle(tooltip);
}
+ public TooltipInfo(String tooltip, String errorMessage) {
+ setTitle(tooltip);
+ setErrorMessage(errorMessage);
+ }
+
public String getTitle() {
return title;
}
@@ -32,4 +37,18 @@ public class TooltipInfo {
errorMessageHtml = errorMessage;
}
+ /**
+ * Checks is a message has been defined for the tooltip.
+ *
+ * @return true if title or error message is present, false if both are
+ * empty
+ */
+ public boolean hasMessage() {
+ return (title != null && !title.isEmpty())
+ || (errorMessageHtml != null && !errorMessageHtml.isEmpty());
+ }
+
+ public boolean equals(TooltipInfo other) {
+ return (other != null && other.title == title && other.errorMessageHtml == errorMessageHtml);
+ }
}
diff --git a/src/com/vaadin/terminal/gwt/client/UIDL.java b/src/com/vaadin/terminal/gwt/client/UIDL.java
index a523016b60..e662e08b3f 100644
--- a/src/com/vaadin/terminal/gwt/client/UIDL.java
+++ b/src/com/vaadin/terminal/gwt/client/UIDL.java
@@ -283,10 +283,12 @@ public final class UIDL extends JavaScriptObject {
int index = -1;
+ @Override
public void remove() {
throw new UnsupportedOperationException();
}
+ @Override
public Object next() {
if (hasNext()) {
@@ -308,6 +310,7 @@ public final class UIDL extends JavaScriptObject {
return null;
}
+ @Override
public boolean hasNext() {
int count = getChildCount();
return count > index + 1;
diff --git a/src/com/vaadin/terminal/gwt/client/Util.java b/src/com/vaadin/terminal/gwt/client/Util.java
index d3cb54160d..a27c77fa45 100644
--- a/src/com/vaadin/terminal/gwt/client/Util.java
+++ b/src/com/vaadin/terminal/gwt/client/Util.java
@@ -27,8 +27,10 @@ import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.communication.MethodInvocation;
import com.vaadin.terminal.gwt.client.RenderInformation.FloatSize;
-import com.vaadin.terminal.gwt.client.communication.MethodInvocation;
+import com.vaadin.terminal.gwt.client.ui.VOverlay;
public class Util {
@@ -446,6 +448,7 @@ public class Util {
elem.getStyle().setProperty("overflow", "hidden");
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
// Dough, Safari scroll auto means actually just a moped
elem.getStyle().setProperty("overflow", originalOverflow);
@@ -642,34 +645,47 @@ public class Util {
*/
public static ComponentConnector getConnectorForElement(
ApplicationConnection client, Widget parent, Element element) {
+
+ Element browseElement = element;
Element rootElement = parent.getElement();
- while (element != null && element != rootElement) {
- ComponentConnector paintable = ConnectorMap.get(client)
- .getConnector(element);
- if (paintable == null) {
- String ownerPid = VCaption.getCaptionOwnerPid(element);
+
+ while (browseElement != null && browseElement != rootElement) {
+
+ ComponentConnector connector = ConnectorMap.get(client)
+ .getConnector(browseElement);
+
+ if (connector == null) {
+ String ownerPid = VCaption.getCaptionOwnerPid(browseElement);
if (ownerPid != null) {
- paintable = (ComponentConnector) ConnectorMap.get(client)
+ connector = (ComponentConnector) ConnectorMap.get(client)
.getConnector(ownerPid);
}
}
- if (paintable != null) {
+ if (connector != null) {
// check that inside the rootElement
- while (element != null && element != rootElement) {
- element = (Element) element.getParentElement();
+ while (browseElement != null && browseElement != rootElement) {
+ browseElement = (Element) browseElement.getParentElement();
}
- if (element != rootElement) {
+ if (browseElement != rootElement) {
return null;
} else {
- return paintable;
+ return connector;
}
}
- element = (Element) element.getParentElement();
+ browseElement = (Element) browseElement.getParentElement();
}
- return null;
+ // No connector found, element is possibly inside a VOverlay
+ // If the overlay has an owner, try to find the owner's connector
+ VOverlay overlay = findWidget(element, VOverlay.class);
+ if (overlay != null && overlay.getOwner() != null) {
+ return getConnectorForElement(client, RootPanel.get(), overlay
+ .getOwner().getElement());
+ } else {
+ return null;
+ }
}
/**
@@ -818,30 +834,29 @@ public class Util {
ServerConnector connector = ConnectorMap.get(c).getConnector(id);
if (connector != null) {
VConsole.log("\t" + id + " (" + connector.getClass() + ") :");
- for (MethodInvocation invocation : invocations) {
- Object[] parameters = invocation.getParameters();
- String formattedParams = null;
- if (ApplicationConnection.UPDATE_VARIABLE_METHOD
- .equals(invocation.getMethodName())
- && parameters.length == 2) {
- // name, value
- Object value = parameters[1];
- // TODO paintables inside lists/maps get rendered as
- // components in the debug console
- String formattedValue = value instanceof ServerConnector ? ((ServerConnector) value)
- .getConnectorId() : String.valueOf(value);
- formattedParams = parameters[0] + " : " + formattedValue;
- }
- if (null == formattedParams) {
- formattedParams = (null != parameters) ? Arrays
- .toString(parameters) : null;
- }
- VConsole.log("\t\t" + invocation.getInterfaceName() + "."
- + invocation.getMethodName() + "(" + formattedParams
- + ")");
- }
} else {
- VConsole.log("\t" + id + ": Warning: no corresponding connector!");
+ VConsole.log("\t" + id
+ + ": Warning: no corresponding connector for id " + id);
+ }
+ for (MethodInvocation invocation : invocations) {
+ Object[] parameters = invocation.getParameters();
+ String formattedParams = null;
+ if (ApplicationConnection.UPDATE_VARIABLE_METHOD.equals(invocation
+ .getMethodName()) && parameters.length == 2) {
+ // name, value
+ Object value = parameters[1];
+ // TODO paintables inside lists/maps get rendered as
+ // components in the debug console
+ String formattedValue = value instanceof ServerConnector ? ((ServerConnector) value)
+ .getConnectorId() : String.valueOf(value);
+ formattedParams = parameters[0] + " : " + formattedValue;
+ }
+ if (null == formattedParams) {
+ formattedParams = (null != parameters) ? Arrays
+ .toString(parameters) : null;
+ }
+ VConsole.log("\t\t" + invocation.getInterfaceName() + "."
+ + invocation.getMethodName() + "(" + formattedParams + ")");
}
}
@@ -1007,6 +1022,7 @@ public class Util {
}
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+ @Override
public void execute() {
try {
target.dispatchEvent(createMouseDownEvent);
diff --git a/src/com/vaadin/terminal/gwt/client/VCaption.java b/src/com/vaadin/terminal/gwt/client/VCaption.java
index 6f3fcf2c3a..85acc215b7 100644
--- a/src/com/vaadin/terminal/gwt/client/VCaption.java
+++ b/src/com/vaadin/terminal/gwt/client/VCaption.java
@@ -8,6 +8,8 @@ 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.HTML;
+import com.vaadin.shared.AbstractFieldState;
+import com.vaadin.shared.ComponentState;
import com.vaadin.terminal.gwt.client.ui.AbstractFieldConnector;
import com.vaadin.terminal.gwt.client.ui.Icon;
@@ -35,6 +37,8 @@ public class VCaption extends HTML {
ICON, CAPTION, REQUIRED, ERROR
}
+ private TooltipInfo tooltipInfo = null;
+
/**
* Creates a caption that is not linked to a {@link ComponentConnector}.
*
@@ -74,8 +78,6 @@ public class VCaption extends HTML {
}
setStyleName(CLASSNAME);
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
-
}
/**
@@ -345,9 +347,6 @@ public class VCaption extends HTML {
public void onBrowserEvent(Event event) {
super.onBrowserEvent(event);
final Element target = DOM.eventGetTarget(event);
- if (client != null && owner != null && target != getElement()) {
- client.handleTooltipEvent(event, owner);
- }
if (DOM.eventGetType(event) == Event.ONLOAD
&& icon.getElement() == target) {
@@ -555,6 +554,26 @@ public class VCaption extends HTML {
}
}
+ /**
+ * Sets the tooltip that should be shown for the caption
+ *
+ * @param tooltipInfo
+ * The tooltip that should be shown or null if no tooltip should
+ * be shown
+ */
+ public void setTooltipInfo(TooltipInfo tooltipInfo) {
+ this.tooltipInfo = tooltipInfo;
+ }
+
+ /**
+ * Returns the tooltip that should be shown for the caption
+ *
+ * @return The tooltip to show or null if no tooltip should be shown
+ */
+ public TooltipInfo getTooltipInfo() {
+ return tooltipInfo;
+ }
+
protected Element getTextElement() {
return captionText;
}
diff --git a/src/com/vaadin/terminal/gwt/client/VConsole.java b/src/com/vaadin/terminal/gwt/client/VConsole.java
index dee8529a84..a221b42d67 100644
--- a/src/com/vaadin/terminal/gwt/client/VConsole.java
+++ b/src/com/vaadin/terminal/gwt/client/VConsole.java
@@ -57,35 +57,49 @@ public class VConsole {
}
public static void log(String msg) {
- impl.log(msg);
+ if (impl != null) {
+ impl.log(msg);
+ }
}
public static void log(Throwable e) {
- impl.log(e);
+ if (impl != null) {
+ impl.log(e);
+ }
}
public static void error(Throwable e) {
- impl.error(e);
+ if (impl != null) {
+ impl.error(e);
+ }
}
public static void error(String msg) {
- impl.error(msg);
+ if (impl != null) {
+ impl.error(msg);
+ }
}
public static void printObject(Object msg) {
- impl.printObject(msg);
+ if (impl != null) {
+ impl.printObject(msg);
+ }
}
public static void dirUIDL(ValueMap u, ApplicationConfiguration cnf) {
- impl.dirUIDL(u, cnf);
+ if (impl != null) {
+ impl.dirUIDL(u, cnf);
+ }
}
public static void printLayoutProblems(ValueMap meta,
ApplicationConnection applicationConnection,
Set<ComponentConnector> zeroHeightComponents,
Set<ComponentConnector> zeroWidthComponents) {
- impl.printLayoutProblems(meta, applicationConnection,
- zeroHeightComponents, zeroWidthComponents);
+ if (impl != null) {
+ impl.printLayoutProblems(meta, applicationConnection,
+ zeroHeightComponents, zeroWidthComponents);
+ }
}
}
diff --git a/src/com/vaadin/terminal/gwt/client/VDebugConsole.java b/src/com/vaadin/terminal/gwt/client/VDebugConsole.java
index 09e939336e..a7bd943912 100644
--- a/src/com/vaadin/terminal/gwt/client/VDebugConsole.java
+++ b/src/com/vaadin/terminal/gwt/client/VDebugConsole.java
@@ -24,6 +24,8 @@ import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.MouseOutEvent;
import com.google.gwt.event.dom.client.MouseOutHandler;
+import com.google.gwt.event.logical.shared.ValueChangeEvent;
+import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.event.shared.UmbrellaException;
import com.google.gwt.http.client.Request;
@@ -33,6 +35,7 @@ import com.google.gwt.http.client.RequestException;
import com.google.gwt.http.client.Response;
import com.google.gwt.http.client.UrlBuilder;
import com.google.gwt.i18n.client.DateTimeFormat;
+import com.google.gwt.storage.client.Storage;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
@@ -81,6 +84,7 @@ public class VDebugConsole extends VOverlay implements Console {
this.label = label;
}
+ @Override
public void onPreviewNativeEvent(NativePreviewEvent event) {
if (event.getTypeInt() == Event.ONKEYDOWN
&& event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ESCAPE) {
@@ -160,7 +164,8 @@ public class VDebugConsole extends VOverlay implements Console {
private Button savePosition = new Button("S");
private Button highlight = new Button("H");
private Button connectorStats = new Button("CS");
- private CheckBox hostedMode = new CheckBox("GWT");
+ private CheckBox devMode = new CheckBox("Dev");
+ private CheckBox superDevMode = new CheckBox("SDev");
private CheckBox autoScroll = new CheckBox("Autoscroll ");
private HorizontalPanel actions;
private boolean collapsed = false;
@@ -195,6 +200,7 @@ public class VDebugConsole extends VOverlay implements Console {
private EventPreview dragpreview = new EventPreview() {
+ @Override
public boolean onEventPreview(Event event) {
onBrowserEvent(event);
return false;
@@ -342,6 +348,7 @@ public class VDebugConsole extends VOverlay implements Console {
*
* @see com.vaadin.terminal.gwt.client.Console#log(java.lang.String)
*/
+ @Override
public void log(String msg) {
if (msg == null) {
msg = "null";
@@ -358,6 +365,7 @@ public class VDebugConsole extends VOverlay implements Console {
private List<String> msgQueue = new LinkedList<String>();
private ScheduledCommand doSend = new ScheduledCommand() {
+ @Override
public void execute() {
if (!msgQueue.isEmpty()) {
RequestBuilder requestBuilder = new RequestBuilder(
@@ -371,12 +379,14 @@ public class VDebugConsole extends VOverlay implements Console {
requestBuilder.sendRequest(requestData,
new RequestCallback() {
+ @Override
public void onResponseReceived(Request request,
Response response) {
// TODO Auto-generated method stub
}
+ @Override
public void onError(Request request,
Throwable exception) {
// TODO Auto-generated method stub
@@ -434,6 +444,7 @@ public class VDebugConsole extends VOverlay implements Console {
*
* @see com.vaadin.terminal.gwt.client.Console#error(java.lang.String)
*/
+ @Override
public void error(String msg) {
if (msg == null) {
msg = "null";
@@ -462,6 +473,7 @@ public class VDebugConsole extends VOverlay implements Console {
* @see com.vaadin.terminal.gwt.client.Console#printObject(java.lang.
* Object)
*/
+ @Override
public void printObject(Object msg) {
String str;
if (msg == null) {
@@ -479,6 +491,7 @@ public class VDebugConsole extends VOverlay implements Console {
* @see com.vaadin.terminal.gwt.client.Console#dirUIDL(com.vaadin
* .terminal.gwt.client.UIDL)
*/
+ @Override
public void dirUIDL(ValueMap u, ApplicationConfiguration conf) {
if (panel.isAttached()) {
VUIDLBrowser vuidlBrowser = new VUIDLBrowser(u, conf);
@@ -518,6 +531,7 @@ public class VDebugConsole extends VOverlay implements Console {
}
}-*/;
+ @Override
public void printLayoutProblems(ValueMap meta, ApplicationConnection ac,
Set<ComponentConnector> zeroHeightComponents,
Set<ComponentConnector> zeroWidthComponents) {
@@ -572,6 +586,7 @@ public class VDebugConsole extends VOverlay implements Console {
final CheckBox emphasisInUi = new CheckBox(
"Emphasize components parent in UI (the actual component is not visible)");
emphasisInUi.addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
Element element2 = layout.getElement();
Widget.setStyleName(element2, "invalidlayout",
@@ -605,6 +620,7 @@ public class VDebugConsole extends VOverlay implements Console {
}
final CheckBox emphasisInUi = new CheckBox("Emphasize component in UI");
emphasisInUi.addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
if (paintable != null) {
Element element2 = paintable.getWidget().getElement();
@@ -630,6 +646,7 @@ public class VDebugConsole extends VOverlay implements Console {
root.add(errorNode);
}
+ @Override
public void log(Throwable e) {
if (e instanceof UmbrellaException) {
UmbrellaException ue = (UmbrellaException) e;
@@ -642,6 +659,7 @@ public class VDebugConsole extends VOverlay implements Console {
GWT.log(e.getMessage(), e);
}
+ @Override
public void error(Throwable e) {
handleError(e, this);
}
@@ -673,6 +691,7 @@ public class VDebugConsole extends VOverlay implements Console {
}
}
+ @Override
public void init() {
panel = new FlowPanel();
if (!quietMode) {
@@ -717,33 +736,8 @@ public class VDebugConsole extends VOverlay implements Console {
savePosition
.setTitle("Saves the position and size of debug console to a cookie");
actions.add(autoScroll);
- actions.add(hostedMode);
- if (Location.getParameter("gwt.codesvr") != null) {
- hostedMode.setValue(true);
- }
- hostedMode.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent event) {
- if (hostedMode.getValue()) {
- addHMParameter();
- } else {
- removeHMParameter();
- }
- }
-
- private void addHMParameter() {
- UrlBuilder createUrlBuilder = Location.createUrlBuilder();
- createUrlBuilder.setParameter("gwt.codesvr",
- "localhost:9997");
- Location.assign(createUrlBuilder.buildString());
- }
-
- private void removeHMParameter() {
- UrlBuilder createUrlBuilder = Location.createUrlBuilder();
- createUrlBuilder.removeParameter("gwt.codesvr");
- Location.assign(createUrlBuilder.buildString());
-
- }
- });
+ addDevMode();
+ addSuperDevMode();
autoScroll
.setTitle("Automatically scroll so that new messages are visible");
@@ -753,6 +747,7 @@ public class VDebugConsole extends VOverlay implements Console {
panel.add(new HTML("<i>" + help + "</i>"));
clear.addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
int width = panel.getOffsetWidth();
int height = panel.getOffsetHeight();
@@ -765,6 +760,7 @@ public class VDebugConsole extends VOverlay implements Console {
});
restart.addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
String queryString = Window.Location.getQueryString();
@@ -792,6 +788,7 @@ public class VDebugConsole extends VOverlay implements Console {
});
forceLayout.addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
for (ApplicationConnection applicationConnection : ApplicationConfiguration
.getRunningApplications()) {
@@ -801,6 +798,7 @@ public class VDebugConsole extends VOverlay implements Console {
});
analyzeLayout.addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
List<ApplicationConnection> runningApplications = ApplicationConfiguration
.getRunningApplications();
@@ -816,6 +814,7 @@ public class VDebugConsole extends VOverlay implements Console {
+ " all non committed variables form client side.");
savePosition.addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
String pos = getAbsoluteLeft() + "," + getAbsoluteTop()
+ "," + getOffsetWidth() + "," + getOffsetHeight()
@@ -826,6 +825,7 @@ public class VDebugConsole extends VOverlay implements Console {
highlight.addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
final Label label = new Label("--");
log("<i>Use mouse to select a component or click ESC to exit highlight mode.</i>");
@@ -840,6 +840,7 @@ public class VDebugConsole extends VOverlay implements Console {
}
connectorStats.addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
for (ApplicationConnection a : ApplicationConfiguration
.getRunningApplications()) {
@@ -861,6 +862,56 @@ public class VDebugConsole extends VOverlay implements Console {
}
+ private void addSuperDevMode() {
+ final Storage sessionStorage = Storage.getSessionStorageIfSupported();
+ if (sessionStorage == null) {
+ return;
+ }
+ actions.add(superDevMode);
+ if (Location.getParameter("superdevmode") != null) {
+ superDevMode.setValue(true);
+ }
+ superDevMode.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
+
+ @Override
+ public void onValueChange(ValueChangeEvent<Boolean> event) {
+ SuperDevMode.redirect(event.getValue());
+ }
+
+ });
+
+ }
+
+ private void addDevMode() {
+ actions.add(devMode);
+ if (Location.getParameter("gwt.codesvr") != null) {
+ devMode.setValue(true);
+ }
+ devMode.addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ if (devMode.getValue()) {
+ addHMParameter();
+ } else {
+ removeHMParameter();
+ }
+ }
+
+ private void addHMParameter() {
+ UrlBuilder createUrlBuilder = Location.createUrlBuilder();
+ createUrlBuilder.setParameter("gwt.codesvr", "localhost:9997");
+ Location.assign(createUrlBuilder.buildString());
+ }
+
+ private void removeHMParameter() {
+ UrlBuilder createUrlBuilder = Location.createUrlBuilder();
+ createUrlBuilder.removeParameter("gwt.codesvr");
+ Location.assign(createUrlBuilder.buildString());
+
+ }
+ });
+ }
+
protected void dumpConnectorInfo(ApplicationConnection a) {
RootConnector root = a.getRootConnector();
log("================");
@@ -924,6 +975,7 @@ public class VDebugConsole extends VOverlay implements Console {
}
};
simpleTree.addDomHandler(new MouseOutHandler() {
+ @Override
public void onMouseOut(MouseOutEvent event) {
VUIDLBrowser.deHiglight();
}
@@ -945,6 +997,7 @@ public class VDebugConsole extends VOverlay implements Console {
return Util.getConnectorString(connector);
}
+ @Override
public void setQuietMode(boolean quietDebugMode) {
quietMode = quietDebugMode;
}
diff --git a/src/com/vaadin/terminal/gwt/client/VSchedulerImpl.java b/src/com/vaadin/terminal/gwt/client/VSchedulerImpl.java
index 65d5d6a9a2..6f5e5854b2 100644
--- a/src/com/vaadin/terminal/gwt/client/VSchedulerImpl.java
+++ b/src/com/vaadin/terminal/gwt/client/VSchedulerImpl.java
@@ -19,6 +19,7 @@ public class VSchedulerImpl extends SchedulerImpl {
super.scheduleDeferred(cmd);
super.scheduleDeferred(new ScheduledCommand() {
+ @Override
public void execute() {
deferredCommandTrackers--;
}
diff --git a/src/com/vaadin/terminal/gwt/client/VTooltip.java b/src/com/vaadin/terminal/gwt/client/VTooltip.java
index 70f4a0de0a..a3523c2013 100644
--- a/src/com/vaadin/terminal/gwt/client/VTooltip.java
+++ b/src/com/vaadin/terminal/gwt/client/VTooltip.java
@@ -3,12 +3,20 @@
*/
package com.vaadin.terminal.gwt.client;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.KeyDownEvent;
+import com.google.gwt.event.dom.client.KeyDownHandler;
+import com.google.gwt.event.dom.client.MouseMoveEvent;
+import com.google.gwt.event.dom.client.MouseMoveHandler;
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.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.ui.VOverlay;
/**
@@ -27,15 +35,12 @@ public class VTooltip extends VOverlay {
private static final int QUICK_OPEN_DELAY = 100;
VErrorMessage em = new VErrorMessage();
Element description = DOM.createDiv();
- private ComponentConnector tooltipOwner;
private boolean closing = false;
private boolean opening = false;
private ApplicationConnection ac;
// Open next tooltip faster. Disabled after 2 sec of showTooltip-silence.
private boolean justClosed = false;
- // If this is "additional" tooltip, this field contains the key for it
- private Object tooltipKey;
public VTooltip(ApplicationConnection client) {
super(false, false, true);
@@ -78,6 +83,7 @@ public class VTooltip extends VOverlay {
// first to 0,0 position so that the calculation goes correctly.
setPopupPosition(0, 0);
setPopupPositionAndShow(new PositionCallback() {
+ @Override
public void setPosition(int offsetWidth, int offsetHeight) {
if (offsetWidth > MAX_WIDTH) {
@@ -115,51 +121,30 @@ public class VTooltip extends VOverlay {
}
}
- public void showTooltip(ComponentConnector owner, Event event, Object key) {
- if (closing && tooltipOwner == owner && tooltipKey == key) {
- // return to same tooltip, cancel closing
- closeTimer.cancel();
- closing = false;
- justClosedTimer.cancel();
- justClosed = false;
- return;
- }
+ private void showTooltip() {
- if (closing) {
+ // Close current tooltip
+ if (isShowing()) {
closeNow();
}
- updatePosition(event);
-
- if (opening) {
- showTimer.cancel();
- }
- tooltipOwner = owner;
- tooltipKey = key;
-
// Schedule timer for showing the tooltip according to if it was
// recently closed or not.
- if (justClosed) {
- showTimer.schedule(QUICK_OPEN_DELAY);
- } else {
- showTimer.schedule(OPEN_DELAY);
- }
+ int timeout = justClosed ? QUICK_OPEN_DELAY : OPEN_DELAY;
+ showTimer.schedule(timeout);
opening = true;
}
private void closeNow() {
- if (closing) {
- hide();
- tooltipOwner = null;
- setWidth("");
- closing = false;
- }
+ hide();
+ setWidth("");
+ closing = false;
}
private Timer showTimer = new Timer() {
@Override
public void run() {
- TooltipInfo info = ac.getTooltipTitleInfo(tooltipOwner, tooltipKey);
+ TooltipInfo info = tooltipEventHandler.getTooltipInfo();
if (null != info) {
show(info);
}
@@ -187,7 +172,6 @@ public class VTooltip extends VOverlay {
if (opening) {
showTimer.cancel();
opening = false;
- tooltipOwner = null;
}
if (!isAttached()) {
return;
@@ -209,24 +193,6 @@ public class VTooltip extends VOverlay {
public void updatePosition(Event event) {
tooltipEventMouseX = DOM.eventGetClientX(event);
tooltipEventMouseY = DOM.eventGetClientY(event);
-
- }
-
- public void handleTooltipEvent(Event event, ComponentConnector owner,
- Object key) {
- final int type = DOM.eventGetType(event);
- if ((VTooltip.TOOLTIP_EVENTS & type) == type) {
- if (type == Event.ONMOUSEOVER) {
- showTooltip(owner, event, key);
- } else if (type == Event.ONMOUSEMOVE) {
- updatePosition(event);
- } else {
- hideTooltip();
- }
- } else {
- // non-tooltip event, hide tooltip
- hideTooltip();
- }
}
@Override
@@ -235,17 +201,152 @@ public class VTooltip extends VOverlay {
// cancel closing event if tooltip is mouseovered; the user might want
// to scroll of cut&paste
- switch (type) {
- case Event.ONMOUSEOVER:
+ if (type == Event.ONMOUSEOVER) {
+ // Cancel closing so tooltip stays open and user can copy paste the
+ // tooltip
closeTimer.cancel();
closing = false;
- break;
- case Event.ONMOUSEOUT:
+ }
+ }
+
+ /**
+ * Replace current open tooltip with new content
+ */
+ public void replaceCurrentTooltip() {
+ if (closing) {
+ closeTimer.cancel();
+ closeNow();
+ }
+
+ TooltipInfo info = tooltipEventHandler.getTooltipInfo();
+ if (null != info) {
+ show(info);
+ }
+ opening = false;
+ }
+
+ private class TooltipEventHandler implements MouseMoveHandler,
+ ClickHandler, KeyDownHandler {
+
+ /**
+ * Current element hovered
+ */
+ private com.google.gwt.dom.client.Element currentElement = null;
+
+ /**
+ * Current tooltip active
+ */
+ private TooltipInfo currentTooltipInfo = null;
+
+ /**
+ * Get current active tooltip information
+ *
+ * @return Current active tooltip information or null
+ */
+ public TooltipInfo getTooltipInfo() {
+ return currentTooltipInfo;
+ }
+
+ /**
+ * Locate connector and it's tooltip for given element
+ *
+ * @param element
+ * Element used in search
+ * @return true if connector and tooltip found
+ */
+ private boolean resolveConnector(Element element) {
+
+ ComponentConnector connector = Util.getConnectorForElement(ac,
+ RootPanel.get(), element);
+
+ // Try to find first connector with proper tooltip info
+ TooltipInfo info = null;
+ while (connector != null) {
+
+ info = connector.getTooltipInfo(element);
+
+ if (info != null && info.hasMessage()) {
+ break;
+ }
+
+ if (!(connector.getParent() instanceof ComponentConnector)) {
+ connector = null;
+ info = null;
+ break;
+ }
+ connector = (ComponentConnector) connector.getParent();
+ }
+
+ if (connector != null && info != null) {
+ currentTooltipInfo = info;
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Handle hide event
+ *
+ * @param event
+ * Event causing hide
+ */
+ private void handleHideEvent() {
hideTooltip();
- break;
- default:
- // NOP
+ currentTooltipInfo = null;
+ }
+
+ @Override
+ public void onMouseMove(MouseMoveEvent mme) {
+ Event event = Event.as(mme.getNativeEvent());
+ com.google.gwt.dom.client.Element element = Element.as(event
+ .getEventTarget());
+
+ // We can ignore move event if it's handled by move or over already
+ if (currentElement == element) {
+ return;
+ }
+ currentElement = element;
+
+ boolean connectorAndTooltipFound = resolveConnector((com.google.gwt.user.client.Element) element);
+ if (!connectorAndTooltipFound) {
+ if (isShowing()) {
+ handleHideEvent();
+ } else {
+ currentTooltipInfo = null;
+ }
+ } else {
+ updatePosition(event);
+ if (isShowing()) {
+ replaceCurrentTooltip();
+ } else {
+ showTooltip();
+ }
+ }
+ }
+
+ @Override
+ public void onClick(ClickEvent event) {
+ handleHideEvent();
+ }
+
+ @Override
+ public void onKeyDown(KeyDownEvent event) {
+ handleHideEvent();
}
}
+ private final TooltipEventHandler tooltipEventHandler = new TooltipEventHandler();
+
+ /**
+ * Connects DOM handlers to widget that are needed for tooltip presentation.
+ *
+ * @param widget
+ * Widget which DOM handlers are connected
+ */
+ public void connectHandlersToWidget(Widget widget) {
+ widget.addDomHandler(tooltipEventHandler, MouseMoveEvent.getType());
+ widget.addDomHandler(tooltipEventHandler, ClickEvent.getType());
+ widget.addDomHandler(tooltipEventHandler, KeyDownEvent.getType());
+ }
}
diff --git a/src/com/vaadin/terminal/gwt/client/VUIDLBrowser.java b/src/com/vaadin/terminal/gwt/client/VUIDLBrowser.java
index 4230eda298..745d66c444 100644
--- a/src/com/vaadin/terminal/gwt/client/VUIDLBrowser.java
+++ b/src/com/vaadin/terminal/gwt/client/VUIDLBrowser.java
@@ -22,16 +22,29 @@ import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.MouseOutEvent;
import com.google.gwt.event.dom.client.MouseOutHandler;
+import com.google.gwt.json.client.JSONArray;
+import com.google.gwt.json.client.JSONObject;
+import com.google.gwt.json.client.JSONValue;
+import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.ui.UnknownComponentConnector;
import com.vaadin.terminal.gwt.client.ui.window.VWindow;
+/**
+ * TODO Rename to something more Vaadin7-ish?
+ */
public class VUIDLBrowser extends SimpleTree {
- private static final String HELP = "Shift click handle to open recursively. Click components to hightlight them on client side. Shift click components to highlight them also on the server side.";
+ private static final String HELP = "Shift click handle to open recursively. "
+ + " Click components to highlight them on client side."
+ + " Shift click components to highlight them also on the server side.";
private ApplicationConfiguration conf;
private String highlightedPid;
+ /**
+ * TODO Should probably take ApplicationConnection instead of
+ * ApplicationConfiguration
+ */
public VUIDLBrowser(final UIDL uidl, ApplicationConfiguration conf) {
this.conf = conf;
final UIDLItem root = new UIDLItem(uidl, conf);
@@ -47,9 +60,18 @@ public class VUIDLBrowser extends SimpleTree {
Set<String> keySet = u.getKeySet();
for (String key : keySet) {
if (key.equals("state")) {
- // TODO print updated shared states
+
+ ValueMap stateJson = u.getValueMap(key);
+ SimpleTree stateChanges = new SimpleTree("Shared state");
+
+ for (String stateKey : stateJson.getKeySet()) {
+ stateChanges.add(new SharedStateItem(stateKey, stateJson
+ .getValueMap(stateKey)));
+ }
+ add(stateChanges);
+
} else if (key.equals("changes")) {
- JsArray<UIDL> jsValueMapArray = u.getJSValueMapArray("changes")
+ JsArray<UIDL> jsValueMapArray = u.getJSValueMapArray(key)
.cast();
for (int i = 0; i < jsValueMapArray.length(); i++) {
UIDL uidl = jsValueMapArray.get(i);
@@ -68,12 +90,107 @@ public class VUIDLBrowser extends SimpleTree {
setTitle(HELP);
}
- class UIDLItem extends SimpleTree {
+ /**
+ * A debug view of a server-originated component state change.
+ */
+ abstract class StateChangeItem extends SimpleTree {
+
+ protected StateChangeItem() {
+ setTitle(HELP);
+
+ addDomHandler(new MouseOutHandler() {
+ @Override
+ public void onMouseOut(MouseOutEvent event) {
+ deHiglight();
+ }
+ }, MouseOutEvent.getType());
+ }
+
+ @Override
+ protected void select(ClickEvent event) {
+ ComponentConnector connector = getConnector();
+ highlight(connector);
+ if (event != null && event.getNativeEvent().getShiftKey()) {
+ connector.getConnection().highlightComponent(connector);
+ }
+ super.select(event);
+ }
+
+ /**
+ * Returns the Connector associated with this state change.
+ */
+ protected ComponentConnector getConnector() {
+ List<ApplicationConnection> runningApplications = ApplicationConfiguration
+ .getRunningApplications();
+
+ // TODO this does not work properly with multiple application on
+ // same host page
+ for (ApplicationConnection applicationConnection : runningApplications) {
+ ServerConnector connector = ConnectorMap.get(
+ applicationConnection).getConnector(getConnectorId());
+ if (connector instanceof ComponentConnector) {
+ return (ComponentConnector) connector;
+ }
+ }
+ return new UnknownComponentConnector();
+ }
+
+ protected abstract String getConnectorId();
+ }
+
+ /**
+ * A debug view of a Vaadin 7 style shared state change.
+ */
+ class SharedStateItem extends StateChangeItem {
+
+ private String connectorId;
+
+ SharedStateItem(String connectorId, ValueMap stateChanges) {
+ this.connectorId = connectorId;
+ setText(connectorId);
+ dir(new JSONObject(stateChanges), this);
+ }
+
+ @Override
+ protected String getConnectorId() {
+ return connectorId;
+ }
+
+ private void dir(String key, JSONValue value, SimpleTree tree) {
+ if (value.isObject() != null) {
+ SimpleTree subtree = new SimpleTree(key + "=object");
+ tree.add(subtree);
+ dir(value.isObject(), subtree);
+ } else if (value.isArray() != null) {
+ SimpleTree subtree = new SimpleTree(key + "=array");
+ dir(value.isArray(), subtree);
+ tree.add(subtree);
+ } else {
+ tree.add(new HTML(key + "=" + value));
+ }
+ }
+
+ private void dir(JSONObject state, SimpleTree tree) {
+ for (String key : state.keySet()) {
+ dir(key, state.get(key), tree);
+ }
+ }
+
+ private void dir(JSONArray array, SimpleTree tree) {
+ for (int i = 0; i < array.size(); ++i) {
+ dir("" + i, array.get(i), tree);
+ }
+ }
+ }
+
+ /**
+ * A debug view of a Vaadin 6 style hierarchical component state change.
+ */
+ class UIDLItem extends StateChangeItem {
private UIDL uidl;
UIDLItem(UIDL uidl, ApplicationConfiguration conf) {
- setTitle(HELP);
this.uidl = uidl;
try {
String name = uidl.getTag();
@@ -87,13 +204,11 @@ public class VUIDLBrowser extends SimpleTree {
} catch (Exception e) {
setText(uidl.toString());
}
+ }
- addDomHandler(new MouseOutHandler() {
- public void onMouseOut(MouseOutEvent event) {
- deHiglight();
- }
- }, MouseOutEvent.getType());
-
+ @Override
+ protected String getConnectorId() {
+ return uidl.getId();
}
private String getNodeName(UIDL uidl, ApplicationConfiguration conf,
@@ -118,26 +233,6 @@ public class VUIDLBrowser extends SimpleTree {
super.open(recursive);
}
- @Override
- protected void select(ClickEvent event) {
- List<ApplicationConnection> runningApplications = ApplicationConfiguration
- .getRunningApplications();
-
- // TODO this does not work properly with multiple application on
- // same
- // host page
- for (ApplicationConnection applicationConnection : runningApplications) {
- ComponentConnector paintable = (ComponentConnector) ConnectorMap
- .get(applicationConnection).getConnector(uidl.getId());
- highlight(paintable);
- if (event != null && event.getNativeEvent().getShiftKey()) {
- applicationConnection.highlightComponent(paintable);
- }
- }
-
- super.select(event);
- }
-
public void dir() {
remove(0);
@@ -218,6 +313,7 @@ public class VUIDLBrowser extends SimpleTree {
if (highlightedPid != null && highlightedPid.equals(uidl.getId())) {
getElement().getStyle().setBackgroundColor("#fdd");
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+ @Override
public void execute() {
getElement().scrollIntoView();
}
diff --git a/src/com/vaadin/terminal/gwt/client/WidgetLoader.java b/src/com/vaadin/terminal/gwt/client/WidgetLoader.java
index 16e99716a0..749a8343c8 100644
--- a/src/com/vaadin/terminal/gwt/client/WidgetLoader.java
+++ b/src/com/vaadin/terminal/gwt/client/WidgetLoader.java
@@ -8,13 +8,15 @@ import com.google.gwt.core.client.RunAsyncCallback;
/** A helper class used by WidgetMap implementation. Used by the generated code. */
abstract class WidgetLoader implements RunAsyncCallback {
+ @Override
public void onFailure(Throwable reason) {
- ApplicationConfiguration.endWidgetLoading();
+ ApplicationConfiguration.endDependencyLoading();
}
+ @Override
public void onSuccess() {
addInstantiator();
- ApplicationConfiguration.endWidgetLoading();
+ ApplicationConfiguration.endDependencyLoading();
}
abstract void addInstantiator();
diff --git a/src/com/vaadin/terminal/gwt/client/communication/InitializableServerRpc.java b/src/com/vaadin/terminal/gwt/client/communication/InitializableServerRpc.java
index 0270de316e..f1b6b44b7d 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/InitializableServerRpc.java
+++ b/src/com/vaadin/terminal/gwt/client/communication/InitializableServerRpc.java
@@ -3,6 +3,7 @@
*/
package com.vaadin.terminal.gwt.client.communication;
+import com.vaadin.shared.communication.ServerRpc;
import com.vaadin.terminal.gwt.client.ServerConnector;
/**
diff --git a/src/com/vaadin/terminal/gwt/client/communication/JsonDecoder.java b/src/com/vaadin/terminal/gwt/client/communication/JsonDecoder.java
index 23a2c30cd0..7268acdfc5 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/JsonDecoder.java
+++ b/src/com/vaadin/terminal/gwt/client/communication/JsonDecoder.java
@@ -16,8 +16,8 @@ import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
+import com.vaadin.shared.Connector;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.terminal.gwt.client.Connector;
import com.vaadin.terminal.gwt.client.ConnectorMap;
/**
diff --git a/src/com/vaadin/terminal/gwt/client/communication/JsonEncoder.java b/src/com/vaadin/terminal/gwt/client/communication/JsonEncoder.java
index 925f0b6272..404f1238e0 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/JsonEncoder.java
+++ b/src/com/vaadin/terminal/gwt/client/communication/JsonEncoder.java
@@ -17,8 +17,9 @@ import com.google.gwt.json.client.JSONNumber;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.communication.UidlValue;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.terminal.gwt.client.Connector;
/**
* Encoder for converting RPC parameters and other values to JSON for transfer
diff --git a/src/com/vaadin/terminal/gwt/client/communication/RpcManager.java b/src/com/vaadin/terminal/gwt/client/communication/RpcManager.java
index 07d6292ce2..b1c91fe049 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/RpcManager.java
+++ b/src/com/vaadin/terminal/gwt/client/communication/RpcManager.java
@@ -11,6 +11,8 @@ import java.util.Map;
import com.google.gwt.core.client.GWT;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONString;
+import com.vaadin.shared.communication.ClientRpc;
+import com.vaadin.shared.communication.MethodInvocation;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ConnectorMap;
import com.vaadin.terminal.gwt.client.ServerConnector;
diff --git a/src/com/vaadin/terminal/gwt/client/communication/RpcMethod.java b/src/com/vaadin/terminal/gwt/client/communication/RpcMethod.java
index abdcf73e2c..ce9c5b468b 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/RpcMethod.java
+++ b/src/com/vaadin/terminal/gwt/client/communication/RpcMethod.java
@@ -3,6 +3,8 @@
*/
package com.vaadin.terminal.gwt.client.communication;
+import com.vaadin.shared.communication.ClientRpc;
+
public abstract class RpcMethod {
private String interfaceName;
private String methodName;
diff --git a/src/com/vaadin/terminal/gwt/client/communication/RpcProxy.java b/src/com/vaadin/terminal/gwt/client/communication/RpcProxy.java
index 113ec1f1b1..996c148f4f 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/RpcProxy.java
+++ b/src/com/vaadin/terminal/gwt/client/communication/RpcProxy.java
@@ -4,6 +4,7 @@
package com.vaadin.terminal.gwt.client.communication;
import com.google.gwt.core.client.GWT;
+import com.vaadin.shared.communication.ServerRpc;
import com.vaadin.terminal.gwt.client.ServerConnector;
/**
diff --git a/src/com/vaadin/terminal/gwt/client/communication/URLReference_Serializer.java b/src/com/vaadin/terminal/gwt/client/communication/URLReference_Serializer.java
index bab0f385ed..f39cad1899 100644
--- a/src/com/vaadin/terminal/gwt/client/communication/URLReference_Serializer.java
+++ b/src/com/vaadin/terminal/gwt/client/communication/URLReference_Serializer.java
@@ -6,6 +6,7 @@ package com.vaadin.terminal.gwt.client.communication;
import com.google.gwt.core.client.GWT;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
+import com.vaadin.shared.communication.URLReference;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
public class URLReference_Serializer implements JSONSerializer<URLReference> {
@@ -13,6 +14,7 @@ public class URLReference_Serializer implements JSONSerializer<URLReference> {
// setURL() -> uRL as first char becomes lower case...
private static final String URL_FIELD = "uRL";
+ @Override
public URLReference deserialize(Type type, JSONValue jsonValue,
ApplicationConnection connection) {
URLReference reference = GWT.create(URLReference.class);
@@ -27,6 +29,7 @@ public class URLReference_Serializer implements JSONSerializer<URLReference> {
return reference;
}
+ @Override
public JSONValue serialize(URLReference value,
ApplicationConnection connection) {
JSONObject json = new JSONObject();
diff --git a/src/com/vaadin/terminal/gwt/client/extensions/javascriptmanager/JavaScriptManagerConnector.java b/src/com/vaadin/terminal/gwt/client/extensions/javascriptmanager/JavaScriptManagerConnector.java
index 8656783a86..d5849096fa 100644
--- a/src/com/vaadin/terminal/gwt/client/extensions/javascriptmanager/JavaScriptManagerConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/extensions/javascriptmanager/JavaScriptManagerConnector.java
@@ -10,10 +10,12 @@ import java.util.Set;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.json.client.JSONArray;
-import com.vaadin.terminal.gwt.client.communication.MethodInvocation;
+import com.vaadin.shared.communication.MethodInvocation;
+import com.vaadin.shared.extension.javascriptmanager.ExecuteJavaScriptRpc;
+import com.vaadin.shared.extension.javascriptmanager.JavaScriptManagerState;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.extensions.AbstractExtensionConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.ui.JavaScript;
@Connect(JavaScript.class)
@@ -23,6 +25,7 @@ public class JavaScriptManagerConnector extends AbstractExtensionConnector {
@Override
protected void init() {
registerRpc(ExecuteJavaScriptRpc.class, new ExecuteJavaScriptRpc() {
+ @Override
public void executeJavaScript(String Script) {
eval(Script);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbstractClickEventHandler.java b/src/com/vaadin/terminal/gwt/client/ui/AbstractClickEventHandler.java
index e0ca798682..9de465e4a5 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/AbstractClickEventHandler.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/AbstractClickEventHandler.java
@@ -53,6 +53,7 @@ public abstract class AbstractClickEventHandler implements MouseDownHandler,
*/
private final NativePreviewHandler mouseUpPreviewHandler = new NativePreviewHandler() {
+ @Override
public void onPreviewNativeEvent(NativePreviewEvent event) {
if (event.getTypeInt() == Event.ONMOUSEUP) {
mouseUpEventPreviewRegistration.removeHandler();
@@ -144,6 +145,7 @@ public abstract class AbstractClickEventHandler implements MouseDownHandler,
* popping up if there is a listener for right clicks.
*/
+ @Override
public void onContextMenu(ContextMenuEvent event) {
if (hasEventListener() && shouldFireEvent(event)) {
// Prevent showing the browser's context menu when there is a right
@@ -152,6 +154,7 @@ public abstract class AbstractClickEventHandler implements MouseDownHandler,
}
}
+ @Override
public void onMouseDown(MouseDownEvent event) {
/*
* When getting a mousedown event, we must detect where the
@@ -163,6 +166,7 @@ public abstract class AbstractClickEventHandler implements MouseDownHandler,
.addNativePreviewHandler(mouseUpPreviewHandler);
}
+ @Override
public void onMouseUp(MouseUpEvent event) {
/*
* Only fire a click if the mouseup hits the same element as the
@@ -208,6 +212,7 @@ public abstract class AbstractClickEventHandler implements MouseDownHandler,
* double click will result in two click events and one double click event.
*/
+ @Override
public void onDoubleClick(DoubleClickEvent event) {
if (hasEventListener() && shouldFireEvent(event)) {
fireClick(event.getNativeEvent());
diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentConnector.java b/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentConnector.java
index a621c488be..ba3a53691a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentConnector.java
@@ -3,18 +3,20 @@
*/
package com.vaadin.terminal.gwt.client.ui;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import java.util.Set;
+import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.ui.Focusable;
import com.google.gwt.user.client.ui.HasEnabled;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.ui.TabIndexState;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ComponentContainerConnector;
-import com.vaadin.terminal.gwt.client.ComponentState;
-import com.vaadin.terminal.gwt.client.Connector;
import com.vaadin.terminal.gwt.client.ConnectorMap;
import com.vaadin.terminal.gwt.client.LayoutManager;
import com.vaadin.terminal.gwt.client.ServerConnector;
@@ -23,6 +25,7 @@ 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.StateChangeEvent;
+import com.vaadin.terminal.gwt.client.ui.datefield.PopupDateFieldConnector;
import com.vaadin.terminal.gwt.client.ui.root.RootConnector;
public abstract class AbstractComponentConnector extends AbstractConnector
@@ -33,7 +36,11 @@ public abstract class AbstractComponentConnector extends AbstractConnector
private String lastKnownWidth = "";
private String lastKnownHeight = "";
- List<String> styleNames;
+ /**
+ * The style names from getState().getStyles() which are currently applied
+ * to the widget.
+ */
+ protected List<String> styleNames = new ArrayList<String>();
/**
* Default constructor
@@ -41,6 +48,16 @@ public abstract class AbstractComponentConnector extends AbstractConnector
public AbstractComponentConnector() {
}
+ @Override
+ protected void init() {
+ super.init();
+
+ getConnection().getVTooltip().connectHandlersToWidget(getWidget());
+
+ // Set v-connector style names for the widget
+ getWidget().setStyleName("v-connector", true);
+ }
+
/**
* Creates and returns the widget for this VPaintableWidget. This method
* should only be called once when initializing the paintable.
@@ -57,6 +74,7 @@ public abstract class AbstractComponentConnector extends AbstractConnector
*
* @return The widget associated with this paintable
*/
+ @Override
public Widget getWidget() {
if (widget == null) {
widget = createWidget();
@@ -100,19 +118,7 @@ public abstract class AbstractComponentConnector extends AbstractConnector
super.onStateChanged(stateChangeEvent);
// Style names
- // String styleName = getStyleNames(getWidget().getStylePrimaryName());
- // getWidget().setStyleName(styleName);
- updateStyleNames();
-
- // Update tooltip
- TooltipInfo tooltipInfo = paintableMap.getTooltipInfo(this, null);
- if (getState().hasDescription()) {
- tooltipInfo.setTitle(getState().getDescription());
- } else {
- tooltipInfo.setTitle(null);
- }
- // add error info to tooltip if present
- tooltipInfo.setErrorMessage(getState().getErrorMessage());
+ updateWidgetStyleNames();
// Set captions
if (delegateCaptionHandling()) {
@@ -134,13 +140,16 @@ public abstract class AbstractComponentConnector extends AbstractConnector
updateComponentSize();
}
+ @Override
public void setWidgetEnabled(boolean widgetEnabled) {
+ // add or remove v-disabled style name from the widget
+ setWidgetStyleName(ApplicationConnection.DISABLED_CLASSNAME,
+ !widgetEnabled);
+
if (getWidget() instanceof HasEnabled) {
// set widget specific enabled state
((HasEnabled) getWidget()).setEnabled(widgetEnabled);
- // add or remove v-disabled style name from the widget
- getWidget().setStyleName(ApplicationConnection.DISABLED_CLASSNAME,
- !widgetEnabled);
+
// make sure the caption has or has not v-disabled style
if (delegateCaptionHandling()) {
ServerConnector parent = getParent();
@@ -190,18 +199,22 @@ public abstract class AbstractComponentConnector extends AbstractConnector
widget.setWidth(newWidth);
}
+ @Override
public boolean isRelativeHeight() {
return getState().getHeight().endsWith("%");
}
+ @Override
public boolean isRelativeWidth() {
return getState().getWidth().endsWith("%");
}
+ @Override
public boolean isUndefinedHeight() {
return getState().getHeight().length() == 0;
}
+ @Override
public boolean isUndefinedWidth() {
return getState().getWidth().length() == 0;
}
@@ -213,111 +226,118 @@ public abstract class AbstractComponentConnector extends AbstractConnector
* com.vaadin.terminal.gwt.client.ComponentConnector#delegateCaptionHandling
* ()
*/
+ @Override
public boolean delegateCaptionHandling() {
return true;
}
/**
- * Generates the style name for the widget based on the given primary style
- * name and the shared state.
+ * Updates the user defined, read-only and error style names for the widget
+ * based the shared state. User defined style names are prefixed with the
+ * primary style name of the widget returned by {@link #getWidget()}
* <p>
* This method can be overridden to provide additional style names for the
- * component
+ * component, for example see
+ * {@link AbstractFieldConnector#updateWidgetStyleNames()}
* </p>
- *
- * @param primaryStyleName
- * The primary style name to use when generating the final style
- * names
- * @return The style names, settable using
- * {@link Widget#setStyleName(String)}
*/
- protected String getStyleNames(String primaryStyleName) {
+ protected void updateWidgetStyleNames() {
ComponentState state = getState();
- StringBuilder styleBuf = new StringBuilder();
- styleBuf.append(primaryStyleName);
- styleBuf.append(" v-connector");
+ String primaryStyleName = getWidget().getStylePrimaryName();
- // Uses connector methods to enable connectors to take hierarchy or
- // multiple state variables into account
- if (!isEnabled()) {
- styleBuf.append(" ");
- styleBuf.append(ApplicationConnection.DISABLED_CLASSNAME);
- }
- if (isReadOnly()) {
- styleBuf.append(" ");
- styleBuf.append("v-readonly");
- }
+ // should be in AbstractFieldConnector ?
+ // add / remove read-only style name
+ setWidgetStyleName("v-readonly", isReadOnly());
+
+ // add / remove error style name
+ setWidgetStyleNameWithPrefix(primaryStyleName,
+ ApplicationConnection.ERROR_CLASSNAME_EXT,
+ null != state.getErrorMessage());
- // add additional styles as css classes, prefixed with component default
- // stylename
+ // add additional user defined style names as class names, prefixed with
+ // component default class name. remove nonexistent style names.
if (state.hasStyles()) {
- for (String style : state.getStyles()) {
- styleBuf.append(" ");
- styleBuf.append(primaryStyleName);
- styleBuf.append("-");
- styleBuf.append(style);
- styleBuf.append(" ");
- styleBuf.append(style);
+ // add new style names
+ List<String> newStyles = new ArrayList<String>();
+ newStyles.addAll(state.getStyles());
+ newStyles.removeAll(styleNames);
+ for (String newStyle : newStyles) {
+ setWidgetStyleName(newStyle, true);
+ setWidgetStyleNameWithPrefix(primaryStyleName + "-", newStyle,
+ true);
}
+ // remove nonexistent style names
+ styleNames.removeAll(state.getStyles());
+ for (String oldStyle : styleNames) {
+ setWidgetStyleName(oldStyle, false);
+ setWidgetStyleNameWithPrefix(primaryStyleName + "-", oldStyle,
+ false);
+ }
+ styleNames.clear();
+ styleNames.addAll(state.getStyles());
+ } else {
+ // remove all old style names
+ for (String oldStyle : styleNames) {
+ setWidgetStyleName(oldStyle, false);
+ setWidgetStyleNameWithPrefix(primaryStyleName + "-", oldStyle,
+ false);
+ }
+ styleNames.clear();
}
- // add error classname to components w/ error
- if (null != state.getErrorMessage()) {
- styleBuf.append(" ");
- styleBuf.append(primaryStyleName);
- styleBuf.append(ApplicationConnection.ERROR_CLASSNAME_EXT);
- }
-
- return styleBuf.toString();
}
- protected void updateStyleNames() {
- Widget widget = getWidget();
-
- widget.addStyleName("v");
-
- // Disabled
- if (!isEnabled()) {
- widget.addStyleName(ApplicationConnection.DISABLED_CLASSNAME);
- } else {
- widget.removeStyleName(ApplicationConnection.DISABLED_CLASSNAME);
- }
-
- // Read-only
- if (isReadOnly()) {
- widget.addStyleName("v-readonly");
- } else {
- widget.removeStyleName("v-readonly");
- }
+ /**
+ * This is used to add / remove state related style names from the widget.
+ * <p>
+ * Override this method for example if the style name given here should be
+ * updated in another widget in addition to the one returned by the
+ * {@link #getWidget()}.
+ * </p>
+ *
+ * @param styleName
+ * the style name to be added or removed
+ * @param add
+ * <code>true</code> to add the given style, <code>false</code>
+ * to remove it
+ */
+ protected void setWidgetStyleName(String styleName, boolean add) {
+ getWidget().setStyleName(styleName, add);
+ }
- // Error
- if (null != getState().getErrorMessage()) {
- widget.addStyleDependentName("error");
+ /**
+ * This is used to add / remove state related prefixed style names from the
+ * widget.
+ * <p>
+ * Override this method if the prefixed style name given here should be
+ * updated in another widget in addition to the one returned by the
+ * <code>Connector</code>'s {@link #getWidget()}, or if the prefix should be
+ * different. For example see
+ * {@link PopupDateFieldConnector#setWidgetStyleNameWithPrefix(String, String, boolean)}
+ * </p>
+ *
+ * @param styleName
+ * the style name to be added or removed
+ * @param add
+ * <code>true</code> to add the given style, <code>false</code>
+ * to remove it
+ * @deprecated This will be removed once styles are no longer added with
+ * prefixes.
+ */
+ @Deprecated
+ protected void setWidgetStyleNameWithPrefix(String prefix,
+ String styleName, boolean add) {
+ if (!styleName.startsWith("-")) {
+ if (!prefix.endsWith("-")) {
+ prefix += "-";
+ }
} else {
- widget.removeStyleDependentName("error");
- }
-
- // Additional style names
- List<String> newStyleNames = getState().getStyles();
- if (newStyleNames == null) {
- newStyleNames = new LinkedList<String>();
- }
- if (styleNames != null) {
- // Remove previous styles which are no longer in the current list
- for (String style : styleNames) {
- if (!newStyleNames.contains(style)) {
- widget.removeStyleName(style);
- widget.removeStyleDependentName(style);
- }
+ if (prefix.endsWith("-")) {
+ styleName.replaceFirst("-", "");
}
}
- // Add any new styles
- for (String style : newStyleNames) {
- widget.addStyleName(style);
- widget.addStyleDependentName(style);
- }
- styleNames = newStyleNames;
+ getWidget().setStyleName(prefix + styleName, add);
}
/*
@@ -325,11 +345,13 @@ public abstract class AbstractComponentConnector extends AbstractConnector
*
* @see com.vaadin.terminal.gwt.client.ComponentConnector#isReadOnly()
*/
+ @Override
@Deprecated
public boolean isReadOnly() {
return getState().isReadOnly();
}
+ @Override
public LayoutManager getLayoutManager() {
return LayoutManager.get(getConnection());
}
@@ -343,6 +365,7 @@ public abstract class AbstractComponentConnector extends AbstractConnector
* @return true if an event listener has been registered with the given
* event identifier on the server side, false otherwise
*/
+ @Override
public boolean hasEventListener(String eventIdentifier) {
Set<String> reg = getState().getRegisteredEventListeners();
return (reg != null && reg.contains(eventIdentifier));
@@ -368,4 +391,17 @@ public abstract class AbstractComponentConnector extends AbstractConnector
+ ") has been unregistered. Widget was removed.");
}
}
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.vaadin.terminal.gwt.client.ComponentConnector#getTooltipInfo(com.
+ * google.gwt.dom.client.Element)
+ */
+ @Override
+ public TooltipInfo getTooltipInfo(Element element) {
+ return new TooltipInfo(getState().getDescription(), getState()
+ .getErrorMessage());
+ }
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentContainerConnector.java b/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentContainerConnector.java
index c6bfba5023..6b294e65b8 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentContainerConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentContainerConnector.java
@@ -35,6 +35,7 @@ public abstract class AbstractComponentContainerConnector extends
* @see
* com.vaadin.terminal.gwt.client.ComponentContainerConnector#getChildren()
*/
+ @Override
public List<ComponentConnector> getChildComponents() {
if (childComponents == null) {
return Collections.emptyList();
@@ -50,6 +51,7 @@ public abstract class AbstractComponentContainerConnector extends
* com.vaadin.terminal.gwt.client.ComponentContainerConnector#setChildren
* (java.util.Collection)
*/
+ @Override
public void setChildComponents(List<ComponentConnector> childComponents) {
this.childComponents = childComponents;
}
@@ -61,6 +63,7 @@ public abstract class AbstractComponentContainerConnector extends
* connectorHierarchyChanged
* (com.vaadin.terminal.gwt.client.ConnectorHierarchyChangedEvent)
*/
+ @Override
public void onConnectorHierarchyChange(ConnectorHierarchyChangeEvent event) {
if (debugLogging) {
VConsole.log("Hierarchy changed for "
@@ -79,6 +82,7 @@ public abstract class AbstractComponentContainerConnector extends
}
}
+ @Override
public HandlerRegistration addConnectorHierarchyChangeHandler(
ConnectorHierarchyChangeHandler handler) {
return ensureHandlerManager().addHandler(
diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java b/src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java
index d34529ee4e..4efd2f5c2f 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java
@@ -13,12 +13,12 @@ import java.util.Map;
import com.google.gwt.event.shared.GwtEvent;
import com.google.gwt.event.shared.HandlerManager;
import com.google.web.bindery.event.shared.HandlerRegistration;
+import com.vaadin.shared.communication.ClientRpc;
+import com.vaadin.shared.communication.SharedState;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
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;
@@ -57,6 +57,7 @@ public abstract class AbstractConnector implements ServerConnector,
*
* @see com.vaadin.terminal.gwt.client.VPaintable#getConnection()
*/
+ @Override
public final ApplicationConnection getConnection() {
return connection;
}
@@ -66,6 +67,7 @@ public abstract class AbstractConnector implements ServerConnector,
*
* @see com.vaadin.terminal.gwt.client.Connector#getId()
*/
+ @Override
public String getConnectorId() {
return id;
}
@@ -78,6 +80,7 @@ public abstract class AbstractConnector implements ServerConnector,
* <p>
* Connector classes should override {@link #init()} instead of this method.
*/
+ @Override
public final void doInit(String connectorId,
ApplicationConnection connection) {
this.connection = connection;
@@ -140,6 +143,7 @@ public abstract class AbstractConnector implements ServerConnector,
}
}
+ @Override
public <T extends ClientRpc> Collection<T> getRpcImplementations(
String rpcInterfaceId) {
if (null == rpcImplementations) {
@@ -148,6 +152,7 @@ public abstract class AbstractConnector implements ServerConnector,
return (Collection<T>) rpcImplementations.get(rpcInterfaceId);
}
+ @Override
public void fireEvent(GwtEvent<?> event) {
if (handlerManager != null) {
handlerManager.fireEvent(event);
@@ -162,11 +167,13 @@ public abstract class AbstractConnector implements ServerConnector,
return handlerManager;
}
+ @Override
public HandlerRegistration addStateChangeHandler(StateChangeHandler handler) {
return ensureHandlerManager()
.addHandler(StateChangeEvent.TYPE, handler);
}
+ @Override
public void removeStateChangeHandler(StateChangeHandler handler) {
ensureHandlerManager().removeHandler(StateChangeEvent.TYPE, handler);
}
@@ -186,6 +193,7 @@ public abstract class AbstractConnector implements ServerConnector,
*
* @see com.vaadin.terminal.gwt.client.ServerConnector#onUnregister()
*/
+ @Override
public void onUnregister() {
if (debugLogging) {
VConsole.log("Unregistered connector "
@@ -201,6 +209,7 @@ public abstract class AbstractConnector implements ServerConnector,
*
* @return the current shared state (never null)
*/
+ @Override
public SharedState getState() {
if (state == null) {
state = createState();
@@ -221,14 +230,17 @@ public abstract class AbstractConnector implements ServerConnector,
return ConnectorStateFactory.createState(getClass());
}
+ @Override
public ServerConnector getParent() {
return parent;
}
+ @Override
public void setParent(ServerConnector parent) {
this.parent = parent;
}
+ @Override
public List<ServerConnector> getChildren() {
if (children == null) {
return Collections.emptyList();
@@ -236,10 +248,12 @@ public abstract class AbstractConnector implements ServerConnector,
return children;
}
+ @Override
public void setChildren(List<ServerConnector> children) {
this.children = children;
}
+ @Override
public boolean isEnabled() {
if (!getState().isEnabled()) {
return false;
@@ -252,6 +266,7 @@ public abstract class AbstractConnector implements ServerConnector,
}
}
+ @Override
public void updateEnabledState(boolean enabledState) {
if (lastEnabledState == enabledState) {
return;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbstractFieldConnector.java b/src/com/vaadin/terminal/gwt/client/ui/AbstractFieldConnector.java
index 4be0f02c2a..4611b5a4ed 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/AbstractFieldConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/AbstractFieldConnector.java
@@ -3,7 +3,7 @@
*/
package com.vaadin.terminal.gwt.client.ui;
-import com.vaadin.terminal.gwt.client.AbstractFieldState;
+import com.vaadin.shared.AbstractFieldState;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
public abstract class AbstractFieldConnector extends AbstractComponentConnector {
@@ -35,20 +35,15 @@ public abstract class AbstractFieldConnector extends AbstractComponentConnector
}
@Override
- protected String getStyleNames(String primaryStyleName) {
- String styleNames = super.getStyleNames(primaryStyleName);
+ protected void updateWidgetStyleNames() {
+ super.updateWidgetStyleNames();
- if (isModified()) {
- // add modified classname to Fields
- styleNames += " " + ApplicationConnection.MODIFIED_CLASSNAME;
- }
+ // add / remove modified style name to Fields
+ setWidgetStyleName(ApplicationConnection.MODIFIED_CLASSNAME,
+ isModified());
- if (isRequired()) {
- // add required classname to Fields
- styleNames += " " + primaryStyleName
- + ApplicationConnection.REQUIRED_CLASSNAME_EXT;
- }
-
- return styleNames;
+ // add / remove error style name to Fields
+ setWidgetStyleNameWithPrefix(getWidget().getStylePrimaryName(),
+ ApplicationConnection.REQUIRED_CLASSNAME_EXT, isRequired());
}
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbstractLayoutConnector.java b/src/com/vaadin/terminal/gwt/client/ui/AbstractLayoutConnector.java
index 175e67807f..cd059357a8 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/AbstractLayoutConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/AbstractLayoutConnector.java
@@ -3,6 +3,8 @@
*/
package com.vaadin.terminal.gwt.client.ui;
+import com.vaadin.shared.ui.AbstractLayoutState;
+
public abstract class AbstractLayoutConnector extends
AbstractComponentContainerConnector {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/Action.java b/src/com/vaadin/terminal/gwt/client/ui/Action.java
index ca13cfc7f3..1a92e30f3f 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/Action.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/Action.java
@@ -25,6 +25,7 @@ public abstract class Action implements Command {
/**
* Executed when action fired
*/
+ @Override
public abstract void execute();
public String getHTML() {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/ClickEventHandler.java b/src/com/vaadin/terminal/gwt/client/ui/ClickEventHandler.java
index 758f798ef2..b7b6b13d3c 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/ClickEventHandler.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/ClickEventHandler.java
@@ -4,8 +4,8 @@
package com.vaadin.terminal.gwt.client.ui;
import com.google.gwt.dom.client.NativeEvent;
+import com.vaadin.shared.MouseEventDetails;
import com.vaadin.terminal.gwt.client.ComponentConnector;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
public abstract class ClickEventHandler extends AbstractClickEventHandler {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/ConnectorClassBasedFactory.java b/src/com/vaadin/terminal/gwt/client/ui/ConnectorClassBasedFactory.java
index 051ebdc6df..79dc138df9 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/ConnectorClassBasedFactory.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/ConnectorClassBasedFactory.java
@@ -6,7 +6,7 @@ package com.vaadin.terminal.gwt.client.ui;
import java.util.HashMap;
import java.util.Map;
-import com.vaadin.terminal.gwt.client.Connector;
+import com.vaadin.shared.Connector;
public abstract class ConnectorClassBasedFactory<T> {
public interface Creator<T> {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/ConnectorStateFactory.java b/src/com/vaadin/terminal/gwt/client/ui/ConnectorStateFactory.java
index 86e651a0a5..535fd29dfe 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/ConnectorStateFactory.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/ConnectorStateFactory.java
@@ -4,8 +4,8 @@
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;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.communication.SharedState;
public abstract class ConnectorStateFactory extends
ConnectorClassBasedFactory<SharedState> {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/ConnectorWidgetFactory.java b/src/com/vaadin/terminal/gwt/client/ui/ConnectorWidgetFactory.java
index 063d9f03a1..03d2069a94 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/ConnectorWidgetFactory.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/ConnectorWidgetFactory.java
@@ -15,6 +15,7 @@ public abstract class ConnectorWidgetFactory extends
// TODO Move to generator
{
addCreator(TextFieldConnector.class, new Creator<Widget>() {
+ @Override
public Widget create() {
return GWT.create(VTextField.class);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/FocusableFlexTable.java b/src/com/vaadin/terminal/gwt/client/ui/FocusableFlexTable.java
index fc97bafc46..2fac234587 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/FocusableFlexTable.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/FocusableFlexTable.java
@@ -42,6 +42,7 @@ public class FocusableFlexTable extends FlexTable implements HasFocusHandlers,
* com.google.gwt.event.dom.client.HasFocusHandlers#addFocusHandler(com.
* google.gwt.event.dom.client.FocusHandler)
*/
+ @Override
public HandlerRegistration addFocusHandler(FocusHandler handler) {
return addDomHandler(handler, FocusEvent.getType());
}
@@ -53,6 +54,7 @@ public class FocusableFlexTable extends FlexTable implements HasFocusHandlers,
* com.google.gwt.event.dom.client.HasBlurHandlers#addBlurHandler(com.google
* .gwt.event.dom.client.BlurHandler)
*/
+ @Override
public HandlerRegistration addBlurHandler(BlurHandler handler) {
return addDomHandler(handler, BlurEvent.getType());
}
@@ -64,6 +66,7 @@ public class FocusableFlexTable extends FlexTable implements HasFocusHandlers,
* com.google.gwt.event.dom.client.HasKeyDownHandlers#addKeyDownHandler(
* com.google.gwt.event.dom.client.KeyDownHandler)
*/
+ @Override
public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) {
return addDomHandler(handler, KeyDownEvent.getType());
}
@@ -75,6 +78,7 @@ public class FocusableFlexTable extends FlexTable implements HasFocusHandlers,
* com.google.gwt.event.dom.client.HasKeyPressHandlers#addKeyPressHandler
* (com.google.gwt.event.dom.client.KeyPressHandler)
*/
+ @Override
public HandlerRegistration addKeyPressHandler(KeyPressHandler handler) {
return addDomHandler(handler, KeyPressEvent.getType());
}
@@ -99,6 +103,7 @@ public class FocusableFlexTable extends FlexTable implements HasFocusHandlers,
*
* @see com.vaadin.terminal.gwt.client.Focusable#focus()
*/
+ @Override
public void focus() {
setFocus(true);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/FocusableFlowPanel.java b/src/com/vaadin/terminal/gwt/client/ui/FocusableFlowPanel.java
index 831add049b..258fe441af 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/FocusableFlowPanel.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/FocusableFlowPanel.java
@@ -39,6 +39,7 @@ public class FocusableFlowPanel extends FlowPanel implements HasFocusHandlers,
* com.google.gwt.event.dom.client.HasFocusHandlers#addFocusHandler(com.
* google.gwt.event.dom.client.FocusHandler)
*/
+ @Override
public HandlerRegistration addFocusHandler(FocusHandler handler) {
return addDomHandler(handler, FocusEvent.getType());
}
@@ -50,6 +51,7 @@ public class FocusableFlowPanel extends FlowPanel implements HasFocusHandlers,
* com.google.gwt.event.dom.client.HasBlurHandlers#addBlurHandler(com.google
* .gwt.event.dom.client.BlurHandler)
*/
+ @Override
public HandlerRegistration addBlurHandler(BlurHandler handler) {
return addDomHandler(handler, BlurEvent.getType());
}
@@ -61,6 +63,7 @@ public class FocusableFlowPanel extends FlowPanel implements HasFocusHandlers,
* com.google.gwt.event.dom.client.HasKeyDownHandlers#addKeyDownHandler(
* com.google.gwt.event.dom.client.KeyDownHandler)
*/
+ @Override
public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) {
return addDomHandler(handler, KeyDownEvent.getType());
}
@@ -72,6 +75,7 @@ public class FocusableFlowPanel extends FlowPanel implements HasFocusHandlers,
* com.google.gwt.event.dom.client.HasKeyPressHandlers#addKeyPressHandler
* (com.google.gwt.event.dom.client.KeyPressHandler)
*/
+ @Override
public HandlerRegistration addKeyPressHandler(KeyPressHandler handler) {
return addDomHandler(handler, KeyPressEvent.getType());
}
@@ -94,6 +98,7 @@ public class FocusableFlowPanel extends FlowPanel implements HasFocusHandlers,
/**
* Focus the panel
*/
+ @Override
public void focus() {
setFocus(true);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/FocusableScrollPanel.java b/src/com/vaadin/terminal/gwt/client/ui/FocusableScrollPanel.java
index ef1ea8521b..0ba42eb861 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/FocusableScrollPanel.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/FocusableScrollPanel.java
@@ -110,6 +110,7 @@ public class FocusableScrollPanel extends SimpleFocusablePanel implements
}
}
+ @Override
public HandlerRegistration addScrollHandler(ScrollHandler handler) {
return addDomHandler(handler, ScrollEvent.getType());
}
@@ -168,8 +169,10 @@ public class FocusableScrollPanel extends SimpleFocusablePanel implements
}
}
+ @Override
public void onScroll(ScrollEvent event) {
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+ @Override
public void execute() {
focusElement.getStyle().setTop(getScrollPosition(), Unit.PX);
focusElement.getStyle().setLeft(getHorizontalScrollPosition(),
diff --git a/src/com/vaadin/terminal/gwt/client/ui/JavaScriptComponentConnector.java b/src/com/vaadin/terminal/gwt/client/ui/JavaScriptComponentConnector.java
index bb062a6677..380d96115c 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/JavaScriptComponentConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/JavaScriptComponentConnector.java
@@ -3,6 +3,8 @@
*/
package com.vaadin.terminal.gwt.client.ui;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.JavaScriptComponentState;
import com.vaadin.terminal.gwt.client.JavaScriptConnectorHelper;
import com.vaadin.terminal.gwt.client.communication.HasJavaScriptConnectorHelper;
import com.vaadin.ui.AbstractJavaScriptComponent;
@@ -31,6 +33,7 @@ public final class JavaScriptComponentConnector extends
helper.init();
}
+ @Override
public JavaScriptConnectorHelper getJavascriptConnectorHelper() {
return helper;
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/LayoutClickEventHandler.java b/src/com/vaadin/terminal/gwt/client/ui/LayoutClickEventHandler.java
index 7a5d85e34b..9aafaa0bbf 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/LayoutClickEventHandler.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/LayoutClickEventHandler.java
@@ -5,8 +5,9 @@ package com.vaadin.terminal.gwt.client.ui;
import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.user.client.Element;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.LayoutClickRpc;
import com.vaadin.terminal.gwt.client.ComponentConnector;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
public abstract class LayoutClickEventHandler extends AbstractClickEventHandler {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/MediaBaseConnector.java b/src/com/vaadin/terminal/gwt/client/ui/MediaBaseConnector.java
index 42027f911b..ccf90b2285 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/MediaBaseConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/MediaBaseConnector.java
@@ -3,39 +3,25 @@
*/
package com.vaadin.terminal.gwt.client.ui;
+import com.vaadin.shared.communication.URLReference;
+import com.vaadin.shared.ui.AbstractMediaState;
+import com.vaadin.shared.ui.MediaControl;
import com.vaadin.terminal.gwt.client.Util;
-import com.vaadin.terminal.gwt.client.communication.ClientRpc;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
-import com.vaadin.terminal.gwt.client.communication.URLReference;
public abstract class MediaBaseConnector extends AbstractComponentConnector {
- /**
- * Server to client RPC interface for controlling playback of the media.
- *
- * @since 7.0
- */
- public static interface MediaControl extends ClientRpc {
- /**
- * Start playing the media.
- */
- public void play();
-
- /**
- * Pause playback of the media.
- */
- public void pause();
- }
-
@Override
protected void init() {
super.init();
registerRpc(MediaControl.class, new MediaControl() {
+ @Override
public void play() {
getWidget().play();
}
+ @Override
public void pause() {
getWidget().pause();
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/ShortcutActionHandler.java b/src/com/vaadin/terminal/gwt/client/ui/ShortcutActionHandler.java
index 37e9ab4a69..40454345bc 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/ShortcutActionHandler.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/ShortcutActionHandler.java
@@ -149,6 +149,7 @@ public class ShortcutActionHandler {
} else {
shakeTarget(et);
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
shakeTarget(et);
}
@@ -156,6 +157,7 @@ public class ShortcutActionHandler {
}
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
if (finalTarget != null) {
client.updateVariable(paintableId, "actiontarget",
@@ -187,6 +189,7 @@ public class ShortcutActionHandler {
// deferred. Will cause a small flickering, so not doing it for all
// browsers.
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
focus(e);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/SimpleFocusablePanel.java b/src/com/vaadin/terminal/gwt/client/ui/SimpleFocusablePanel.java
index 9baa1db007..ec62b82ce1 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/SimpleFocusablePanel.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/SimpleFocusablePanel.java
@@ -36,18 +36,22 @@ public class SimpleFocusablePanel extends SimplePanel implements
setTabIndex(0);
}
+ @Override
public HandlerRegistration addFocusHandler(FocusHandler handler) {
return addDomHandler(handler, FocusEvent.getType());
}
+ @Override
public HandlerRegistration addBlurHandler(BlurHandler handler) {
return addDomHandler(handler, BlurEvent.getType());
}
+ @Override
public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) {
return addDomHandler(handler, KeyDownEvent.getType());
}
+ @Override
public HandlerRegistration addKeyPressHandler(KeyPressHandler handler) {
return addDomHandler(handler, KeyPressEvent.getType());
}
@@ -64,6 +68,7 @@ public class SimpleFocusablePanel extends SimplePanel implements
}
}
+ @Override
public void focus() {
setFocus(true);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/TouchScrollDelegate.java b/src/com/vaadin/terminal/gwt/client/ui/TouchScrollDelegate.java
index 7302f9f2ac..16c32acecc 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/TouchScrollDelegate.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/TouchScrollDelegate.java
@@ -121,6 +121,7 @@ public class TouchScrollDelegate implements NativePreviewHandler {
setElements(scrollables);
}
+ @Override
public void onTouchStart(TouchStartEvent event) {
assert delegate != null;
delegate.onTouchStart(event);
@@ -593,6 +594,7 @@ public class TouchScrollDelegate implements NativePreviewHandler {
- scrolledElement.getClientHeight();
}
+ @Override
public void onPreviewNativeEvent(NativePreviewEvent event) {
int typeInt = event.getTypeInt();
if (transitionOn) {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/TreeImages.java b/src/com/vaadin/terminal/gwt/client/ui/TreeImages.java
index 37f8889463..221a409511 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/TreeImages.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/TreeImages.java
@@ -15,6 +15,7 @@ public interface TreeImages extends com.google.gwt.user.client.ui.TreeImages {
* @gwt.resource com/vaadin/terminal/gwt/public/default/tree/img/expanded
* .png
*/
+ @Override
AbstractImagePrototype treeOpen();
/**
@@ -24,6 +25,7 @@ public interface TreeImages extends com.google.gwt.user.client.ui.TreeImages {
* @gwt.resource com/vaadin/terminal/gwt/public/default/tree/img/collapsed
* .png
*/
+ @Override
AbstractImagePrototype treeClosed();
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/UnknownComponentConnector.java b/src/com/vaadin/terminal/gwt/client/ui/UnknownComponentConnector.java
index 0cccec6481..83ac97458e 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/UnknownComponentConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/UnknownComponentConnector.java
@@ -4,7 +4,6 @@
package com.vaadin.terminal.gwt.client.ui;
-
public class UnknownComponentConnector extends AbstractComponentConnector {
@Override
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VContextMenu.java b/src/com/vaadin/terminal/gwt/client/ui/VContextMenu.java
index 692e13bd94..607abe893a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VContextMenu.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VContextMenu.java
@@ -46,6 +46,7 @@ public class VContextMenu extends VOverlay implements SubPartAware {
private VLazyExecutor delayedImageLoadExecutioner = new VLazyExecutor(100,
new ScheduledCommand() {
+ @Override
public void execute() {
imagesLoaded();
}
@@ -103,6 +104,7 @@ public class VContextMenu extends VOverlay implements SubPartAware {
Util.sinkOnloadForImages(menu.getElement());
setPopupPositionAndShow(new PositionCallback() {
+ @Override
public void setPosition(int offsetWidth, int offsetHeight) {
// mac FF gets bad width due GWT popups overflow hacks,
// re-determine width
@@ -129,6 +131,7 @@ public class VContextMenu extends VOverlay implements SubPartAware {
* the positioning has been done.
*/
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
// Focus the menu.
menu.setFocus(true);
@@ -186,18 +189,22 @@ public class VContextMenu extends VOverlay implements SubPartAware {
return super.getItems().get(index);
}
+ @Override
public HandlerRegistration addFocusHandler(FocusHandler handler) {
return addDomHandler(handler, FocusEvent.getType());
}
+ @Override
public HandlerRegistration addBlurHandler(BlurHandler handler) {
return addDomHandler(handler, BlurEvent.getType());
}
+ @Override
public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) {
return addDomHandler(handler, KeyDownEvent.getType());
}
+ @Override
public HandlerRegistration addKeyPressHandler(KeyPressHandler handler) {
return addDomHandler(handler, KeyPressEvent.getType());
}
@@ -215,6 +222,7 @@ public class VContextMenu extends VOverlay implements SubPartAware {
setFocus(true);
}
+ @Override
public void onLoad(LoadEvent event) {
// Handle icon onload events to ensure shadow is resized correctly
delayedImageLoadExecutioner.trigger();
@@ -222,6 +230,7 @@ public class VContextMenu extends VOverlay implements SubPartAware {
}
+ @Override
public Element getSubPartElement(String subPart) {
int index = Integer.parseInt(subPart.substring(6));
// ApplicationConnection.getConsole().log(
@@ -232,6 +241,7 @@ public class VContextMenu extends VOverlay implements SubPartAware {
return item.getElement().getFirstChildElement().cast();
}
+ @Override
public String getSubPartName(Element subElement) {
if (getElement().isOrHasChild(subElement)) {
com.google.gwt.dom.client.Element e = subElement;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VOverlay.java b/src/com/vaadin/terminal/gwt/client/ui/VOverlay.java
index df655ef959..f2f13d1f35 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VOverlay.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VOverlay.java
@@ -6,7 +6,10 @@ package com.vaadin.terminal.gwt.client.ui;
import com.google.gwt.animation.client.Animation;
import com.google.gwt.dom.client.Document;
+import com.google.gwt.dom.client.IFrameElement;
import com.google.gwt.dom.client.Style;
+import com.google.gwt.dom.client.Style.BorderStyle;
+import com.google.gwt.dom.client.Style.Position;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.logical.shared.CloseEvent;
import com.google.gwt.event.logical.shared.CloseHandler;
@@ -14,6 +17,7 @@ import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.BrowserInfo;
/**
@@ -23,6 +27,49 @@ import com.vaadin.terminal.gwt.client.BrowserInfo;
*/
public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
+ public static class PositionAndSize {
+ private int left, top, width, height;
+
+ public int getLeft() {
+ return left;
+ }
+
+ public void setLeft(int left) {
+ this.left = left;
+ }
+
+ public int getTop() {
+ return top;
+ }
+
+ public void setTop(int top) {
+ this.top = top;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public void setWidth(int width) {
+ this.width = width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public void setHeight(int height) {
+ this.height = height;
+ }
+
+ public void setAnimationFromCenterProgress(double progress) {
+ left += (int) (width * (1.0 - progress) / 2.0);
+ top += (int) (height * (1.0 - progress) / 2.0);
+ width = (int) (width * progress);
+ height = (int) (height * progress);
+ }
+ }
+
/*
* The z-index value from where all overlays live. This can be overridden in
* any extending class.
@@ -45,6 +92,18 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
*/
private Element shadow;
+ /*
+ * Creator of VOverlow (widget that made the instance, not the layout
+ * parent)
+ */
+ private Widget owner;
+
+ /**
+ * The shim iframe behind the overlay, allowing PDFs and applets to be
+ * covered by overlays.
+ */
+ private IFrameElement shimElement;
+
/**
* The HTML snippet that is used to render the actual shadow. In consists of
* nine different DIV-elements with the following class names:
@@ -66,6 +125,11 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
*/
private static final String SHADOW_HTML = "<div class=\"top-left\"></div><div class=\"top\"></div><div class=\"top-right\"></div><div class=\"left\"></div><div class=\"center\"></div><div class=\"right\"></div><div class=\"bottom-left\"></div><div class=\"bottom\"></div><div class=\"bottom-right\"></div>";
+ /**
+ * Matches {@link PopupPanel}.ANIMATION_DURATION
+ */
+ private static final int POPUP_PANEL_ANIMATION_DURATION = 200;
+
private boolean sinkShadowEvents = false;
public VOverlay() {
@@ -116,9 +180,15 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
return shadow != null;
}
+ private void removeShim() {
+ if (shimElement != null) {
+ shimElement.removeFromParent();
+ }
+ }
+
private void removeShadowIfPresent() {
if (isShadowAttached()) {
- shadow.getParentElement().removeChild(shadow);
+ shadow.removeFromParent();
// Remove event listener from the shadow
unsinkShadowEvents();
@@ -129,6 +199,10 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
return isShadowEnabled() && shadow.getParentElement() != null;
}
+ private boolean isShimAttached() {
+ return shimElement != null && shimElement.hasParentElement();
+ }
+
private void adjustZIndex() {
setZIndex(Z_INDEX);
}
@@ -156,7 +230,46 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
style.setMarginLeft(-adjustByRelativeLeftBodyMargin(), Unit.PX);
style.setMarginTop(-adjustByRelativeTopBodyMargin(), Unit.PX);
super.setPopupPosition(left, top);
- updateShadowSizeAndPosition(isAnimationEnabled() ? 0 : 1);
+ sizeOrPositionUpdated(isAnimationEnabled() ? 0 : 1);
+ }
+
+ private IFrameElement getShimElement() {
+ if (shimElement == null) {
+ shimElement = Document.get().createIFrameElement();
+
+ // Insert shim iframe before the main overlay element. It does not
+ // matter if it is in front or behind the shadow as we cannot put a
+ // shim behind the shadow due to its transparency.
+ shimElement.getStyle().setPosition(Position.ABSOLUTE);
+ shimElement.getStyle().setBorderStyle(BorderStyle.NONE);
+ shimElement.setFrameBorder(0);
+ shimElement.setMarginHeight(0);
+ }
+ return shimElement;
+ }
+
+ private int getActualTop() {
+ int y = getAbsoluteTop();
+
+ /* This is needed for IE7 at least */
+ // Account for the difference between absolute position and the
+ // body's positioning context.
+ y -= Document.get().getBodyOffsetTop();
+ y -= adjustByRelativeTopBodyMargin();
+
+ return y;
+ }
+
+ private int getActualLeft() {
+ int x = getAbsoluteLeft();
+
+ /* This is needed for IE7 at least */
+ // Account for the difference between absolute position and the
+ // body's positioning context.
+ x -= Document.get().getBodyOffsetLeft();
+ x -= adjustByRelativeLeftBodyMargin();
+
+ return x;
}
private static int adjustByRelativeTopBodyMargin() {
@@ -189,13 +302,10 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
@Override
public void show() {
super.show();
- if (isShadowEnabled()) {
- if (isAnimationEnabled()) {
- ShadowAnimation sa = new ShadowAnimation();
- sa.run(200);
- } else {
- updateShadowSizeAndPosition(1.0);
- }
+ if (isAnimationEnabled()) {
+ new ResizeAnimation().run(POPUP_PANEL_ANIMATION_DURATION);
+ } else {
+ sizeOrPositionUpdated(1.0);
}
}
@@ -205,6 +315,7 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
// Always ensure shadow is removed when the overlay is removed.
removeShadowIfPresent();
+ removeShim();
}
@Override
@@ -219,13 +330,13 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
@Override
public void setWidth(String width) {
super.setWidth(width);
- updateShadowSizeAndPosition(1.0);
+ sizeOrPositionUpdated(1.0);
}
@Override
public void setHeight(String height) {
super.setHeight(height);
- updateShadowSizeAndPosition(1.0);
+ sizeOrPositionUpdated(1.0);
}
/**
@@ -244,28 +355,29 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
}
}
- /*
+ /**
* Extending classes should always call this method after they change the
* size of overlay without using normal 'setWidth(String)' and
* 'setHeight(String)' methods (if not calling super.setWidth/Height).
+ *
*/
- public void updateShadowSizeAndPosition() {
- updateShadowSizeAndPosition(1.0);
+ public void sizeOrPositionUpdated() {
+ sizeOrPositionUpdated(1.0);
}
/**
- * Recalculates proper position and dimensions for the shadow element. Can
- * be used to animate the shadow, using the 'progress' parameter (used to
- * animate the shadow in sync with GWT PopupPanel's default animation
- * 'PopupPanel.AnimationType.CENTER').
+ * Recalculates proper position and dimensions for the shadow and shim
+ * elements. Can be used to animate the related elements, using the
+ * 'progress' parameter (used to animate the shadow in sync with GWT
+ * PopupPanel's default animation 'PopupPanel.AnimationType.CENTER').
*
* @param progress
* A value between 0.0 and 1.0, indicating the progress of the
* animation (0=start, 1=end).
*/
- private void updateShadowSizeAndPosition(final double progress) {
+ private void sizeOrPositionUpdated(final double progress) {
// Don't do anything if overlay element is not attached
- if (!isAttached() || shadow == null) {
+ if (!isAttached()) {
return;
}
// Calculate proper z-index
@@ -288,37 +400,26 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
getOffsetWidth();
}
- int x = getAbsoluteLeft();
- int y = getAbsoluteTop();
+ PositionAndSize positionAndSize = new PositionAndSize();
+ positionAndSize.left = getActualLeft();
+ positionAndSize.top = getActualTop();
+ positionAndSize.width = getOffsetWidth();
+ positionAndSize.height = getOffsetHeight();
- /* This is needed for IE7 at least */
- // Account for the difference between absolute position and the
- // body's positioning context.
- x -= Document.get().getBodyOffsetLeft();
- y -= Document.get().getBodyOffsetTop();
- x -= adjustByRelativeLeftBodyMargin();
- y -= adjustByRelativeTopBodyMargin();
-
- int width = getOffsetWidth();
- int height = getOffsetHeight();
-
- if (width < 0) {
- width = 0;
+ if (positionAndSize.width < 0) {
+ positionAndSize.width = 0;
}
- if (height < 0) {
- height = 0;
+ if (positionAndSize.height < 0) {
+ positionAndSize.height = 0;
}
- // Animate the shadow size
- x += (int) (width * (1.0 - progress) / 2.0);
- y += (int) (height * (1.0 - progress) / 2.0);
- width = (int) (width * progress);
- height = (int) (height * progress);
+ // Animate the size
+ positionAndSize.setAnimationFromCenterProgress(progress);
// Opera needs some shaking to get parts of the shadow showing
// properly
// (ticket #2704)
- if (BrowserInfo.get().isOpera()) {
+ if (BrowserInfo.get().isOpera() && isShadowEnabled()) {
// Clear the height of all middle elements
DOM.getChild(shadow, 3).getStyle().setProperty("height", "auto");
DOM.getChild(shadow, 4).getStyle().setProperty("height", "auto");
@@ -326,15 +427,17 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
}
// Update correct values
- DOM.setStyleAttribute(shadow, "zIndex", zIndex);
- DOM.setStyleAttribute(shadow, "width", width + "px");
- DOM.setStyleAttribute(shadow, "height", height + "px");
- DOM.setStyleAttribute(shadow, "top", y + "px");
- DOM.setStyleAttribute(shadow, "left", x + "px");
- DOM.setStyleAttribute(shadow, "display", progress < 0.9 ? "none" : "");
+ if (isShadowEnabled()) {
+ updateSizeAndPosition(shadow, positionAndSize);
+ DOM.setStyleAttribute(shadow, "zIndex", zIndex);
+ DOM.setStyleAttribute(shadow, "display", progress < 0.9 ? "none"
+ : "");
+ }
+ updateSizeAndPosition((Element) Element.as(getShimElement()),
+ positionAndSize);
// Opera fix, part 2 (ticket #2704)
- if (BrowserInfo.get().isOpera()) {
+ if (BrowserInfo.get().isOpera() && isShadowEnabled()) {
// We'll fix the height of all the middle elements
DOM.getChild(shadow, 3)
.getStyle()
@@ -351,20 +454,33 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
}
// Attach to dom if not there already
- if (!isShadowAttached()) {
+ if (isShadowEnabled() && !isShadowAttached()) {
RootPanel.get().getElement().insertBefore(shadow, getElement());
sinkShadowEvents();
}
+ if (!isShimAttached()) {
+ RootPanel.get().getElement()
+ .insertBefore(shimElement, getElement());
+ }
+
+ }
+ private void updateSizeAndPosition(Element e,
+ PositionAndSize positionAndSize) {
+ e.getStyle().setLeft(positionAndSize.left, Unit.PX);
+ e.getStyle().setTop(positionAndSize.top, Unit.PX);
+ e.getStyle().setWidth(positionAndSize.width, Unit.PX);
+ e.getStyle().setHeight(positionAndSize.height, Unit.PX);
}
- protected class ShadowAnimation extends Animation {
+ protected class ResizeAnimation extends Animation {
@Override
protected void onUpdate(double progress) {
- updateShadowSizeAndPosition(progress);
+ sizeOrPositionUpdated(progress);
}
}
+ @Override
public void onClose(CloseEvent<PopupPanel> event) {
removeShadowIfPresent();
}
@@ -414,4 +530,25 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> {
protected boolean isSinkShadowEvents() {
return sinkShadowEvents;
}
+
+ /**
+ * Get owner (Widget that made this VOverlay, not the layout parent) of
+ * VOverlay
+ *
+ * @return Owner (creator) or null if not defined
+ */
+ public Widget getOwner() {
+ return owner;
+ }
+
+ /**
+ * Set owner (Widget that made this VOverlay, not the layout parent) of
+ * VOverlay
+ *
+ * @param owner
+ * Owner (creator) of VOverlay
+ */
+ public void setOwner(Widget owner) {
+ this.owner = owner;
+ }
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/Vaadin6Connector.java b/src/com/vaadin/terminal/gwt/client/ui/Vaadin6Connector.java
index 7fccdafd2a..f2f0125c86 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/Vaadin6Connector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/Vaadin6Connector.java
@@ -10,6 +10,7 @@ import com.vaadin.terminal.gwt.client.UIDL;
public abstract class Vaadin6Connector extends AbstractComponentConnector
implements Paintable {
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
((Paintable) getWidget()).updateFromUIDL(uidl, client);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutConnector.java b/src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutConnector.java
index 91436f5353..188d464b84 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutConnector.java
@@ -10,6 +10,10 @@ import com.google.gwt.dom.client.Style;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.LayoutClickRpc;
+import com.vaadin.shared.ui.absolutelayout.AbsoluteLayoutServerRpc;
+import com.vaadin.shared.ui.absolutelayout.AbsoluteLayoutState;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
import com.vaadin.terminal.gwt.client.DirectionalManagedLayout;
@@ -18,9 +22,7 @@ import com.vaadin.terminal.gwt.client.VCaption;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentContainerConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.LayoutClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.LayoutClickRpc;
import com.vaadin.terminal.gwt.client.ui.absolutelayout.VAbsoluteLayout.AbsoluteWrapper;
import com.vaadin.ui.AbsoluteLayout;
@@ -68,6 +70,7 @@ public class AbsoluteLayoutConnector extends
element);
}
+ @Override
public void updateCaption(ComponentConnector component) {
VAbsoluteLayout absoluteLayoutWidget = getWidget();
AbsoluteWrapper componentWrapper = getWrapper(component);
@@ -147,6 +150,7 @@ public class AbsoluteLayoutConnector extends
}
}
+ @Override
public void layoutVertically() {
VAbsoluteLayout layout = getWidget();
for (ComponentConnector paintable : getChildComponents()) {
@@ -179,6 +183,7 @@ public class AbsoluteLayoutConnector extends
}
}
+ @Override
public void layoutHorizontally() {
VAbsoluteLayout layout = getWidget();
for (ComponentConnector paintable : getChildComponents()) {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutServerRpc.java b/src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutServerRpc.java
deleted file mode 100644
index d626eb5b6c..0000000000
--- a/src/com/vaadin/terminal/gwt/client/ui/absolutelayout/AbsoluteLayoutServerRpc.java
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-package com.vaadin.terminal.gwt.client.ui.absolutelayout;
-
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.ui.LayoutClickRpc;
-
-public interface AbsoluteLayoutServerRpc extends LayoutClickRpc, ServerRpc {
-
-} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/accordion/AccordionConnector.java b/src/com/vaadin/terminal/gwt/client/ui/accordion/AccordionConnector.java
index f022e97973..7ff1257da3 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/accordion/AccordionConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/accordion/AccordionConnector.java
@@ -5,10 +5,10 @@ package com.vaadin.terminal.gwt.client.ui.accordion;
import java.util.Iterator;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.UIDL;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.SimpleManagedLayout;
import com.vaadin.terminal.gwt.client.ui.accordion.VAccordion.StackItem;
import com.vaadin.terminal.gwt.client.ui.layout.MayScrollChildren;
@@ -57,10 +57,12 @@ public class AccordionConnector extends TabsheetBaseConnector implements
return (VAccordion) super.getWidget();
}
+ @Override
public void updateCaption(ComponentConnector component) {
/* Accordion does not render its children's captions */
}
+ @Override
public void layout() {
VAccordion accordion = getWidget();
diff --git a/src/com/vaadin/terminal/gwt/client/ui/accordion/VAccordion.java b/src/com/vaadin/terminal/gwt/client/ui/accordion/VAccordion.java
index b83d5afb00..d9320787e8 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/accordion/VAccordion.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/accordion/VAccordion.java
@@ -434,6 +434,7 @@ public class VAccordion extends VTabsheetBase {
}
}
+ @Override
public void onClick(ClickEvent event) {
onSelectTab(this);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/audio/AudioConnector.java b/src/com/vaadin/terminal/gwt/client/ui/audio/AudioConnector.java
index 1c7feb132a..6b713c229c 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/audio/AudioConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/audio/AudioConnector.java
@@ -7,9 +7,9 @@ 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.ui.Widget;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.MediaBaseConnector;
import com.vaadin.ui.Audio;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/button/ButtonConnector.java b/src/com/vaadin/terminal/gwt/client/ui/button/ButtonConnector.java
index d79aa96ac6..0cec6ce96b 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/button/ButtonConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/button/ButtonConnector.java
@@ -12,15 +12,17 @@ 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.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.communication.FieldRpc.FocusAndBlurServerRpc;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
+import com.vaadin.shared.ui.button.ButtonServerRpc;
+import com.vaadin.shared.ui.button.ButtonState;
import com.vaadin.terminal.gwt.client.EventHelper;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
-import com.vaadin.terminal.gwt.client.communication.FieldRpc.FocusAndBlurServerRpc;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ui.Icon;
import com.vaadin.ui.Button;
@@ -103,18 +105,21 @@ public class ButtonConnector extends AbstractComponentConnector implements
return (ButtonState) super.getState();
}
+ @Override
public void onFocus(FocusEvent event) {
// EventHelper.updateFocusHandler ensures that this is called only when
// there is a listener on server side
focusBlurProxy.focus();
}
+ @Override
public void onBlur(BlurEvent event) {
// EventHelper.updateFocusHandler ensures that this is called only when
// there is a listener on server side
focusBlurProxy.blur();
}
+ @Override
public void onClick(ClickEvent event) {
if (getState().isDisableOnClick()) {
getWidget().setEnabled(false);
diff --git a/src/com/vaadin/terminal/gwt/client/ui/button/VButton.java b/src/com/vaadin/terminal/gwt/client/ui/button/VButton.java
index 0cd8bc54f4..3232338f62 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/button/VButton.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/button/VButton.java
@@ -18,7 +18,6 @@ import com.google.gwt.user.client.ui.FocusWidget;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.Util;
-import com.vaadin.terminal.gwt.client.VTooltip;
import com.vaadin.terminal.gwt.client.ui.Icon;
public class VButton extends FocusWidget implements ClickHandler {
@@ -90,7 +89,6 @@ public class VButton extends FocusWidget implements ClickHandler {
setTabIndex(0);
sinkEvents(Event.ONCLICK | Event.MOUSEEVENTS | Event.FOCUSEVENTS
| Event.KEYEVENTS);
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
setStyleName(CLASSNAME);
@@ -128,9 +126,6 @@ public class VButton extends FocusWidget implements ClickHandler {
* -onload event handler added (for icon handling)
*/
public void onBrowserEvent(Event event) {
- if (client != null) {
- client.handleTooltipEvent(event, this);
- }
if (DOM.eventGetType(event) == Event.ONLOAD) {
Util.notifyParentOfSizeChange(this, true);
}
@@ -286,6 +281,7 @@ public class VButton extends FocusWidget implements ClickHandler {
* com.google.gwt.event.dom.client.ClickHandler#onClick(com.google.gwt.event
* .dom.client.ClickEvent)
*/
+ @Override
public void onClick(ClickEvent event) {
if (BrowserInfo.get().isSafari()) {
VButton.this.setFocus(true);
diff --git a/src/com/vaadin/terminal/gwt/client/ui/checkbox/CheckBoxConnector.java b/src/com/vaadin/terminal/gwt/client/ui/checkbox/CheckBoxConnector.java
index bc405b793b..c7e827bc74 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/checkbox/CheckBoxConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/checkbox/CheckBoxConnector.java
@@ -12,15 +12,17 @@ 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.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.communication.FieldRpc.FocusAndBlurServerRpc;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.checkbox.CheckBoxServerRpc;
+import com.vaadin.shared.ui.checkbox.CheckBoxState;
import com.vaadin.terminal.gwt.client.EventHelper;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
import com.vaadin.terminal.gwt.client.VTooltip;
-import com.vaadin.terminal.gwt.client.communication.FieldRpc.FocusAndBlurServerRpc;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractFieldConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.Icon;
import com.vaadin.ui.CheckBox;
@@ -114,18 +116,21 @@ public class CheckBoxConnector extends AbstractFieldConnector implements
return (VCheckBox) super.getWidget();
}
+ @Override
public void onFocus(FocusEvent event) {
// EventHelper.updateFocusHandler ensures that this is called only when
// there is a listener on server side
focusBlurRpc.focus();
}
+ @Override
public void onBlur(BlurEvent event) {
// EventHelper.updateFocusHandler ensures that this is called only when
// there is a listener on server side
focusBlurRpc.blur();
}
+ @Override
public void onClick(ClickEvent event) {
if (!isEnabled()) {
return;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/checkbox/VCheckBox.java b/src/com/vaadin/terminal/gwt/client/ui/checkbox/VCheckBox.java
index fd90796ea5..a6eec2de8a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/checkbox/VCheckBox.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/checkbox/VCheckBox.java
@@ -31,7 +31,6 @@ public class VCheckBox extends com.google.gwt.user.client.ui.CheckBox implements
public VCheckBox() {
setStyleName(CLASSNAME);
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
Element el = DOM.getFirstChild(getElement());
while (el != null) {
DOM.sinkEvents(el,
@@ -53,9 +52,6 @@ public class VCheckBox extends com.google.gwt.user.client.ui.CheckBox implements
if (event.getTypeInt() == Event.ONLOAD) {
Util.notifyParentOfSizeChange(this, true);
}
- if (client != null) {
- client.handleTooltipEvent(event, this);
- }
}
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/combobox/ComboBoxConnector.java b/src/com/vaadin/terminal/gwt/client/ui/combobox/ComboBoxConnector.java
index ff153d30c9..0fa71bb7a6 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/combobox/ComboBoxConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/combobox/ComboBoxConnector.java
@@ -5,12 +5,12 @@ package com.vaadin.terminal.gwt.client.ui.combobox;
import java.util.Iterator;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.Util;
import com.vaadin.terminal.gwt.client.ui.AbstractFieldConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.SimpleManagedLayout;
import com.vaadin.terminal.gwt.client.ui.combobox.VFilterSelect.FilterSelectSuggestion;
import com.vaadin.terminal.gwt.client.ui.menubar.MenuItem;
@@ -27,6 +27,7 @@ public class ComboBoxConnector extends AbstractFieldConnector implements
* com.vaadin.terminal.gwt.client.Paintable#updateFromUIDL(com.vaadin.terminal
* .gwt.client.UIDL, com.vaadin.terminal.gwt.client.ApplicationConnection)
*/
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
// Save details
getWidget().client = client;
@@ -230,6 +231,7 @@ public class ComboBoxConnector extends AbstractFieldConnector implements
return (VFilterSelect) super.getWidget();
}
+ @Override
public void layout() {
VFilterSelect widget = getWidget();
if (widget.initDone) {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/combobox/VFilterSelect.java b/src/com/vaadin/terminal/gwt/client/ui/combobox/VFilterSelect.java
index 8c5d521445..6e24a74e04 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/combobox/VFilterSelect.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/combobox/VFilterSelect.java
@@ -44,17 +44,16 @@ import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.PopupPanel.PositionCallback;
import com.google.gwt.user.client.ui.SuggestOracle.Suggestion;
import com.google.gwt.user.client.ui.TextBox;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.EventId;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.ComponentConnector;
-import com.vaadin.terminal.gwt.client.ComponentState;
import com.vaadin.terminal.gwt.client.ConnectorMap;
-import com.vaadin.terminal.gwt.client.EventId;
import com.vaadin.terminal.gwt.client.Focusable;
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.VTooltip;
import com.vaadin.terminal.gwt.client.ui.Field;
import com.vaadin.terminal.gwt.client.ui.SubPartAware;
import com.vaadin.terminal.gwt.client.ui.VLazyExecutor;
@@ -102,6 +101,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
* specified) and the caption of the item
*/
+ @Override
public String getDisplayString() {
final StringBuffer sb = new StringBuffer();
if (iconUri != null) {
@@ -125,6 +125,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
* Get a string that represents this item. This is used in the text box.
*/
+ @Override
public String getReplacementString() {
return caption;
}
@@ -151,6 +152,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
* Executes a selection of this item.
*/
+ @Override
public void execute() {
onSuggestionSelected(this);
}
@@ -455,6 +457,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
* (int, int)
*/
+ @Override
public void setPosition(int offsetWidth, int offsetHeight) {
int top = -1;
@@ -592,6 +595,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
private VLazyExecutor delayedImageLoadExecutioner = new VLazyExecutor(
100, new ScheduledCommand() {
+ @Override
public void execute() {
if (suggestionPopup.isVisible()
&& suggestionPopup.isAttached()) {
@@ -749,6 +753,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
private static final String SUBPART_PREFIX = "item";
+ @Override
public Element getSubPartElement(String subPart) {
int index = Integer.parseInt(subPart.substring(SUBPART_PREFIX
.length()));
@@ -758,6 +763,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
return item.getElement();
}
+ @Override
public String getSubPartName(Element subElement) {
if (!getElement().isOrHasChild(subElement)) {
return null;
@@ -780,6 +786,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
return null;
}
+ @Override
public void onLoad(LoadEvent event) {
// Handle icon onload events to ensure shadow is resized
// correctly
@@ -824,21 +831,6 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
* The text box where the filter is written
*/
protected final TextBox tb = new TextBox() {
- /*
- * (non-Javadoc)
- *
- * @see
- * com.google.gwt.user.client.ui.TextBoxBase#onBrowserEvent(com.google
- * .gwt.user.client.Event)
- */
-
- @Override
- public void onBrowserEvent(Event event) {
- super.onBrowserEvent(event);
- if (client != null) {
- client.handleTooltipEvent(event, VFilterSelect.this);
- }
- }
// Overridden to avoid selecting text when text input is disabled
@Override
@@ -869,9 +861,6 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
@Override
public void onBrowserEvent(Event event) {
super.onBrowserEvent(event);
- if (client != null) {
- client.handleTooltipEvent(event, VFilterSelect.this);
- }
/*
* Prevent the keyboard focus from leaving the textfield by
@@ -961,6 +950,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
selectedItemIcon.setStyleName("v-icon");
selectedItemIcon.addLoadHandler(new LoadHandler() {
+ @Override
public void onLoad(LoadEvent event) {
if (BrowserInfo.get().isIE8()) {
// IE8 needs some help to discover it should reposition the
@@ -972,8 +962,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
}
});
- tb.sinkEvents(VTooltip.TOOLTIP_EVENTS);
- popupOpener.sinkEvents(VTooltip.TOOLTIP_EVENTS | Event.ONMOUSEDOWN);
+ popupOpener.sinkEvents(Event.ONMOUSEDOWN);
panel.add(tb);
panel.add(popupOpener);
initWidget(panel);
@@ -1214,6 +1203,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
* .event.dom.client.KeyDownEvent)
*/
+ @Override
public void onKeyDown(KeyDownEvent event) {
if (enabled && !readonly) {
int keyCode = event.getNativeKeyCode();
@@ -1376,6 +1366,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
* The KeyUpEvent of the key depressed
*/
+ @Override
public void onKeyUp(KeyUpEvent event) {
if (enabled && !readonly) {
switch (event.getNativeKeyCode()) {
@@ -1424,6 +1415,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
* Listener for popupopener
*/
+ @Override
public void onClick(ClickEvent event) {
if (textInputEnabled
&& event.getNativeEvent().getEventTarget().cast() == tb
@@ -1488,6 +1480,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
* .dom.client.FocusEvent)
*/
+ @Override
public void onFocus(FocusEvent event) {
/*
@@ -1525,6 +1518,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
* .dom.client.BlurEvent)
*/
+ @Override
public void onBlur(BlurEvent event) {
if (BrowserInfo.get().isIE() && preventNextBlurEventInIE) {
@@ -1582,6 +1576,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
* @see com.vaadin.terminal.gwt.client.Focusable#focus()
*/
+ @Override
public void focus() {
focused = true;
if (prompting && !readonly) {
@@ -1690,6 +1685,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
suggestionPopup.hide();
}
+ @Override
public Element getSubPartElement(String subPart) {
if ("textbox".equals(subPart)) {
return this.tb.getElement();
@@ -1699,6 +1695,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
return null;
}
+ @Override
public String getSubPartName(Element subElement) {
if (tb.getElement().isOrHasChild(subElement)) {
return "textbox";
diff --git a/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutConnector.java b/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutConnector.java
index 4d341bddfc..7d07172cd1 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutConnector.java
@@ -9,6 +9,11 @@ import java.util.Map;
import com.google.gwt.dom.client.Style;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.LayoutClickRpc;
+import com.vaadin.shared.ui.VMarginInfo;
+import com.vaadin.shared.ui.csslayout.CssLayoutServerRpc;
+import com.vaadin.shared.ui.csslayout.CssLayoutState;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
@@ -17,10 +22,7 @@ import com.vaadin.terminal.gwt.client.VCaption;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractLayoutConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.LayoutClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.LayoutClickRpc;
-import com.vaadin.terminal.gwt.client.ui.VMarginInfo;
import com.vaadin.terminal.gwt.client.ui.csslayout.VCssLayout.FlowPane;
import com.vaadin.ui.CssLayout;
@@ -137,6 +139,7 @@ public class CssLayoutConnector extends AbstractLayoutConnector {
return (VCssLayout) super.getWidget();
}
+ @Override
public void updateCaption(ComponentConnector child) {
Widget childWidget = child.getWidget();
FlowPane cssLayoutWidgetContainer = getWidget().panel;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutServerRpc.java b/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutServerRpc.java
deleted file mode 100644
index 7ba89d4c4c..0000000000
--- a/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutServerRpc.java
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-package com.vaadin.terminal.gwt.client.ui.csslayout;
-
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.ui.LayoutClickRpc;
-
-public interface CssLayoutServerRpc extends LayoutClickRpc, ServerRpc {
-
-} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/csslayout/VCssLayout.java b/src/com/vaadin/terminal/gwt/client/ui/csslayout/VCssLayout.java
index 7076120388..53f8ca6c8a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/csslayout/VCssLayout.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/csslayout/VCssLayout.java
@@ -9,8 +9,8 @@ import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.VMarginInfo;
import com.vaadin.terminal.gwt.client.StyleConstants;
-import com.vaadin.terminal.gwt.client.ui.VMarginInfo;
public class VCssLayout extends SimplePanel {
public static final String TAGNAME = "csslayout";
diff --git a/src/com/vaadin/terminal/gwt/client/ui/customcomponent/CustomComponentConnector.java b/src/com/vaadin/terminal/gwt/client/ui/customcomponent/CustomComponentConnector.java
index 5001711d6c..f7740a9205 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/customcomponent/CustomComponentConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/customcomponent/CustomComponentConnector.java
@@ -3,11 +3,11 @@
*/
package com.vaadin.terminal.gwt.client.ui.customcomponent;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentContainerConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
import com.vaadin.ui.CustomComponent;
@Connect(value = CustomComponent.class, loadStyle = LoadStyle.EAGER)
@@ -19,6 +19,7 @@ public class CustomComponentConnector extends
return (VCustomComponent) super.getWidget();
}
+ @Override
public void updateCaption(ComponentConnector component) {
// NOP, custom component dont render composition roots caption
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/customfield/CustomFieldConnector.java b/src/com/vaadin/terminal/gwt/client/ui/customfield/CustomFieldConnector.java
index 09045df6eb..b4f42c36aa 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/customfield/CustomFieldConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/customfield/CustomFieldConnector.java
@@ -4,9 +4,9 @@
package com.vaadin.terminal.gwt.client.ui.customfield;
import com.google.gwt.core.client.GWT;
-import com.vaadin.terminal.gwt.client.AbstractFieldState;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
-import com.vaadin.terminal.gwt.client.ui.Connect;
+import com.vaadin.shared.AbstractFieldState;
+import com.vaadin.shared.communication.SharedState;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.customcomponent.CustomComponentConnector;
import com.vaadin.ui.CustomField;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/customlayout/CustomLayoutConnector.java b/src/com/vaadin/terminal/gwt/client/ui/customlayout/CustomLayoutConnector.java
index f8861caf92..9d973227d1 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/customlayout/CustomLayoutConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/customlayout/CustomLayoutConnector.java
@@ -5,17 +5,21 @@ package com.vaadin.terminal.gwt.client.ui.customlayout;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.customlayout.CustomLayoutState;
+import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
+import com.vaadin.terminal.gwt.client.Paintable;
+import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractLayoutConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.SimpleManagedLayout;
import com.vaadin.ui.CustomLayout;
@Connect(CustomLayout.class)
public class CustomLayoutConnector extends AbstractLayoutConnector implements
- SimpleManagedLayout {
+ SimpleManagedLayout, Paintable {
@Override
public CustomLayoutState getState() {
@@ -102,11 +106,19 @@ public class CustomLayoutConnector extends AbstractLayoutConnector implements
return (VCustomLayout) super.getWidget();
}
+ @Override
public void updateCaption(ComponentConnector paintable) {
getWidget().updateCaption(paintable);
}
+ @Override
public void layout() {
getWidget().iLayoutJS(DOM.getFirstChild(getWidget().getElement()));
}
+
+ @Override
+ public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
+ // Not interested in anything from the UIDL - just implementing the
+ // interface to avoid some warning (#8688)
+ }
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/datefield/AbstractDateFieldConnector.java b/src/com/vaadin/terminal/gwt/client/ui/datefield/AbstractDateFieldConnector.java
index b55f480bac..159b5bc414 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/datefield/AbstractDateFieldConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/datefield/AbstractDateFieldConnector.java
@@ -15,6 +15,7 @@ import com.vaadin.terminal.gwt.client.ui.AbstractFieldConnector;
public class AbstractDateFieldConnector extends AbstractFieldConnector
implements Paintable {
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (!isRealUpdate(uidl)) {
return;
@@ -63,15 +64,23 @@ public class AbstractDateFieldConnector extends AbstractFieldConnector
newResolution = VDateField.RESOLUTION_YEAR;
}
+ // Remove old stylename that indicates current resolution
+ setWidgetStyleName(
+ VDateField.CLASSNAME
+ + "-"
+ + VDateField
+ .resolutionToString(getWidget().currentResolution),
+ false);
+
getWidget().currentResolution = newResolution;
// Add stylename that indicates current resolution
- getWidget()
- .addStyleName(
- VDateField.CLASSNAME
- + "-"
- + VDateField
- .resolutionToString(getWidget().currentResolution));
+ setWidgetStyleName(
+ VDateField.CLASSNAME
+ + "-"
+ + VDateField
+ .resolutionToString(getWidget().currentResolution),
+ true);
final int year = uidl.getIntVariable("year");
final int month = (getWidget().currentResolution >= VDateField.RESOLUTION_MONTH) ? uidl
diff --git a/src/com/vaadin/terminal/gwt/client/ui/datefield/InlineDateFieldConnector.java b/src/com/vaadin/terminal/gwt/client/ui/datefield/InlineDateFieldConnector.java
index 7cd9c110ba..304c75322a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/datefield/InlineDateFieldConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/datefield/InlineDateFieldConnector.java
@@ -5,10 +5,10 @@ package com.vaadin.terminal.gwt.client.ui.datefield;
import java.util.Date;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.DateTimeService;
import com.vaadin.terminal.gwt.client.UIDL;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.datefield.VCalendarPanel.FocusChangeListener;
import com.vaadin.terminal.gwt.client.ui.datefield.VCalendarPanel.TimeChangeListener;
import com.vaadin.ui.InlineDateField;
@@ -40,6 +40,7 @@ public class InlineDateFieldConnector extends AbstractDateFieldConnector {
if (getWidget().currentResolution > VDateField.RESOLUTION_DAY) {
getWidget().calendarPanel
.setTimeChangeListener(new TimeChangeListener() {
+ @Override
public void changed(int hour, int min, int sec, int msec) {
Date d = getWidget().getDate();
if (d == null) {
@@ -64,6 +65,7 @@ public class InlineDateFieldConnector extends AbstractDateFieldConnector {
if (getWidget().currentResolution <= VDateField.RESOLUTION_MONTH) {
getWidget().calendarPanel
.setFocusChangeListener(new FocusChangeListener() {
+ @Override
public void focusChanged(Date date) {
Date date2 = new Date();
if (getWidget().calendarPanel.getDate() != null) {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/datefield/PopupDateFieldConnector.java b/src/com/vaadin/terminal/gwt/client/ui/datefield/PopupDateFieldConnector.java
index e169d83b48..a8c8ada1d9 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/datefield/PopupDateFieldConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/datefield/PopupDateFieldConnector.java
@@ -6,10 +6,10 @@ package com.vaadin.terminal.gwt.client.ui.datefield;
import java.util.Date;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.DateTimeService;
import com.vaadin.terminal.gwt.client.UIDL;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.datefield.VCalendarPanel.FocusChangeListener;
import com.vaadin.terminal.gwt.client.ui.datefield.VCalendarPanel.TimeChangeListener;
import com.vaadin.ui.DateField;
@@ -35,14 +35,6 @@ public class PopupDateFieldConnector extends TextualDateConnector {
super.updateFromUIDL(uidl, client);
- String popupStyleNames = getStyleNames(VPopupCalendar.POPUP_PRIMARY_STYLE_NAME);
- popupStyleNames += " "
- + VDateField.CLASSNAME
- + "-"
- + VPopupCalendar
- .resolutionToString(getWidget().currentResolution);
- getWidget().popup.setStyleName(popupStyleNames);
-
getWidget().calendar.setDateTimeService(getWidget()
.getDateTimeService());
getWidget().calendar.setShowISOWeekNumbers(getWidget()
@@ -61,6 +53,7 @@ public class PopupDateFieldConnector extends TextualDateConnector {
if (getWidget().currentResolution <= VPopupCalendar.RESOLUTION_MONTH) {
getWidget().calendar
.setFocusChangeListener(new FocusChangeListener() {
+ @Override
public void focusChanged(Date date) {
getWidget().updateValue(date);
getWidget().buildDate();
@@ -76,6 +69,7 @@ public class PopupDateFieldConnector extends TextualDateConnector {
if (getWidget().currentResolution > VPopupCalendar.RESOLUTION_DAY) {
getWidget().calendar
.setTimeChangeListener(new TimeChangeListener() {
+ @Override
public void changed(int hour, int min, int sec, int msec) {
Date d = getWidget().getDate();
if (d == null) {
@@ -114,4 +108,30 @@ public class PopupDateFieldConnector extends TextualDateConnector {
public VPopupCalendar getWidget() {
return (VPopupCalendar) super.getWidget();
}
+
+ @Override
+ protected void setWidgetStyleName(String styleName, boolean add) {
+ super.setWidgetStyleName(styleName, add);
+
+ // update the style change to popup calendar widget
+ getWidget().popup.setStyleName(styleName, add);
+ }
+
+ @Override
+ protected void setWidgetStyleNameWithPrefix(String prefix,
+ String styleName, boolean add) {
+ super.setWidgetStyleNameWithPrefix(prefix, styleName, add);
+
+ // update the style change to popup calendar widget with the correct
+ // prefix
+ if (!styleName.startsWith("-")) {
+ getWidget().popup.setStyleName(
+ VPopupCalendar.POPUP_PRIMARY_STYLE_NAME + "-" + styleName,
+ add);
+ } else {
+ getWidget().popup.setStyleName(
+ VPopupCalendar.POPUP_PRIMARY_STYLE_NAME + styleName, add);
+ }
+ }
+
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/datefield/VCalendarPanel.java b/src/com/vaadin/terminal/gwt/client/ui/datefield/VCalendarPanel.java
index acfff60d53..e4e25a5a2e 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/datefield/VCalendarPanel.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/datefield/VCalendarPanel.java
@@ -121,6 +121,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
* com.google.gwt.event.dom.client.ClickHandler#onClick(com.google.gwt
* .event.dom.client.ClickEvent)
*/
+ @Override
public void onClick(ClickEvent event) {
Day day = (Day) event.getSource();
focusDay(day.getDate());
@@ -718,6 +719,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
* com.google.gwt.event.dom.client.KeyDownHandler#onKeyDown(com.google.gwt
* .event.dom.client.KeyDownEvent)
*/
+ @Override
public void onKeyDown(KeyDownEvent event) {
handleKeyPress(event);
}
@@ -729,6 +731,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
* com.google.gwt.event.dom.client.KeyPressHandler#onKeyPress(com.google
* .gwt.event.dom.client.KeyPressEvent)
*/
+ @Override
public void onKeyPress(KeyPressEvent event) {
handleKeyPress(event);
}
@@ -1124,6 +1127,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
* com.google.gwt.event.dom.client.MouseOutHandler#onMouseOut(com.google
* .gwt.event.dom.client.MouseOutEvent)
*/
+ @Override
public void onMouseOut(MouseOutEvent event) {
if (mouseTimer != null) {
mouseTimer.cancel();
@@ -1137,6 +1141,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
* com.google.gwt.event.dom.client.MouseDownHandler#onMouseDown(com.google
* .gwt.event.dom.client.MouseDownEvent)
*/
+ @Override
public void onMouseDown(MouseDownEvent event) {
// Allow user to click-n-hold for fast-forward or fast-rewind.
// Timer is first used for a 500ms delay after mousedown. After that has
@@ -1169,6 +1174,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
* com.google.gwt.event.dom.client.MouseUpHandler#onMouseUp(com.google.gwt
* .event.dom.client.MouseUpEvent)
*/
+ @Override
public void onMouseUp(MouseUpEvent event) {
if (mouseTimer != null) {
mouseTimer.cancel();
@@ -1354,6 +1360,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
ListBox lastDropDown = getLastDropDown();
lastDropDown.addKeyDownHandler(new KeyDownHandler() {
+ @Override
public void onKeyDown(KeyDownEvent event) {
boolean shiftKey = event.getNativeEvent().getShiftKey();
if (shiftKey) {
@@ -1439,6 +1446,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
* com.google.gwt.event.dom.client.ChangeHandler#onChange(com.google.gwt
* .event.dom.client.ChangeEvent)
*/
+ @Override
public void onChange(ChangeEvent event) {
/*
* Value from dropdowns gets always set for the value. Like year and
@@ -1589,6 +1597,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
* com.google.gwt.event.dom.client.BlurHandler#onBlur(com.google.gwt.event
* .dom.client.BlurEvent)
*/
+ @Override
public void onBlur(final BlurEvent event) {
if (event.getSource() instanceof VCalendarPanel) {
hasFocus = false;
@@ -1603,6 +1612,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
* com.google.gwt.event.dom.client.FocusHandler#onFocus(com.google.gwt.event
* .dom.client.FocusEvent)
*/
+ @Override
public void onFocus(FocusEvent event) {
if (event.getSource() instanceof VCalendarPanel) {
hasFocus = true;
@@ -1627,6 +1637,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
private static final String SUBPART_DAY = "day";
private static final String SUBPART_MONTH_YEAR_HEADER = "header";
+ @Override
public String getSubPartName(Element subElement) {
if (contains(nextMonth, subElement)) {
return SUBPART_NEXT_MONTH;
@@ -1685,6 +1696,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
return w.getElement().isOrHasChild(subElement);
}
+ @Override
public Element getSubPartElement(String subPart) {
if (SUBPART_NEXT_MONTH.equals(subPart)) {
return nextMonth.getElement();
diff --git a/src/com/vaadin/terminal/gwt/client/ui/datefield/VDateField.java b/src/com/vaadin/terminal/gwt/client/ui/datefield/VDateField.java
index d169b1b47e..614c4febdd 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/datefield/VDateField.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/datefield/VDateField.java
@@ -6,11 +6,9 @@ package com.vaadin.terminal.gwt.client.ui.datefield;
import java.util.Date;
-import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.FlowPanel;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.DateTimeService;
-import com.vaadin.terminal.gwt.client.VTooltip;
import com.vaadin.terminal.gwt.client.ui.Field;
public class VDateField extends FlowPanel implements Field {
@@ -66,15 +64,6 @@ public class VDateField extends FlowPanel implements Field {
public VDateField() {
setStyleName(CLASSNAME);
dts = new DateTimeService();
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
- }
-
- @Override
- public void onBrowserEvent(Event event) {
- super.onBrowserEvent(event);
- if (client != null) {
- client.handleTooltipEvent(event, this);
- }
}
/*
diff --git a/src/com/vaadin/terminal/gwt/client/ui/datefield/VDateFieldCalendar.java b/src/com/vaadin/terminal/gwt/client/ui/datefield/VDateFieldCalendar.java
index 84b3c678eb..e411fb3013 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/datefield/VDateFieldCalendar.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/datefield/VDateFieldCalendar.java
@@ -23,16 +23,19 @@ public class VDateFieldCalendar extends VDateField {
calendarPanel = new VCalendarPanel();
add(calendarPanel);
calendarPanel.setSubmitListener(new SubmitListener() {
+ @Override
public void onSubmit() {
updateValueFromPanel();
}
+ @Override
public void onCancel() {
// TODO Auto-generated method stub
}
});
calendarPanel.setFocusOutListener(new FocusOutListener() {
+ @Override
public boolean onFocusOut(DomEvent<?> event) {
updateValueFromPanel();
return false;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/datefield/VPopupCalendar.java b/src/com/vaadin/terminal/gwt/client/ui/datefield/VPopupCalendar.java
index 7011e5358b..de6ebf29af 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/datefield/VPopupCalendar.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/datefield/VPopupCalendar.java
@@ -66,6 +66,7 @@ public class VPopupCalendar extends VTextualDate implements Field,
calendar = GWT.create(VCalendarPanel.class);
calendar.setFocusOutListener(new FocusOutListener() {
+ @Override
public boolean onFocusOut(DomEvent<?> event) {
event.preventDefault();
closeCalendarPanel();
@@ -74,6 +75,7 @@ public class VPopupCalendar extends VTextualDate implements Field,
});
calendar.setSubmitListener(new SubmitListener() {
+ @Override
public void onSubmit() {
// Update internal value and send valuechange event if immediate
updateValue(calendar.getDate());
@@ -84,6 +86,7 @@ public class VPopupCalendar extends VTextualDate implements Field,
closeCalendarPanel();
}
+ @Override
public void onCancel() {
closeCalendarPanel();
}
@@ -164,6 +167,7 @@ public class VPopupCalendar extends VTextualDate implements Field,
popup.setWidth("");
popup.setHeight("");
popup.setPopupPositionAndShow(new PositionCallback() {
+ @Override
public void setPosition(int offsetWidth, int offsetHeight) {
final int w = offsetWidth;
final int h = offsetHeight;
@@ -232,6 +236,7 @@ public class VPopupCalendar extends VTextualDate implements Field,
* com.google.gwt.event.dom.client.ClickHandler#onClick(com.google.gwt.event
* .dom.client.ClickEvent)
*/
+ @Override
public void onClick(ClickEvent event) {
if (event.getSource() == calendarToggle && isEnabled()) {
openCalendarPanel();
@@ -245,6 +250,7 @@ public class VPopupCalendar extends VTextualDate implements Field,
* com.google.gwt.event.logical.shared.CloseHandler#onClose(com.google.gwt
* .event.logical.shared.CloseEvent)
*/
+ @Override
public void onClose(CloseEvent<PopupPanel> event) {
if (event.getSource() == popup) {
buildDate();
diff --git a/src/com/vaadin/terminal/gwt/client/ui/datefield/VTextualDate.java b/src/com/vaadin/terminal/gwt/client/ui/datefield/VTextualDate.java
index db4eca152a..8c252ddc69 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/datefield/VTextualDate.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/datefield/VTextualDate.java
@@ -14,7 +14,7 @@ import com.google.gwt.event.dom.client.FocusEvent;
import com.google.gwt.event.dom.client.FocusHandler;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.TextBox;
-import com.vaadin.terminal.gwt.client.EventId;
+import com.vaadin.shared.EventId;
import com.vaadin.terminal.gwt.client.Focusable;
import com.vaadin.terminal.gwt.client.LocaleNotLoadedException;
import com.vaadin.terminal.gwt.client.LocaleService;
@@ -50,6 +50,7 @@ public class VTextualDate extends VDateField implements Field, ChangeHandler,
text.addStyleName(CLASSNAME + "-textfield");
text.addChangeHandler(this);
text.addFocusHandler(new FocusHandler() {
+ @Override
public void onFocus(FocusEvent event) {
text.addStyleName(VTextField.CLASSNAME + "-"
+ VTextField.CLASSNAME_FOCUS);
@@ -66,6 +67,7 @@ public class VTextualDate extends VDateField implements Field, ChangeHandler,
}
});
text.addBlurHandler(new BlurHandler() {
+ @Override
public void onBlur(BlurEvent event) {
text.removeStyleName(VTextField.CLASSNAME + "-"
+ VTextField.CLASSNAME_FOCUS);
@@ -168,6 +170,7 @@ public class VTextualDate extends VDateField implements Field, ChangeHandler,
}
}
+ @Override
@SuppressWarnings("deprecation")
public void onChange(ChangeEvent event) {
if (!text.getText().equals("")) {
@@ -291,6 +294,7 @@ public class VTextualDate extends VDateField implements Field, ChangeHandler,
return format.trim();
}
+ @Override
public void focus() {
text.setFocus(true);
}
@@ -315,6 +319,7 @@ public class VTextualDate extends VDateField implements Field, ChangeHandler,
private final String TEXTFIELD_ID = "field";
+ @Override
public Element getSubPartElement(String subPart) {
if (subPart.equals(TEXTFIELD_ID)) {
return text.getElement();
@@ -323,6 +328,7 @@ public class VTextualDate extends VDateField implements Field, ChangeHandler,
return null;
}
+ @Override
public String getSubPartName(Element subElement) {
if (text.getElement().isOrHasChild(subElement)) {
return TEXTFIELD_ID;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/DDUtil.java b/src/com/vaadin/terminal/gwt/client/ui/dd/DDUtil.java
index 97f5eb86fd..f9ec8a2f48 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/DDUtil.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/DDUtil.java
@@ -6,6 +6,8 @@ package com.vaadin.terminal.gwt.client.ui.dd;
import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Window;
+import com.vaadin.shared.ui.dd.HorizontalDropLocation;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.terminal.gwt.client.Util;
public class DDUtil {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VAbstractDropHandler.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VAbstractDropHandler.java
index ce47c7d13a..ce0533ac1f 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VAbstractDropHandler.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VAbstractDropHandler.java
@@ -47,6 +47,7 @@ public abstract class VAbstractDropHandler implements VDropHandler {
/**
* Default implementation does nothing.
*/
+ @Override
public void dragOver(VDragEvent drag) {
}
@@ -55,6 +56,7 @@ public abstract class VAbstractDropHandler implements VDropHandler {
* Default implementation does nothing. Implementors should clean possible
* emphasis or drag icons here.
*/
+ @Override
public void dragLeave(VDragEvent drag) {
}
@@ -73,8 +75,10 @@ public abstract class VAbstractDropHandler implements VDropHandler {
* implementation.
*
*/
+ @Override
public void dragEnter(final VDragEvent drag) {
validate(new VAcceptCallback() {
+ @Override
public void accepted(VDragEvent event) {
dragAccepted(drag);
}
@@ -94,6 +98,7 @@ public abstract class VAbstractDropHandler implements VDropHandler {
protected void validate(final VAcceptCallback cb, final VDragEvent event) {
Command checkCriteria = new Command() {
+ @Override
public void execute() {
acceptCriteria.accept(event, criterioUIDL, cb);
}
@@ -109,12 +114,14 @@ public abstract class VAbstractDropHandler implements VDropHandler {
* can't be verified on client or if {@link AcceptCriterion} are met on
* client.
*/
+ @Override
public boolean drop(VDragEvent drag) {
if (acceptCriteria.needsServerSideCheck(drag, criterioUIDL)) {
return true;
} else {
validated = false;
acceptCriteria.accept(drag, criterioUIDL, new VAcceptCallback() {
+ @Override
public void accepted(VDragEvent event) {
validated = true;
}
@@ -129,6 +136,7 @@ public abstract class VAbstractDropHandler implements VDropHandler {
* side counterpart of the Paintable is expected to implement
* {@link DropTarget} interface.
*/
+ @Override
public abstract ComponentConnector getConnector();
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VAcceptAll.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VAcceptAll.java
index a864a93c2a..7ce0d69727 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VAcceptAll.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VAcceptAll.java
@@ -7,6 +7,7 @@
package com.vaadin.terminal.gwt.client.ui.dd;
import com.vaadin.event.dd.acceptcriteria.AcceptAll;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.UIDL;
@AcceptCriterion(AcceptAll.class)
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VAcceptCriterion.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VAcceptCriterion.java
index 0d71e23903..b1a88166ec 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VAcceptCriterion.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VAcceptCriterion.java
@@ -19,6 +19,7 @@ public abstract class VAcceptCriterion {
final VAcceptCallback callback) {
if (needsServerSideCheck(drag, configuration)) {
VDragEventServerCallback acceptCallback = new VDragEventServerCallback() {
+ @Override
public void handleResponse(boolean accepted, UIDL response) {
if (accepted) {
callback.accepted(drag);
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VAnd.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VAnd.java
index 19399d7d4a..2f0cdc2a80 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VAnd.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VAnd.java
@@ -7,6 +7,7 @@
package com.vaadin.terminal.gwt.client.ui.dd;
import com.vaadin.event.dd.acceptcriteria.And;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.UIDL;
@AcceptCriterion(And.class)
@@ -33,6 +34,7 @@ final public class VAnd extends VAcceptCriterion implements VAcceptCallback {
return true;
}
+ @Override
public void accepted(VDragEvent event) {
b1 = true;
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VContainsDataFlavor.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VContainsDataFlavor.java
index 3cd341eefd..7c5d9f769a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VContainsDataFlavor.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VContainsDataFlavor.java
@@ -7,6 +7,7 @@
package com.vaadin.terminal.gwt.client.ui.dd;
import com.vaadin.event.dd.acceptcriteria.ContainsDataFlavor;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.UIDL;
@AcceptCriterion(ContainsDataFlavor.class)
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VDragAndDropManager.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VDragAndDropManager.java
index 2f404a3028..bc98860716 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VDragAndDropManager.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VDragAndDropManager.java
@@ -22,9 +22,10 @@ import com.google.gwt.user.client.Event.NativePreviewHandler;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.dd.DragEventType;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.Util;
@@ -48,6 +49,7 @@ public class VDragAndDropManager {
private final class DefaultDragAndDropEventHandler implements
NativePreviewHandler {
+ @Override
public void onPreviewNativeEvent(NativePreviewEvent event) {
NativeEvent nativeEvent = event.getNativeEvent();
@@ -223,10 +225,6 @@ public class VDragAndDropManager {
}
- public enum DragEventType {
- ENTER, LEAVE, OVER, DROP
- }
-
public static final String DD_SERVICE = "DD";
private static VDragAndDropManager instance;
@@ -307,6 +305,7 @@ public class VDragAndDropManager {
final Command startDrag = new Command() {
+ @Override
public void execute() {
isStarted = true;
addActiveDragSourceStyleName();
@@ -352,6 +351,7 @@ public class VDragAndDropManager {
deferredStartRegistration = Event
.addNativePreviewHandler(new NativePreviewHandler() {
+ @Override
public void onPreviewNativeEvent(
NativePreviewEvent event) {
int typeInt = event.getTypeInt();
@@ -509,6 +509,7 @@ public class VDragAndDropManager {
final ApplicationConnection client = currentDropHandler
.getApplicationConnection();
Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
+ @Override
public boolean execute() {
if (!client.hasActiveRequest()) {
removeActiveDragSourceStyleName(dragSource);
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VDragSourceIs.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VDragSourceIs.java
index b6af81085f..ffb923f3e0 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VDragSourceIs.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VDragSourceIs.java
@@ -4,6 +4,7 @@
package com.vaadin.terminal.gwt.client.ui.dd;
import com.vaadin.event.dd.acceptcriteria.SourceIs;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorMap;
import com.vaadin.terminal.gwt.client.UIDL;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VIsOverId.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VIsOverId.java
index 5dad4873ea..d0055d48dd 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VIsOverId.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VIsOverId.java
@@ -6,6 +6,7 @@
*/
package com.vaadin.terminal.gwt.client.ui.dd;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorMap;
import com.vaadin.terminal.gwt.client.UIDL;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VItemIdIs.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VItemIdIs.java
index ca4d0e900d..67f323a950 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VItemIdIs.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VItemIdIs.java
@@ -6,6 +6,7 @@
*/
package com.vaadin.terminal.gwt.client.ui.dd;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.ui.AbstractSelect;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VLazyInitItemIdentifiers.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VLazyInitItemIdentifiers.java
index e3bed02642..bfda603d58 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VLazyInitItemIdentifiers.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VLazyInitItemIdentifiers.java
@@ -8,6 +8,7 @@ package com.vaadin.terminal.gwt.client.ui.dd;
import java.util.HashSet;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.ui.Table;
import com.vaadin.ui.Tree;
@@ -48,6 +49,7 @@ public class VLazyInitItemIdentifiers extends VAcceptCriterion {
VDragEventServerCallback acceptCallback = new VDragEventServerCallback() {
+ @Override
public void handleResponse(boolean accepted, UIDL response) {
hashSet = new HashSet<String>();
String[] stringArrayAttribute = response
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VNot.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VNot.java
index e4d2dff606..8355afc625 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VNot.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VNot.java
@@ -7,6 +7,7 @@
package com.vaadin.terminal.gwt.client.ui.dd;
import com.vaadin.event.dd.acceptcriteria.Not;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.VConsole;
@@ -33,6 +34,7 @@ final public class VNot extends VAcceptCriterion {
b1 = false;
VAcceptCallback accept1cb = new VAcceptCallback() {
+ @Override
public void accepted(VDragEvent event) {
b1 = true;
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VOr.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VOr.java
index 91ba4bf0c4..46bf28b42a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VOr.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VOr.java
@@ -7,6 +7,7 @@
package com.vaadin.terminal.gwt.client.ui.dd;
import com.vaadin.event.dd.acceptcriteria.Or;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.UIDL;
/**
@@ -41,6 +42,7 @@ final public class VOr extends VAcceptCriterion implements VAcceptCallback {
return false; // not used here
}
+ @Override
public void accepted(VDragEvent event) {
accepted = true;
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VServerAccept.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VServerAccept.java
index 64c2da5320..42d4d90ae4 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VServerAccept.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VServerAccept.java
@@ -7,6 +7,7 @@
package com.vaadin.terminal.gwt.client.ui.dd;
import com.vaadin.event.dd.acceptcriteria.ServerSideCriterion;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.UIDL;
@AcceptCriterion(ServerSideCriterion.class)
@@ -16,6 +17,7 @@ final public class VServerAccept extends VAcceptCriterion {
final VAcceptCallback callback) {
VDragEventServerCallback acceptCallback = new VDragEventServerCallback() {
+ @Override
public void handleResponse(boolean accepted, UIDL response) {
if (accepted) {
callback.accepted(drag);
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VSourceIsTarget.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VSourceIsTarget.java
index 2365eabe22..dcb2f405fa 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VSourceIsTarget.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VSourceIsTarget.java
@@ -7,6 +7,7 @@
package com.vaadin.terminal.gwt.client.ui.dd;
import com.vaadin.event.dd.acceptcriteria.SourceIsTarget;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.UIDL;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VTargetDetailIs.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VTargetDetailIs.java
index 610d555745..e67d81387c 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VTargetDetailIs.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VTargetDetailIs.java
@@ -7,6 +7,7 @@
package com.vaadin.terminal.gwt.client.ui.dd;
import com.vaadin.event.dd.acceptcriteria.TargetDetailIs;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.UIDL;
@AcceptCriterion(TargetDetailIs.class)
diff --git a/src/com/vaadin/terminal/gwt/client/ui/dd/VTargetInSubtree.java b/src/com/vaadin/terminal/gwt/client/ui/dd/VTargetInSubtree.java
index 56478b2b95..14bca0ed91 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/dd/VTargetInSubtree.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/dd/VTargetInSubtree.java
@@ -7,6 +7,7 @@
package com.vaadin.terminal.gwt.client.ui.dd;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.ui.tree.VTree;
import com.vaadin.terminal.gwt.client.ui.tree.VTree.TreeNode;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/draganddropwrapper/DragAndDropWrapperConnector.java b/src/com/vaadin/terminal/gwt/client/ui/draganddropwrapper/DragAndDropWrapperConnector.java
index 2a78cc4433..6914b451fa 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/draganddropwrapper/DragAndDropWrapperConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/draganddropwrapper/DragAndDropWrapperConnector.java
@@ -6,10 +6,10 @@ package com.vaadin.terminal.gwt.client.ui.draganddropwrapper;
import java.util.HashMap;
import java.util.Set;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.customcomponent.CustomComponentConnector;
import com.vaadin.ui.DragAndDropWrapper;
@@ -17,6 +17,7 @@ import com.vaadin.ui.DragAndDropWrapper;
public class DragAndDropWrapperConnector extends CustomComponentConnector
implements Paintable {
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
getWidget().client = client;
if (isRealUpdate(uidl) && !uidl.hasAttribute("hidden")) {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/draganddropwrapper/VDragAndDropWrapper.java b/src/com/vaadin/terminal/gwt/client/ui/draganddropwrapper/VDragAndDropWrapper.java
index 4c36e92bbb..e77055764e 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/draganddropwrapper/VDragAndDropWrapper.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/draganddropwrapper/VDragAndDropWrapper.java
@@ -22,6 +22,8 @@ import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.xhr.client.ReadyStateChangeHandler;
import com.google.gwt.xhr.client.XMLHttpRequest;
+import com.vaadin.shared.ui.dd.HorizontalDropLocation;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorMap;
@@ -29,11 +31,9 @@ import com.vaadin.terminal.gwt.client.LayoutManager;
import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
import com.vaadin.terminal.gwt.client.Util;
import com.vaadin.terminal.gwt.client.VConsole;
-import com.vaadin.terminal.gwt.client.VTooltip;
import com.vaadin.terminal.gwt.client.ValueMap;
import com.vaadin.terminal.gwt.client.ui.customcomponent.VCustomComponent;
import com.vaadin.terminal.gwt.client.ui.dd.DDUtil;
-import com.vaadin.terminal.gwt.client.ui.dd.HorizontalDropLocation;
import com.vaadin.terminal.gwt.client.ui.dd.VAbstractDropHandler;
import com.vaadin.terminal.gwt.client.ui.dd.VAcceptCallback;
import com.vaadin.terminal.gwt.client.ui.dd.VDragAndDropManager;
@@ -43,7 +43,6 @@ import com.vaadin.terminal.gwt.client.ui.dd.VHasDropHandler;
import com.vaadin.terminal.gwt.client.ui.dd.VHtml5DragEvent;
import com.vaadin.terminal.gwt.client.ui.dd.VHtml5File;
import com.vaadin.terminal.gwt.client.ui.dd.VTransferable;
-import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
/**
*
@@ -64,12 +63,12 @@ public class VDragAndDropWrapper extends VCustomComponent implements
public VDragAndDropWrapper() {
super();
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
hookHtml5Events(getElement());
setStyleName(CLASSNAME);
addDomHandler(new MouseDownHandler() {
+ @Override
public void onMouseDown(MouseDownEvent event) {
if (startDrag(event.getNativeEvent())) {
event.preventDefault(); // prevent text selection
@@ -79,6 +78,7 @@ public class VDragAndDropWrapper extends VCustomComponent implements
addDomHandler(new TouchStartHandler() {
+ @Override
public void onTouchStart(TouchStartEvent event) {
if (startDrag(event.getNativeEvent())) {
/*
@@ -92,16 +92,6 @@ public class VDragAndDropWrapper extends VCustomComponent implements
sinkEvents(Event.TOUCHEVENTS);
}
- @Override
- public void onBrowserEvent(Event event) {
- super.onBrowserEvent(event);
-
- if (hasTooltip && client != null) {
- // Override child tooltips if the wrapper has a tooltip defined
- client.handleTooltipEvent(event, this);
- }
- }
-
/**
* Starts a drag and drop operation from mousedown or touchstart event if
* required conditions are met.
@@ -178,6 +168,7 @@ public class VDragAndDropWrapper extends VCustomComponent implements
private ReadyStateChangeHandler readyStateChangeHandler = new ReadyStateChangeHandler() {
+ @Override
public void onReadyStateChange(XMLHttpRequest xhr) {
if (xhr.getReadyState() == XMLHttpRequest.DONE) {
// visit server for possible
@@ -194,6 +185,7 @@ public class VDragAndDropWrapper extends VCustomComponent implements
void startNextUpload() {
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
if (!uploading) {
if (fileIds.size() > 0) {
@@ -425,6 +417,7 @@ public class VDragAndDropWrapper extends VCustomComponent implements
files.add(file);
}
+ @Override
public VDropHandler getDropHandler() {
return dropHandler;
}
@@ -463,6 +456,7 @@ public class VDragAndDropWrapper extends VCustomComponent implements
currentlyValid = false;
validate(new VAcceptCallback() {
+ @Override
public void accepted(VDragEvent event) {
dragAccepted(drag);
}
@@ -507,6 +501,7 @@ public class VDragAndDropWrapper extends VCustomComponent implements
VDragAndDropWrapper.this);
}
+ @Override
public ApplicationConnection getApplicationConnection() {
return client;
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/embedded/EmbeddedConnector.java b/src/com/vaadin/terminal/gwt/client/ui/embedded/EmbeddedConnector.java
index af3ad67db4..a1851d9c84 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/embedded/EmbeddedConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/embedded/EmbeddedConnector.java
@@ -15,8 +15,10 @@ 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.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.embedded.EmbeddedServerRpc;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.VConsole;
@@ -24,7 +26,6 @@ import com.vaadin.terminal.gwt.client.VTooltip;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
import com.vaadin.terminal.gwt.client.ui.ClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.ui.Embedded;
@Connect(Embedded.class)
@@ -41,6 +42,7 @@ public class EmbeddedConnector extends AbstractComponentConnector implements
rpc = RpcProxy.create(EmbeddedServerRpc.class, this);
}
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (!isRealUpdate(uidl)) {
return;
@@ -54,6 +56,16 @@ public class EmbeddedConnector extends AbstractComponentConnector implements
clickEventHandler.handleEventHandlerRegistration();
if (uidl.hasAttribute("type")) {
+ // remove old style name related to type
+ if (getWidget().type != null) {
+ getWidget().removeStyleName(
+ VEmbedded.CLASSNAME + "-" + getWidget().type);
+ }
+ // remove old style name related to mime type
+ if (getWidget().mimetype != null) {
+ getWidget().removeStyleName(
+ VEmbedded.CLASSNAME + "-" + getWidget().mimetype);
+ }
getWidget().type = uidl.getStringAttribute("type");
if (getWidget().type.equals("image")) {
getWidget().addStyleName(VEmbedded.CLASSNAME + "-image");
@@ -118,13 +130,25 @@ public class EmbeddedConnector extends AbstractComponentConnector implements
VConsole.log("Unknown Embedded type '" + getWidget().type + "'");
}
} else if (uidl.hasAttribute("mimetype")) {
+ // remove old style name related to type
+ if (getWidget().type != null) {
+ getWidget().removeStyleName(
+ VEmbedded.CLASSNAME + "-" + getWidget().type);
+ }
+ // remove old style name related to mime type
+ if (getWidget().mimetype != null) {
+ getWidget().removeStyleName(
+ VEmbedded.CLASSNAME + "-" + getWidget().mimetype);
+ }
final String mime = uidl.getStringAttribute("mimetype");
if (mime.equals("application/x-shockwave-flash")) {
+ getWidget().mimetype = "flash";
// Handle embedding of Flash
getWidget().addStyleName(VEmbedded.CLASSNAME + "-flash");
getWidget().setHTML(getWidget().createFlashEmbed(uidl));
} else if (mime.equals("image/svg+xml")) {
+ getWidget().mimetype = "svg";
getWidget().addStyleName(VEmbedded.CLASSNAME + "-svg");
String data;
Map<String, String> parameters = VEmbedded.getParameters(uidl);
diff --git a/src/com/vaadin/terminal/gwt/client/ui/embedded/EmbeddedServerRpc.java b/src/com/vaadin/terminal/gwt/client/ui/embedded/EmbeddedServerRpc.java
deleted file mode 100644
index 7f36c812bc..0000000000
--- a/src/com/vaadin/terminal/gwt/client/ui/embedded/EmbeddedServerRpc.java
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-package com.vaadin.terminal.gwt.client.ui.embedded;
-
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.ui.ClickRpc;
-
-public interface EmbeddedServerRpc extends ClickRpc, ServerRpc {
-} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/embedded/VEmbedded.java b/src/com/vaadin/terminal/gwt/client/ui/embedded/VEmbedded.java
index 203e7362f3..1d2a5a156a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/embedded/VEmbedded.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/embedded/VEmbedded.java
@@ -26,6 +26,7 @@ public class VEmbedded extends HTML {
protected Element browserElement;
protected String type;
+ protected String mimetype;
protected ApplicationConnection client;
@@ -232,8 +233,6 @@ public class VEmbedded extends HTML {
VConsole.log("Embeddable onload");
Util.notifyParentOfSizeChange(this, true);
}
-
- client.handleTooltipEvent(event, this);
}
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/form/FormConnector.java b/src/com/vaadin/terminal/gwt/client/ui/form/FormConnector.java
index 981c753dd1..e31de1f85d 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/form/FormConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/form/FormConnector.java
@@ -6,13 +6,14 @@ package com.vaadin.terminal.gwt.client.ui.form;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.KeyDownEvent;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.form.FormState;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.LayoutManager;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentContainerConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.Icon;
import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler;
import com.vaadin.terminal.gwt.client.ui.layout.ElementResizeEvent;
@@ -25,6 +26,7 @@ public class FormConnector extends AbstractComponentContainerConnector
implements Paintable, MayScrollChildren {
private final ElementResizeListener footerResizeListener = new ElementResizeListener() {
+ @Override
public void onElementResize(ElementResizeEvent e) {
VForm form = getWidget();
@@ -57,6 +59,7 @@ public class FormConnector extends AbstractComponentContainerConnector
return false;
}
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
getWidget().client = client;
getWidget().id = uidl.getId();
@@ -180,6 +183,7 @@ public class FormConnector extends AbstractComponentContainerConnector
}
}
+ @Override
public void updateCaption(ComponentConnector component) {
// NOP form don't render caption for neither field layout nor footer
// layout
diff --git a/src/com/vaadin/terminal/gwt/client/ui/form/VForm.java b/src/com/vaadin/terminal/gwt/client/ui/form/VForm.java
index 81f24a8e7e..823b0e83ae 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/form/VForm.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/form/VForm.java
@@ -62,6 +62,7 @@ public class VForm extends ComplexPanel implements KeyDownHandler {
fieldSet.appendChild(footerContainer);
}
+ @Override
public void onKeyDown(KeyDownEvent event) {
shortcutHandler.handleKeyboardEvent(Event.as(event.getNativeEvent()));
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/formlayout/FormLayoutConnector.java b/src/com/vaadin/terminal/gwt/client/ui/formlayout/FormLayoutConnector.java
index ca21947a6c..567513d7fe 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/formlayout/FormLayoutConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/formlayout/FormLayoutConnector.java
@@ -3,18 +3,21 @@
*/
package com.vaadin.terminal.gwt.client.ui.formlayout;
+import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.VMarginInfo;
+import com.vaadin.shared.ui.orderedlayout.AbstractOrderedLayoutState;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
+import com.vaadin.terminal.gwt.client.TooltipInfo;
+import com.vaadin.terminal.gwt.client.Util;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractFieldConnector;
import com.vaadin.terminal.gwt.client.ui.AbstractLayoutConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.VMarginInfo;
import com.vaadin.terminal.gwt.client.ui.formlayout.VFormLayout.Caption;
import com.vaadin.terminal.gwt.client.ui.formlayout.VFormLayout.ErrorFlag;
import com.vaadin.terminal.gwt.client.ui.formlayout.VFormLayout.VFormLayoutTable;
-import com.vaadin.terminal.gwt.client.ui.orderedlayout.AbstractOrderedLayoutState;
import com.vaadin.ui.FormLayout;
@Connect(FormLayout.class)
@@ -76,6 +79,7 @@ public class FormLayoutConnector extends AbstractLayoutConnector {
}
+ @Override
public void updateCaption(ComponentConnector component) {
getWidget().table.updateCaption(component.getWidget(),
component.getState(), component.isEnabled());
@@ -96,4 +100,36 @@ public class FormLayoutConnector extends AbstractLayoutConnector {
return (VFormLayout) super.getWidget();
}
+ @Override
+ public TooltipInfo getTooltipInfo(Element element) {
+ TooltipInfo info = null;
+
+ if (element != getWidget().getElement()) {
+ Object node = Util.findWidget(
+ (com.google.gwt.user.client.Element) element,
+ VFormLayout.Caption.class);
+
+ if (node != null) {
+ VFormLayout.Caption caption = (VFormLayout.Caption) node;
+ info = caption.getOwner().getTooltipInfo(element);
+ } else {
+
+ node = Util.findWidget(
+ (com.google.gwt.user.client.Element) element,
+ VFormLayout.ErrorFlag.class);
+
+ if (node != null) {
+ VFormLayout.ErrorFlag flag = (VFormLayout.ErrorFlag) node;
+ info = flag.getOwner().getTooltipInfo(element);
+ }
+ }
+ }
+
+ if (info == null) {
+ info = super.getTooltipInfo(element);
+ }
+
+ return info;
+ }
+
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/formlayout/VFormLayout.java b/src/com/vaadin/terminal/gwt/client/ui/formlayout/VFormLayout.java
index 8a859c409c..9ecab6352c 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/formlayout/VFormLayout.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/formlayout/VFormLayout.java
@@ -12,21 +12,20 @@ import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
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.FlexTable;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.ui.VMarginInfo;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.ComponentConnector;
-import com.vaadin.terminal.gwt.client.ComponentState;
import com.vaadin.terminal.gwt.client.Focusable;
import com.vaadin.terminal.gwt.client.StyleConstants;
import com.vaadin.terminal.gwt.client.VTooltip;
import com.vaadin.terminal.gwt.client.ui.AbstractFieldConnector;
import com.vaadin.terminal.gwt.client.ui.Icon;
-import com.vaadin.terminal.gwt.client.ui.VMarginInfo;
/**
* Two col Layout that places caption on left col and field on right col
@@ -88,6 +87,7 @@ public class VFormLayout extends SimplePanel {
* com.google.gwt.event.dom.client.ClickHandler#onClick(com.google.gwt
* .event.dom.client.ClickEvent)
*/
+ @Override
public void onClick(ClickEvent event) {
Caption caption = (Caption) event.getSource();
if (caption.getOwner() != null) {
@@ -215,8 +215,6 @@ public class VFormLayout extends SimplePanel {
public Caption(ComponentConnector component) {
super();
owner = component;
-
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
}
private void setStyles(String[] styles) {
@@ -324,12 +322,6 @@ public class VFormLayout extends SimplePanel {
public ComponentConnector getOwner() {
return owner;
}
-
- @Override
- public void onBrowserEvent(Event event) {
- super.onBrowserEvent(event);
- owner.getConnection().handleTooltipEvent(event, owner);
- }
}
class ErrorFlag extends HTML {
@@ -345,6 +337,10 @@ public class VFormLayout extends SimplePanel {
this.owner = owner;
}
+ public ComponentConnector getOwner() {
+ return owner;
+ }
+
public void updateError(String errorMessage, boolean hideErrors) {
boolean showError = null != errorMessage;
if (hideErrors) {
@@ -366,13 +362,5 @@ public class VFormLayout extends SimplePanel {
}
}
- @Override
- public void onBrowserEvent(Event event) {
- super.onBrowserEvent(event);
- if (owner != null) {
- owner.getConnection().handleTooltipEvent(event, owner);
- }
- }
-
}
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutConnector.java b/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutConnector.java
index 2cd82313c2..07e481d31d 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutConnector.java
@@ -7,6 +7,12 @@ import java.util.Iterator;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.AlignmentInfo;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.LayoutClickRpc;
+import com.vaadin.shared.ui.VMarginInfo;
+import com.vaadin.shared.ui.gridlayout.GridLayoutServerRpc;
+import com.vaadin.shared.ui.gridlayout.GridLayoutState;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
@@ -18,11 +24,7 @@ import com.vaadin.terminal.gwt.client.VCaption;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentContainerConnector;
-import com.vaadin.terminal.gwt.client.ui.AlignmentInfo;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.LayoutClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.LayoutClickRpc;
-import com.vaadin.terminal.gwt.client.ui.VMarginInfo;
import com.vaadin.terminal.gwt.client.ui.gridlayout.VGridLayout.Cell;
import com.vaadin.terminal.gwt.client.ui.layout.VLayoutSlot;
import com.vaadin.ui.GridLayout;
@@ -51,6 +53,7 @@ public class GridLayoutConnector extends AbstractComponentContainerConnector
@Override
public void init() {
+ super.init();
rpc = RpcProxy.create(GridLayoutServerRpc.class, this);
getLayoutManager().registerDependency(this,
getWidget().spacingMeasureElement);
@@ -82,6 +85,7 @@ public class GridLayoutConnector extends AbstractComponentContainerConnector
}
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
VGridLayout layout = getWidget();
layout.client = client;
@@ -185,6 +189,7 @@ public class GridLayoutConnector extends AbstractComponentContainerConnector
}
+ @Override
public void updateCaption(ComponentConnector childConnector) {
if (!childConnector.delegateCaptionHandling()) {
// Check not required by interface but by workarounds in this class
@@ -223,10 +228,12 @@ public class GridLayoutConnector extends AbstractComponentContainerConnector
return (VGridLayout) super.getWidget();
}
+ @Override
public void layoutVertically() {
getWidget().updateHeight();
}
+ @Override
public void layoutHorizontally() {
getWidget().updateWidth();
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutServerRpc.java b/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutServerRpc.java
deleted file mode 100644
index cd8df297ec..0000000000
--- a/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutServerRpc.java
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-package com.vaadin.terminal.gwt.client.ui.gridlayout;
-
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.ui.LayoutClickRpc;
-
-public interface GridLayoutServerRpc extends LayoutClickRpc, ServerRpc {
-
-} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/gridlayout/VGridLayout.java b/src/com/vaadin/terminal/gwt/client/ui/gridlayout/VGridLayout.java
index 7629e09cac..1ea84d46cd 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/gridlayout/VGridLayout.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/gridlayout/VGridLayout.java
@@ -16,6 +16,8 @@ import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.ComplexPanel;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.AlignmentInfo;
+import com.vaadin.shared.ui.VMarginInfo;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorMap;
@@ -23,8 +25,6 @@ import com.vaadin.terminal.gwt.client.LayoutManager;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.Util;
import com.vaadin.terminal.gwt.client.VCaption;
-import com.vaadin.terminal.gwt.client.ui.AlignmentInfo;
-import com.vaadin.terminal.gwt.client.ui.VMarginInfo;
import com.vaadin.terminal.gwt.client.ui.layout.ComponentConnectorLayoutSlot;
import com.vaadin.terminal.gwt.client.ui.layout.VLayoutSlot;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/label/ContentMode.java b/src/com/vaadin/terminal/gwt/client/ui/label/ContentMode.java
deleted file mode 100644
index 4892c7e6bd..0000000000
--- a/src/com/vaadin/terminal/gwt/client/ui/label/ContentMode.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-package com.vaadin.terminal.gwt.client.ui.label;
-
-/**
- * Content modes defining how the client should interpret a Label's value.
- *
- * @since 7.0.0
- */
-public enum ContentMode {
- /**
- * Content mode, where the label contains only plain text. The getValue()
- * result is coded to XML when painting.
- */
- TEXT,
-
- /**
- * Content mode, where the label contains preformatted text.
- */
- PREFORMATTED,
-
- /**
- * Content mode, where the label contains XHTML.
- */
- XHTML,
-
- /**
- * Content mode, where the label contains well-formed or well-balanced XML.
- * Each of the root elements must have their default namespace specified.
- *
- * @deprecated Use {@link #XHTML}
- */
- @Deprecated
- XML,
-
- /**
- * Content mode, where the label contains RAW output. Output is not required
- * to comply to with XML. In Web Adapter output is inserted inside the
- * resulting HTML document as-is. This is useful for some specific purposes
- * where possibly broken HTML content needs to be shown, but in most cases
- * XHTML mode should be preferred.
- *
- * @deprecated Use {@link #XHTML}, {@link #TEXT} or {@link #PREFORMATTED}.
- */
- @Deprecated
- RAW;
-}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/label/LabelConnector.java b/src/com/vaadin/terminal/gwt/client/ui/label/LabelConnector.java
index e64f9fffea..4c6c71e037 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/label/LabelConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/label/LabelConnector.java
@@ -5,11 +5,12 @@ package com.vaadin.terminal.gwt.client.ui.label;
import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.PreElement;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
+import com.vaadin.shared.ui.label.LabelState;
import com.vaadin.terminal.gwt.client.Util;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
import com.vaadin.ui.Label;
@Connect(value = Label.class, loadStyle = LoadStyle.EAGER)
diff --git a/src/com/vaadin/terminal/gwt/client/ui/label/VLabel.java b/src/com/vaadin/terminal/gwt/client/ui/label/VLabel.java
index f47b8437b7..f0c170c6b0 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/label/VLabel.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/label/VLabel.java
@@ -28,7 +28,6 @@ public class VLabel extends HTML {
public VLabel(String text) {
super(text);
setStyleName(CLASSNAME);
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
}
@Override
@@ -39,9 +38,6 @@ public class VLabel extends HTML {
event.stopPropagation();
return;
}
- if (connection != null) {
- connection.handleTooltipEvent(event, this);
- }
}
@Override
diff --git a/src/com/vaadin/terminal/gwt/client/ui/layout/LayoutDependencyTree.java b/src/com/vaadin/terminal/gwt/client/ui/layout/LayoutDependencyTree.java
index 18843057f3..cb0ed697c9 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/layout/LayoutDependencyTree.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/layout/LayoutDependencyTree.java
@@ -10,9 +10,9 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import com.vaadin.shared.ComponentState;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ComponentContainerConnector;
-import com.vaadin.terminal.gwt.client.ComponentState;
import com.vaadin.terminal.gwt.client.ServerConnector;
import com.vaadin.terminal.gwt.client.Util;
import com.vaadin.terminal.gwt.client.VConsole;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/layout/VLayoutSlot.java b/src/com/vaadin/terminal/gwt/client/ui/layout/VLayoutSlot.java
index 034fe35649..5b2b1fc49b 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/layout/VLayoutSlot.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/layout/VLayoutSlot.java
@@ -10,8 +10,8 @@ import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.AlignmentInfo;
import com.vaadin.terminal.gwt.client.VCaption;
-import com.vaadin.terminal.gwt.client.ui.AlignmentInfo;
public abstract class VLayoutSlot {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/link/LinkConnector.java b/src/com/vaadin/terminal/gwt/client/ui/link/LinkConnector.java
index c002d2dd50..5ef641470d 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/link/LinkConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/link/LinkConnector.java
@@ -5,11 +5,11 @@
package com.vaadin.terminal.gwt.client.ui.link;
import com.google.gwt.user.client.DOM;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.Icon;
import com.vaadin.ui.Link;
@@ -22,6 +22,7 @@ public class LinkConnector extends AbstractComponentConnector implements
return false;
}
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (!isRealUpdate(uidl)) {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/link/VLink.java b/src/com/vaadin/terminal/gwt/client/ui/link/VLink.java
index 68fe5d9292..4df3220ef1 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/link/VLink.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/link/VLink.java
@@ -13,7 +13,6 @@ import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HTML;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Util;
-import com.vaadin.terminal.gwt.client.VTooltip;
import com.vaadin.terminal.gwt.client.ui.Icon;
public class VLink extends HTML implements ClickHandler {
@@ -51,10 +50,10 @@ public class VLink extends HTML implements ClickHandler {
getElement().appendChild(anchor);
anchor.appendChild(captionElement);
addClickHandler(this);
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
setStyleName(CLASSNAME);
}
+ @Override
public void onClick(ClickEvent event) {
if (enabled) {
if (target == null) {
@@ -101,9 +100,6 @@ public class VLink extends HTML implements ClickHandler {
if (event.getTypeInt() == Event.ONLOAD) {
Util.notifyParentOfSizeChange(this, true);
}
- if (client != null) {
- client.handleTooltipEvent(event, this);
- }
if (target == captionElement || target == anchor
|| (icon != null && target == icon.getElement())) {
super.onBrowserEvent(event);
diff --git a/src/com/vaadin/terminal/gwt/client/ui/listselect/ListSelectConnector.java b/src/com/vaadin/terminal/gwt/client/ui/listselect/ListSelectConnector.java
index 8a4553d983..678847226b 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/listselect/ListSelectConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/listselect/ListSelectConnector.java
@@ -4,7 +4,7 @@
package com.vaadin.terminal.gwt.client.ui.listselect;
-import com.vaadin.terminal.gwt.client.ui.Connect;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.optiongroup.OptionGroupBaseConnector;
import com.vaadin.ui.ListSelect;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/listselect/TooltipListBox.java b/src/com/vaadin/terminal/gwt/client/ui/listselect/TooltipListBox.java
deleted file mode 100644
index abecd844da..0000000000
--- a/src/com/vaadin/terminal/gwt/client/ui/listselect/TooltipListBox.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-package com.vaadin.terminal.gwt.client.ui.listselect;
-
-import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.ui.ListBox;
-import com.google.gwt.user.client.ui.Widget;
-import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.terminal.gwt.client.VTooltip;
-
-/**
- * Extended ListBox to listen tooltip events and forward them to generic
- * handler.
- */
-public class TooltipListBox extends ListBox {
- private ApplicationConnection client;
- private Widget widget;
-
- public TooltipListBox(boolean isMultiselect) {
- super(isMultiselect);
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
- }
-
- public void setClient(ApplicationConnection client) {
- this.client = client;
- }
-
- public void setSelect(Widget widget) {
- this.widget = widget;
- }
-
- @Override
- public void onBrowserEvent(Event event) {
- super.onBrowserEvent(event);
- if (client != null) {
- client.handleTooltipEvent(event, widget);
- }
- }
-
-} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/listselect/VListSelect.java b/src/com/vaadin/terminal/gwt/client/ui/listselect/VListSelect.java
index e338897841..6f3f876fb7 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/listselect/VListSelect.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/listselect/VListSelect.java
@@ -8,6 +8,7 @@ import java.util.ArrayList;
import java.util.Iterator;
import com.google.gwt.event.dom.client.ChangeEvent;
+import com.google.gwt.user.client.ui.ListBox;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.ui.optiongroup.VOptionGroupBase;
@@ -17,23 +18,25 @@ public class VListSelect extends VOptionGroupBase {
private static final int VISIBLE_COUNT = 10;
- protected TooltipListBox select;
+ protected ListBox select;
private int lastSelectedIndex = -1;
public VListSelect() {
- super(new TooltipListBox(true), CLASSNAME);
- select = (TooltipListBox) optionsContainer;
- select.setSelect(this);
+ super(new ListBox(true), CLASSNAME);
+ select = getOptionsContainer();
select.addChangeHandler(this);
select.addClickHandler(this);
select.setStyleName(CLASSNAME + "-select");
select.setVisibleItemCount(VISIBLE_COUNT);
}
+ protected ListBox getOptionsContainer() {
+ return (ListBox) optionsContainer;
+ }
+
@Override
protected void buildOptions(UIDL uidl) {
- select.setClient(client);
select.setMultipleSelect(isMultiselect());
select.setEnabled(!isDisabled() && !isReadonly());
select.clear();
@@ -99,9 +102,10 @@ public class VListSelect extends VOptionGroupBase {
@Override
protected void setTabIndex(int tabIndex) {
- ((TooltipListBox) optionsContainer).setTabIndex(tabIndex);
+ getOptionsContainer().setTabIndex(tabIndex);
}
+ @Override
public void focus() {
select.setFocus(true);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/menubar/MenuBar.java b/src/com/vaadin/terminal/gwt/client/ui/menubar/MenuBar.java
index 7bee870387..5cb3fb83b4 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/menubar/MenuBar.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/menubar/MenuBar.java
@@ -246,6 +246,7 @@ public class MenuBar extends Widget implements PopupListener {
}
}
+ @Override
public void onPopupClosed(PopupPanel sender, boolean autoClosed) {
// If the menu popup was auto-closed, close all of its parents as well.
if (autoClosed) {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/menubar/MenuBarConnector.java b/src/com/vaadin/terminal/gwt/client/ui/menubar/MenuBarConnector.java
index d1f77aa0ff..2a8923bbc0 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/menubar/MenuBarConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/menubar/MenuBarConnector.java
@@ -7,14 +7,16 @@ import java.util.Iterator;
import java.util.Stack;
import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.Command;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
+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.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ui.Icon;
import com.vaadin.terminal.gwt.client.ui.SimpleManagedLayout;
import com.vaadin.terminal.gwt.client.ui.menubar.VMenuBar.CustomMenuItem;
@@ -29,6 +31,7 @@ public class MenuBarConnector extends AbstractComponentConnector implements
* This method is called when the page is loaded for the first time, and
* every time UI changes in the component are received from the server.
*/
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (!isRealUpdate(uidl)) {
return;
@@ -105,6 +108,7 @@ public class MenuBarConnector extends AbstractComponentConnector implements
// Construct a command that fires onMenuClick(int) with the
// item's id-number
cmd = new Command() {
+ @Override
public void execute() {
getWidget().hostReference.onMenuClick(itemId);
}
@@ -120,6 +124,7 @@ public class MenuBarConnector extends AbstractComponentConnector implements
iteratorStack.push(itr);
itr = item.getChildIterator();
currentMenu = new VMenuBar(true, currentMenu);
+ client.getVTooltip().connectHandlersToWidget(currentMenu);
// this is the top-level style that also propagates to items -
// any item specific styles are set above in
// currentItem.updateFromUIDL(item, client)
@@ -157,7 +162,30 @@ public class MenuBarConnector extends AbstractComponentConnector implements
return (VMenuBar) super.getWidget();
}
+ @Override
public void layout() {
getWidget().iLayout();
}
+
+ @Override
+ public TooltipInfo getTooltipInfo(Element element) {
+ TooltipInfo info = null;
+
+ // Check content of widget to find tooltip for element
+ if (element != getWidget().getElement()) {
+
+ CustomMenuItem item = getWidget().getMenuItemWithElement(
+ (com.google.gwt.user.client.Element) element);
+ if (item != null) {
+ info = item.getTooltip();
+ }
+ }
+
+ // Use default tooltip if nothing found from DOM three
+ if (info == null) {
+ info = super.getTooltipInfo(element);
+ }
+
+ return info;
+ }
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/menubar/MenuItem.java b/src/com/vaadin/terminal/gwt/client/ui/menubar/MenuItem.java
index af79ba7c5e..7f150d9a5f 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/menubar/MenuItem.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/menubar/MenuItem.java
@@ -121,6 +121,7 @@ public class MenuItem extends UIObject implements HasHTML {
return command;
}
+ @Override
public String getHTML() {
return DOM.getInnerHTML(getElement());
}
@@ -143,6 +144,7 @@ public class MenuItem extends UIObject implements HasHTML {
return subMenu;
}
+ @Override
public String getText() {
return DOM.getInnerText(getElement());
}
@@ -157,6 +159,7 @@ public class MenuItem extends UIObject implements HasHTML {
command = cmd;
}
+ @Override
public void setHTML(String html) {
DOM.setInnerHTML(getElement(), html);
}
@@ -171,6 +174,7 @@ public class MenuItem extends UIObject implements HasHTML {
this.subMenu = subMenu;
}
+ @Override
public void setText(String text) {
DOM.setInnerText(getElement(), text);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/menubar/VMenuBar.java b/src/com/vaadin/terminal/gwt/client/ui/menubar/VMenuBar.java
index e48483cb02..47bda81362 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/menubar/VMenuBar.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/menubar/VMenuBar.java
@@ -36,7 +36,6 @@ import com.vaadin.terminal.gwt.client.LayoutManager;
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.VTooltip;
import com.vaadin.terminal.gwt.client.ui.Icon;
import com.vaadin.terminal.gwt.client.ui.SimpleFocusablePanel;
import com.vaadin.terminal.gwt.client.ui.SubPartAware;
@@ -89,11 +88,10 @@ public class VMenuBar extends SimpleFocusablePanel implements
boolean enabled = true;
- private String width = "notinited";
-
private VLazyExecutor iconLoadedExecutioner = new VLazyExecutor(100,
new ScheduledCommand() {
+ @Override
public void execute() {
iLayout(true);
}
@@ -140,8 +138,6 @@ public class VMenuBar extends SimpleFocusablePanel implements
sinkEvents(Event.ONCLICK | Event.ONMOUSEOVER | Event.ONMOUSEOUT
| Event.ONLOAD);
-
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
}
@Override
@@ -340,15 +336,6 @@ public class VMenuBar extends SimpleFocusablePanel implements
}
}
- // Handle tooltips
- if (targetItem == null && client != null) {
- // Handle root menubar tooltips
- client.handleTooltipEvent(e, this);
- } else if (targetItem != null) {
- // Handle item tooltips
- targetItem.onBrowserEvent(e);
- }
-
if (targetItem != null) {
switch (DOM.eventGetType(e)) {
@@ -537,6 +524,22 @@ public class VMenuBar extends SimpleFocusablePanel implements
final int shadowSpace = 10;
popup = new VOverlay(true, false, true);
+
+ // Setting owner and handlers to support tooltips. Needed for tooltip
+ // handling of overlay widgets (will direct queries to parent menu)
+ if (parentMenu == null) {
+ popup.setOwner(this);
+ } else {
+ VMenuBar parent = parentMenu;
+ while (parent.getParentMenu() != null) {
+ parent = parent.getParentMenu();
+ }
+ popup.setOwner(parent);
+ }
+ if (client != null) {
+ client.getVTooltip().connectHandlersToWidget(popup);
+ }
+
popup.setStyleName(CLASSNAME + "-popup");
popup.setWidget(item.getSubMenu());
popup.addCloseHandler(this);
@@ -600,7 +603,7 @@ public class VMenuBar extends SimpleFocusablePanel implements
// popup
style.setWidth(contentWidth + Util.getNativeScrollbarSize(),
Unit.PX);
- popup.updateShadowSizeAndPosition();
+ popup.sizeOrPositionUpdated();
}
}
return top;
@@ -633,6 +636,7 @@ public class VMenuBar extends SimpleFocusablePanel implements
/**
* Listener method, fired when this menu is closed
*/
+ @Override
public void onClose(CloseEvent<PopupPanel> event) {
hideChildren();
if (event.isAutoClosed()) {
@@ -720,9 +724,7 @@ public class VMenuBar extends SimpleFocusablePanel implements
* A class to hold information on menu items
*
*/
- protected static class CustomMenuItem extends Widget implements HasHTML {
-
- private ApplicationConnection client;
+ public static class CustomMenuItem extends Widget implements HasHTML {
protected String html = null;
protected Command command = null;
@@ -732,6 +734,7 @@ public class VMenuBar extends SimpleFocusablePanel implements
protected boolean isSeparator = false;
protected boolean checkable = false;
protected boolean checked = false;
+ protected String description = null;
/**
* Default menu item {@link Widget} constructor for GWT.create().
@@ -761,7 +764,6 @@ public class VMenuBar extends SimpleFocusablePanel implements
setSelected(false);
setStyleName(CLASSNAME + "-menuitem");
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
}
public void setSelected(boolean selected) {
@@ -849,10 +851,12 @@ public class VMenuBar extends SimpleFocusablePanel implements
return command;
}
+ @Override
public String getHTML() {
return html;
}
+ @Override
public void setHTML(String html) {
this.html = html;
DOM.setInnerHTML(getElement(), html);
@@ -862,10 +866,12 @@ public class VMenuBar extends SimpleFocusablePanel implements
Util.sinkOnloadForImages(getElement());
}
+ @Override
public String getText() {
return html;
}
+ @Override
public void setText(String text) {
setHTML(Util.escapeHTML(text));
}
@@ -898,7 +904,6 @@ public class VMenuBar extends SimpleFocusablePanel implements
}
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
- this.client = client;
setSeparator(uidl.hasAttribute("separator"));
setEnabled(!uidl.hasAttribute(ATTRIBUTE_ITEM_DISABLED));
@@ -918,32 +923,17 @@ public class VMenuBar extends SimpleFocusablePanel implements
}
if (uidl.hasAttribute(ATTRIBUTE_ITEM_DESCRIPTION)) {
- String description = uidl
+ description = uidl
.getStringAttribute(ATTRIBUTE_ITEM_DESCRIPTION);
- TooltipInfo info = new TooltipInfo(description);
-
- VMenuBar root = findRootMenu();
- client.registerTooltip(root, this, info);
}
}
- @Override
- public void onBrowserEvent(Event event) {
- super.onBrowserEvent(event);
- if (client != null) {
- client.handleTooltipEvent(event, findRootMenu(), this);
+ public TooltipInfo getTooltip() {
+ if (description == null) {
+ return null;
}
- }
- private VMenuBar findRootMenu() {
- VMenuBar menubar = getParentMenu();
-
- // Traverse up until root menu is found
- while (menubar.getParentMenu() != null) {
- menubar = menubar.getParentMenu();
- }
-
- return menubar;
+ return new TooltipInfo(description);
}
/**
@@ -1064,6 +1054,7 @@ public class VMenuBar extends SimpleFocusablePanel implements
* com.google.gwt.event.dom.client.KeyPressHandler#onKeyPress(com.google
* .gwt.event.dom.client.KeyPressEvent)
*/
+ @Override
public void onKeyPress(KeyPressEvent event) {
if (handleNavigation(event.getNativeEvent().getKeyCode(),
event.isControlKeyDown() || event.isMetaKeyDown(),
@@ -1079,6 +1070,7 @@ public class VMenuBar extends SimpleFocusablePanel implements
* com.google.gwt.event.dom.client.KeyDownHandler#onKeyDown(com.google.gwt
* .event.dom.client.KeyDownEvent)
*/
+ @Override
public void onKeyDown(KeyDownEvent event) {
if (handleNavigation(event.getNativeEvent().getKeyCode(),
event.isControlKeyDown() || event.isMetaKeyDown(),
@@ -1399,12 +1391,14 @@ public class VMenuBar extends SimpleFocusablePanel implements
* com.google.gwt.event.dom.client.FocusHandler#onFocus(com.google.gwt.event
* .dom.client.FocusEvent)
*/
+ @Override
public void onFocus(FocusEvent event) {
}
private final String SUBPART_PREFIX = "item";
+ @Override
public Element getSubPartElement(String subPart) {
int index = Integer
.parseInt(subPart.substring(SUBPART_PREFIX.length()));
@@ -1413,6 +1407,7 @@ public class VMenuBar extends SimpleFocusablePanel implements
return item.getElement();
}
+ @Override
public String getSubPartName(Element subElement) {
if (!getElement().isOrHasChild(subElement)) {
return null;
@@ -1435,4 +1430,28 @@ public class VMenuBar extends SimpleFocusablePanel implements
return null;
}
+ /**
+ * Get menu item with given DOM element
+ *
+ * @param element
+ * Element used in search
+ * @return Menu item or null if not found
+ */
+ public CustomMenuItem getMenuItemWithElement(Element element) {
+ for (int i = 0; i < items.size(); i++) {
+ CustomMenuItem item = items.get(i);
+ if (DOM.isOrHasChild(item.getElement(), element)) {
+ return item;
+ }
+
+ if (item.getSubMenu() != null) {
+ item = item.getSubMenu().getMenuItemWithElement(element);
+ if (item != null) {
+ return item;
+ }
+ }
+ }
+
+ return null;
+ }
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/nativebutton/NativeButtonConnector.java b/src/com/vaadin/terminal/gwt/client/ui/nativebutton/NativeButtonConnector.java
index c010fba711..73de87c276 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/nativebutton/NativeButtonConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/nativebutton/NativeButtonConnector.java
@@ -9,15 +9,15 @@ 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.vaadin.shared.communication.FieldRpc.FocusAndBlurServerRpc;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.button.ButtonServerRpc;
+import com.vaadin.shared.ui.button.ButtonState;
import com.vaadin.terminal.gwt.client.EventHelper;
-import com.vaadin.terminal.gwt.client.communication.FieldRpc.FocusAndBlurServerRpc;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.Icon;
-import com.vaadin.terminal.gwt.client.ui.button.ButtonServerRpc;
-import com.vaadin.terminal.gwt.client.ui.button.ButtonState;
import com.vaadin.ui.NativeButton;
@Connect(NativeButton.class)
@@ -107,12 +107,14 @@ public class NativeButtonConnector extends AbstractComponentConnector implements
return (ButtonState) super.getState();
}
+ @Override
public void onFocus(FocusEvent event) {
// EventHelper.updateFocusHandler ensures that this is called only when
// there is a listener on server side
focusBlurRpc.focus();
}
+ @Override
public void onBlur(BlurEvent event) {
// EventHelper.updateFocusHandler ensures that this is called only when
// there is a listener on server side
diff --git a/src/com/vaadin/terminal/gwt/client/ui/nativebutton/VNativeButton.java b/src/com/vaadin/terminal/gwt/client/ui/nativebutton/VNativeButton.java
index dd6e741126..d58fd2a995 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/nativebutton/VNativeButton.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/nativebutton/VNativeButton.java
@@ -10,14 +10,13 @@ import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.Button;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.button.ButtonServerRpc;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
import com.vaadin.terminal.gwt.client.Util;
-import com.vaadin.terminal.gwt.client.VTooltip;
import com.vaadin.terminal.gwt.client.ui.Icon;
-import com.vaadin.terminal.gwt.client.ui.button.ButtonServerRpc;
public class VNativeButton extends Button implements ClickHandler {
@@ -54,7 +53,6 @@ public class VNativeButton extends Button implements ClickHandler {
addClickHandler(this);
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
sinkEvents(Event.ONMOUSEDOWN);
sinkEvents(Event.ONMOUSEUP);
}
@@ -87,10 +85,6 @@ public class VNativeButton extends Button implements ClickHandler {
}
clickPending = false;
}
-
- if (client != null) {
- client.handleTooltipEvent(event, this);
- }
}
@Override
@@ -106,6 +100,7 @@ public class VNativeButton extends Button implements ClickHandler {
* com.google.gwt.event.dom.client.ClickHandler#onClick(com.google.gwt.event
* .dom.client.ClickEvent)
*/
+ @Override
public void onClick(ClickEvent event) {
if (paintableId == null || client == null) {
return;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/nativeselect/NativeSelectConnector.java b/src/com/vaadin/terminal/gwt/client/ui/nativeselect/NativeSelectConnector.java
index 8f57e0c37f..8a00afa056 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/nativeselect/NativeSelectConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/nativeselect/NativeSelectConnector.java
@@ -4,7 +4,7 @@
package com.vaadin.terminal.gwt.client.ui.nativeselect;
-import com.vaadin.terminal.gwt.client.ui.Connect;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.optiongroup.OptionGroupBaseConnector;
import com.vaadin.ui.NativeSelect;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/nativeselect/VNativeSelect.java b/src/com/vaadin/terminal/gwt/client/ui/nativeselect/VNativeSelect.java
index 54f5e9aff5..ea5292724d 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/nativeselect/VNativeSelect.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/nativeselect/VNativeSelect.java
@@ -8,32 +8,34 @@ import java.util.ArrayList;
import java.util.Iterator;
import com.google.gwt.event.dom.client.ChangeEvent;
+import com.google.gwt.user.client.ui.ListBox;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.ui.Field;
-import com.vaadin.terminal.gwt.client.ui.listselect.TooltipListBox;
import com.vaadin.terminal.gwt.client.ui.optiongroup.VOptionGroupBase;
public class VNativeSelect extends VOptionGroupBase implements Field {
public static final String CLASSNAME = "v-select";
- protected TooltipListBox select;
+ protected ListBox select;
private boolean firstValueIsTemporaryNullItem = false;
public VNativeSelect() {
- super(new TooltipListBox(false), CLASSNAME);
- select = (TooltipListBox) optionsContainer;
- select.setSelect(this);
+ super(new ListBox(false), CLASSNAME);
+ select = getOptionsContainer();
select.setVisibleItemCount(1);
select.addChangeHandler(this);
select.setStyleName(CLASSNAME + "-select");
}
+ protected ListBox getOptionsContainer() {
+ return (ListBox) optionsContainer;
+ }
+
@Override
protected void buildOptions(UIDL uidl) {
- select.setClient(client);
select.setEnabled(!isDisabled() && !isReadonly());
select.clear();
firstValueIsTemporaryNullItem = false;
@@ -103,9 +105,10 @@ public class VNativeSelect extends VOptionGroupBase implements Field {
@Override
protected void setTabIndex(int tabIndex) {
- ((TooltipListBox) optionsContainer).setTabIndex(tabIndex);
+ getOptionsContainer().setTabIndex(tabIndex);
}
+ @Override
public void focus() {
select.setFocus(true);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/notification/VNotification.java b/src/com/vaadin/terminal/gwt/client/ui/notification/VNotification.java
index fb853b8a55..1309155443 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/notification/VNotification.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/notification/VNotification.java
@@ -163,6 +163,7 @@ public class VNotification extends VOverlay {
super.show();
notifications.add(this);
setPosition(position);
+ sizeOrPositionUpdated();
/**
* Android 4 fails to render notifications correctly without a little
* nudge (#8551)
diff --git a/src/com/vaadin/terminal/gwt/client/ui/optiongroup/OptionGroupBaseConnector.java b/src/com/vaadin/terminal/gwt/client/ui/optiongroup/OptionGroupBaseConnector.java
index 3658126a97..a4dd72906d 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/optiongroup/OptionGroupBaseConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/optiongroup/OptionGroupBaseConnector.java
@@ -14,6 +14,7 @@ import com.vaadin.terminal.gwt.client.ui.textfield.VTextField;
public abstract class OptionGroupBaseConnector extends AbstractFieldConnector
implements Paintable {
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
// Save details
diff --git a/src/com/vaadin/terminal/gwt/client/ui/optiongroup/OptionGroupConnector.java b/src/com/vaadin/terminal/gwt/client/ui/optiongroup/OptionGroupConnector.java
index e6064bd03f..caf85348d4 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/optiongroup/OptionGroupConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/optiongroup/OptionGroupConnector.java
@@ -9,10 +9,10 @@ import java.util.ArrayList;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.EventId;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.terminal.gwt.client.EventId;
import com.vaadin.terminal.gwt.client.UIDL;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.ui.OptionGroup;
@Connect(OptionGroup.class)
diff --git a/src/com/vaadin/terminal/gwt/client/ui/optiongroup/VOptionGroup.java b/src/com/vaadin/terminal/gwt/client/ui/optiongroup/VOptionGroup.java
index d6e6949242..a6cdf7e888 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/optiongroup/VOptionGroup.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/optiongroup/VOptionGroup.java
@@ -25,8 +25,8 @@ import com.google.gwt.user.client.ui.Focusable;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.RadioButton;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.EventId;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.terminal.gwt.client.EventId;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.Util;
import com.vaadin.terminal.gwt.client.ui.Icon;
@@ -51,6 +51,7 @@ public class VOptionGroup extends VOptionGroupBase implements FocusHandler,
protected List<HandlerRegistration> blurHandlers = null;
private final LoadHandler iconLoadHandler = new LoadHandler() {
+ @Override
public void onLoad(LoadEvent event) {
Util.notifyParentOfSizeChange(VOptionGroup.this, true);
}
@@ -154,6 +155,7 @@ public class VOptionGroup extends VOptionGroupBase implements FocusHandler,
}
}
+ @Override
public void focus() {
Iterator<Widget> iterator = panel.iterator();
if (iterator.hasNext()) {
@@ -161,6 +163,7 @@ public class VOptionGroup extends VOptionGroupBase implements FocusHandler,
}
}
+ @Override
public void onFocus(FocusEvent arg0) {
if (!blurOccured) {
// no blur occured before this focus event
@@ -178,10 +181,12 @@ public class VOptionGroup extends VOptionGroupBase implements FocusHandler,
}
}
+ @Override
public void onBlur(BlurEvent arg0) {
blurOccured = true;
if (sendBlurEvents) {
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
// check whether blurOccured still is true and then send the
// event out to the server
diff --git a/src/com/vaadin/terminal/gwt/client/ui/optiongroup/VOptionGroupBase.java b/src/com/vaadin/terminal/gwt/client/ui/optiongroup/VOptionGroupBase.java
index a512f024b8..d128d7deb1 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/optiongroup/VOptionGroupBase.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/optiongroup/VOptionGroupBase.java
@@ -126,6 +126,7 @@ public abstract class VOptionGroupBase extends Composite implements Field,
abstract protected void setTabIndex(int tabIndex);
+ @Override
public void onClick(ClickEvent event) {
if (event.getSource() == newItemButton
&& !newItemField.getText().equals("")) {
@@ -135,6 +136,7 @@ public abstract class VOptionGroupBase extends Composite implements Field,
}
}
+ @Override
public void onChange(ChangeEvent event) {
if (multiselect) {
client.updateVariable(paintableId, "selected", getSelectedItems(),
@@ -145,6 +147,7 @@ public abstract class VOptionGroupBase extends Composite implements Field,
}
}
+ @Override
public void onKeyPress(KeyPressEvent event) {
if (event.getSource() == newItemField
&& event.getCharCode() == KeyCodes.KEY_ENTER) {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java b/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java
index 9a89553fd2..e1bf217691 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java
@@ -9,6 +9,11 @@ import com.google.gwt.dom.client.Style;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.AlignmentInfo;
+import com.vaadin.shared.ui.LayoutClickRpc;
+import com.vaadin.shared.ui.VMarginInfo;
+import com.vaadin.shared.ui.orderedlayout.AbstractOrderedLayoutServerRpc;
+import com.vaadin.shared.ui.orderedlayout.AbstractOrderedLayoutState;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
import com.vaadin.terminal.gwt.client.DirectionalManagedLayout;
@@ -18,10 +23,7 @@ import com.vaadin.terminal.gwt.client.VCaption;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractLayoutConnector;
-import com.vaadin.terminal.gwt.client.ui.AlignmentInfo;
import com.vaadin.terminal.gwt.client.ui.LayoutClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.LayoutClickRpc;
-import com.vaadin.terminal.gwt.client.ui.VMarginInfo;
import com.vaadin.terminal.gwt.client.ui.layout.ComponentConnectorLayoutSlot;
import com.vaadin.terminal.gwt.client.ui.layout.VLayoutSlot;
@@ -48,6 +50,7 @@ public abstract class AbstractOrderedLayoutConnector extends
@Override
public void init() {
+ super.init();
rpc = RpcProxy.create(AbstractOrderedLayoutServerRpc.class, this);
getLayoutManager().registerDependency(this,
getWidget().spacingMeasureElement);
@@ -72,6 +75,7 @@ public abstract class AbstractOrderedLayoutConnector extends
return (AbstractOrderedLayoutState) super.getState();
}
+ @Override
public void updateCaption(ComponentConnector component) {
VMeasuringOrderedLayout layout = getWidget();
if (VCaption.isNeeded(component.getState())) {
@@ -262,6 +266,7 @@ public abstract class AbstractOrderedLayoutConnector extends
}
}
+ @Override
public void layoutHorizontally() {
if (getWidget().isVertical) {
layoutSecondaryDirection();
@@ -270,6 +275,7 @@ public abstract class AbstractOrderedLayoutConnector extends
}
}
+ @Override
public void layoutVertically() {
if (getWidget().isVertical) {
layoutPrimaryDirection();
diff --git a/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutServerRpc.java b/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutServerRpc.java
deleted file mode 100644
index 5a29eacada..0000000000
--- a/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutServerRpc.java
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-package com.vaadin.terminal.gwt.client.ui.orderedlayout;
-
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.ui.LayoutClickRpc;
-
-public interface AbstractOrderedLayoutServerRpc extends LayoutClickRpc,
- ServerRpc {
-
-} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/HorizontalLayoutConnector.java b/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/HorizontalLayoutConnector.java
index 3b0014c0f0..459bd474d1 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/HorizontalLayoutConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/HorizontalLayoutConnector.java
@@ -3,8 +3,8 @@
*/
package com.vaadin.terminal.gwt.client.ui.orderedlayout;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
import com.vaadin.ui.HorizontalLayout;
@Connect(value = HorizontalLayout.class, loadStyle = LoadStyle.EAGER)
diff --git a/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VMeasuringOrderedLayout.java b/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VMeasuringOrderedLayout.java
index de55ca98e6..4bb1c66e86 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VMeasuringOrderedLayout.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VMeasuringOrderedLayout.java
@@ -15,8 +15,8 @@ import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.ComplexPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.ui.WidgetCollection;
+import com.vaadin.shared.ui.VMarginInfo;
import com.vaadin.terminal.gwt.client.VCaption;
-import com.vaadin.terminal.gwt.client.ui.VMarginInfo;
import com.vaadin.terminal.gwt.client.ui.layout.VLayoutSlot;
public class VMeasuringOrderedLayout extends ComplexPanel {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VerticalLayoutConnector.java b/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VerticalLayoutConnector.java
index 42a762864e..a481283156 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VerticalLayoutConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VerticalLayoutConnector.java
@@ -3,8 +3,8 @@
*/
package com.vaadin.terminal.gwt.client.ui.orderedlayout;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
import com.vaadin.ui.VerticalLayout;
@Connect(value = VerticalLayout.class, loadStyle = LoadStyle.EAGER)
diff --git a/src/com/vaadin/terminal/gwt/client/ui/panel/PanelConnector.java b/src/com/vaadin/terminal/gwt/client/ui/panel/PanelConnector.java
index d9096526f3..fd4761de5e 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/panel/PanelConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/panel/PanelConnector.java
@@ -7,17 +7,19 @@ import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.dom.client.Style;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.panel.PanelServerRpc;
+import com.vaadin.shared.ui.panel.PanelState;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
import com.vaadin.terminal.gwt.client.LayoutManager;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentContainerConnector;
import com.vaadin.terminal.gwt.client.ui.ClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.PostLayoutListener;
import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler;
import com.vaadin.terminal.gwt.client.ui.SimpleManagedLayout;
@@ -46,6 +48,7 @@ public class PanelConnector extends AbstractComponentContainerConnector
@Override
public void init() {
+ super.init();
rpc = RpcProxy.create(PanelServerRpc.class, this);
VPanel panel = getWidget();
LayoutManager layoutManager = getLayoutManager();
@@ -70,6 +73,7 @@ public class PanelConnector extends AbstractComponentContainerConnector
return false;
}
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (isRealUpdate(uidl)) {
@@ -164,6 +168,7 @@ public class PanelConnector extends AbstractComponentContainerConnector
getWidget().contentNode.setTabIndex(getState().getTabIndex());
}
+ @Override
public void updateCaption(ComponentConnector component) {
// NOP: layouts caption, errors etc not rendered in Panel
}
@@ -173,6 +178,7 @@ public class PanelConnector extends AbstractComponentContainerConnector
return (VPanel) super.getWidget();
}
+ @Override
public void layout() {
updateSizes();
}
@@ -199,6 +205,7 @@ public class PanelConnector extends AbstractComponentContainerConnector
panel.scrollLeft = panel.contentNode.getScrollLeft();
}
+ @Override
public void postLayout() {
VPanel panel = getWidget();
if (uidlScrollTop != null) {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/panel/PanelServerRpc.java b/src/com/vaadin/terminal/gwt/client/ui/panel/PanelServerRpc.java
deleted file mode 100644
index 9b59344aec..0000000000
--- a/src/com/vaadin/terminal/gwt/client/ui/panel/PanelServerRpc.java
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-package com.vaadin.terminal.gwt.client.ui.panel;
-
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.ui.ClickRpc;
-
-public interface PanelServerRpc extends ClickRpc, ServerRpc {
-
-} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/panel/VPanel.java b/src/com/vaadin/terminal/gwt/client/ui/panel/VPanel.java
index 6a06367acd..8764d61c3a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/panel/VPanel.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/panel/VPanel.java
@@ -100,6 +100,7 @@ public class VPanel extends SimplePanel implements ShortcutActionHandlerOwner,
* @see com.vaadin.terminal.gwt.client.Focusable#focus()
*/
+ @Override
public void focus() {
setFocus(true);
@@ -167,13 +168,10 @@ public class VPanel extends SimplePanel implements ShortcutActionHandlerOwner,
client.updateVariable(id, "scrollTop", scrollTop, false);
client.updateVariable(id, "scrollLeft", scrollLeft, false);
}
- } else if (captionNode.isOrHasChild(target)) {
- if (client != null) {
- client.handleTooltipEvent(event, this);
- }
}
}
+ @Override
public ShortcutActionHandler getShortcutActionHandler() {
return shortcutHandler;
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/passwordfield/PasswordFieldConnector.java b/src/com/vaadin/terminal/gwt/client/ui/passwordfield/PasswordFieldConnector.java
index c4c5954c33..55d645f12e 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/passwordfield/PasswordFieldConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/passwordfield/PasswordFieldConnector.java
@@ -4,7 +4,7 @@
package com.vaadin.terminal.gwt.client.ui.passwordfield;
-import com.vaadin.terminal.gwt.client.ui.Connect;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.textfield.TextFieldConnector;
import com.vaadin.ui.PasswordField;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/popupview/PopupViewConnector.java b/src/com/vaadin/terminal/gwt/client/ui/popupview/PopupViewConnector.java
index c5117fdddb..19b35821c7 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/popupview/PopupViewConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/popupview/PopupViewConnector.java
@@ -3,6 +3,7 @@
*/
package com.vaadin.terminal.gwt.client.ui.popupview;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.Paintable;
@@ -10,7 +11,6 @@ import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.VCaption;
import com.vaadin.terminal.gwt.client.VCaptionWrapper;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentContainerConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.PostLayoutListener;
import com.vaadin.ui.PopupView;
@@ -31,6 +31,7 @@ public class PopupViewConnector extends AbstractComponentContainerConnector
* @see com.vaadin.terminal.gwt.client.ComponentConnector#updateFromUIDL(com.vaadin.terminal.gwt.client.UIDL,
* com.vaadin.terminal.gwt.client.ApplicationConnection)
*/
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (!isRealUpdate(uidl)) {
return;
@@ -81,6 +82,7 @@ public class PopupViewConnector extends AbstractComponentContainerConnector
}
}// updateFromUIDL
+ @Override
public void updateCaption(ComponentConnector component) {
if (VCaption.isNeeded(component.getState())) {
if (getWidget().popup.captionWrapper != null) {
@@ -104,6 +106,7 @@ public class PopupViewConnector extends AbstractComponentContainerConnector
return (VPopupView) super.getWidget();
}
+ @Override
public void postLayout() {
if (centerAfterLayout) {
centerAfterLayout = false;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/popupview/VPopupView.java b/src/com/vaadin/terminal/gwt/client/ui/popupview/VPopupView.java
index da48975726..6efcd8f417 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/popupview/VPopupView.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/popupview/VPopupView.java
@@ -10,6 +10,8 @@ import java.util.Set;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.event.dom.client.KeyDownEvent;
+import com.google.gwt.event.dom.client.KeyDownHandler;
import com.google.gwt.event.logical.shared.CloseEvent;
import com.google.gwt.event.logical.shared.CloseHandler;
import com.google.gwt.user.client.DOM;
@@ -26,7 +28,9 @@ import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.VCaptionWrapper;
-import com.vaadin.terminal.gwt.client.VTooltip;
+import com.vaadin.terminal.gwt.client.VConsole;
+import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler;
+import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler.ShortcutActionHandlerOwner;
import com.vaadin.terminal.gwt.client.ui.VOverlay;
import com.vaadin.terminal.gwt.client.ui.richtextarea.VRichTextArea;
@@ -60,6 +64,7 @@ public class VPopupView extends HTML {
// When we click to open the popup...
addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
updateState(true);
}
@@ -67,13 +72,13 @@ public class VPopupView extends HTML {
// ..and when we close it
popup.addCloseHandler(new CloseHandler<PopupPanel>() {
+ @Override
public void onClose(CloseEvent<PopupPanel> event) {
updateState(false);
}
});
popup.setAnimationEnabled(true);
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
}
/**
@@ -183,8 +188,23 @@ public class VPopupView extends HTML {
private final Set<Element> activeChildren = new HashSet<Element>();
private boolean hiding = false;
+ private ShortcutActionHandler shortcutActionHandler;
+
public CustomPopup() {
super(true, false, true); // autoHide, not modal, dropshadow
+
+ // Delegate popup keyboard events to the relevant handler. The
+ // events do not propagate automatically because the popup is
+ // directly attached to the RootPanel.
+ addDomHandler(new KeyDownHandler() {
+ @Override
+ public void onKeyDown(KeyDownEvent event) {
+ if (shortcutActionHandler != null) {
+ shortcutActionHandler.handleKeyboardEvent(Event
+ .as(event.getNativeEvent()));
+ }
+ }
+ }, KeyDownEvent.getType());
}
// For some reason ONMOUSEOUT events are not always received, so we have
@@ -227,18 +247,33 @@ public class VPopupView extends HTML {
@Override
public void hide(boolean autoClosed) {
+ VConsole.log("Hiding popupview");
hiding = true;
syncChildren();
if (popupComponentWidget != null && popupComponentWidget != loading) {
remove(popupComponentWidget);
}
hasHadMouseOver = false;
+ shortcutActionHandler = null;
super.hide(autoClosed);
}
@Override
public void show() {
hiding = false;
+
+ // Find the shortcut action handler that should handle keyboard
+ // events from the popup. The events do not propagate automatically
+ // because the popup is directly attached to the RootPanel.
+ Widget widget = VPopupView.this;
+ while (shortcutActionHandler == null && widget != null) {
+ if (widget instanceof ShortcutActionHandlerOwner) {
+ shortcutActionHandler = ((ShortcutActionHandlerOwner) widget)
+ .getShortcutActionHandler();
+ }
+ widget = widget.getParent();
+ }
+
super.show();
}
@@ -337,12 +372,4 @@ public class VPopupView extends HTML {
}// class CustomPopup
- @Override
- public void onBrowserEvent(Event event) {
- super.onBrowserEvent(event);
- if (client != null) {
- client.handleTooltipEvent(event, this);
- }
- }
-
}// class VPopupView
diff --git a/src/com/vaadin/terminal/gwt/client/ui/progressindicator/ProgressIndicatorConnector.java b/src/com/vaadin/terminal/gwt/client/ui/progressindicator/ProgressIndicatorConnector.java
index 9d0532fae3..cdb0174a49 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/progressindicator/ProgressIndicatorConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/progressindicator/ProgressIndicatorConnector.java
@@ -5,17 +5,18 @@
package com.vaadin.terminal.gwt.client.ui.progressindicator;
import com.google.gwt.user.client.DOM;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.ui.AbstractFieldConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.ui.ProgressIndicator;
@Connect(ProgressIndicator.class)
public class ProgressIndicatorConnector extends AbstractFieldConnector
implements Paintable {
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (!isRealUpdate(uidl)) {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/richtextarea/RichTextAreaConnector.java b/src/com/vaadin/terminal/gwt/client/ui/richtextarea/RichTextAreaConnector.java
index db52640088..66781eb645 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/richtextarea/RichTextAreaConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/richtextarea/RichTextAreaConnector.java
@@ -4,12 +4,12 @@
package com.vaadin.terminal.gwt.client.ui.richtextarea;
import com.google.gwt.user.client.Event;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.ui.AbstractFieldConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler.BeforeShortcutActionListener;
import com.vaadin.ui.RichTextArea;
@@ -17,6 +17,7 @@ import com.vaadin.ui.RichTextArea;
public class RichTextAreaConnector extends AbstractFieldConnector implements
Paintable, BeforeShortcutActionListener {
+ @Override
public void updateFromUIDL(final UIDL uidl, ApplicationConnection client) {
getWidget().client = client;
getWidget().id = uidl.getId();
@@ -59,6 +60,7 @@ public class RichTextAreaConnector extends AbstractFieldConnector implements
}
+ @Override
public void onBeforeShortcutAction(Event e) {
getWidget().synchronizeContentToServer();
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/richtextarea/VRichTextArea.java b/src/com/vaadin/terminal/gwt/client/ui/richtextarea/VRichTextArea.java
index eb062a3799..f9b399caac 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/richtextarea/VRichTextArea.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/richtextarea/VRichTextArea.java
@@ -31,6 +31,7 @@ import com.vaadin.terminal.gwt.client.Util;
import com.vaadin.terminal.gwt.client.ui.Field;
import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler;
import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler.ShortcutActionHandlerOwner;
+import com.vaadin.terminal.gwt.client.ui.TouchScrollDelegate;
/**
* This class implements a basic client side rich text editor component.
@@ -85,6 +86,7 @@ public class VRichTextArea extends Composite implements Field, ChangeHandler,
initWidget(fp);
setStyleName(CLASSNAME);
+ TouchScrollDelegate.enableTouchScrolling(html, html.getElement());
}
private void createRTAComponents() {
@@ -160,6 +162,7 @@ public class VRichTextArea extends Composite implements Field, ChangeHandler,
}
// TODO is this really used, or does everything go via onBlur() only?
+ @Override
public void onChange(ChangeEvent event) {
synchronizeContentToServer();
}
@@ -177,6 +180,7 @@ public class VRichTextArea extends Composite implements Field, ChangeHandler,
}
}
+ @Override
public void onBlur(BlurEvent event) {
synchronizeContentToServer();
// TODO notify possible server side blur/focus listeners
@@ -242,6 +246,7 @@ public class VRichTextArea extends Composite implements Field, ChangeHandler,
* delay the height setting so the DOM has had time to stabilize.
*/
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
int editorHeight = getOffsetHeight()
- getExtraVerticalPixels()
@@ -281,9 +286,11 @@ public class VRichTextArea extends Composite implements Field, ChangeHandler,
}
}
+ @Override
public void onKeyPress(KeyPressEvent event) {
if (maxLength >= 0) {
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
if (rta.getHTML().length() > maxLength) {
rta.setHTML(rta.getHTML().substring(0, maxLength));
@@ -293,6 +300,7 @@ public class VRichTextArea extends Composite implements Field, ChangeHandler,
}
}
+ @Override
public void onKeyDown(KeyDownEvent event) {
// delegate to closest shortcut action handler
// throw event from the iframe forward to the shortcuthandler
@@ -320,14 +328,17 @@ public class VRichTextArea extends Composite implements Field, ChangeHandler,
return hasShortcutActionHandler;
}
+ @Override
public int getTabIndex() {
return rta.getTabIndex();
}
+ @Override
public void setAccessKey(char key) {
rta.setAccessKey(key);
}
+ @Override
public void setFocus(boolean focused) {
/*
* Similar issue as with selectAll. Focusing must happen before possible
@@ -342,6 +353,7 @@ public class VRichTextArea extends Composite implements Field, ChangeHandler,
}.schedule(300);
}
+ @Override
public void setTabIndex(int index) {
rta.setTabIndex(index);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/richtextarea/VRichTextToolbar.java b/src/com/vaadin/terminal/gwt/client/ui/richtextarea/VRichTextToolbar.java
index 1e1805efdf..d86c7a4bf5 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/richtextarea/VRichTextToolbar.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/richtextarea/VRichTextToolbar.java
@@ -172,6 +172,7 @@ public class VRichTextToolbar extends Composite {
private class EventHandler implements ClickHandler, ChangeHandler,
KeyUpHandler {
+ @Override
@SuppressWarnings("deprecation")
public void onChange(ChangeEvent event) {
Object sender = event.getSource();
@@ -193,6 +194,7 @@ public class VRichTextToolbar extends Composite {
}
}
+ @Override
@SuppressWarnings("deprecation")
public void onClick(ClickEvent event) {
Object sender = event.getSource();
@@ -249,6 +251,7 @@ public class VRichTextToolbar extends Composite {
}
}
+ @Override
public void onKeyUp(KeyUpEvent event) {
if (event.getSource() == richText) {
// We use the RichTextArea's onKeyUp event to update the toolbar
diff --git a/src/com/vaadin/terminal/gwt/client/ui/root/RootConnector.java b/src/com/vaadin/terminal/gwt/client/ui/root/RootConnector.java
index 1a62e566ad..7b5097ff77 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/root/RootConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/root/RootConnector.java
@@ -19,13 +19,18 @@ import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.event.shared.HandlerRegistration;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
+import com.vaadin.shared.ui.root.PageClientRpc;
+import com.vaadin.shared.ui.root.RootServerRpc;
+import com.vaadin.shared.ui.root.RootState;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
import com.vaadin.terminal.gwt.client.ConnectorMap;
import com.vaadin.terminal.gwt.client.Focusable;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.VConsole;
@@ -34,8 +39,6 @@ import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent.StateChangeHandler;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentContainerConnector;
import com.vaadin.terminal.gwt.client.ui.ClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler;
import com.vaadin.terminal.gwt.client.ui.layout.MayScrollChildren;
import com.vaadin.terminal.gwt.client.ui.notification.VNotification;
@@ -51,6 +54,7 @@ public class RootConnector extends AbstractComponentContainerConnector
private HandlerRegistration childStateChangeHandlerRegistration;
private final StateChangeHandler childStateChangeHandler = new StateChangeHandler() {
+ @Override
public void onStateChanged(StateChangeEvent stateChangeEvent) {
// TODO Should use a more specific handler that only reacts to
// size changes
@@ -62,12 +66,14 @@ public class RootConnector extends AbstractComponentContainerConnector
protected void init() {
super.init();
registerRpc(PageClientRpc.class, new PageClientRpc() {
+ @Override
public void setTitle(String title) {
com.google.gwt.user.client.Window.setTitle(title);
}
});
}
+ @Override
public void updateFromUIDL(final UIDL uidl, ApplicationConnection client) {
ConnectorMap paintableMap = ConnectorMap.get(getConnection());
getWidget().rendering = true;
@@ -118,6 +124,7 @@ public class RootConnector extends AbstractComponentContainerConnector
// to finish rendering this window in case this is a download
// (and window stays open).
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
VRoot.goTo(url);
}
@@ -182,6 +189,7 @@ public class RootConnector extends AbstractComponentContainerConnector
if (uidl.hasAttribute("focused")) {
// set focused component when render phase is finished
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
ComponentConnector paintable = (ComponentConnector) uidl
.getPaintableAttribute("focused", getConnection());
@@ -246,6 +254,11 @@ public class RootConnector extends AbstractComponentContainerConnector
getWidget().currentFragment, false);
}
+ if (firstPaint) {
+ // Queue the initial window size to be sent with the following
+ // request.
+ getWidget().sendClientResized();
+ }
getWidget().rendering = false;
}
@@ -288,6 +301,7 @@ public class RootConnector extends AbstractComponentContainerConnector
};
+ @Override
public void updateCaption(ComponentConnector component) {
// NOP The main view never draws caption for its layout
}
@@ -407,6 +421,7 @@ public class RootConnector extends AbstractComponentContainerConnector
}
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
componentConnector.getWidget().getElement().scrollIntoView();
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/root/RootServerRpc.java b/src/com/vaadin/terminal/gwt/client/ui/root/RootServerRpc.java
deleted file mode 100644
index 389500949d..0000000000
--- a/src/com/vaadin/terminal/gwt/client/ui/root/RootServerRpc.java
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-package com.vaadin.terminal.gwt.client.ui.root;
-
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.ui.ClickRpc;
-
-public interface RootServerRpc extends ClickRpc, ServerRpc {
-
-} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/client/ui/root/VRoot.java b/src/com/vaadin/terminal/gwt/client/ui/root/VRoot.java
index 0af8919280..fddb76e755 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/root/VRoot.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/root/VRoot.java
@@ -123,6 +123,7 @@ public class VRoot extends SimplePanel implements ResizeHandler,
*/
private final ValueChangeHandler<String> historyChangeHandler = new ValueChangeHandler<String>() {
+ @Override
public void onValueChange(ValueChangeEvent<String> event) {
String newFragment = event.getValue();
@@ -138,6 +139,7 @@ public class VRoot extends SimplePanel implements ResizeHandler,
private VLazyExecutor delayedResizeExecutor = new VLazyExecutor(200,
new ScheduledCommand() {
+ @Override
public void execute() {
performSizeCheck();
}
@@ -361,6 +363,7 @@ public class VRoot extends SimplePanel implements ResizeHandler,
* .gwt.event.logical.shared.ResizeEvent)
*/
+ @Override
public void onResize(ResizeEvent event) {
triggerSizeChangeCheck();
}
@@ -395,7 +398,7 @@ public class VRoot extends SimplePanel implements ResizeHandler,
/**
* Send new dimensions to the server.
*/
- private void sendClientResized() {
+ void sendClientResized() {
Element parentElement = getElement().getParentElement();
int viewHeight = parentElement.getClientHeight();
int viewWidth = parentElement.getClientWidth();
@@ -416,6 +419,7 @@ public class VRoot extends SimplePanel implements ResizeHandler,
$wnd.location = url;
}-*/;
+ @Override
public void onWindowClosing(Window.ClosingEvent event) {
// Change focus on this window in order to ensure that all state is
// collected from textfields
@@ -435,10 +439,12 @@ public class VRoot extends SimplePanel implements ResizeHandler,
}
}-*/;
+ @Override
public ShortcutActionHandler getShortcutActionHandler() {
return actionHandler;
}
+ @Override
public void focus() {
getElement().focus();
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/slider/SliderConnector.java b/src/com/vaadin/terminal/gwt/client/ui/slider/SliderConnector.java
index 6fd7f8b6aa..f8588dbf3f 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/slider/SliderConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/slider/SliderConnector.java
@@ -5,17 +5,18 @@ package com.vaadin.terminal.gwt.client.ui.slider;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.user.client.Command;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.ui.AbstractFieldConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.ui.Slider;
@Connect(Slider.class)
public class SliderConnector extends AbstractFieldConnector implements
Paintable {
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
getWidget().client = client;
@@ -51,6 +52,7 @@ public class SliderConnector extends AbstractFieldConnector implements
if (!getWidget().vertical) {
// Draw handle with a delay to allow base to gain maximum width
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
getWidget().buildHandle();
getWidget().setValue(getWidget().value, false);
diff --git a/src/com/vaadin/terminal/gwt/client/ui/slider/VSlider.java b/src/com/vaadin/terminal/gwt/client/ui/slider/VSlider.java
index 5c7ee7a784..06608c95fe 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/slider/VSlider.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/slider/VSlider.java
@@ -18,7 +18,6 @@ import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.ContainerResizedListener;
import com.vaadin.terminal.gwt.client.Util;
import com.vaadin.terminal.gwt.client.VConsole;
-import com.vaadin.terminal.gwt.client.VTooltip;
import com.vaadin.terminal.gwt.client.ui.Field;
import com.vaadin.terminal.gwt.client.ui.SimpleFocusablePanel;
import com.vaadin.terminal.gwt.client.ui.VLazyExecutor;
@@ -79,6 +78,7 @@ public class VSlider extends SimpleFocusablePanel implements Field,
private VLazyExecutor delayedValueUpdater = new VLazyExecutor(100,
new ScheduledCommand() {
+ @Override
public void execute() {
updateValueToServer();
acceleration = 1;
@@ -114,8 +114,6 @@ public class VSlider extends SimpleFocusablePanel implements Field,
feedbackPopup.addStyleName(CLASSNAME + "-feedback");
feedbackPopup.setWidget(feedback);
-
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
}
void setFeedbackValue(double value) {
@@ -162,6 +160,7 @@ public class VSlider extends SimpleFocusablePanel implements Field,
DOM.setStyleAttribute(base, styleAttribute, MIN_SIZE + "px");
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
final Element p = DOM.getParent(getElement());
if (DOM.getElementPropertyInt(p, domProperty) > (MIN_SIZE + 5)) {
@@ -291,9 +290,6 @@ public class VSlider extends SimpleFocusablePanel implements Field,
event.preventDefault(); // avoid simulated events
event.stopPropagation();
}
- if (client != null) {
- client.handleTooltipEvent(event, this);
- }
}
private void processMouseWheelEvent(final Event event) {
@@ -422,6 +418,7 @@ public class VSlider extends SimpleFocusablePanel implements Field,
}
}
+ @Override
public void iLayout() {
if (vertical) {
setHeight();
diff --git a/src/com/vaadin/terminal/gwt/client/ui/splitpanel/AbstractSplitPanelConnector.java b/src/com/vaadin/terminal/gwt/client/ui/splitpanel/AbstractSplitPanelConnector.java
index e33755bc9b..f82718e4ea 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/splitpanel/AbstractSplitPanelConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/splitpanel/AbstractSplitPanelConnector.java
@@ -14,16 +14,18 @@ import com.google.gwt.event.shared.HandlerRegistration;
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.shared.MouseEventDetails;
+import com.vaadin.shared.ui.splitpanel.AbstractSplitPanelRpc;
+import com.vaadin.shared.ui.splitpanel.AbstractSplitPanelState;
+import com.vaadin.shared.ui.splitpanel.AbstractSplitPanelState.SplitterState;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
import com.vaadin.terminal.gwt.client.LayoutManager;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentContainerConnector;
import com.vaadin.terminal.gwt.client.ui.ClickEventHandler;
import com.vaadin.terminal.gwt.client.ui.SimpleManagedLayout;
-import com.vaadin.terminal.gwt.client.ui.splitpanel.AbstractSplitPanelState.SplitterState;
import com.vaadin.terminal.gwt.client.ui.splitpanel.VAbstractSplitPanel.SplitterMoveHandler;
import com.vaadin.terminal.gwt.client.ui.splitpanel.VAbstractSplitPanel.SplitterMoveHandler.SplitterMoveEvent;
@@ -41,6 +43,7 @@ public abstract class AbstractSplitPanelConnector extends
getWidget().addHandler(new SplitterMoveHandler() {
+ @Override
public void splitterMoved(SplitterMoveEvent event) {
String position = getWidget().getSplitterPosition();
float pos = 0;
@@ -61,6 +64,7 @@ public abstract class AbstractSplitPanelConnector extends
}, SplitterMoveEvent.TYPE);
}
+ @Override
public void updateCaption(ComponentConnector component) {
// TODO Implement caption handling
}
@@ -145,6 +149,7 @@ public abstract class AbstractSplitPanelConnector extends
getWidget().makeScrollable();
}
+ @Override
public void layout() {
VAbstractSplitPanel splitPanel = getWidget();
splitPanel.setSplitPosition(splitPanel.position);
diff --git a/src/com/vaadin/terminal/gwt/client/ui/splitpanel/HorizontalSplitPanelConnector.java b/src/com/vaadin/terminal/gwt/client/ui/splitpanel/HorizontalSplitPanelConnector.java
index 92c942e04b..8c2c4d24cd 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/splitpanel/HorizontalSplitPanelConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/splitpanel/HorizontalSplitPanelConnector.java
@@ -3,8 +3,8 @@
*/
package com.vaadin.terminal.gwt.client.ui.splitpanel;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
import com.vaadin.ui.HorizontalSplitPanel;
@Connect(value = HorizontalSplitPanel.class, loadStyle = LoadStyle.EAGER)
diff --git a/src/com/vaadin/terminal/gwt/client/ui/splitpanel/VAbstractSplitPanel.java b/src/com/vaadin/terminal/gwt/client/ui/splitpanel/VAbstractSplitPanel.java
index e2f30c6676..a20c0476a5 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/splitpanel/VAbstractSplitPanel.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/splitpanel/VAbstractSplitPanel.java
@@ -125,12 +125,14 @@ public class VAbstractSplitPanel extends ComplexPanel {
makeScrollable();
addDomHandler(new TouchCancelHandler() {
+ @Override
public void onTouchCancel(TouchCancelEvent event) {
// TODO When does this actually happen??
VConsole.log("TOUCH CANCEL");
}
}, TouchCancelEvent.getType());
addDomHandler(new TouchStartHandler() {
+ @Override
public void onTouchStart(TouchStartEvent event) {
Node target = event.getTouches().get(0).getTarget().cast();
if (splitter.isOrHasChild(target)) {
@@ -139,6 +141,7 @@ public class VAbstractSplitPanel extends ComplexPanel {
}
}, TouchStartEvent.getType());
addDomHandler(new TouchMoveHandler() {
+ @Override
public void onTouchMove(TouchMoveEvent event) {
if (resizing) {
onMouseMove(Event.as(event.getNativeEvent()));
@@ -146,6 +149,7 @@ public class VAbstractSplitPanel extends ComplexPanel {
}
}, TouchMoveEvent.getType());
addDomHandler(new TouchEndHandler() {
+ @Override
public void onTouchEnd(TouchEndEvent event) {
if (resizing) {
onMouseUp(Event.as(event.getNativeEvent()));
@@ -251,23 +255,22 @@ public class VAbstractSplitPanel extends ComplexPanel {
* @return
*/
private float convertToPercentage(String pos) {
- float posAsFloat = 0;
-
- if (pos.indexOf("px") > 0) {
- int posAsInt = Integer.parseInt(pos.substring(0, pos.length() - 2));
+ if (pos.endsWith("px")) {
+ float pixelPosition = Float.parseFloat(pos.substring(0,
+ pos.length() - 2));
int offsetLength = orientation == ORIENTATION_HORIZONTAL ? getOffsetWidth()
: getOffsetHeight();
- // 100% needs special handling
- if (posAsInt + getSplitterSize() >= offsetLength) {
- posAsInt = offsetLength;
+ // Take splitter size into account at the edge
+ if (pixelPosition + getSplitterSize() >= offsetLength) {
+ return 100;
}
- posAsFloat = ((float) posAsInt / (float) offsetLength * 100);
+ return pixelPosition / offsetLength * 100;
} else {
- posAsFloat = Float.parseFloat(pos.substring(0, pos.length() - 1));
+ assert pos.endsWith("%");
+ return Float.parseFloat(pos.substring(0, pos.length() - 1));
}
- return posAsFloat;
}
/**
diff --git a/src/com/vaadin/terminal/gwt/client/ui/splitpanel/VerticalSplitPanelConnector.java b/src/com/vaadin/terminal/gwt/client/ui/splitpanel/VerticalSplitPanelConnector.java
index 5015fcc60c..048136c1c9 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/splitpanel/VerticalSplitPanelConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/splitpanel/VerticalSplitPanelConnector.java
@@ -4,8 +4,8 @@
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.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
import com.vaadin.ui.VerticalSplitPanel;
@Connect(value = VerticalSplitPanel.class, loadStyle = LoadStyle.EAGER)
diff --git a/src/com/vaadin/terminal/gwt/client/ui/table/TableConnector.java b/src/com/vaadin/terminal/gwt/client/ui/table/TableConnector.java
index ada0f2424f..7721a3d763 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/table/TableConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/table/TableConnector.java
@@ -7,20 +7,22 @@ import java.util.Iterator;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.Style.Position;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.Widget;
-import com.vaadin.terminal.gwt.client.AbstractFieldState;
+import com.vaadin.shared.AbstractFieldState;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.DirectionalManagedLayout;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.ServerConnector;
+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.ui.AbstractComponentContainerConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.PostLayoutListener;
import com.vaadin.terminal.gwt.client.ui.table.VScrollTable.ContextMenuDetails;
import com.vaadin.terminal.gwt.client.ui.table.VScrollTable.VScrollTableBody.VScrollTableRow;
@@ -42,6 +44,7 @@ public class TableConnector extends AbstractComponentContainerConnector
* com.vaadin.terminal.gwt.client.Paintable#updateFromUIDL(com.vaadin.terminal
* .gwt.client.UIDL, com.vaadin.terminal.gwt.client.ApplicationConnection)
*/
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
getWidget().rendering = true;
@@ -178,6 +181,7 @@ public class TableConnector extends AbstractComponentContainerConnector
// *shouldn't* have changed (unless the number of rows
// or the height of the widget has also changed)
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
Util.runWebkitOverflowAutoFix(getWidget().scrollBodyPanel
.getElement());
@@ -244,6 +248,20 @@ public class TableConnector extends AbstractComponentContainerConnector
}
}
+ /*
+ * If the server has (re)initialized the rows, our selectionRangeStart
+ * row will point to an index that the server knows nothing about,
+ * causing problems if doing multi selection with shift. The field will
+ * be cleared a little later when the row focus has been restored.
+ * (#8584)
+ */
+ if (uidl.hasAttribute(VScrollTable.ATTRIBUTE_KEY_MAPPER_RESET)
+ && uidl.getBooleanAttribute(VScrollTable.ATTRIBUTE_KEY_MAPPER_RESET)
+ && getWidget().selectionRangeStart != null) {
+ assert !getWidget().selectionRangeStart.isAttached();
+ getWidget().selectionRangeStart = getWidget().focusedRow;
+ }
+
getWidget().tabIndex = uidl.hasAttribute("tabindex") ? uidl
.getIntAttribute("tabindex") : 0;
getWidget().setProperTabIndex();
@@ -265,23 +283,28 @@ public class TableConnector extends AbstractComponentContainerConnector
return (VScrollTable) super.getWidget();
}
+ @Override
public void updateCaption(ComponentConnector component) {
// NOP, not rendered
}
+ @Override
public void layoutVertically() {
getWidget().updateHeight();
}
+ @Override
public void layoutHorizontally() {
getWidget().updateWidth();
}
+ @Override
public void postLayout() {
VScrollTable table = getWidget();
if (table.sizeNeedsInit) {
table.sizeInit();
Scheduler.get().scheduleFinally(new ScheduledCommand() {
+ @Override
public void execute() {
getLayoutManager().setNeedsMeasure(TableConnector.this);
ServerConnector parent = getParent();
@@ -328,4 +351,27 @@ public class TableConnector extends AbstractComponentContainerConnector
}
}
+ @Override
+ public TooltipInfo getTooltipInfo(Element element) {
+
+ TooltipInfo info = null;
+
+ if (element != getWidget().getElement()) {
+ Object node = Util.findWidget(
+ (com.google.gwt.user.client.Element) element,
+ VScrollTableRow.class);
+
+ if (node != null) {
+ VScrollTableRow row = (VScrollTableRow) node;
+ info = row.getTooltip(element);
+ }
+ }
+
+ if (info == null) {
+ info = super.getTooltipInfo(element);
+ }
+
+ return info;
+ }
+
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/table/VScrollTable.java b/src/com/vaadin/terminal/gwt/client/ui/table/VScrollTable.java
index c4a57f5c8b..8a58c28c5b 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/table/VScrollTable.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/table/VScrollTable.java
@@ -11,6 +11,7 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import com.google.gwt.core.client.JavaScriptObject;
@@ -59,13 +60,14 @@ import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.ComponentConnector;
-import com.vaadin.terminal.gwt.client.ComponentState;
import com.vaadin.terminal.gwt.client.ConnectorMap;
import com.vaadin.terminal.gwt.client.Focusable;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
import com.vaadin.terminal.gwt.client.TooltipInfo;
import com.vaadin.terminal.gwt.client.UIDL;
@@ -84,7 +86,6 @@ import com.vaadin.terminal.gwt.client.ui.dd.VDragAndDropManager;
import com.vaadin.terminal.gwt.client.ui.dd.VDragEvent;
import com.vaadin.terminal.gwt.client.ui.dd.VHasDropHandler;
import com.vaadin.terminal.gwt.client.ui.dd.VTransferable;
-import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
import com.vaadin.terminal.gwt.client.ui.embedded.VEmbedded;
import com.vaadin.terminal.gwt.client.ui.label.VLabel;
import com.vaadin.terminal.gwt.client.ui.table.VScrollTable.VScrollTableBody.VScrollTableRow;
@@ -130,6 +131,12 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
}
}
+ /**
+ * Tell the client that old keys are no longer valid because the server has
+ * cleared its key map.
+ */
+ public static final String ATTRIBUTE_KEY_MAPPER_RESET = "clearKeyMap";
+
private static final String ROW_HEADER_COLUMN_KEY = "0";
public static final String CLASSNAME = "v-table";
@@ -215,7 +222,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
/*
* Helper to store selection range start in when using the keyboard
*/
- private VScrollTableRow selectionRangeStart;
+ VScrollTableRow selectionRangeStart;
/*
* Flag for notifying when the selection has changed and should be sent to
@@ -241,6 +248,19 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
private Set<String> noncollapsibleColumns;
/**
+ * The last known row height used to preserve the height of a table with
+ * custom row heights and a fixed page length after removing the last row
+ * from the table.
+ *
+ * A new VScrollTableBody instance is created every time the number of rows
+ * changes causing {@link VScrollTableBody#rowHeight} to be discarded and
+ * the height recalculated by {@link VScrollTableBody#getRowHeight(boolean)}
+ * to avoid some rounding problems, e.g. round(2 * 19.8) / 2 = 20 but
+ * round(3 * 19.8) / 3 = 19.66.
+ */
+ private double lastKnownRowHeight = Double.NaN;
+
+ /**
* Represents a select range of rows
*/
private class SelectionRange {
@@ -327,6 +347,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
private KeyPressHandler navKeyPressHandler = new KeyPressHandler() {
+ @Override
public void onKeyPress(KeyPressEvent keyPressEvent) {
// This is used for Firefox only, since Firefox auto-repeat
// works correctly only if we use a key press handler, other
@@ -364,6 +385,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
private KeyUpHandler navKeyUpHandler = new KeyUpHandler() {
+ @Override
public void onKeyUp(KeyUpEvent keyUpEvent) {
NativeEvent event = keyUpEvent.getNativeEvent();
int keyCode = event.getKeyCode();
@@ -391,6 +413,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
private KeyDownHandler navKeyDownHandler = new KeyDownHandler() {
+ @Override
public void onKeyDown(KeyDownEvent keyDownEvent) {
NativeEvent event = keyDownEvent.getNativeEvent();
// This is not used for Firefox
@@ -519,6 +542,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
scrollBodyPanel.sinkEvents(Event.ONCONTEXTMENU);
scrollBodyPanel.addDomHandler(new ContextMenuHandler() {
+ @Override
public void onContextMenu(ContextMenuEvent event) {
handleBodyContextMenu(event);
}
@@ -539,6 +563,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
// closes. See #8526.
client.getContextMenu().addCloseHandler(new CloseHandler<PopupPanel>() {
+ @Override
public void onClose(CloseEvent<PopupPanel> event) {
contextMenu = null;
}
@@ -1848,6 +1873,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
// Deferred due to some Firefox oddities
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
scrollBodyPanel
.setScrollPosition(measureRowHeightOffset(firstvisible));
@@ -1883,6 +1909,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
scrollBody.reLayoutComponents();
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
Util.runWebkitOverflowAutoFix(scrollBodyPanel.getElement());
}
@@ -2214,6 +2241,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
} else {
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
int tdWidth = width
+ scrollBody.getCellExtraWidth();
@@ -2812,6 +2840,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
Scheduler.get().scheduleDeferred(
new ScheduledCommand() {
+ @Override
public void execute() {
setColWidth(colIx, newWidth, true);
}
@@ -2840,6 +2869,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
// Recalculate the column sizings if any column has changed
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+ @Override
public void execute() {
triggerLazyColumnAdjustment(true);
}
@@ -2951,6 +2981,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
visibleCells.add(newIndex, hCell);
}
+ @Override
public Iterator<Widget> iterator() {
return visibleCells.iterator();
}
@@ -3100,6 +3131,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
* Returns columns as Action array for column select popup
*/
+ @Override
public Action[] getActions() {
Object[] cols;
if (columnReordering && columnOrder != null) {
@@ -3138,10 +3170,12 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
return actions;
}
+ @Override
public ApplicationConnection getClient() {
return client;
}
+ @Override
public String getPaintableId() {
return paintableId;
}
@@ -3287,20 +3321,15 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
DOM.setStyleAttribute(captionContainer, "width", "");
setWidth("");
} else {
-
/*
* Reduce width with one pixel for the right border since the
* footers does not have any spacers between them.
*/
- int borderWidths = 1;
+ final int borderWidths = 1;
// Set the container width (check for negative value)
- if (w - borderWidths >= 0) {
- captionContainer.getStyle().setPropertyPx("width",
- w - borderWidths);
- } else {
- captionContainer.getStyle().setPropertyPx("width", 0);
- }
+ captionContainer.getStyle().setPropertyPx("width",
+ Math.max(w - borderWidths, 0));
/*
* if we already have tBody, set the header width properly, if
@@ -3308,22 +3337,18 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
* unless TD width is not explicitly set.
*/
if (scrollBody != null) {
- /*
- * Reduce with one since footer does not have any spacers,
- * instead a 1 pixel border.
- */
int tdWidth = width + scrollBody.getCellExtraWidth()
- borderWidths;
- setWidth(tdWidth + "px");
+ setWidth(Math.max(tdWidth, 0) + "px");
} else {
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
- int borderWidths = 1;
int tdWidth = width
+ scrollBody.getCellExtraWidth()
- borderWidths;
- setWidth(tdWidth + "px");
+ setWidth(Math.max(tdWidth, 0) + "px");
}
});
}
@@ -3582,6 +3607,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
* @see com.google.gwt.user.client.ui.HasWidgets#iterator()
*/
+ @Override
public Iterator<Widget> iterator() {
return visibleCells.iterator();
}
@@ -4120,6 +4146,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
renderedRows.add(actualIx, row);
}
+ @Override
public Iterator<Widget> iterator() {
return renderedRows.iterator();
}
@@ -4194,14 +4221,6 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
private void unlinkRowAtActualIndex(int index) {
final VScrollTableRow toBeRemoved = (VScrollTableRow) renderedRows
.get(index);
- // Unregister row tooltip
- client.registerTooltip(VScrollTable.this, toBeRemoved.getElement(),
- null);
- for (int i = 0; i < toBeRemoved.getElement().getChildCount(); i++) {
- // Unregister cell tooltips
- Element td = toBeRemoved.getElement().getChild(i).cast();
- client.registerTooltip(VScrollTable.this, td, null);
- }
tBodyElement.removeChild(toBeRemoved.getElement());
orphan(toBeRemoved);
renderedRows.remove(index);
@@ -4244,13 +4263,27 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
if (tBodyMeasurementsDone && !forceUpdate) {
return rowHeight;
} else {
-
if (tBodyElement.getRows().getLength() > 0) {
int tableHeight = getTableHeight();
int rowCount = tBodyElement.getRows().getLength();
rowHeight = tableHeight / (double) rowCount;
} else {
- if (isAttached()) {
+ // Special cases if we can't just measure the current rows
+ if (!Double.isNaN(lastKnownRowHeight)) {
+ // Use previous value if available
+ if (BrowserInfo.get().isIE()) {
+ /*
+ * IE needs to reflow the table element at this
+ * point to work correctly (e.g.
+ * com.vaadin.tests.components.table.
+ * ContainerSizeChange) - the other code paths
+ * already trigger reflows, but here it must be done
+ * explicitly.
+ */
+ getTableHeight();
+ }
+ rowHeight = lastKnownRowHeight;
+ } else if (isAttached()) {
// measure row height by adding a dummy row
VScrollTableRow scrollTableRow = new VScrollTableRow();
tBodyElement.appendChild(scrollTableRow.getElement());
@@ -4261,6 +4294,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
return DEFAULT_ROW_HEIGHT;
}
}
+ lastKnownRowHeight = rowHeight;
tBodyMeasurementsDone = true;
return rowHeight;
}
@@ -4423,6 +4457,8 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
private Timer dragTouchTimeout;
private int touchStartY;
private int touchStartX;
+ private TooltipInfo tooltipInfo = null;
+ private Map<TableCellElement, TooltipInfo> cellToolTips = new HashMap<TableCellElement, TooltipInfo>();
private boolean isDragging = false;
private VScrollTableRow(int rowKey) {
@@ -4450,11 +4486,9 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
String rowDescription = uidl.getStringAttribute("rowdescr");
if (rowDescription != null && !rowDescription.equals("")) {
- TooltipInfo info = new TooltipInfo(rowDescription);
- client.registerTooltip(VScrollTable.this, rowElement, info);
+ tooltipInfo = new TooltipInfo(rowDescription);
} else {
- // Remove possibly previously set tooltip
- client.registerTooltip(VScrollTable.this, rowElement, null);
+ tooltipInfo = null;
}
tHead.getColumnAlignments();
@@ -4480,6 +4514,10 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
}
}
+ public TooltipInfo getTooltipInfo() {
+ return tooltipInfo;
+ }
+
/**
* Add a dummy row, used for measurements if Table is empty.
*/
@@ -4665,10 +4703,9 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
if (description != null && !description.equals("")) {
TooltipInfo info = new TooltipInfo(description);
- client.registerTooltip(VScrollTable.this, td, info);
+ cellToolTips.put(td, info);
} else {
- // Remove possibly previously set tooltip
- client.registerTooltip(VScrollTable.this, td, null);
+ cellToolTips.remove(td);
}
td.appendChild(container);
@@ -4718,6 +4755,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
childWidgets.add(w);
}
+ @Override
public Iterator<Widget> iterator() {
return childWidgets.iterator();
}
@@ -4776,39 +4814,22 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
return true;
}
- private void handleTooltips(final Event event, Element target) {
+ public TooltipInfo getTooltip(
+ com.google.gwt.dom.client.Element target) {
+
+ TooltipInfo info = null;
+
if (target.hasTagName("TD")) {
- // Table cell (td)
- Element container = target.getFirstChildElement().cast();
- Element widget = container.getFirstChildElement().cast();
-
- boolean containsWidget = false;
- for (Widget w : childWidgets) {
- if (widget == w.getElement()) {
- containsWidget = true;
- break;
- }
- }
- if (!containsWidget) {
- // Only text nodes has tooltips
- if (ConnectorMap.get(client).getWidgetTooltipInfo(
- VScrollTable.this, target) != null) {
- // Cell has description, use it
- client.handleTooltipEvent(event, VScrollTable.this,
- target);
- } else {
- // Cell might have row description, use row
- // description
- client.handleTooltipEvent(event, VScrollTable.this,
- target.getParentElement());
- }
- }
+ TableCellElement td = (TableCellElement) target.cast();
+ info = cellToolTips.get(td);
+ }
- } else {
- // Table row (tr)
- client.handleTooltipEvent(event, VScrollTable.this, target);
+ if (info == null) {
+ info = tooltipInfo;
}
+
+ return info;
}
/**
@@ -4953,9 +4974,6 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
}
boolean targetCellOrRowFound = targetTdOrTr != null;
- if (targetCellOrRowFound) {
- handleTooltips(event, targetTdOrTr);
- }
switch (type) {
case Event.ONDBLCLICK:
@@ -5430,6 +5448,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
* @see com.vaadin.terminal.gwt.client.ui.IActionOwner#getActions ()
*/
+ @Override
public Action[] getActions() {
if (actionKeys == null) {
return new Action[] {};
@@ -5453,10 +5472,12 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
return actions;
}
+ @Override
public ApplicationConnection getClient() {
return client;
}
+ @Override
public String getPaintableId() {
return paintableId;
}
@@ -5507,6 +5528,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
// widths.
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+ @Override
public void execute() {
if (showRowHeaders) {
setCellWidth(0, tHead.getHeaderCell(0).getWidth());
@@ -5824,7 +5846,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
if (isDynamicHeight() && totalRows == pageLength) {
// fix body height (may vary if lazy loading is offhorizontal
// scrollbar appears/disappears)
- int bodyHeight = Util.getRequiredHeight(scrollBody);
+ int bodyHeight = scrollBody.getRequiredHeight();
boolean needsSpaceForHorizontalScrollbar = (availW < usedMinimumWidth);
if (needsSpaceForHorizontalScrollbar) {
bodyHeight += Util.getNativeScrollbarSize();
@@ -5838,6 +5860,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
scrollBody.reLayoutComponents();
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
Util.runWebkitOverflowAutoFix(scrollBodyPanel.getElement());
}
@@ -5959,6 +5982,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
// #7607.
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
Util.runWebkitOverflowAutoFix(scrollBodyPanel.getElement());
}
@@ -5989,6 +6013,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
if (visible) {
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
scrollBodyPanel
.setScrollPosition(measureRowHeightOffset(firstRowInViewPort));
@@ -6023,6 +6048,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
* user scrolls
*/
+ @Override
public void onScroll(ScrollEvent event) {
scrollLeft = scrollBodyPanel.getElement().getScrollLeft();
scrollTop = scrollBodyPanel.getScrollPosition();
@@ -6052,6 +6078,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
// value available soon.
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
onScroll(null);
}
@@ -6132,6 +6159,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
return (int) Math.ceil(scrollTop / scrollBody.getRowHeight());
}
+ @Override
public VScrollTableDropHandler getDropHandler() {
return dropHandler;
}
@@ -6212,6 +6240,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
final TableDDDetails newDetails = dropDetails;
VAcceptCallback cb = new VAcceptCallback() {
+ @Override
public void accepted(VDragEvent event) {
if (newDetails.equals(dropDetails)) {
dragAccepted(event);
@@ -6288,6 +6317,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
return ConnectorMap.get(client).getConnector(VScrollTable.this);
}
+ @Override
public ApplicationConnection getApplicationConnection() {
return client;
}
@@ -6619,6 +6649,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
* .dom.client.FocusEvent)
*/
+ @Override
public void onFocus(FocusEvent event) {
if (isFocusable()) {
hasFocus = true;
@@ -6640,6 +6671,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
* .dom.client.BlurEvent)
*/
+ @Override
public void onBlur(BlurEvent event) {
hasFocus = false;
navKeyDown = false;
@@ -6713,6 +6745,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
* @see com.vaadin.terminal.gwt.client.Focusable#focus()
*/
+ @Override
public void focus() {
if (isFocusable()) {
scrollBodyPanel.focus();
@@ -6794,6 +6827,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
public void lazyRevertFocusToRow(final VScrollTableRow currentlyFocusedRow) {
Scheduler.get().scheduleFinally(new ScheduledCommand() {
+ @Override
public void execute() {
if (currentlyFocusedRow != null) {
setRowFocus(currentlyFocusedRow);
@@ -6806,6 +6840,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
});
}
+ @Override
public Action[] getActions() {
if (bodyActionKeys == null) {
return new Action[] {};
@@ -6821,10 +6856,12 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
return actions;
}
+ @Override
public ApplicationConnection getClient() {
return client;
}
+ @Override
public String getPaintableId() {
return paintableId;
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/tabsheet/TabsheetBaseConnector.java b/src/com/vaadin/terminal/gwt/client/ui/tabsheet/TabsheetBaseConnector.java
index e16e84d112..ea0bea6b04 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/tabsheet/TabsheetBaseConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/tabsheet/TabsheetBaseConnector.java
@@ -22,6 +22,7 @@ public abstract class TabsheetBaseConnector extends
public static final String ATTRIBUTE_TAB_CAPTION = "caption";
public static final String ATTRIBUTE_TAB_ICON = "icon";
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
getWidget().client = client;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/tabsheet/TabsheetConnector.java b/src/com/vaadin/terminal/gwt/client/ui/tabsheet/TabsheetConnector.java
index 08d4679dc5..ce19f1e02a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/tabsheet/TabsheetConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/tabsheet/TabsheetConnector.java
@@ -3,13 +3,14 @@
*/
package com.vaadin.terminal.gwt.client.ui.tabsheet;
-import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ComponentConnector;
+import com.vaadin.terminal.gwt.client.TooltipInfo;
import com.vaadin.terminal.gwt.client.UIDL;
-import com.vaadin.terminal.gwt.client.ui.Connect;
+import com.vaadin.terminal.gwt.client.Util;
import com.vaadin.terminal.gwt.client.ui.SimpleManagedLayout;
import com.vaadin.terminal.gwt.client.ui.layout.MayScrollChildren;
import com.vaadin.ui.TabSheet;
@@ -67,10 +68,12 @@ public class TabsheetConnector extends TabsheetBaseConnector implements
return (VTabsheet) super.getWidget();
}
+ @Override
public void updateCaption(ComponentConnector component) {
/* Tabsheet does not render its children's captions */
}
+ @Override
public void layout() {
VTabsheet tabsheet = getWidget();
@@ -97,4 +100,29 @@ public class TabsheetConnector extends TabsheetBaseConnector implements
}
+ @Override
+ public TooltipInfo getTooltipInfo(Element element) {
+
+ TooltipInfo info = null;
+
+ // Find a tooltip for the tab, if the element is a tab
+ if (element != getWidget().getElement()) {
+ Object node = Util.findWidget(
+ (com.google.gwt.user.client.Element) element,
+ VTabsheet.TabCaption.class);
+
+ if (node != null) {
+ VTabsheet.TabCaption caption = (VTabsheet.TabCaption) node;
+ info = caption.getTooltipInfo();
+ }
+ }
+
+ // If not tab tooltip was found, use the default
+ if (info == null) {
+ info = super.getTooltipInfo(element);
+ }
+
+ return info;
+ }
+
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/tabsheet/VTabsheet.java b/src/com/vaadin/terminal/gwt/client/ui/tabsheet/VTabsheet.java
index aba5a41f9a..1f6314050e 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/tabsheet/VTabsheet.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/tabsheet/VTabsheet.java
@@ -34,12 +34,12 @@ import com.google.gwt.user.client.ui.ComplexPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.ui.impl.FocusImpl;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.EventId;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.ComponentConnector;
-import com.vaadin.terminal.gwt.client.ComponentState;
import com.vaadin.terminal.gwt.client.ConnectorMap;
-import com.vaadin.terminal.gwt.client.EventId;
import com.vaadin.terminal.gwt.client.Focusable;
import com.vaadin.terminal.gwt.client.TooltipInfo;
import com.vaadin.terminal.gwt.client.UIDL;
@@ -212,14 +212,17 @@ public class VTabsheet extends VTabsheetBase implements Focusable,
tabCaption.setWidth(tabCaption.getRequiredWidth() + "px");
}
+ @Override
public HandlerRegistration addFocusHandler(FocusHandler handler) {
return addDomHandler(handler, FocusEvent.getType());
}
+ @Override
public HandlerRegistration addBlurHandler(BlurHandler handler) {
return addDomHandler(handler, BlurEvent.getType());
}
+ @Override
public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) {
return addDomHandler(handler, KeyDownEvent.getType());
}
@@ -233,7 +236,7 @@ public class VTabsheet extends VTabsheetBase implements Focusable,
}
}
- private static class TabCaption extends VCaption {
+ public static class TabCaption extends VCaption {
private boolean closable = false;
private Element closeButton;
@@ -248,16 +251,11 @@ public class VTabsheet extends VTabsheetBase implements Focusable,
public boolean updateCaption(UIDL uidl) {
if (uidl.hasAttribute(TabsheetBaseConnector.ATTRIBUTE_TAB_DESCRIPTION)) {
- TooltipInfo tooltipInfo = new TooltipInfo();
- tooltipInfo
- .setTitle(uidl
- .getStringAttribute(TabsheetBaseConnector.ATTRIBUTE_TAB_DESCRIPTION));
- tooltipInfo
- .setErrorMessage(uidl
- .getStringAttribute(TabsheetBaseConnector.ATTRIBUTE_TAB_ERROR_MESSAGE));
- client.registerTooltip(getTabsheet(), getElement(), tooltipInfo);
+ setTooltipInfo(new TooltipInfo(
+ uidl.getStringAttribute(TabsheetBaseConnector.ATTRIBUTE_TAB_DESCRIPTION),
+ uidl.getStringAttribute(TabsheetBaseConnector.ATTRIBUTE_TAB_ERROR_MESSAGE)));
} else {
- client.registerTooltip(getTabsheet(), getElement(), null);
+ setTooltipInfo(null);
}
// TODO need to call this instead of super because the caption does
@@ -292,7 +290,6 @@ public class VTabsheet extends VTabsheetBase implements Focusable,
if (event.getTypeInt() == Event.ONLOAD) {
getTabsheet().tabSizeMightHaveChanged(getTab());
}
- client.handleTooltipEvent(event, getTabsheet(), getElement());
}
public Tab getTab() {
@@ -362,6 +359,7 @@ public class VTabsheet extends VTabsheetBase implements Focusable,
setElement(el);
}
+ @Override
public void onClose(VCloseEvent event) {
Tab tab = event.getTab();
if (!tab.isEnabledOnServer()) {
@@ -397,6 +395,7 @@ public class VTabsheet extends VTabsheetBase implements Focusable,
return t;
}
+ @Override
public void onClick(ClickEvent event) {
TabCaption caption = (TabCaption) event.getSource();
Element targetElement = event.getNativeEvent().getEventTarget()
@@ -691,24 +690,27 @@ public class VTabsheet extends VTabsheetBase implements Focusable,
@Override
public void onBrowserEvent(Event event) {
+ if (event.getTypeInt() == Event.ONCLICK) {
+ // Tab scrolling
+ if (isScrolledTabs() && DOM.eventGetTarget(event) == scrollerPrev) {
+ int newFirstIndex = tb.scrollLeft(scrollerIndex);
+ if (newFirstIndex != -1) {
+ scrollerIndex = newFirstIndex;
+ updateTabScroller();
+ }
+ return;
+ } else if (isClippedTabs()
+ && DOM.eventGetTarget(event) == scrollerNext) {
+ int newFirstIndex = tb.scrollRight(scrollerIndex);
- // Tab scrolling
- if (isScrolledTabs() && DOM.eventGetTarget(event) == scrollerPrev) {
- int newFirstIndex = tb.scrollLeft(scrollerIndex);
- if (newFirstIndex != -1) {
- scrollerIndex = newFirstIndex;
- updateTabScroller();
- }
- } else if (isClippedTabs() && DOM.eventGetTarget(event) == scrollerNext) {
- int newFirstIndex = tb.scrollRight(scrollerIndex);
-
- if (newFirstIndex != -1) {
- scrollerIndex = newFirstIndex;
- updateTabScroller();
+ if (newFirstIndex != -1) {
+ scrollerIndex = newFirstIndex;
+ updateTabScroller();
+ }
+ return;
}
- } else {
- super.onBrowserEvent(event);
}
+ super.onBrowserEvent(event);
}
/**
@@ -1034,6 +1036,7 @@ public class VTabsheet extends VTabsheetBase implements Focusable,
style.setProperty("whiteSpace", "normal");
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
style.setProperty("whiteSpace", "");
}
@@ -1118,6 +1121,7 @@ public class VTabsheet extends VTabsheetBase implements Focusable,
}
}
+ @Override
public void onBlur(BlurEvent event) {
if (focusedTab != null && event.getSource() instanceof Tab) {
focusedTab = null;
@@ -1127,6 +1131,7 @@ public class VTabsheet extends VTabsheetBase implements Focusable,
}
}
+ @Override
public void onFocus(FocusEvent event) {
if (focusedTab == null && event.getSource() instanceof Tab) {
focusedTab = (Tab) event.getSource();
@@ -1136,6 +1141,7 @@ public class VTabsheet extends VTabsheetBase implements Focusable,
}
}
+ @Override
public void focus() {
tb.getTab(activeTabIndex).focus();
}
@@ -1144,6 +1150,7 @@ public class VTabsheet extends VTabsheetBase implements Focusable,
tb.getTab(activeTabIndex).blur();
}
+ @Override
public void onKeyDown(KeyDownEvent event) {
if (event.getSource() instanceof Tab) {
int keycode = event.getNativeEvent().getKeyCode();
diff --git a/src/com/vaadin/terminal/gwt/client/ui/textarea/TextAreaConnector.java b/src/com/vaadin/terminal/gwt/client/ui/textarea/TextAreaConnector.java
index a235ca5389..cdf648d3ec 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/textarea/TextAreaConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/textarea/TextAreaConnector.java
@@ -4,8 +4,9 @@
package com.vaadin.terminal.gwt.client.ui.textarea;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.textarea.TextAreaState;
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;
import com.vaadin.ui.TextArea;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/textarea/VTextArea.java b/src/com/vaadin/terminal/gwt/client/ui/textarea/VTextArea.java
index aede1ef002..c0f6deab53 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/textarea/VTextArea.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/textarea/VTextArea.java
@@ -57,6 +57,7 @@ public class VTextArea extends VTextField {
public void onBrowserEvent(Event event) {
if (getMaxLength() >= 0 && event.getTypeInt() == Event.ONKEYUP) {
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
if (getText().length() > getMaxLength()) {
setText(getText().substring(0, getMaxLength()));
diff --git a/src/com/vaadin/terminal/gwt/client/ui/textfield/TextFieldConnector.java b/src/com/vaadin/terminal/gwt/client/ui/textfield/TextFieldConnector.java
index 04bf029b05..d98d27942a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/textfield/TextFieldConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/textfield/TextFieldConnector.java
@@ -7,12 +7,13 @@ package com.vaadin.terminal.gwt.client.ui.textfield;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.Event;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
+import com.vaadin.shared.ui.textfield.AbstractTextFieldState;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.ui.AbstractFieldConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler.BeforeShortcutActionListener;
import com.vaadin.ui.TextField;
@@ -25,6 +26,7 @@ public class TextFieldConnector extends AbstractFieldConnector implements
return (AbstractTextFieldState) super.getState();
}
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
// Save details
getWidget().client = client;
@@ -83,6 +85,7 @@ public class TextFieldConnector extends AbstractFieldConnector implements
* Gecko defers setting the text so we need to defer the selection.
*/
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
getWidget().setSelectionRange(pos, length);
}
@@ -95,6 +98,7 @@ public class TextFieldConnector extends AbstractFieldConnector implements
return (VTextField) super.getWidget();
}
+ @Override
public void onBeforeShortcutAction(Event e) {
getWidget().valueChange(false);
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/textfield/VTextField.java b/src/com/vaadin/terminal/gwt/client/ui/textfield/VTextField.java
index aeae165f60..7f8e549550 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/textfield/VTextField.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/textfield/VTextField.java
@@ -18,11 +18,10 @@ import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.TextBoxBase;
+import com.vaadin.shared.EventId;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
-import com.vaadin.terminal.gwt.client.EventId;
import com.vaadin.terminal.gwt.client.Util;
-import com.vaadin.terminal.gwt.client.VTooltip;
import com.vaadin.terminal.gwt.client.ui.Field;
/**
@@ -88,7 +87,6 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler,
}
addFocusHandler(this);
addBlurHandler(this);
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
}
/*
@@ -107,9 +105,6 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler,
@Override
public void onBrowserEvent(Event event) {
super.onBrowserEvent(event);
- if (client != null) {
- client.handleTooltipEvent(event, this);
- }
if (listenTextChangeEvents
&& (event.getTypeInt() & TEXTCHANGE_EVENTS) == event
@@ -279,6 +274,7 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler,
return maxLength;
}
+ @Override
public void onChange(ChangeEvent event) {
valueChange(false);
}
@@ -305,7 +301,7 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler,
if (!prompting && newText != null
&& !newText.equals(valueBeforeEdit)) {
sendValueChange = immediate;
- client.updateVariable(paintableId, "text", getText(), false);
+ client.updateVariable(paintableId, "text", newText, false);
valueBeforeEdit = newText;
valueBeforeEditIsSynced = true;
}
@@ -354,6 +350,7 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler,
}
}
+ @Override
public void onFocus(FocusEvent event) {
addStyleDependentName(CLASSNAME_FOCUS);
if (prompting) {
@@ -367,7 +364,13 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler,
}
}
+ @Override
public void onBlur(BlurEvent event) {
+ // this is called twice on Chrome when e.g. changing tab while prompting
+ // field focused - do not change settings on the second time
+ if (focusedTextField != this) {
+ return;
+ }
removeStyleDependentName(CLASSNAME_FOCUS);
focusedTextField = null;
String text = getText();
@@ -392,6 +395,7 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler,
setWidth(columns + "em");
}
+ @Override
public void onKeyDown(KeyDownEvent event) {
if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
valueChange(false);
diff --git a/src/com/vaadin/terminal/gwt/client/ui/tree/TreeConnector.java b/src/com/vaadin/terminal/gwt/client/ui/tree/TreeConnector.java
index e4afa32143..def63edae9 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/tree/TreeConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/tree/TreeConnector.java
@@ -3,16 +3,20 @@
*/
package com.vaadin.terminal.gwt.client.ui.tree;
+import java.util.HashMap;
import java.util.Iterator;
+import java.util.Map;
-import com.vaadin.terminal.gwt.client.AbstractFieldState;
+import com.google.gwt.dom.client.Element;
+import com.vaadin.shared.AbstractFieldState;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.Paintable;
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.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.tree.VTree.TreeNode;
import com.vaadin.ui.Tree;
@@ -27,6 +31,9 @@ public class TreeConnector extends AbstractComponentConnector implements
public static final String ATTRIBUTE_ACTION_CAPTION = "caption";
public static final String ATTRIBUTE_ACTION_ICON = ATTRIBUTE_NODE_ICON;
+ protected final Map<TreeNode, TooltipInfo> tooltipMap = new HashMap<TreeNode, TooltipInfo>();
+
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (!isRealUpdate(uidl)) {
return;
@@ -62,6 +69,8 @@ public class TreeConnector extends AbstractComponentConnector implements
getWidget().body.clear();
// clear out any references to nodes that no longer are attached
getWidget().clearNodeToKeyMap();
+ tooltipMap.clear();
+
TreeNode childTree = null;
UIDL childUidl = null;
for (final Iterator<?> i = uidl.getChildIterator(); i.hasNext();) {
@@ -74,6 +83,7 @@ public class TreeConnector extends AbstractComponentConnector implements
continue;
}
childTree = getWidget().new TreeNode();
+ getConnection().getVTooltip().connectHandlersToWidget(childTree);
updateNodeFromUIDL(childTree, childUidl);
getWidget().body.add(childTree);
childTree.addStyleDependentName("root");
@@ -193,13 +203,8 @@ public class TreeConnector extends AbstractComponentConnector implements
}
String description = uidl.getStringAttribute("descr");
- if (description != null && getConnection() != null) {
- // Set tooltip
- TooltipInfo info = new TooltipInfo(description);
- getConnection().registerTooltip(this, nodeKey, info);
- } else {
- // Remove possible previous tooltip
- getConnection().registerTooltip(this, nodeKey, null);
+ if (description != null) {
+ tooltipMap.put(treeNode, new TooltipInfo(description));
}
if (uidl.getBooleanAttribute("expanded") && !treeNode.getState()) {
@@ -228,6 +233,7 @@ public class TreeConnector extends AbstractComponentConnector implements
continue;
}
final TreeNode childTree = getWidget().new TreeNode();
+ getConnection().getVTooltip().connectHandlersToWidget(childTree);
updateNodeFromUIDL(childTree, childUidl);
containerNode.childNodeContainer.add(childTree);
if (!i.hasNext()) {
@@ -250,4 +256,32 @@ public class TreeConnector extends AbstractComponentConnector implements
return (AbstractFieldState) super.getState();
}
+ @Override
+ public TooltipInfo getTooltipInfo(Element element) {
+
+ TooltipInfo info = null;
+
+ // Try to find a tooltip for a node
+ if (element != getWidget().getElement()) {
+ Object node = Util.findWidget(
+ (com.google.gwt.user.client.Element) element,
+ TreeNode.class);
+
+ if (node != null) {
+ TreeNode tnode = (TreeNode) node;
+ if (tnode.isCaptionElement(element)) {
+ info = tooltipMap.get(tnode);
+ }
+ }
+ }
+
+ // If no tooltip found for the node or if the target was not a node, use
+ // the default tooltip
+ if (info == null) {
+ info = super.getTooltipInfo(element);
+ }
+
+ return info;
+ }
+
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/tree/VTree.java b/src/com/vaadin/terminal/gwt/client/ui/tree/VTree.java
index 6f19cba957..f5fe6bce1a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/tree/VTree.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/tree/VTree.java
@@ -37,15 +37,15 @@ import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorMap;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.Util;
-import com.vaadin.terminal.gwt.client.VTooltip;
import com.vaadin.terminal.gwt.client.ui.Action;
import com.vaadin.terminal.gwt.client.ui.ActionOwner;
import com.vaadin.terminal.gwt.client.ui.FocusElementPanel;
@@ -61,7 +61,6 @@ import com.vaadin.terminal.gwt.client.ui.dd.VDragEvent;
import com.vaadin.terminal.gwt.client.ui.dd.VDropHandler;
import com.vaadin.terminal.gwt.client.ui.dd.VHasDropHandler;
import com.vaadin.terminal.gwt.client.ui.dd.VTransferable;
-import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
/**
*
@@ -127,6 +126,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
public VLazyExecutor iconLoaded = new VLazyExecutor(50,
new ScheduledCommand() {
+ @Override
public void execute() {
Util.notifyParentOfSizeChange(VTree.this, true);
}
@@ -146,6 +146,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
*/
sinkEvents(Event.ONCONTEXTMENU);
addDomHandler(new ContextMenuHandler() {
+ @Override
public void onContextMenu(ContextMenuEvent event) {
handleBodyContextMenu(event);
}
@@ -334,6 +335,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
}
if (newKey != null) {
validate(new VAcceptCallback() {
+ @Override
public void accepted(VDragEvent event) {
VerticalDropLocation curDetail = (VerticalDropLocation) event
.getDropDetails().get("detail");
@@ -377,6 +379,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
return ConnectorMap.get(client).getConnector(VTree.this);
}
+ @Override
public ApplicationConnection getApplicationConnection() {
return client;
}
@@ -420,6 +423,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
*/
private void sendSelectionToServer() {
Command command = new Command() {
+ @Override
public void execute() {
client.updateVariable(paintableId, "selected",
selectedIds.toArray(new String[selectedIds.size()]),
@@ -587,6 +591,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
}
ScheduledCommand command = new ScheduledCommand() {
+ @Override
public void execute() {
if (multiSelectMode == MULTISELECT_MODE_SIMPLE
@@ -656,12 +661,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
return;
}
- if (target == nodeCaptionSpan) {
- client.handleTooltipEvent(event, VTree.this, key);
- }
-
- final boolean inCaption = target == nodeCaptionSpan
- || (icon != null && target == icon.getElement());
+ final boolean inCaption = isCaptionElement(target);
if (inCaption
&& client
.hasEventListeners(VTree.this, ITEM_CLICK_EVENT_ID)
@@ -751,6 +751,18 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
}
}
+ /**
+ * Checks if the given element is the caption or the icon.
+ *
+ * @param target
+ * The element to check
+ * @return true if the element is the caption or the icon
+ */
+ public boolean isCaptionElement(com.google.gwt.dom.client.Element target) {
+ return (target == nodeCaptionSpan || (icon != null && target == icon
+ .getElement()));
+ }
+
private void fireClick(final Event evt) {
/*
* Ensure we have focus in tree before sending variables. Otherwise
@@ -770,6 +782,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
final MouseEventDetails details = MouseEventDetailsBuilder
.buildMouseEventDetails(evt);
ScheduledCommand command = new ScheduledCommand() {
+ @Override
public void execute() {
// Determine if we should send the event immediately to the
// server. We do not want to send the event if there is a
@@ -825,7 +838,6 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
+ "-caption");
Element wrapper = DOM.createDiv();
nodeCaptionSpan = DOM.createSpan();
- DOM.sinkEvents(nodeCaptionSpan, VTooltip.TOOLTIP_EVENTS);
DOM.appendChild(getElement(), nodeCaptionDiv);
DOM.appendChild(nodeCaptionDiv, wrapper);
DOM.appendChild(wrapper, nodeCaptionSpan);
@@ -914,6 +926,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
return nodes;
}
+ @Override
public Action[] getActions() {
if (actionKeys == null) {
return new Action[] {};
@@ -930,10 +943,12 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
return actions;
}
+ @Override
public ApplicationConnection getClient() {
return client;
}
+ @Override
public String getPaintableId() {
return paintableId;
}
@@ -1071,6 +1086,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
}
+ @Override
public VDropHandler getDropHandler() {
return dropHandler;
}
@@ -1480,6 +1496,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
node.scrollIntoView();
} else {
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
focusedNode.scrollIntoView();
}
@@ -1505,6 +1522,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
* com.google.gwt.event.dom.client.FocusHandler#onFocus(com.google.gwt.event
* .dom.client.FocusEvent)
*/
+ @Override
public void onFocus(FocusEvent event) {
treeHasFocus = true;
// If no node has focus, focus the first item in the tree
@@ -1524,6 +1542,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
* com.google.gwt.event.dom.client.BlurHandler#onBlur(com.google.gwt.event
* .dom.client.BlurEvent)
*/
+ @Override
public void onBlur(BlurEvent event) {
treeHasFocus = false;
if (focusedNode != null) {
@@ -1538,6 +1557,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
* com.google.gwt.event.dom.client.KeyPressHandler#onKeyPress(com.google
* .gwt.event.dom.client.KeyPressEvent)
*/
+ @Override
public void onKeyPress(KeyPressEvent event) {
NativeEvent nativeEvent = event.getNativeEvent();
int keyCode = nativeEvent.getKeyCode();
@@ -1561,6 +1581,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
* com.google.gwt.event.dom.client.KeyDownHandler#onKeyDown(com.google.gwt
* .event.dom.client.KeyDownEvent)
*/
+ @Override
public void onKeyDown(KeyDownEvent event) {
if (handleKeyNavigation(event.getNativeEvent().getKeyCode(),
event.isControlKeyDown() || event.isMetaKeyDown(),
@@ -1941,6 +1962,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
* com.vaadin.terminal.gwt.client.ui.SubPartAware#getSubPartElement(java
* .lang.String)
*/
+ @Override
public Element getSubPartElement(String subPart) {
if ("fe".equals(subPart)) {
if (BrowserInfo.get().isOpera() && focusedNode != null) {
@@ -1994,6 +2016,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
* com.vaadin.terminal.gwt.client.ui.SubPartAware#getSubPartName(com.google
* .gwt.user.client.Element)
*/
+ @Override
public String getSubPartName(Element subElement) {
// Supported identifiers:
//
@@ -2044,6 +2067,7 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
return locator;
}
+ @Override
public Action[] getActions() {
if (bodyActionKeys == null) {
return new Action[] {};
@@ -2059,10 +2083,12 @@ public class VTree extends FocusElementPanel implements VHasDropHandler,
return actions;
}
+ @Override
public ApplicationConnection getClient() {
return client;
}
+ @Override
public String getPaintableId() {
return paintableId;
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/treetable/TreeTableConnector.java b/src/com/vaadin/terminal/gwt/client/ui/treetable/TreeTableConnector.java
index 59910c1b3e..06e916fbc9 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/treetable/TreeTableConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/treetable/TreeTableConnector.java
@@ -3,9 +3,9 @@
*/
package com.vaadin.terminal.gwt.client.ui.treetable;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.UIDL;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.FocusableScrollPanel;
import com.vaadin.terminal.gwt.client.ui.table.TableConnector;
import com.vaadin.terminal.gwt.client.ui.table.VScrollTable.VScrollTableBody.VScrollTableRow;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/treetable/VTreeTable.java b/src/com/vaadin/terminal/gwt/client/ui/treetable/VTreeTable.java
index 9a8e0e9ce1..c03dff9507 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/treetable/VTreeTable.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/treetable/VTreeTable.java
@@ -97,7 +97,7 @@ public class VTreeTable extends VScrollTable {
}
class VTreeTableScrollBody extends VScrollTable.VScrollTableBody {
- private int identWidth = -1;
+ private int indentWidth = -1;
VTreeTableScrollBody() {
super();
@@ -165,7 +165,7 @@ public class VTreeTable extends VScrollTable {
container.insertFirst(treeSpacer);
depth = rowUidl.hasAttribute("depth") ? rowUidl
.getIntAttribute("depth") : 0;
- setIdent();
+ setIndent();
isTreeCellAdded = true;
return true;
}
@@ -202,18 +202,19 @@ public class VTreeTable extends VScrollTable {
}
- private void setIdent() {
- if (getIdentWidth() > 0 && depth != 0) {
- treeSpacer.getStyle().setWidth(
- (depth + 1) * getIdentWidth(), Unit.PX);
+ private void setIndent() {
+ if (getIndentWidth() > 0) {
+ treeSpacer.getParentElement().getStyle()
+ .setPaddingLeft(getIndent(), Unit.PX);
+ treeSpacer.getStyle().setWidth(getIndent(), Unit.PX);
}
}
@Override
protected void onAttach() {
super.onAttach();
- if (getIdentWidth() < 0) {
- detectIdent(this);
+ if (getIndentWidth() < 0) {
+ detectIndent(this);
}
}
@@ -227,6 +228,19 @@ public class VTreeTable extends VScrollTable {
return consumedSpace;
}
+ @Override
+ protected void setCellWidth(int cellIx, int width) {
+ if (cellIx == colIndexOfHierarchy + (showRowHeaders ? 1 : 0)) {
+ // take indentation padding into account if this is the
+ // hierarchy column
+ width = Math.max(width - getIndent(), 0);
+ }
+ super.setCellWidth(cellIx, width);
+ }
+
+ private int getIndent() {
+ return (depth + 1) * getIndentWidth();
+ }
}
protected class VTreeTableGeneratedRow extends VTreeTableRow {
@@ -257,6 +271,7 @@ public class VTreeTable extends VScrollTable {
// widths.
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+ @Override
public void execute() {
if (showRowHeaders) {
setCellWidth(0, tHead.getHeaderCell(0).getWidth());
@@ -353,20 +368,20 @@ public class VTreeTable extends VScrollTable {
}
}
- private int getIdentWidth() {
- return identWidth;
+ private int getIndentWidth() {
+ return indentWidth;
}
- private void detectIdent(VTreeTableRow vTreeTableRow) {
- identWidth = vTreeTableRow.treeSpacer.getOffsetWidth();
- if (identWidth == 0) {
- identWidth = -1;
+ private void detectIndent(VTreeTableRow vTreeTableRow) {
+ indentWidth = vTreeTableRow.treeSpacer.getOffsetWidth();
+ if (indentWidth == 0) {
+ indentWidth = -1;
return;
}
Iterator<Widget> iterator = iterator();
while (iterator.hasNext()) {
VTreeTableRow next = (VTreeTableRow) iterator.next();
- next.setIdent();
+ next.setIndent();
}
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/twincolselect/TwinColSelectConnector.java b/src/com/vaadin/terminal/gwt/client/ui/twincolselect/TwinColSelectConnector.java
index a77319920c..2ce6bf2129 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/twincolselect/TwinColSelectConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/twincolselect/TwinColSelectConnector.java
@@ -4,10 +4,10 @@
package com.vaadin.terminal.gwt.client.ui.twincolselect;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.DirectionalManagedLayout;
import com.vaadin.terminal.gwt.client.UIDL;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.optiongroup.OptionGroupBaseConnector;
import com.vaadin.ui.TwinColSelect;
@@ -29,6 +29,7 @@ public class TwinColSelectConnector extends OptionGroupBaseConnector implements
@Override
protected void init() {
+ super.init();
getLayoutManager().registerDependency(this,
getWidget().captionWrapper.getElement());
}
@@ -44,6 +45,7 @@ public class TwinColSelectConnector extends OptionGroupBaseConnector implements
return (VTwinColSelect) super.getWidget();
}
+ @Override
public void layoutVertically() {
if (isUndefinedHeight()) {
getWidget().clearInternalHeights();
@@ -52,6 +54,7 @@ public class TwinColSelectConnector extends OptionGroupBaseConnector implements
}
}
+ @Override
public void layoutHorizontally() {
if (isUndefinedWidth()) {
getWidget().clearInternalWidths();
diff --git a/src/com/vaadin/terminal/gwt/client/ui/twincolselect/VTwinColSelect.java b/src/com/vaadin/terminal/gwt/client/ui/twincolselect/VTwinColSelect.java
index 8f1ea09b8f..1a2deae3b4 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/twincolselect/VTwinColSelect.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/twincolselect/VTwinColSelect.java
@@ -409,6 +409,7 @@ public class VTwinColSelect extends VOptionGroupBase implements KeyDownHandler,
remove.setTabIndex(tabIndex);
}
+ @Override
public void focus() {
options.setFocus(true);
}
@@ -430,6 +431,7 @@ public class VTwinColSelect extends VOptionGroupBase implements KeyDownHandler,
* com.google.gwt.event.dom.client.KeyDownHandler#onKeyDown(com.google.gwt
* .event.dom.client.KeyDownEvent)
*/
+ @Override
public void onKeyDown(KeyDownEvent event) {
int keycode = event.getNativeKeyCode();
@@ -493,6 +495,7 @@ public class VTwinColSelect extends VOptionGroupBase implements KeyDownHandler,
* com.google.gwt.event.dom.client.MouseDownHandler#onMouseDown(com.google
* .gwt.event.dom.client.MouseDownEvent)
*/
+ @Override
public void onMouseDown(MouseDownEvent event) {
// Ensure that items are deselected when selecting
// from a different source. See #3699 for details.
@@ -515,6 +518,7 @@ public class VTwinColSelect extends VOptionGroupBase implements KeyDownHandler,
* com.google.gwt.event.dom.client.DoubleClickHandler#onDoubleClick(com.
* google.gwt.event.dom.client.DoubleClickEvent)
*/
+ @Override
public void onDoubleClick(DoubleClickEvent event) {
if (event.getSource() == options) {
addItem();
@@ -539,6 +543,7 @@ public class VTwinColSelect extends VOptionGroupBase implements KeyDownHandler,
private static final String SUBPART_ADD_BUTTON = "add";
private static final String SUBPART_REMOVE_BUTTON = "remove";
+ @Override
public Element getSubPartElement(String subPart) {
if (SUBPART_OPTION_SELECT.equals(subPart)) {
return options.getElement();
@@ -568,6 +573,7 @@ public class VTwinColSelect extends VOptionGroupBase implements KeyDownHandler,
return null;
}
+ @Override
public String getSubPartName(Element subElement) {
if (optionsCaption != null
&& optionsCaption.getElement().isOrHasChild(subElement)) {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/upload/UploadConnector.java b/src/com/vaadin/terminal/gwt/client/ui/upload/UploadConnector.java
index 153d99229b..af31491060 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/upload/UploadConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/upload/UploadConnector.java
@@ -4,18 +4,19 @@
package com.vaadin.terminal.gwt.client.ui.upload;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
import com.vaadin.ui.Upload;
@Connect(value = Upload.class, loadStyle = LoadStyle.LAZY)
public class UploadConnector extends AbstractComponentConnector implements
Paintable {
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (!isRealUpdate(uidl)) {
return;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/upload/VUpload.java b/src/com/vaadin/terminal/gwt/client/ui/upload/VUpload.java
index 4fe53fb89c..5cf2f2fe25 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/upload/VUpload.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/upload/VUpload.java
@@ -24,7 +24,6 @@ import com.google.gwt.user.client.ui.SimplePanel;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.VConsole;
-import com.vaadin.terminal.gwt.client.VTooltip;
import com.vaadin.terminal.gwt.client.ui.button.VButton;
/**
@@ -116,6 +115,7 @@ public class VUpload extends SimplePanel {
panel.add(fu);
submitButton = new VButton();
submitButton.addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
if (immediate) {
// fire click on upload (eg. focused button and hit space)
@@ -128,16 +128,6 @@ public class VUpload extends SimplePanel {
panel.add(submitButton);
setStyleName(CLASSNAME);
-
- sinkEvents(VTooltip.TOOLTIP_EVENTS);
- }
-
- @Override
- public void onBrowserEvent(Event event) {
- if ((event.getTypeInt() & VTooltip.TOOLTIP_EVENTS) > 0) {
- client.handleTooltipEvent(event, this);
- }
- super.onBrowserEvent(event);
}
private static native void setEncoding(Element form, String encoding)
@@ -214,6 +204,7 @@ public class VUpload extends SimplePanel {
private void onSubmitComplete() {
/* Needs to be run dereferred to avoid various browser issues. */
Scheduler.get().scheduleDeferred(new Command() {
+ @Override
public void execute() {
if (submitted) {
if (client != null) {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/video/VideoConnector.java b/src/com/vaadin/terminal/gwt/client/ui/video/VideoConnector.java
index ddf8df66ff..d0c126832a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/video/VideoConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/video/VideoConnector.java
@@ -3,9 +3,10 @@
*/
package com.vaadin.terminal.gwt.client.ui.video;
+import com.vaadin.shared.communication.URLReference;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.video.VideoState;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
-import com.vaadin.terminal.gwt.client.communication.URLReference;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.MediaBaseConnector;
import com.vaadin.ui.Video;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/window/VWindow.java b/src/com/vaadin/terminal/gwt/client/ui/window/VWindow.java
index 8fd84a9ea6..8ac0d0662b 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/window/VWindow.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/window/VWindow.java
@@ -26,12 +26,12 @@ import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.EventId;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorMap;
import com.vaadin.terminal.gwt.client.Console;
-import com.vaadin.terminal.gwt.client.EventId;
import com.vaadin.terminal.gwt.client.Focusable;
import com.vaadin.terminal.gwt.client.LayoutManager;
import com.vaadin.terminal.gwt.client.Util;
@@ -146,6 +146,7 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
private VLazyExecutor delayedContentsSizeUpdater = new VLazyExecutor(200,
new ScheduledCommand() {
+ @Override
public void execute() {
updateContentsSize();
}
@@ -266,6 +267,7 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
orderingDefered = true;
Scheduler.get().scheduleFinally(new Command() {
+ @Override
public void execute() {
doServerSideOrdering();
VNotification.bringNotificationsToFront();
@@ -279,6 +281,7 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
VWindow[] array = windowOrder.toArray(new VWindow[windowOrder.size()]);
Arrays.sort(array, new Comparator<VWindow>() {
+ @Override
public int compare(VWindow o1, VWindow o2) {
/*
* Order by modality, then by bringtofront sequence.
@@ -552,11 +555,6 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
final Element target = DOM.eventGetTarget(event);
- if (client != null && header.isOrHasChild(target)) {
- // Handle window caption tooltips
- client.handleTooltipEvent(event, this);
- }
-
if (resizing || resizeBox == target) {
onResizeEvent(event);
bubble = false;
@@ -856,10 +854,12 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
true);
}
+ @Override
public ShortcutActionHandler getShortcutActionHandler() {
return shortcutHandler;
}
+ @Override
public void onScroll(ScrollEvent event) {
client.updateVariable(id, "scrollTop",
contentPanel.getScrollPosition(), false);
@@ -868,6 +868,7 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
}
+ @Override
public void onKeyDown(KeyDownEvent event) {
if (shortcutHandler != null) {
shortcutHandler
@@ -876,18 +877,21 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
}
}
+ @Override
public void onBlur(BlurEvent event) {
if (client.hasEventListeners(this, EventId.BLUR)) {
client.updateVariable(id, EventId.BLUR, "", true);
}
}
+ @Override
public void onFocus(FocusEvent event) {
if (client.hasEventListeners(this, EventId.FOCUS)) {
client.updateVariable(id, EventId.FOCUS, "", true);
}
}
+ @Override
public void focus() {
contentPanel.focus();
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/window/WindowConnector.java b/src/com/vaadin/terminal/gwt/client/ui/window/WindowConnector.java
index 83de039f0b..bae4f804fc 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/window/WindowConnector.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/window/WindowConnector.java
@@ -12,18 +12,20 @@ import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.window.WindowServerRpc;
+import com.vaadin.shared.ui.window.WindowState;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
import com.vaadin.terminal.gwt.client.LayoutManager;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentContainerConnector;
import com.vaadin.terminal.gwt.client.ui.ClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.PostLayoutListener;
import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler;
import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler.BeforeShortcutActionListener;
@@ -72,6 +74,7 @@ public class WindowConnector extends AbstractComponentContainerConnector
lm.unregisterDependency(this, window.footer);
}
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
getWidget().id = getConnectorId();
getWidget().client = client;
@@ -180,10 +183,12 @@ public class WindowConnector extends AbstractComponentContainerConnector
}
}
+ @Override
public void updateCaption(ComponentConnector component) {
// NOP, window has own caption, layout caption not rendered
}
+ @Override
public void onBeforeShortcutAction(Event e) {
// NOP, nothing to update just avoid workaround ( causes excess
// blur/focus )
@@ -210,6 +215,7 @@ public class WindowConnector extends AbstractComponentContainerConnector
getWidget().contentPanel.setWidget(newChildWidget);
}
+ @Override
public void layout() {
LayoutManager lm = getLayoutManager();
VWindow window = getWidget();
@@ -274,13 +280,14 @@ public class WindowConnector extends AbstractComponentContainerConnector
}
}
+ @Override
public void postLayout() {
minWidthChecked = false;
VWindow window = getWidget();
if (window.centered) {
window.center();
}
- window.updateShadowSizeAndPosition();
+ window.sizeOrPositionUpdated();
}
@Override
diff --git a/src/com/vaadin/terminal/gwt/client/ui/window/WindowServerRpc.java b/src/com/vaadin/terminal/gwt/client/ui/window/WindowServerRpc.java
deleted file mode 100644
index 4723c55786..0000000000
--- a/src/com/vaadin/terminal/gwt/client/ui/window/WindowServerRpc.java
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-package com.vaadin.terminal.gwt.client.ui.window;
-
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.ui.ClickRpc;
-
-public interface WindowServerRpc extends ClickRpc, ServerRpc {
-} \ No newline at end of file
diff --git a/src/com/vaadin/terminal/gwt/server/AbstractApplicationPortlet.java b/src/com/vaadin/terminal/gwt/server/AbstractApplicationPortlet.java
index c2f887674a..363f7e4869 100644
--- a/src/com/vaadin/terminal/gwt/server/AbstractApplicationPortlet.java
+++ b/src/com/vaadin/terminal/gwt/server/AbstractApplicationPortlet.java
@@ -25,7 +25,6 @@ import javax.portlet.ActionResponse;
import javax.portlet.EventRequest;
import javax.portlet.EventResponse;
import javax.portlet.GenericPortlet;
-import javax.portlet.MimeResponse;
import javax.portlet.PortletConfig;
import javax.portlet.PortletContext;
import javax.portlet.PortletException;
@@ -64,6 +63,8 @@ import com.vaadin.ui.Root;
public abstract class AbstractApplicationPortlet extends GenericPortlet
implements Constants {
+ public static final String RESOURCE_URL_ID = "APP";
+
public static class WrappedHttpAndPortletRequest extends
WrappedPortletRequest {
@@ -175,15 +176,12 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
this.portlet = portlet;
}
+ @Override
public void criticalNotification(WrappedRequest request,
WrappedResponse response, String cap, String msg,
String details, String outOfSyncURL) throws IOException {
- PortletRequest portletRequest = WrappedPortletRequest.cast(request)
- .getPortletRequest();
- PortletResponse portletResponse = ((WrappedPortletResponse) response)
- .getPortletResponse();
- portlet.criticalNotification(portletRequest,
- (MimeResponse) portletResponse, cap, msg, details,
+ portlet.criticalNotification(WrappedPortletRequest.cast(request),
+ (WrappedPortletResponse) response, cap, msg, details,
outOfSyncURL);
}
}
@@ -207,19 +205,19 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
// TODO Can we close the application when the portlet is removed? Do we know
// when the portlet is removed?
- private Properties applicationProperties;
-
private boolean productionMode = false;
- private DeploymentConfiguration deploymentConfiguration = new DeploymentConfiguration() {
-
+ private DeploymentConfiguration deploymentConfiguration = new AbstractDeploymentConfiguration(
+ getClass()) {
+ @Override
public String getConfiguredWidgetset(WrappedRequest request) {
String widgetset = getApplicationOrSystemProperty(
PARAMETER_WIDGETSET, null);
if (widgetset == null) {
- // If no widgetset defined for the application, check the portal
+ // If no widgetset defined for the application, check the
+ // portal
// property
widgetset = WrappedPortletRequest.cast(request)
.getPortalProperty(PORTAL_PARAMETER_VAADIN_WIDGETSET);
@@ -233,6 +231,7 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
return widgetset;
}
+ @Override
public String getConfiguredTheme(WrappedRequest request) {
// is the default theme defined by the portal?
@@ -247,12 +246,7 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
return themeName;
}
- public String getApplicationOrSystemProperty(String propertyName,
- String defaultValue) {
- return AbstractApplicationPortlet.this
- .getApplicationOrSystemProperty(propertyName, defaultValue);
- }
-
+ @Override
public boolean isStandalone(WrappedRequest request) {
return false;
}
@@ -272,6 +266,7 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
* be a VAADIN directory). Does not end with a slash (/).
*/
+ @Override
public String getStaticFileLocation(WrappedRequest request) {
String staticFileLocation = WrappedPortletRequest.cast(request)
.getPortalProperty(
@@ -289,17 +284,17 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
}
}
- public ClassLoader getClassLoader() {
- // Custom class loaders not currently supported in portlets (see
- // #8574)
- return null;
+ @Override
+ public String getMimeType(String resourceName) {
+ return getPortletContext().getMimeType(resourceName);
}
};
@Override
public void init(PortletConfig config) throws PortletException {
super.init(config);
- applicationProperties = new Properties();
+ Properties applicationProperties = getDeploymentConfiguration()
+ .getInitParameters();
// Read default parameters from the context
final PortletContext context = config.getPortletContext();
@@ -323,7 +318,7 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
}
private void checkCrossSiteProtection() {
- if (getApplicationOrSystemProperty(
+ if (getDeploymentConfiguration().getApplicationOrSystemProperty(
SERVLET_PARAMETER_DISABLE_XSRF_PROTECTION, "false").equals(
"true")) {
/*
@@ -338,8 +333,8 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
// TODO Identical code in AbstractApplicationServlet -> refactor
// Check if the application is in production mode.
// We are in production mode if productionMode=true
- if (getApplicationOrSystemProperty(SERVLET_PARAMETER_PRODUCTION_MODE,
- "false").equals("true")) {
+ if (getDeploymentConfiguration().getApplicationOrSystemProperty(
+ SERVLET_PARAMETER_PRODUCTION_MODE, "false").equals("true")) {
productionMode = true;
}
@@ -350,101 +345,27 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
}
}
- /**
- * Gets an application property value.
- *
- * @param parameterName
- * the Name or the parameter.
- * @return String value or null if not found
- */
- protected String getApplicationProperty(String parameterName) {
-
- String val = applicationProperties.getProperty(parameterName);
- if (val != null) {
- return val;
- }
-
- // Try lower case application properties for backward compatibility with
- // 3.0.2 and earlier
- val = applicationProperties.getProperty(parameterName.toLowerCase());
-
- return val;
- }
-
- /**
- * Gets an system property value.
- *
- * @param parameterName
- * the Name or the parameter.
- * @return String value or null if not found
- */
- protected String getSystemProperty(String parameterName) {
- String val = null;
-
- String pkgName;
- final Package pkg = getClass().getPackage();
- if (pkg != null) {
- pkgName = pkg.getName();
- } else {
- final String className = getClass().getName();
- pkgName = new String(className.toCharArray(), 0,
- className.lastIndexOf('.'));
- }
- val = System.getProperty(pkgName + "." + parameterName);
- if (val != null) {
- return val;
- }
-
- // Try lowercased system properties
- val = System.getProperty(pkgName + "." + parameterName.toLowerCase());
- return val;
- }
-
- /**
- * Gets an application or system property value.
- *
- * @param parameterName
- * the Name or the parameter.
- * @param defaultValue
- * the Default to be used.
- * @return String value or default if not found
- */
- protected String getApplicationOrSystemProperty(String parameterName,
- String defaultValue) {
-
- String val = null;
-
- // Try application properties
- val = getApplicationProperty(parameterName);
- if (val != null) {
- return val;
- }
-
- // Try system properties
- val = getSystemProperty(parameterName);
- if (val != null) {
- return val;
- }
-
- return defaultValue;
- }
-
protected enum RequestType {
- FILE_UPLOAD, UIDL, RENDER, STATIC_FILE, APPLICATION_RESOURCE, DUMMY, EVENT, ACTION, UNKNOWN, BROWSER_DETAILS;
+ FILE_UPLOAD, UIDL, RENDER, STATIC_FILE, APPLICATION_RESOURCE, DUMMY, EVENT, ACTION, UNKNOWN, BROWSER_DETAILS, CONNECTOR_RESOURCE;
}
- protected RequestType getRequestType(PortletRequest request) {
+ protected RequestType getRequestType(WrappedPortletRequest wrappedRequest) {
+ PortletRequest request = wrappedRequest.getPortletRequest();
if (request instanceof RenderRequest) {
return RequestType.RENDER;
} else if (request instanceof ResourceRequest) {
ResourceRequest resourceRequest = (ResourceRequest) request;
- if (isUIDLRequest(resourceRequest)) {
+ if (ServletPortletHelper.isUIDLRequest(wrappedRequest)) {
return RequestType.UIDL;
- } else if (isBrowserDetailsRequeset(resourceRequest)) {
+ } else if (isBrowserDetailsRequest(resourceRequest)) {
return RequestType.BROWSER_DETAILS;
- } else if (isFileUploadRequest(resourceRequest)) {
+ } else if (ServletPortletHelper.isFileUploadRequest(wrappedRequest)) {
return RequestType.FILE_UPLOAD;
- } else if (isApplicationResourceRequest(resourceRequest)) {
+ } else if (ServletPortletHelper
+ .isConnectorResourceRequest(wrappedRequest)) {
+ return RequestType.CONNECTOR_RESOURCE;
+ } else if (ServletPortletHelper
+ .isApplicationResourceRequest(wrappedRequest)) {
return RequestType.APPLICATION_RESOURCE;
} else if (isDummyRequest(resourceRequest)) {
return RequestType.DUMMY;
@@ -459,30 +380,16 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
return RequestType.UNKNOWN;
}
- private boolean isBrowserDetailsRequeset(ResourceRequest request) {
+ private boolean isBrowserDetailsRequest(ResourceRequest request) {
return request.getResourceID() != null
&& request.getResourceID().equals("browserDetails");
}
- private boolean isApplicationResourceRequest(ResourceRequest request) {
- return request.getResourceID() != null
- && request.getResourceID().startsWith("APP");
- }
-
- private boolean isUIDLRequest(ResourceRequest request) {
- return request.getResourceID() != null
- && request.getResourceID().equals("UIDL");
- }
-
private boolean isDummyRequest(ResourceRequest request) {
return request.getResourceID() != null
&& request.getResourceID().equals("DUMMY");
}
- private boolean isFileUploadRequest(ResourceRequest request) {
- return "UPLOAD".equals(request.getResourceID());
- }
-
/**
* Returns true if the servlet is running in production mode. Production
* mode disables all debug facilities.
@@ -506,7 +413,7 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
WrappedPortletResponse wrappedResponse = new WrappedPortletResponse(
response, getDeploymentConfiguration());
- RequestType requestType = getRequestType(request);
+ RequestType requestType = getRequestType(wrappedRequest);
if (requestType == RequestType.UNKNOWN) {
handleUnknownRequest(request, response);
@@ -554,6 +461,12 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
PortletCommunicationManager applicationManager = applicationContext
.getApplicationManager(application);
+ if (requestType == RequestType.CONNECTOR_RESOURCE) {
+ applicationManager.serveConnectorResource(wrappedRequest,
+ wrappedResponse);
+ return;
+ }
+
/* Update browser information from request */
applicationContext.getBrowser().updateRequestDetails(
wrappedRequest);
@@ -638,8 +551,10 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
/* Handle the request */
if (requestType == RequestType.FILE_UPLOAD) {
- applicationManager.handleFileUpload(root, wrappedRequest,
- wrappedResponse);
+ // Root is resolved in handleFileUpload by
+ // PortletCommunicationManager
+ applicationManager.handleFileUpload(application,
+ wrappedRequest, wrappedResponse);
return;
} else if (requestType == RequestType.BROWSER_DETAILS) {
applicationManager.handleBrowserDetailsRequest(
@@ -673,7 +588,8 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
getLogger()
.fine("General security exception, the security key was probably incorrect.");
} catch (final Throwable e) {
- handleServiceException(request, response, application, e);
+ handleServiceException(wrappedRequest, wrappedResponse,
+ application, e);
} finally {
// Notifies transaction end
try {
@@ -727,7 +643,7 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
}
- private DeploymentConfiguration getDeploymentConfiguration() {
+ protected DeploymentConfiguration getDeploymentConfiguration() {
return deploymentConfiguration;
}
@@ -871,7 +787,8 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
application.setLocale(locale);
// No application URL when running inside a portlet
application.start(new ApplicationStartEvent(null,
- applicationProperties, context, isProductionMode()));
+ getDeploymentConfiguration().getInitParameters(),
+ context, isProductionMode()));
}
}
@@ -995,11 +912,6 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
}
}
- protected ClassLoader getClassLoader() throws PortletException {
- // TODO Add support for custom class loader
- return getClass().getClassLoader();
- }
-
/**
* Get system messages from the current application class
*
@@ -1031,16 +943,16 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
return Application.getSystemMessages();
}
- private void handleServiceException(PortletRequest request,
- PortletResponse response, Application application, Throwable e)
- throws IOException, PortletException {
+ private void handleServiceException(WrappedPortletRequest request,
+ WrappedPortletResponse response, Application application,
+ Throwable e) throws IOException, PortletException {
// TODO Check that this error handler is working when running inside a
// portlet
// if this was an UIDL request, response UIDL back to client
if (getRequestType(request) == RequestType.UIDL) {
Application.SystemMessages ci = getSystemMessages();
- criticalNotification(request, (ResourceResponse) response,
+ criticalNotification(request, response,
ci.getInternalErrorCaption(), ci.getInternalErrorMessage(),
null, ci.getInternalErrorURL());
if (application != null) {
@@ -1065,6 +977,7 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
this.throwable = throwable;
}
+ @Override
public Throwable getThrowable() {
return throwable;
}
@@ -1093,9 +1006,9 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
* @throws IOException
* if the writing failed due to input/output error.
*/
- void criticalNotification(PortletRequest request, MimeResponse response,
- String caption, String message, String details, String url)
- throws IOException {
+ void criticalNotification(WrappedPortletRequest request,
+ WrappedPortletResponse response, String caption, String message,
+ String details, String url) throws IOException {
// clients JS app is still running, but server application either
// no longer exists or it might fail to perform reasonably.
@@ -1121,7 +1034,7 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet
// Set the response type
response.setContentType("application/json; charset=UTF-8");
- final OutputStream out = response.getPortletOutputStream();
+ final OutputStream out = response.getOutputStream();
final PrintWriter outWriter = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(out, "UTF-8")));
outWriter.print("for(;;);[{\"changes\":[], \"meta\" : {"
diff --git a/src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java b/src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java
index f7e46a7ca9..a0e807801e 100644
--- a/src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java
+++ b/src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java
@@ -10,7 +10,6 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Serializable;
-import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
@@ -74,6 +73,7 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
this.servlet = servlet;
}
+ @Override
public void criticalNotification(WrappedRequest request,
WrappedResponse response, String cap, String msg,
String details, String outOfSyncURL) throws IOException {
@@ -87,16 +87,16 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
// TODO Move some (all?) of the constants to a separate interface (shared
// with portlet)
- private Properties applicationProperties;
-
private boolean productionMode = false;
private final String resourcePath = null;
private int resourceCacheTime = 3600;
- private DeploymentConfiguration deploymentConfiguration = new DeploymentConfiguration() {
+ private DeploymentConfiguration deploymentConfiguration = new AbstractDeploymentConfiguration(
+ getClass()) {
+ @Override
public String getStaticFileLocation(WrappedRequest request) {
HttpServletRequest servletRequest = WrappedHttpServletRequest
.cast(request);
@@ -104,38 +104,30 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
.getStaticFilesLocation(servletRequest);
}
+ @Override
public String getConfiguredWidgetset(WrappedRequest request) {
return getApplicationOrSystemProperty(
AbstractApplicationServlet.PARAMETER_WIDGETSET,
AbstractApplicationServlet.DEFAULT_WIDGETSET);
}
+ @Override
public String getConfiguredTheme(WrappedRequest request) {
// Use the default
return AbstractApplicationServlet.getDefaultTheme();
}
- public String getApplicationOrSystemProperty(String propertyName,
- String defaultValue) {
- return AbstractApplicationServlet.this
- .getApplicationOrSystemProperty(propertyName, defaultValue);
- }
-
+ @Override
public boolean isStandalone(WrappedRequest request) {
return true;
}
- public ClassLoader getClassLoader() {
- try {
- return AbstractApplicationServlet.this.getClassLoader();
- } catch (ServletException e) {
- throw new RuntimeException(e);
- }
+ @Override
+ public String getMimeType(String resourceName) {
+ return getServletContext().getMimeType(resourceName);
}
};
- static final String UPLOAD_URL_PREFIX = "APP/UPLOAD/";
-
/**
* Called by the servlet container to indicate to a servlet that the servlet
* is being placed into service.
@@ -148,11 +140,11 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
* servlet's normal operation.
*/
@Override
- @SuppressWarnings("unchecked")
public void init(javax.servlet.ServletConfig servletConfig)
throws javax.servlet.ServletException {
super.init(servletConfig);
- applicationProperties = new Properties();
+ Properties applicationProperties = getDeploymentConfiguration()
+ .getInitParameters();
// Read default parameters from server.xml
final ServletContext context = servletConfig.getServletContext();
@@ -177,7 +169,7 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
}
private void checkCrossSiteProtection() {
- if (getApplicationOrSystemProperty(
+ if (getDeploymentConfiguration().getApplicationOrSystemProperty(
SERVLET_PARAMETER_DISABLE_XSRF_PROTECTION, "false").equals(
"true")) {
/*
@@ -191,8 +183,8 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
private void checkProductionMode() {
// Check if the application is in production mode.
// We are in production mode if productionMode=true
- if (getApplicationOrSystemProperty(SERVLET_PARAMETER_PRODUCTION_MODE,
- "false").equals("true")) {
+ if (getDeploymentConfiguration().getApplicationOrSystemProperty(
+ SERVLET_PARAMETER_PRODUCTION_MODE, "false").equals("true")) {
productionMode = true;
}
@@ -206,8 +198,9 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
private void checkResourceCacheTime() {
// Check if the browser caching time has been set in web.xml
try {
- String rct = getApplicationOrSystemProperty(
- SERVLET_PARAMETER_RESOURCE_CACHE_TIME, "3600");
+ String rct = getDeploymentConfiguration()
+ .getApplicationOrSystemProperty(
+ SERVLET_PARAMETER_RESOURCE_CACHE_TIME, "3600");
resourceCacheTime = Integer.parseInt(rct);
} catch (NumberFormatException nfe) {
// Default is 1h
@@ -217,85 +210,6 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
}
/**
- * Gets an application property value.
- *
- * @param parameterName
- * the Name or the parameter.
- * @return String value or null if not found
- */
- protected String getApplicationProperty(String parameterName) {
-
- String val = applicationProperties.getProperty(parameterName);
- if (val != null) {
- return val;
- }
-
- // Try lower case application properties for backward compatibility with
- // 3.0.2 and earlier
- val = applicationProperties.getProperty(parameterName.toLowerCase());
-
- return val;
- }
-
- /**
- * Gets an system property value.
- *
- * @param parameterName
- * the Name or the parameter.
- * @return String value or null if not found
- */
- protected String getSystemProperty(String parameterName) {
- String val = null;
-
- String pkgName;
- final Package pkg = getClass().getPackage();
- if (pkg != null) {
- pkgName = pkg.getName();
- } else {
- final String className = getClass().getName();
- pkgName = new String(className.toCharArray(), 0,
- className.lastIndexOf('.'));
- }
- val = System.getProperty(pkgName + "." + parameterName);
- if (val != null) {
- return val;
- }
-
- // Try lowercased system properties
- val = System.getProperty(pkgName + "." + parameterName.toLowerCase());
- return val;
- }
-
- /**
- * Gets an application or system property value.
- *
- * @param parameterName
- * the Name or the parameter.
- * @param defaultValue
- * the Default to be used.
- * @return String value or default if not found
- */
- String getApplicationOrSystemProperty(String parameterName,
- String defaultValue) {
-
- String val = null;
-
- // Try application properties
- val = getApplicationProperty(parameterName);
- if (val != null) {
- return val;
- }
-
- // Try system properties
- val = getSystemProperty(parameterName);
- if (val != null) {
- return val;
- }
-
- return defaultValue;
- }
-
- /**
* Returns true if the servlet is running in production mode. Production
* mode disables all debug facilities.
*
@@ -396,6 +310,11 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
CommunicationManager applicationManager = webApplicationContext
.getApplicationManager(application, this);
+ if (requestType == RequestType.CONNECTOR_RESOURCE) {
+ applicationManager.serveConnectorResource(request, response);
+ return;
+ }
+
/* Update browser information from the request */
webApplicationContext.getBrowser().updateRequestDetails(request);
@@ -421,11 +340,9 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
/* Handle the request */
if (requestType == RequestType.FILE_UPLOAD) {
- Root root = application.getRootForRequest(request);
- if (root == null) {
- throw new ServletException(ERROR_NO_ROOT_FOUND);
- }
- applicationManager.handleFileUpload(root, request, response);
+ // Root is resolved in communication manager
+ applicationManager.handleFileUpload(application, request,
+ response);
return;
} else if (requestType == RequestType.UIDL) {
Root root = application.getRootForRequest(request);
@@ -536,8 +453,8 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
* @throws IOException
*/
private boolean ensureCookiesEnabled(RequestType requestType,
- HttpServletRequest request, HttpServletResponse response)
- throws IOException {
+ WrappedHttpServletRequest request,
+ WrappedHttpServletResponse response) throws IOException {
if (requestType == RequestType.UIDL && !isRepaintAll(request)) {
// In all other but the first UIDL request a cookie should be
// returned by the browser.
@@ -554,30 +471,6 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
return true;
}
- protected ClassLoader getClassLoader() throws ServletException {
- // Gets custom class loader
- final String classLoaderName = getApplicationOrSystemProperty(
- "ClassLoader", null);
- ClassLoader classLoader;
- if (classLoaderName == null) {
- classLoader = getClass().getClassLoader();
- } else {
- try {
- final Class<?> classLoaderClass = getClass().getClassLoader()
- .loadClass(classLoaderName);
- final Constructor<?> c = classLoaderClass
- .getConstructor(new Class[] { ClassLoader.class });
- classLoader = (ClassLoader) c
- .newInstance(new Object[] { getClass().getClassLoader() });
- } catch (final Exception e) {
- throw new ServletException(
- "Could not find specified class loader: "
- + classLoaderName, e);
- }
- }
- return classLoader;
- }
-
/**
* Send a notification to client's application. Used to notify client of
* critical errors, session expiration and more. Server has no knowledge of
@@ -602,11 +495,11 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
* @throws IOException
* if the writing failed due to input/output error.
*/
- protected void criticalNotification(HttpServletRequest request,
+ protected void criticalNotification(WrappedHttpServletRequest request,
HttpServletResponse response, String caption, String message,
String details, String url) throws IOException {
- if (isUIDLRequest(request)) {
+ if (ServletPortletHelper.isUIDLRequest(request)) {
if (caption != null) {
caption = "\"" + JsonPaintTarget.escapeJSON(caption) + "\"";
@@ -828,9 +721,9 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
return newApplication;
}
- private void handleServiceException(HttpServletRequest request,
- HttpServletResponse response, Application application, Throwable e)
- throws IOException, ServletException {
+ private void handleServiceException(WrappedHttpServletRequest request,
+ WrappedHttpServletResponse response, Application application,
+ Throwable e) throws IOException, ServletException {
// if this was an UIDL request, response UIDL back to client
if (getRequestType(request) == RequestType.UIDL) {
Application.SystemMessages ci = getSystemMessages();
@@ -883,8 +776,9 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
return DEFAULT_THEME_NAME;
}
- void handleServiceSessionExpired(HttpServletRequest request,
- HttpServletResponse response) throws IOException, ServletException {
+ void handleServiceSessionExpired(WrappedHttpServletRequest request,
+ WrappedHttpServletResponse response) throws IOException,
+ ServletException {
if (isOnUnloadRequest(request)) {
/*
@@ -924,8 +818,10 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
}
- private void handleServiceSecurityException(HttpServletRequest request,
- HttpServletResponse response) throws IOException, ServletException {
+ private void handleServiceSecurityException(
+ WrappedHttpServletRequest request,
+ WrappedHttpServletResponse response) throws IOException,
+ ServletException {
if (isOnUnloadRequest(request)) {
/*
* Request was an unload request (e.g. window close event) and the
@@ -991,8 +887,8 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
Locale locale = request.getLocale();
application.setLocale(locale);
application.start(new ApplicationStartEvent(applicationUrl,
- applicationProperties, webApplicationContext,
- isProductionMode()));
+ getDeploymentConfiguration().getInitParameters(),
+ webApplicationContext, isProductionMode()));
}
}
@@ -1054,7 +950,8 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
// strip leading "/" otherwise stream from JAR wont work
filename = filename.substring(1);
- resourceUrl = getClassLoader().getResource(filename);
+ resourceUrl = getDeploymentConfiguration().getClassLoader()
+ .getResource(filename);
if (resourceUrl == null) {
// cannot serve requested file
@@ -1250,22 +1147,22 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
}
protected enum RequestType {
- FILE_UPLOAD, BROWSER_DETAILS, UIDL, OTHER, STATIC_FILE, APPLICATION_RESOURCE;
+ FILE_UPLOAD, BROWSER_DETAILS, UIDL, OTHER, STATIC_FILE, APPLICATION_RESOURCE, CONNECTOR_RESOURCE;
}
- protected RequestType getRequestType(HttpServletRequest request) {
- if (isFileUploadRequest(request)) {
+ protected RequestType getRequestType(WrappedHttpServletRequest request) {
+ if (ServletPortletHelper.isFileUploadRequest(request)) {
return RequestType.FILE_UPLOAD;
+ } else if (ServletPortletHelper.isConnectorResourceRequest(request)) {
+ return RequestType.CONNECTOR_RESOURCE;
} else if (isBrowserDetailsRequest(request)) {
return RequestType.BROWSER_DETAILS;
- } else if (isUIDLRequest(request)) {
+ } else if (ServletPortletHelper.isUIDLRequest(request)) {
return RequestType.UIDL;
} else if (isStaticResourceRequest(request)) {
return RequestType.STATIC_FILE;
- } else if (isApplicationRequest(request)) {
+ } else if (ServletPortletHelper.isApplicationResourceRequest(request)) {
return RequestType.APPLICATION_RESOURCE;
- } else if (request.getHeader("FileId") != null) {
- return RequestType.FILE_UPLOAD;
}
return RequestType.OTHER;
@@ -1276,14 +1173,6 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
&& request.getParameter("browserDetails") != null;
}
- private boolean isApplicationRequest(HttpServletRequest request) {
- String path = getRequestPathInfo(request);
- if (path != null && path.startsWith("/APP/")) {
- return true;
- }
- return false;
- }
-
private boolean isStaticResourceRequest(HttpServletRequest request) {
String pathInfo = request.getPathInfo();
if (pathInfo == null || pathInfo.length() <= 10) {
@@ -1301,37 +1190,6 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
return false;
}
- private boolean isUIDLRequest(HttpServletRequest request) {
- String pathInfo = getRequestPathInfo(request);
-
- if (pathInfo == null) {
- return false;
- }
-
- String compare = AJAX_UIDL_URI;
-
- if (pathInfo.startsWith(compare + "/") || pathInfo.endsWith(compare)) {
- return true;
- }
-
- return false;
- }
-
- private boolean isFileUploadRequest(HttpServletRequest request) {
- String pathInfo = getRequestPathInfo(request);
-
- if (pathInfo == null) {
- return false;
- }
-
- if (pathInfo.startsWith("/" + UPLOAD_URL_PREFIX)) {
- return true;
- }
-
- return false;
-
- }
-
private boolean isOnUnloadRequest(HttpServletRequest request) {
return request.getParameter(ApplicationConnection.PARAM_UNLOADBURST) != null;
}
@@ -1410,8 +1268,9 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
HttpServletRequest request) {
String staticFileLocation;
// if property is defined in configurations, use that
- staticFileLocation = getApplicationOrSystemProperty(
- PARAMETER_VAADIN_RESOURCES, null);
+ staticFileLocation = getDeploymentConfiguration()
+ .getApplicationOrSystemProperty(PARAMETER_VAADIN_RESOURCES,
+ null);
if (staticFileLocation != null) {
return staticFileLocation;
}
@@ -1682,6 +1541,7 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
this.throwable = throwable;
}
+ @Override
public Throwable getThrowable() {
return throwable;
}
diff --git a/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java b/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java
index 7cad8e3a33..ba1b3cadb6 100644
--- a/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java
+++ b/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java
@@ -18,6 +18,8 @@ import java.io.StringWriter;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.security.GeneralSecurityException;
import java.text.CharacterIterator;
import java.text.DateFormat;
@@ -42,13 +44,21 @@ import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.servlet.http.HttpServletResponse;
+
import com.vaadin.Application;
import com.vaadin.Application.SystemMessages;
import com.vaadin.RootRequiresMoreInformationException;
import com.vaadin.Version;
+import com.vaadin.annotations.JavaScript;
+import com.vaadin.annotations.StyleSheet;
import com.vaadin.external.json.JSONArray;
import com.vaadin.external.json.JSONException;
import com.vaadin.external.json.JSONObject;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.communication.MethodInvocation;
+import com.vaadin.shared.communication.SharedState;
+import com.vaadin.shared.communication.UidlValue;
import com.vaadin.terminal.AbstractClientConnector;
import com.vaadin.terminal.CombinedRequest;
import com.vaadin.terminal.LegacyPaint;
@@ -65,10 +75,6 @@ import com.vaadin.terminal.VariableOwner;
import com.vaadin.terminal.WrappedRequest;
import com.vaadin.terminal.WrappedResponse;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.communication.MethodInvocation;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
-import com.vaadin.terminal.gwt.client.communication.UidlValue;
import com.vaadin.terminal.gwt.server.BootstrapHandler.BootstrapContext;
import com.vaadin.terminal.gwt.server.ComponentSizeValidator.InvalidLayout;
import com.vaadin.terminal.gwt.server.RpcManager.RpcInvocationException;
@@ -154,6 +160,12 @@ public abstract class AbstractCommunicationManager implements Serializable {
private Connector highlightedConnector;
+ private Map<String, Class<?>> connectorResourceContexts = new HashMap<String, Class<?>>();
+
+ private Map<String, Map<String, StreamVariable>> pidToNameToStreamVariable;
+
+ private Map<StreamVariable, String> streamVariableToSeckey;
+
/**
* TODO New constructor - document me!
*
@@ -204,7 +216,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
*/
protected void doHandleSimpleMultipartFileUpload(WrappedRequest request,
WrappedResponse response, StreamVariable streamVariable,
- String variableName, Connector owner, String boundary)
+ String variableName, ClientConnector owner, String boundary)
throws IOException {
// multipart parsing, supports only one file for request, but that is
// fine for our current terminal
@@ -267,14 +279,16 @@ public abstract class AbstractCommunicationManager implements Serializable {
final String mimeType = rawMimeType;
try {
- /*
- * safe cast as in GWT terminal all variable owners are expected to
- * be components.
- */
- Component component = (Component) owner;
- if (component.isReadOnly()) {
+ // TODO Shouldn't this check connectorEnabled?
+ if (owner == null) {
throw new UploadException(
- "Warning: file upload ignored because the componente was read-only");
+ "File upload ignored because the connector for the stream variable was not found");
+ }
+ if (owner instanceof Component) {
+ if (((Component) owner).isReadOnly()) {
+ throw new UploadException(
+ "Warning: file upload ignored because the componente was read-only");
+ }
}
boolean forgetVariable = streamToReceiver(simpleMultiPartReader,
streamVariable, filename, mimeType, contentLength);
@@ -303,7 +317,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
*/
protected void doHandleXhrFilePost(WrappedRequest request,
WrappedResponse response, StreamVariable streamVariable,
- String variableName, Connector owner, int contentLength)
+ String variableName, ClientConnector owner, int contentLength)
throws IOException {
// These are unknown in filexhr ATM, maybe add to Accept header that
@@ -497,10 +511,11 @@ public abstract class AbstractCommunicationManager implements Serializable {
* found
* @throws IOException
* @throws InvalidUIDLSecurityKeyException
+ * @throws JSONException
*/
public void handleUidlRequest(WrappedRequest request,
WrappedResponse response, Callback callback, Root root)
- throws IOException, InvalidUIDLSecurityKeyException {
+ throws IOException, InvalidUIDLSecurityKeyException, JSONException {
checkWidgetsetVersion(request);
requestThemeName = request.getParameter("theme");
@@ -623,6 +638,23 @@ public abstract class AbstractCommunicationManager implements Serializable {
// Remove connectors that have been detached from the application during
// handling of the request
root.getConnectorTracker().cleanConnectorMap();
+
+ if (pidToNameToStreamVariable != null) {
+ Iterator<String> iterator = pidToNameToStreamVariable.keySet()
+ .iterator();
+ while (iterator.hasNext()) {
+ String connectorId = iterator.next();
+ if (root.getConnectorTracker().getConnector(connectorId) == null) {
+ // Owner is no longer attached to the application
+ Map<String, StreamVariable> removed = pidToNameToStreamVariable
+ .get(connectorId);
+ for (String key : removed.keySet()) {
+ streamVariableToSeckey.remove(removed.get(key));
+ }
+ iterator.remove();
+ }
+ }
+ }
}
protected void highlightConnector(Connector highlightedConnector) {
@@ -696,11 +728,12 @@ public abstract class AbstractCommunicationManager implements Serializable {
* @param analyzeLayouts
* @throws PaintException
* @throws IOException
+ * @throws JSONException
*/
private void paintAfterVariableChanges(WrappedRequest request,
WrappedResponse response, Callback callback, boolean repaintAll,
final PrintWriter outWriter, Root root, boolean analyzeLayouts)
- throws PaintException, IOException {
+ throws PaintException, IOException, JSONException {
// Removes application if it has stopped during variable changes
if (!application.isRunning()) {
@@ -764,7 +797,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
@SuppressWarnings("unchecked")
public void writeUidlResponse(WrappedRequest request, boolean repaintAll,
final PrintWriter outWriter, Root root, boolean analyzeLayouts)
- throws PaintException {
+ throws PaintException, JSONException {
ArrayList<ClientConnector> dirtyVisibleConnectors = new ArrayList<ClientConnector>();
Application application = root.getApplication();
// Paints components
@@ -1095,10 +1128,14 @@ public abstract class AbstractCommunicationManager implements Serializable {
boolean typeMappingsOpen = false;
ClientCache clientCache = getClientCache(root);
+ List<Class<? extends ClientConnector>> newConnectorTypes = new ArrayList<Class<? extends ClientConnector>>();
+
for (Class<? extends ClientConnector> class1 : usedClientConnectors) {
if (clientCache.cache(class1)) {
// client does not know the mapping key for this type, send
// mapping to client
+ newConnectorTypes.add(class1);
+
if (!typeMappingsOpen) {
typeMappingsOpen = true;
outWriter.print(", \"typeMappings\" : { ");
@@ -1142,6 +1179,58 @@ public abstract class AbstractCommunicationManager implements Serializable {
}
}
+ /*
+ * Ensure super classes come before sub classes to get script dependency
+ * order right. Sub class @JavaScript might assume that @JavaScript
+ * defined by super class is already loaded.
+ */
+ Collections.sort(newConnectorTypes, new Comparator<Class<?>>() {
+ @Override
+ public int compare(Class<?> o1, Class<?> o2) {
+ // TODO optimize using Class.isAssignableFrom?
+ return hierarchyDepth(o1) - hierarchyDepth(o2);
+ }
+
+ private int hierarchyDepth(Class<?> type) {
+ if (type == Object.class) {
+ return 0;
+ } else {
+ return hierarchyDepth(type.getSuperclass()) + 1;
+ }
+ }
+ });
+
+ List<String> scriptDependencies = new ArrayList<String>();
+ List<String> styleDependencies = new ArrayList<String>();
+
+ for (Class<? extends ClientConnector> class1 : newConnectorTypes) {
+ JavaScript jsAnnotation = class1.getAnnotation(JavaScript.class);
+ if (jsAnnotation != null) {
+ for (String resource : jsAnnotation.value()) {
+ scriptDependencies.add(registerResource(resource, class1));
+ }
+ }
+
+ StyleSheet styleAnnotation = class1.getAnnotation(StyleSheet.class);
+ if (styleAnnotation != null) {
+ for (String resource : styleAnnotation.value()) {
+ styleDependencies.add(registerResource(resource, class1));
+ }
+ }
+ }
+
+ // Include script dependencies in output if there are any
+ if (!scriptDependencies.isEmpty()) {
+ outWriter.print(", \"scriptDependencies\": "
+ + new JSONArray(scriptDependencies).toString());
+ }
+
+ // Include style dependencies in output if there are any
+ if (!styleDependencies.isEmpty()) {
+ outWriter.print(", \"styleDependencies\": "
+ + new JSONArray(styleDependencies).toString());
+ }
+
// add any pending locale definitions requested by the client
printLocaleDeclarations(outWriter);
@@ -1153,6 +1242,54 @@ public abstract class AbstractCommunicationManager implements Serializable {
}
/**
+ * Resolves a resource URI, registering the URI with this
+ * {@code AbstractCommunicationManager} if needed and returns a fully
+ * qualified URI.
+ */
+ private String registerResource(String resourceUri, Class<?> context) {
+ try {
+ URI uri = new URI(resourceUri);
+ String protocol = uri.getScheme();
+
+ if ("connector".equals(protocol)) {
+ // Strip initial slash
+ String resourceName = uri.getPath().substring(1);
+ return registerConnectorResource(resourceName, context);
+ }
+
+ if (protocol != null || uri.getHost() != null) {
+ return resourceUri;
+ }
+
+ // Bare path interpreted as connector resource
+ return registerConnectorResource(resourceUri, context);
+ } catch (URISyntaxException e) {
+ getLogger().log(Level.WARNING,
+ "Could not parse resource url " + resourceUri, e);
+ return resourceUri;
+ }
+ }
+
+ private String registerConnectorResource(String name, Class<?> context) {
+ synchronized (connectorResourceContexts) {
+ // Add to map of names accepted by serveConnectorResource
+ if (connectorResourceContexts.containsKey(name)) {
+ Class<?> oldContext = connectorResourceContexts.get(name);
+ if (oldContext != context) {
+ getLogger().warning(
+ "Resource " + name + " defined by both " + context
+ + " and " + oldContext + ". Resource from "
+ + oldContext + " will be used.");
+ }
+ } else {
+ connectorResourceContexts.put(name, context);
+ }
+ }
+
+ return ApplicationConnection.CONNECTOR_PROTOCOL_PREFIX + "/" + name;
+ }
+
+ /**
* Adds the performance timing data (used by TestBench 3) to the UIDL
* response.
*/
@@ -1194,6 +1331,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
// before children start calling e.g. updateCaption
Collections.sort(paintables, new Comparator<Component>() {
+ @Override
public int compare(Component c1, Component c2) {
int depth1 = 0;
while (c1.getParent() != null) {
@@ -1280,14 +1418,17 @@ public abstract class AbstractCommunicationManager implements Serializable {
private static class NullIterator<E> implements Iterator<E> {
+ @Override
public boolean hasNext() {
return false;
}
+ @Override
public E next() {
return null;
}
+ @Override
public void remove() {
}
@@ -1380,7 +1521,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
private boolean handleVariables(WrappedRequest request,
WrappedResponse response, Callback callback,
Application application2, Root root) throws IOException,
- InvalidUIDLSecurityKeyException {
+ InvalidUIDLSecurityKeyException, JSONException {
boolean success = true;
String changes = getRequestPayload(request);
@@ -1761,6 +1902,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
this.throwable = throwable;
}
+ @Override
public Throwable getThrowable() {
return throwable;
}
@@ -2162,10 +2304,57 @@ public abstract class AbstractCommunicationManager implements Serializable {
}
- abstract String getStreamVariableTargetUrl(Connector owner, String name,
- StreamVariable value);
+ public String getStreamVariableTargetUrl(ClientConnector owner,
+ String name, StreamVariable value) {
+ /*
+ * We will use the same APP/* URI space as ApplicationResources but
+ * prefix url with UPLOAD
+ *
+ * eg. APP/UPLOAD/[ROOTID]/[PID]/[NAME]/[SECKEY]
+ *
+ * SECKEY is created on each paint to make URL's unpredictable (to
+ * prevent CSRF attacks).
+ *
+ * NAME and PID from URI forms a key to fetch StreamVariable when
+ * handling post
+ */
+ String paintableId = owner.getConnectorId();
+ int rootId = owner.getRoot().getRootId();
+ String key = rootId + "/" + paintableId + "/" + name;
+
+ if (pidToNameToStreamVariable == null) {
+ pidToNameToStreamVariable = new HashMap<String, Map<String, StreamVariable>>();
+ }
+ Map<String, StreamVariable> nameToStreamVariable = pidToNameToStreamVariable
+ .get(paintableId);
+ if (nameToStreamVariable == null) {
+ nameToStreamVariable = new HashMap<String, StreamVariable>();
+ pidToNameToStreamVariable.put(paintableId, nameToStreamVariable);
+ }
+ nameToStreamVariable.put(name, value);
+
+ if (streamVariableToSeckey == null) {
+ streamVariableToSeckey = new HashMap<StreamVariable, String>();
+ }
+ String seckey = streamVariableToSeckey.get(value);
+ if (seckey == null) {
+ seckey = UUID.randomUUID().toString();
+ streamVariableToSeckey.put(value, seckey);
+ }
+
+ return ApplicationConnection.APP_PROTOCOL_PREFIX
+ + ServletPortletHelper.UPLOAD_URL_PREFIX + key + "/" + seckey;
+
+ }
- abstract protected void cleanStreamVariable(Connector owner, String name);
+ public void cleanStreamVariable(ClientConnector owner, String name) {
+ Map<String, StreamVariable> nameToStreamVar = pidToNameToStreamVariable
+ .get(owner.getConnectorId());
+ nameToStreamVar.remove(name);
+ if (nameToStreamVar.isEmpty()) {
+ pidToNameToStreamVariable.remove(owner.getConnectorId());
+ }
+ }
/**
* Gets the bootstrap handler that should be used for generating the pages
@@ -2256,9 +2445,11 @@ public abstract class AbstractCommunicationManager implements Serializable {
* @return a string with the initial UIDL message
* @throws PaintException
* if an exception occurs while painting
+ * @throws JSONException
+ * if an exception occurs while encoding output
*/
protected String getInitialUIDL(WrappedRequest request, Root root)
- throws PaintException {
+ throws PaintException, JSONException {
// TODO maybe unify writeUidlResponse()?
StringWriter sWriter = new StringWriter();
PrintWriter pWriter = new PrintWriter(sWriter);
@@ -2274,6 +2465,176 @@ public abstract class AbstractCommunicationManager implements Serializable {
}
/**
+ * Serve a connector resource from the classpath if the resource has
+ * previously been registered by calling
+ * {@link #registerResource(String, Class)}. Sending arbitrary files from
+ * the classpath is prevented by only accepting resource names that have
+ * explicitly been registered. Resources can currently only be registered by
+ * including a {@link JavaScript} or {@link StyleSheet} annotation on a
+ * Connector class.
+ *
+ * @param request
+ * @param response
+ *
+ * @throws IOException
+ */
+ public void serveConnectorResource(WrappedRequest request,
+ WrappedResponse response) throws IOException {
+
+ String pathInfo = request.getRequestPathInfo();
+ // + 2 to also remove beginning and ending slashes
+ String resourceName = pathInfo
+ .substring(ApplicationConnection.CONNECTOR_RESOURCE_PREFIX
+ .length() + 2);
+
+ final String mimetype = response.getDeploymentConfiguration()
+ .getMimeType(resourceName);
+
+ // Security check: avoid accidentally serving from the root of the
+ // classpath instead of relative to the context class
+ if (resourceName.startsWith("/")) {
+ getLogger().warning(
+ "Connector resource request starting with / rejected: "
+ + resourceName);
+ response.sendError(HttpServletResponse.SC_NOT_FOUND, resourceName);
+ return;
+ }
+
+ // Check that the resource name has been registered
+ Class<?> context;
+ synchronized (connectorResourceContexts) {
+ context = connectorResourceContexts.get(resourceName);
+ }
+
+ // Security check: don't serve resource if the name hasn't been
+ // registered in the map
+ if (context == null) {
+ getLogger().warning(
+ "Connector resource request for unknown resource rejected: "
+ + resourceName);
+ response.sendError(HttpServletResponse.SC_NOT_FOUND, resourceName);
+ return;
+ }
+
+ // Resolve file relative to the location of the context class
+ InputStream in = context.getResourceAsStream(resourceName);
+ if (in == null) {
+ getLogger().warning(
+ resourceName + " defined by " + context.getName()
+ + " not found. Verify that the file "
+ + context.getPackage().getName().replace('.', '/')
+ + '/' + resourceName
+ + " is available on the classpath.");
+ response.sendError(HttpServletResponse.SC_NOT_FOUND, resourceName);
+ return;
+ }
+
+ // TODO Check and set cache headers
+
+ OutputStream out = null;
+ try {
+ if (mimetype != null) {
+ response.setContentType(mimetype);
+ }
+
+ out = response.getOutputStream();
+
+ final byte[] buffer = new byte[Constants.DEFAULT_BUFFER_SIZE];
+
+ int bytesRead = 0;
+ while ((bytesRead = in.read(buffer)) > 0) {
+ out.write(buffer, 0, bytesRead);
+ }
+ out.flush();
+ } finally {
+ try {
+ in.close();
+ } catch (Exception e) {
+ // Do nothing
+ }
+ if (out != null) {
+ try {
+ out.close();
+ } catch (Exception e) {
+ // Do nothing
+ }
+ }
+ }
+ }
+
+ /**
+ * Handles file upload request submitted via Upload component.
+ *
+ * @param root
+ * The root for this request
+ *
+ * @see #getStreamVariableTargetUrl(ReceiverOwner, String, StreamVariable)
+ *
+ * @param request
+ * @param response
+ * @throws IOException
+ * @throws InvalidUIDLSecurityKeyException
+ */
+ public void handleFileUpload(Application application,
+ WrappedRequest request, WrappedResponse response)
+ throws IOException, InvalidUIDLSecurityKeyException {
+
+ /*
+ * URI pattern: APP/UPLOAD/[ROOTID]/[PID]/[NAME]/[SECKEY] See
+ * #createReceiverUrl
+ */
+
+ String pathInfo = request.getRequestPathInfo();
+ // strip away part until the data we are interested starts
+ int startOfData = pathInfo
+ .indexOf(ServletPortletHelper.UPLOAD_URL_PREFIX)
+ + ServletPortletHelper.UPLOAD_URL_PREFIX.length();
+ String uppUri = pathInfo.substring(startOfData);
+ String[] parts = uppUri.split("/", 4); // 0= rootid, 1 = cid, 2= name, 3
+ // = sec key
+ String rootId = parts[0];
+ String connectorId = parts[1];
+ String variableName = parts[2];
+ Root root = application.getRootById(Integer.parseInt(rootId));
+ Root.setCurrent(root);
+
+ StreamVariable streamVariable = getStreamVariable(connectorId,
+ variableName);
+ String secKey = streamVariableToSeckey.get(streamVariable);
+ if (secKey.equals(parts[3])) {
+
+ ClientConnector source = getConnector(root, connectorId);
+ String contentType = request.getContentType();
+ if (contentType.contains("boundary")) {
+ // Multipart requests contain boundary string
+ doHandleSimpleMultipartFileUpload(request, response,
+ streamVariable, variableName, source,
+ contentType.split("boundary=")[1]);
+ } else {
+ // if boundary string does not exist, the posted file is from
+ // XHR2.post(File)
+ doHandleXhrFilePost(request, response, streamVariable,
+ variableName, source, request.getContentLength());
+ }
+ } else {
+ throw new InvalidUIDLSecurityKeyException(
+ "Security key in upload post did not match!");
+ }
+
+ }
+
+ public StreamVariable getStreamVariable(String connectorId,
+ String variableName) {
+ Map<String, StreamVariable> map = pidToNameToStreamVariable
+ .get(connectorId);
+ if (map == null) {
+ return null;
+ }
+ StreamVariable streamVariable = map.get(variableName);
+ return streamVariable;
+ }
+
+ /**
* Stream that extracts content from another stream until the boundary
* string is encountered.
*
diff --git a/src/com/vaadin/terminal/gwt/server/AbstractDeploymentConfiguration.java b/src/com/vaadin/terminal/gwt/server/AbstractDeploymentConfiguration.java
new file mode 100644
index 0000000000..1ac090ad76
--- /dev/null
+++ b/src/com/vaadin/terminal/gwt/server/AbstractDeploymentConfiguration.java
@@ -0,0 +1,121 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.terminal.gwt.server;
+
+import java.lang.reflect.Constructor;
+import java.util.Properties;
+
+import com.vaadin.terminal.DeploymentConfiguration;
+
+public abstract class AbstractDeploymentConfiguration implements
+ DeploymentConfiguration {
+
+ private final Class<?> systemPropertyBaseClass;
+ private final Properties applicationProperties = new Properties();
+
+ public AbstractDeploymentConfiguration(Class<?> systemPropertyBaseClass) {
+ this.systemPropertyBaseClass = systemPropertyBaseClass;
+ }
+
+ @Override
+ public String getApplicationOrSystemProperty(String propertyName,
+ String defaultValue) {
+
+ String val = null;
+
+ // Try application properties
+ val = getApplicationProperty(propertyName);
+ if (val != null) {
+ return val;
+ }
+
+ // Try system properties
+ val = getSystemProperty(propertyName);
+ if (val != null) {
+ return val;
+ }
+
+ return defaultValue;
+ }
+
+ /**
+ * Gets an system property value.
+ *
+ * @param parameterName
+ * the Name or the parameter.
+ * @return String value or null if not found
+ */
+ protected String getSystemProperty(String parameterName) {
+ String val = null;
+
+ String pkgName;
+ final Package pkg = systemPropertyBaseClass.getPackage();
+ if (pkg != null) {
+ pkgName = pkg.getName();
+ } else {
+ final String className = systemPropertyBaseClass.getName();
+ pkgName = new String(className.toCharArray(), 0,
+ className.lastIndexOf('.'));
+ }
+ val = System.getProperty(pkgName + "." + parameterName);
+ if (val != null) {
+ return val;
+ }
+
+ // Try lowercased system properties
+ val = System.getProperty(pkgName + "." + parameterName.toLowerCase());
+ return val;
+ }
+
+ @Override
+ public ClassLoader getClassLoader() {
+ final String classLoaderName = getApplicationOrSystemProperty(
+ "ClassLoader", null);
+ ClassLoader classLoader;
+ if (classLoaderName == null) {
+ classLoader = getClass().getClassLoader();
+ } else {
+ try {
+ final Class<?> classLoaderClass = getClass().getClassLoader()
+ .loadClass(classLoaderName);
+ final Constructor<?> c = classLoaderClass
+ .getConstructor(new Class[] { ClassLoader.class });
+ classLoader = (ClassLoader) c
+ .newInstance(new Object[] { getClass().getClassLoader() });
+ } catch (final Exception e) {
+ throw new RuntimeException(
+ "Could not find specified class loader: "
+ + classLoaderName, e);
+ }
+ }
+ return classLoader;
+ }
+
+ /**
+ * Gets an application property value.
+ *
+ * @param parameterName
+ * the Name or the parameter.
+ * @return String value or null if not found
+ */
+ protected String getApplicationProperty(String parameterName) {
+
+ String val = applicationProperties.getProperty(parameterName);
+ if (val != null) {
+ return val;
+ }
+
+ // Try lower case application properties for backward compatibility with
+ // 3.0.2 and earlier
+ val = applicationProperties.getProperty(parameterName.toLowerCase());
+
+ return val;
+ }
+
+ @Override
+ public Properties getInitParameters() {
+ return applicationProperties;
+ }
+}
diff --git a/src/com/vaadin/terminal/gwt/server/AbstractStreamingEvent.java b/src/com/vaadin/terminal/gwt/server/AbstractStreamingEvent.java
index 43b175cc36..d3474e736e 100644
--- a/src/com/vaadin/terminal/gwt/server/AbstractStreamingEvent.java
+++ b/src/com/vaadin/terminal/gwt/server/AbstractStreamingEvent.java
@@ -15,10 +15,12 @@ abstract class AbstractStreamingEvent implements StreamingEvent {
private final long contentLength;
private final long bytesReceived;
+ @Override
public final String getFileName() {
return filename;
}
+ @Override
public final String getMimeType() {
return type;
}
@@ -31,10 +33,12 @@ abstract class AbstractStreamingEvent implements StreamingEvent {
this.bytesReceived = bytesReceived;
}
+ @Override
public final long getContentLength() {
return contentLength;
}
+ @Override
public final long getBytesReceived() {
return bytesReceived;
}
diff --git a/src/com/vaadin/terminal/gwt/server/AbstractWebApplicationContext.java b/src/com/vaadin/terminal/gwt/server/AbstractWebApplicationContext.java
index bf4ea860a8..3a33621d10 100644
--- a/src/com/vaadin/terminal/gwt/server/AbstractWebApplicationContext.java
+++ b/src/com/vaadin/terminal/gwt/server/AbstractWebApplicationContext.java
@@ -24,6 +24,7 @@ import javax.servlet.http.HttpSessionBindingListener;
import com.vaadin.Application;
import com.vaadin.service.ApplicationContext;
import com.vaadin.terminal.ApplicationResource;
+import com.vaadin.terminal.gwt.client.ApplicationConnection;
/**
* Base class for web application contexts (including portlet contexts) that
@@ -45,12 +46,14 @@ public abstract class AbstractWebApplicationContext implements
private long lastRequestTime = -1;
+ @Override
public void addTransactionListener(TransactionListener listener) {
if (listener != null) {
listeners.add(listener);
}
}
+ @Override
public void removeTransactionListener(TransactionListener listener) {
listeners.remove(listener);
}
@@ -119,6 +122,7 @@ public abstract class AbstractWebApplicationContext implements
/**
* @see javax.servlet.http.HttpSessionBindingListener#valueBound(HttpSessionBindingEvent)
*/
+ @Override
public void valueBound(HttpSessionBindingEvent arg0) {
// We are not interested in bindings
}
@@ -126,6 +130,7 @@ public abstract class AbstractWebApplicationContext implements
/**
* @see javax.servlet.http.HttpSessionBindingListener#valueUnbound(HttpSessionBindingEvent)
*/
+ @Override
public void valueUnbound(HttpSessionBindingEvent event) {
// If we are going to be unbound from the session, the session must be
// closing
@@ -160,6 +165,7 @@ public abstract class AbstractWebApplicationContext implements
return browser;
}
+ @Override
public Collection<Application> getApplications() {
return Collections.unmodifiableCollection(applications);
}
@@ -169,12 +175,14 @@ public abstract class AbstractWebApplicationContext implements
applicationToAjaxAppMgrMap.remove(application);
}
+ @Override
public String generateApplicationResourceURL(ApplicationResource resource,
String mapKey) {
final String filename = resource.getFilename();
if (filename == null) {
- return "app://APP/" + mapKey + "/";
+ return ApplicationConnection.APP_PROTOCOL_PREFIX
+ + ApplicationConnection.APP_REQUEST_PATH + mapKey + "/";
} else {
// #7738 At least Tomcat and JBoss refuses requests containing
// encoded slashes or backslashes in URLs. Application resource URLs
@@ -182,7 +190,9 @@ public abstract class AbstractWebApplicationContext implements
// in the future.
String encodedFileName = urlEncode(filename).replace("%2F", "/")
.replace("%5C", "\\");
- return "app://APP/" + mapKey + "/" + encodedFileName;
+ return ApplicationConnection.APP_PROTOCOL_PREFIX
+ + ApplicationConnection.APP_REQUEST_PATH + mapKey + "/"
+ + encodedFileName;
}
}
@@ -197,6 +207,7 @@ public abstract class AbstractWebApplicationContext implements
}
}
+ @Override
public boolean isApplicationResourceURL(URL context, String relativeUri) {
// If the relative uri is null, we are ready
if (relativeUri == null) {
@@ -214,6 +225,7 @@ public abstract class AbstractWebApplicationContext implements
return (prefix.equals("APP"));
}
+ @Override
public String getURLKey(URL context, String relativeUri) {
final int index = relativeUri.indexOf('/');
final int next = relativeUri.indexOf('/', index + 1);
diff --git a/src/com/vaadin/terminal/gwt/server/ApplicationPortlet2.java b/src/com/vaadin/terminal/gwt/server/ApplicationPortlet2.java
index 7a46a07e6c..788c48267e 100644
--- a/src/com/vaadin/terminal/gwt/server/ApplicationPortlet2.java
+++ b/src/com/vaadin/terminal/gwt/server/ApplicationPortlet2.java
@@ -23,10 +23,8 @@ public class ApplicationPortlet2 extends AbstractApplicationPortlet {
public void init(PortletConfig config) throws PortletException {
super.init(config);
try {
- applicationClass = ServletPortletHelper.getApplicationClass(
- config.getInitParameter("application"),
- config.getInitParameter(Application.ROOT_PARAMETER),
- getClassLoader());
+ applicationClass = ServletPortletHelper
+ .getApplicationClass(getDeploymentConfiguration());
} catch (ApplicationClassException e) {
throw new PortletException(e);
}
diff --git a/src/com/vaadin/terminal/gwt/server/ApplicationResourceHandler.java b/src/com/vaadin/terminal/gwt/server/ApplicationResourceHandler.java
index 7cf66d5fcf..42726c933e 100644
--- a/src/com/vaadin/terminal/gwt/server/ApplicationResourceHandler.java
+++ b/src/com/vaadin/terminal/gwt/server/ApplicationResourceHandler.java
@@ -21,6 +21,7 @@ public class ApplicationResourceHandler implements RequestHandler {
private static final Pattern APP_RESOURCE_PATTERN = Pattern
.compile("^/?APP/(\\d+)/.*");
+ @Override
public boolean handleRequest(Application application,
WrappedRequest request, WrappedResponse response)
throws IOException {
diff --git a/src/com/vaadin/terminal/gwt/server/ApplicationServlet.java b/src/com/vaadin/terminal/gwt/server/ApplicationServlet.java
index 2c4d38ef24..1af49e0da0 100644
--- a/src/com/vaadin/terminal/gwt/server/ApplicationServlet.java
+++ b/src/com/vaadin/terminal/gwt/server/ApplicationServlet.java
@@ -41,14 +41,12 @@ public class ApplicationServlet extends AbstractApplicationServlet {
throws javax.servlet.ServletException {
super.init(servletConfig);
- // Loads the application class using the same class loader
- // as the servlet itself
+ // Loads the application class using the classloader defined in the
+ // deployment configuration
try {
- applicationClass = ServletPortletHelper.getApplicationClass(
- servletConfig.getInitParameter("application"),
- servletConfig.getInitParameter(Application.ROOT_PARAMETER),
- getClassLoader());
+ applicationClass = ServletPortletHelper
+ .getApplicationClass(getDeploymentConfiguration());
} catch (ApplicationClassException e) {
throw new ServletException(e);
}
diff --git a/src/com/vaadin/terminal/gwt/server/BootstrapHandler.java b/src/com/vaadin/terminal/gwt/server/BootstrapHandler.java
index 69f033c8cd..4038b8f1bc 100644
--- a/src/com/vaadin/terminal/gwt/server/BootstrapHandler.java
+++ b/src/com/vaadin/terminal/gwt/server/BootstrapHandler.java
@@ -9,10 +9,6 @@ import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Serializable;
import java.io.Writer;
-import java.lang.annotation.Annotation;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
@@ -20,7 +16,6 @@ import javax.servlet.http.HttpServletResponse;
import com.vaadin.Application;
import com.vaadin.RootRequiresMoreInformationException;
import com.vaadin.Version;
-import com.vaadin.annotations.LoadScripts;
import com.vaadin.external.json.JSONException;
import com.vaadin.external.json.JSONObject;
import com.vaadin.terminal.DeploymentConfiguration;
@@ -118,6 +113,7 @@ public abstract class BootstrapHandler implements RequestHandler {
}
+ @Override
public boolean handleRequest(Application application,
WrappedRequest request, WrappedResponse response)
throws IOException {
@@ -490,50 +486,6 @@ public abstract class BootstrapHandler implements RequestHandler {
page.write("<title>"
+ AbstractApplicationServlet.safeEscapeForHtml(title)
+ "</title>\n");
-
- if (root != null) {
- List<LoadScripts> loadScriptsAnnotations = getAnnotationsFor(
- root.getClass(), LoadScripts.class);
- Collections.reverse(loadScriptsAnnotations);
- // Begin from the end as a class might requests scripts that depend
- // on script loaded by a super class
- for (int i = loadScriptsAnnotations.size() - 1; i >= 0; i--) {
- LoadScripts loadScripts = loadScriptsAnnotations.get(i);
- String[] value = loadScripts.value();
- if (value != null) {
- for (String script : value) {
- page.write("<script type='text/javascript' src='");
- page.write(script);
- page.write("'></script>\n");
- }
- }
- }
-
- }
- }
-
- private static <T extends Annotation> List<T> getAnnotationsFor(
- Class<?> type, Class<T> annotationType) {
- List<T> list = new ArrayList<T>();
- // Find from the class hierarchy
- Class<?> currentType = type;
- while (currentType != Object.class) {
- T annotation = currentType.getAnnotation(annotationType);
- if (annotation != null) {
- list.add(annotation);
- }
- currentType = currentType.getSuperclass();
- }
-
- // Find from an implemented interface
- for (Class<?> iface : type.getInterfaces()) {
- T annotation = iface.getAnnotation(annotationType);
- if (annotation != null) {
- list.add(annotation);
- }
- }
-
- return list;
}
/**
@@ -645,8 +597,10 @@ public abstract class BootstrapHandler implements RequestHandler {
* @return a string with the initial UIDL message
* @throws PaintException
* if an exception occurs while painting the components
+ * @throws JSONException
+ * if an exception occurs while formatting the output
*/
protected abstract String getInitialUIDL(WrappedRequest request, Root root)
- throws PaintException;
+ throws PaintException, JSONException;
}
diff --git a/src/com/vaadin/terminal/gwt/server/ChangeVariablesErrorEvent.java b/src/com/vaadin/terminal/gwt/server/ChangeVariablesErrorEvent.java
index b6576dce9f..8f0c80332f 100644
--- a/src/com/vaadin/terminal/gwt/server/ChangeVariablesErrorEvent.java
+++ b/src/com/vaadin/terminal/gwt/server/ChangeVariablesErrorEvent.java
@@ -23,6 +23,7 @@ public class ChangeVariablesErrorEvent implements ComponentErrorEvent {
this.variableChanges = variableChanges;
}
+ @Override
public Throwable getThrowable() {
return throwable;
}
diff --git a/src/com/vaadin/terminal/gwt/server/ClientConnector.java b/src/com/vaadin/terminal/gwt/server/ClientConnector.java
index dfdd58879d..4f74cfe4bb 100644
--- a/src/com/vaadin/terminal/gwt/server/ClientConnector.java
+++ b/src/com/vaadin/terminal/gwt/server/ClientConnector.java
@@ -6,12 +6,13 @@ package com.vaadin.terminal.gwt.server;
import java.util.Collection;
import java.util.List;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.communication.SharedState;
import com.vaadin.terminal.AbstractClientConnector;
import com.vaadin.terminal.Extension;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
import com.vaadin.ui.Component;
import com.vaadin.ui.ComponentContainer;
+import com.vaadin.ui.Root;
/**
* Interface implemented by all connectors that are capable of communicating
@@ -47,6 +48,7 @@ public interface ClientConnector extends Connector, RpcTarget {
*/
public Class<? extends SharedState> getStateType();
+ @Override
public ClientConnector getParent();
/**
@@ -136,4 +138,12 @@ public interface ClientConnector extends Connector, RpcTarget {
* the extension to remove.
*/
public void removeExtension(Extension extension);
+
+ /**
+ * Returns the root this connector is attached to
+ *
+ * @return The Root this connector is attached to or null if it is not
+ * attached to any Root
+ */
+ public Root getRoot();
}
diff --git a/src/com/vaadin/terminal/gwt/server/ClientMethodInvocation.java b/src/com/vaadin/terminal/gwt/server/ClientMethodInvocation.java
index ad9484723b..64ea288665 100644
--- a/src/com/vaadin/terminal/gwt/server/ClientMethodInvocation.java
+++ b/src/com/vaadin/terminal/gwt/server/ClientMethodInvocation.java
@@ -61,6 +61,7 @@ public class ClientMethodInvocation implements Serializable,
return sequenceNumber;
}
+ @Override
public int compareTo(ClientMethodInvocation o) {
if (null == o) {
return 0;
diff --git a/src/com/vaadin/terminal/gwt/server/CommunicationManager.java b/src/com/vaadin/terminal/gwt/server/CommunicationManager.java
index cc2981dc45..3cc3a8cb64 100644
--- a/src/com/vaadin/terminal/gwt/server/CommunicationManager.java
+++ b/src/com/vaadin/terminal/gwt/server/CommunicationManager.java
@@ -4,22 +4,15 @@
package com.vaadin.terminal.gwt.server;
-import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.UUID;
import javax.servlet.ServletContext;
import com.vaadin.Application;
+import com.vaadin.external.json.JSONException;
import com.vaadin.terminal.PaintException;
-import com.vaadin.terminal.StreamVariable;
import com.vaadin.terminal.WrappedRequest;
-import com.vaadin.terminal.WrappedResponse;
-import com.vaadin.terminal.gwt.client.Connector;
import com.vaadin.ui.Root;
/**
@@ -58,142 +51,6 @@ public class CommunicationManager extends AbstractCommunicationManager {
super(application);
}
- /**
- * Handles file upload request submitted via Upload component.
- *
- * @param root
- * The root for this request
- *
- * @see #getStreamVariableTargetUrl(ReceiverOwner, String, StreamVariable)
- *
- * @param request
- * @param response
- * @throws IOException
- * @throws InvalidUIDLSecurityKeyException
- */
- public void handleFileUpload(Root root, WrappedRequest request,
- WrappedResponse response) throws IOException,
- InvalidUIDLSecurityKeyException {
-
- /*
- * URI pattern: APP/UPLOAD/[PID]/[NAME]/[SECKEY] See #createReceiverUrl
- */
-
- String pathInfo = request.getRequestPathInfo();
- // strip away part until the data we are interested starts
- int startOfData = pathInfo
- .indexOf(AbstractApplicationServlet.UPLOAD_URL_PREFIX)
- + AbstractApplicationServlet.UPLOAD_URL_PREFIX.length();
- String uppUri = pathInfo.substring(startOfData);
- String[] parts = uppUri.split("/", 3); // 0 = pid, 1= name, 2 = sec key
- String variableName = parts[1];
- String connectorId = parts[0];
-
- StreamVariable streamVariable = pidToNameToStreamVariable.get(
- connectorId).get(variableName);
- String secKey = streamVariableToSeckey.get(streamVariable);
- if (secKey.equals(parts[2])) {
-
- Connector source = getConnector(root, connectorId);
- String contentType = request.getContentType();
- if (contentType.contains("boundary")) {
- // Multipart requests contain boundary string
- doHandleSimpleMultipartFileUpload(request, response,
- streamVariable, variableName, source,
- contentType.split("boundary=")[1]);
- } else {
- // if boundary string does not exist, the posted file is from
- // XHR2.post(File)
- doHandleXhrFilePost(request, response, streamVariable,
- variableName, source, request.getContentLength());
- }
- } else {
- throw new InvalidUIDLSecurityKeyException(
- "Security key in upload post did not match!");
- }
-
- }
-
- @Override
- protected void postPaint(Root root) {
- super.postPaint(root);
-
- if (pidToNameToStreamVariable != null) {
- Iterator<String> iterator = pidToNameToStreamVariable.keySet()
- .iterator();
- while (iterator.hasNext()) {
- String connectorId = iterator.next();
- if (root.getConnectorTracker().getConnector(connectorId) == null) {
- // Owner is no longer attached to the application
- Map<String, StreamVariable> removed = pidToNameToStreamVariable
- .get(connectorId);
- for (String key : removed.keySet()) {
- streamVariableToSeckey.remove(removed.get(key));
- }
- iterator.remove();
- }
- }
- }
-
- }
-
- private Map<String, Map<String, StreamVariable>> pidToNameToStreamVariable;
-
- private Map<StreamVariable, String> streamVariableToSeckey;
-
- @Override
- String getStreamVariableTargetUrl(Connector owner, String name,
- StreamVariable value) {
- /*
- * We will use the same APP/* URI space as ApplicationResources but
- * prefix url with UPLOAD
- *
- * eg. APP/UPLOAD/[PID]/[NAME]/[SECKEY]
- *
- * SECKEY is created on each paint to make URL's unpredictable (to
- * prevent CSRF attacks).
- *
- * NAME and PID from URI forms a key to fetch StreamVariable when
- * handling post
- */
- String paintableId = owner.getConnectorId();
- String key = paintableId + "/" + name;
-
- if (pidToNameToStreamVariable == null) {
- pidToNameToStreamVariable = new HashMap<String, Map<String, StreamVariable>>();
- }
- Map<String, StreamVariable> nameToStreamVariable = pidToNameToStreamVariable
- .get(paintableId);
- if (nameToStreamVariable == null) {
- nameToStreamVariable = new HashMap<String, StreamVariable>();
- pidToNameToStreamVariable.put(paintableId, nameToStreamVariable);
- }
- nameToStreamVariable.put(name, value);
-
- if (streamVariableToSeckey == null) {
- streamVariableToSeckey = new HashMap<StreamVariable, String>();
- }
- String seckey = streamVariableToSeckey.get(value);
- if (seckey == null) {
- seckey = UUID.randomUUID().toString();
- streamVariableToSeckey.put(value, seckey);
- }
-
- return "app://" + AbstractApplicationServlet.UPLOAD_URL_PREFIX + key
- + "/" + seckey;
-
- }
-
- @Override
- protected void cleanStreamVariable(Connector owner, String name) {
- Map<String, StreamVariable> nameToStreamVar = pidToNameToStreamVariable
- .get(owner.getConnectorId());
- nameToStreamVar.remove("name");
- if (nameToStreamVar.isEmpty()) {
- pidToNameToStreamVariable.remove(owner.getConnectorId());
- }
- }
-
@Override
protected BootstrapHandler createBootstrapHandler() {
return new BootstrapHandler() {
@@ -245,7 +102,7 @@ public class CommunicationManager extends AbstractCommunicationManager {
@Override
protected String getInitialUIDL(WrappedRequest request, Root root)
- throws PaintException {
+ throws PaintException, JSONException {
return CommunicationManager.this.getInitialUIDL(request, root);
}
};
diff --git a/src/com/vaadin/terminal/gwt/server/Constants.java b/src/com/vaadin/terminal/gwt/server/Constants.java
index 9e6b2c775b..7efb0205ac 100644
--- a/src/com/vaadin/terminal/gwt/server/Constants.java
+++ b/src/com/vaadin/terminal/gwt/server/Constants.java
@@ -54,8 +54,6 @@ public interface Constants {
static final int MAX_BUFFER_SIZE = 64 * 1024;
- static final String AJAX_UIDL_URI = "/UIDL";
-
final String THEME_DIRECTORY_PATH = "VAADIN/themes/";
static final int DEFAULT_THEME_CACHETIME = 1000 * 60 * 60 * 24;
diff --git a/src/com/vaadin/terminal/gwt/server/DragAndDropService.java b/src/com/vaadin/terminal/gwt/server/DragAndDropService.java
index 0e8d1c0152..efb5666efa 100644
--- a/src/com/vaadin/terminal/gwt/server/DragAndDropService.java
+++ b/src/com/vaadin/terminal/gwt/server/DragAndDropService.java
@@ -19,13 +19,14 @@ import com.vaadin.event.dd.DropTarget;
import com.vaadin.event.dd.TargetDetails;
import com.vaadin.event.dd.TargetDetailsImpl;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
+import com.vaadin.shared.communication.SharedState;
+import com.vaadin.shared.ui.dd.DragEventType;
import com.vaadin.terminal.Extension;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.VariableOwner;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
import com.vaadin.terminal.gwt.client.ui.dd.VDragAndDropManager;
-import com.vaadin.terminal.gwt.client.ui.dd.VDragAndDropManager.DragEventType;
import com.vaadin.ui.Component;
+import com.vaadin.ui.Root;
public class DragAndDropService implements VariableOwner, ClientConnector {
@@ -43,6 +44,7 @@ public class DragAndDropService implements VariableOwner, ClientConnector {
this.manager = manager;
}
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
Object owner = variables.get("dhowner");
@@ -181,10 +183,12 @@ public class DragAndDropService implements VariableOwner, ClientConnector {
return transferable;
}
+ @Override
public boolean isEnabled() {
return isConnectorEnabled();
}
+ @Override
public boolean isImmediate() {
return true;
}
@@ -218,68 +222,82 @@ public class DragAndDropService implements VariableOwner, ClientConnector {
return false;
}
+ @Override
public SharedState getState() {
// TODO Auto-generated method stub
return null;
}
+ @Override
public String getConnectorId() {
return VDragAndDropManager.DD_SERVICE;
}
+ @Override
public boolean isConnectorEnabled() {
// Drag'n'drop can't be disabled
return true;
}
+ @Override
public List<ClientMethodInvocation> retrievePendingRpcCalls() {
return null;
}
+ @Override
public RpcManager getRpcManager(Class<?> rpcInterface) {
// TODO Use rpc for drag'n'drop
return null;
}
+ @Override
public Class<? extends SharedState> getStateType() {
return SharedState.class;
}
+ @Override
public void requestRepaint() {
// TODO Auto-generated method stub
}
+ @Override
public ClientConnector getParent() {
// TODO Auto-generated method stub
return null;
}
+ @Override
public void requestRepaintAll() {
// TODO Auto-generated method stub
}
+ @Override
public void setParent(ClientConnector parent) {
// TODO Auto-generated method stub
}
+ @Override
public void attach() {
// TODO Auto-generated method stub
}
+ @Override
public void detach() {
// TODO Auto-generated method stub
}
+ @Override
public Collection<Extension> getExtensions() {
// TODO Auto-generated method stub
return Collections.emptySet();
}
+ @Override
public void removeExtension(Extension extension) {
// TODO Auto-generated method stub
}
@@ -287,4 +305,9 @@ public class DragAndDropService implements VariableOwner, ClientConnector {
private Logger getLogger() {
return Logger.getLogger(DragAndDropService.class.getName());
}
+
+ @Override
+ public Root getRoot() {
+ return null;
+ }
}
diff --git a/src/com/vaadin/terminal/gwt/server/GAEApplicationServlet.java b/src/com/vaadin/terminal/gwt/server/GAEApplicationServlet.java
index a6032fa98d..cc12c9cc43 100644
--- a/src/com/vaadin/terminal/gwt/server/GAEApplicationServlet.java
+++ b/src/com/vaadin/terminal/gwt/server/GAEApplicationServlet.java
@@ -121,8 +121,9 @@ public class GAEApplicationServlet extends ApplicationServlet {
// appengine session expires-parameter
private static final String PROPERTY_APPENGINE_EXPIRES = "_expires";
- protected void sendDeadlineExceededNotification(HttpServletRequest request,
- HttpServletResponse response) throws IOException {
+ protected void sendDeadlineExceededNotification(
+ WrappedHttpServletRequest request,
+ WrappedHttpServletResponse response) throws IOException {
criticalNotification(
request,
response,
@@ -131,8 +132,9 @@ public class GAEApplicationServlet extends ApplicationServlet {
"", null);
}
- protected void sendNotSerializableNotification(HttpServletRequest request,
- HttpServletResponse response) throws IOException {
+ protected void sendNotSerializableNotification(
+ WrappedHttpServletRequest request,
+ WrappedHttpServletResponse response) throws IOException {
criticalNotification(
request,
response,
@@ -142,8 +144,9 @@ public class GAEApplicationServlet extends ApplicationServlet {
+ "?restartApplication");
}
- protected void sendCriticalErrorNotification(HttpServletRequest request,
- HttpServletResponse response) throws IOException {
+ protected void sendCriticalErrorNotification(
+ WrappedHttpServletRequest request,
+ WrappedHttpServletResponse response) throws IOException {
criticalNotification(
request,
response,
@@ -154,8 +157,13 @@ public class GAEApplicationServlet extends ApplicationServlet {
}
@Override
- protected void service(HttpServletRequest request,
- HttpServletResponse response) throws ServletException, IOException {
+ protected void service(HttpServletRequest unwrappedRequest,
+ HttpServletResponse unwrappedResponse) throws ServletException,
+ IOException {
+ WrappedHttpServletRequest request = new WrappedHttpServletRequest(
+ unwrappedRequest, getDeploymentConfiguration());
+ WrappedHttpServletResponse response = new WrappedHttpServletResponse(
+ unwrappedResponse, getDeploymentConfiguration());
if (isCleanupRequest(request)) {
cleanDatastore();
diff --git a/src/com/vaadin/terminal/gwt/server/JsonCodec.java b/src/com/vaadin/terminal/gwt/server/JsonCodec.java
index d3a2ef56f8..8199bc6ada 100644
--- a/src/com/vaadin/terminal/gwt/server/JsonCodec.java
+++ b/src/com/vaadin/terminal/gwt/server/JsonCodec.java
@@ -9,10 +9,12 @@ import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.io.Serializable;
import java.lang.reflect.Array;
+import java.lang.reflect.GenericArrayType;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
+import java.lang.reflect.WildcardType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -27,9 +29,9 @@ import java.util.Set;
import com.vaadin.external.json.JSONArray;
import com.vaadin.external.json.JSONException;
import com.vaadin.external.json.JSONObject;
-import com.vaadin.terminal.gwt.client.Connector;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.communication.UidlValue;
import com.vaadin.terminal.gwt.client.communication.JsonEncoder;
-import com.vaadin.terminal.gwt.client.communication.UidlValue;
import com.vaadin.ui.Component;
import com.vaadin.ui.ConnectorTracker;
@@ -100,8 +102,10 @@ public class JsonCodec implements Serializable {
private static Class<?> getClassForType(Type type) {
if (type instanceof ParameterizedType) {
return (Class<?>) (((ParameterizedType) type).getRawType());
- } else {
+ } else if (type instanceof Class<?>) {
return (Class<?>) type;
+ } else {
+ return null;
}
}
@@ -138,7 +142,13 @@ public class JsonCodec implements Serializable {
&& ((Class<?>) targetType).isArray()) {
// Legacy Object[] and String[] handled elsewhere, this takes care
// of generic arrays
- return decodeArray((Class<?>) targetType, (JSONArray) value,
+ Class<?> componentType = ((Class<?>) targetType).getComponentType();
+ return decodeArray(componentType, (JSONArray) value,
+ connectorTracker);
+ } else if (targetType instanceof GenericArrayType) {
+ Type componentType = ((GenericArrayType) targetType)
+ .getGenericComponentType();
+ return decodeArray(componentType, (JSONArray) value,
connectorTracker);
} else if (targetType == JSONObject.class
|| targetType == JSONArray.class) {
@@ -149,10 +159,10 @@ public class JsonCodec implements Serializable {
}
}
- private static Object decodeArray(Class<?> targetType, JSONArray value,
+ private static Object decodeArray(Type componentType, JSONArray value,
ConnectorTracker connectorTracker) throws JSONException {
- Class<?> componentType = targetType.getComponentType();
- Object array = Array.newInstance(componentType, value.length());
+ Class<?> componentClass = getClassForType(componentType);
+ Object array = Array.newInstance(componentClass, value.length());
for (int i = 0; i < value.length(); i++) {
Object decodedValue = decodeInternalOrCustomType(componentType,
value.get(i), connectorTracker);
@@ -513,6 +523,11 @@ public class JsonCodec implements Serializable {
throw new IllegalArgumentException("type must be defined");
}
+ if (valueType instanceof WildcardType) {
+ throw new IllegalStateException(
+ "Can not serialize type with wildcard: " + valueType);
+ }
+
if (null == value) {
return encodeNull();
}
@@ -540,7 +555,15 @@ public class JsonCodec implements Serializable {
return jsonArray;
} else if (valueType instanceof Class<?>
&& ((Class<?>) valueType).isArray()) {
- JSONArray jsonArray = encodeArrayContents(value, connectorTracker);
+ JSONArray jsonArray = encodeArrayContents(
+ ((Class<?>) valueType).getComponentType(), value,
+ connectorTracker);
+ return jsonArray;
+ } else if (valueType instanceof GenericArrayType) {
+ Type componentType = ((GenericArrayType) valueType)
+ .getGenericComponentType();
+ JSONArray jsonArray = encodeArrayContents(componentType, value,
+ connectorTracker);
return jsonArray;
} else if (value instanceof Map) {
Object jsonMap = encodeMap(valueType, (Map<?, ?>) value,
@@ -643,10 +666,10 @@ public class JsonCodec implements Serializable {
return e.name();
}
- private static JSONArray encodeArrayContents(Object array,
- ConnectorTracker connectorTracker) throws JSONException {
+ private static JSONArray encodeArrayContents(Type componentType,
+ Object array, ConnectorTracker connectorTracker)
+ throws JSONException {
JSONArray jsonArray = new JSONArray();
- Class<?> componentType = array.getClass().getComponentType();
for (int i = 0; i < Array.getLength(array); i++) {
jsonArray.put(encode(Array.get(array, i), null, componentType,
connectorTracker));
diff --git a/src/com/vaadin/terminal/gwt/server/JsonPaintTarget.java b/src/com/vaadin/terminal/gwt/server/JsonPaintTarget.java
index 70ab452e4e..5a830ddb63 100644
--- a/src/com/vaadin/terminal/gwt/server/JsonPaintTarget.java
+++ b/src/com/vaadin/terminal/gwt/server/JsonPaintTarget.java
@@ -15,16 +15,11 @@ import java.util.Stack;
import java.util.Vector;
import java.util.logging.Logger;
-import com.vaadin.Application;
-import com.vaadin.terminal.ApplicationResource;
-import com.vaadin.terminal.ExternalResource;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Resource;
import com.vaadin.terminal.StreamVariable;
-import com.vaadin.terminal.ThemeResource;
import com.vaadin.terminal.VariableOwner;
-import com.vaadin.terminal.gwt.client.Connector;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Component;
import com.vaadin.ui.CustomLayout;
@@ -104,6 +99,7 @@ public class JsonPaintTarget implements PaintTarget {
cacheEnabled = cachingRequired;
}
+ @Override
public void startTag(String tagName) throws PaintException {
startTag(tagName, false);
}
@@ -160,6 +156,7 @@ public class JsonPaintTarget implements PaintTarget {
* if the paint operation failed.
*/
+ @Override
public void endTag(String tagName) throws PaintException {
// In case of null data output nothing:
if (tagName == null) {
@@ -327,59 +324,46 @@ public class JsonPaintTarget implements PaintTarget {
*
*/
+ @Override
public void addText(String str) throws PaintException {
tag.addData("\"" + escapeJSON(str) + "\"");
}
+ @Override
public void addAttribute(String name, boolean value) throws PaintException {
tag.addAttribute("\"" + name + "\":" + (value ? "true" : "false"));
}
- @SuppressWarnings("deprecation")
+ @Override
public void addAttribute(String name, Resource value) throws PaintException {
-
- if (value instanceof ExternalResource) {
- addAttribute(name, ((ExternalResource) value).getURL());
-
- } else if (value instanceof ApplicationResource) {
- final ApplicationResource r = (ApplicationResource) value;
- final Application a = r.getApplication();
- if (a == null) {
- throw new PaintException(
- "Application not specified for resorce "
- + value.getClass().getName());
- }
- final String uri = a.getRelativeLocation(r);
- addAttribute(name, uri);
-
- } else if (value instanceof ThemeResource) {
- final String uri = "theme://"
- + ((ThemeResource) value).getResourceId();
- addAttribute(name, uri);
- } else {
- throw new PaintException("Ajax adapter does not "
- + "support resources of type: "
- + value.getClass().getName());
+ if (value == null) {
+ throw new NullPointerException();
}
-
+ ResourceReference reference = ResourceReference.create(value);
+ addAttribute(name, reference.getURL());
}
+ @Override
public void addAttribute(String name, int value) throws PaintException {
tag.addAttribute("\"" + name + "\":" + String.valueOf(value));
}
+ @Override
public void addAttribute(String name, long value) throws PaintException {
tag.addAttribute("\"" + name + "\":" + String.valueOf(value));
}
+ @Override
public void addAttribute(String name, float value) throws PaintException {
tag.addAttribute("\"" + name + "\":" + String.valueOf(value));
}
+ @Override
public void addAttribute(String name, double value) throws PaintException {
tag.addAttribute("\"" + name + "\":" + String.valueOf(value));
}
+ @Override
public void addAttribute(String name, String value) throws PaintException {
// In case of null data output nothing:
if ((value == null) || (name == null)) {
@@ -399,12 +383,14 @@ public class JsonPaintTarget implements PaintTarget {
}
+ @Override
public void addAttribute(String name, Component value)
throws PaintException {
final String id = value.getConnectorId();
addAttribute(name, id);
}
+ @Override
public void addAttribute(String name, Map<?, ?> value)
throws PaintException {
@@ -442,6 +428,7 @@ public class JsonPaintTarget implements PaintTarget {
tag.addAttribute(sb.toString());
}
+ @Override
public void addAttribute(String name, Object[] values) {
// In case of null data output nothing:
if ((values == null) || (name == null)) {
@@ -462,41 +449,49 @@ public class JsonPaintTarget implements PaintTarget {
tag.addAttribute(buf.toString());
}
+ @Override
public void addVariable(VariableOwner owner, String name, String value)
throws PaintException {
tag.addVariable(new StringVariable(owner, name, escapeJSON(value)));
}
+ @Override
public void addVariable(VariableOwner owner, String name, Component value)
throws PaintException {
tag.addVariable(new StringVariable(owner, name, value.getConnectorId()));
}
+ @Override
public void addVariable(VariableOwner owner, String name, int value)
throws PaintException {
tag.addVariable(new IntVariable(owner, name, value));
}
+ @Override
public void addVariable(VariableOwner owner, String name, long value)
throws PaintException {
tag.addVariable(new LongVariable(owner, name, value));
}
+ @Override
public void addVariable(VariableOwner owner, String name, float value)
throws PaintException {
tag.addVariable(new FloatVariable(owner, name, value));
}
+ @Override
public void addVariable(VariableOwner owner, String name, double value)
throws PaintException {
tag.addVariable(new DoubleVariable(owner, name, value));
}
+ @Override
public void addVariable(VariableOwner owner, String name, boolean value)
throws PaintException {
tag.addVariable(new BooleanVariable(owner, name, value));
}
+ @Override
public void addVariable(VariableOwner owner, String name, String[] value)
throws PaintException {
tag.addVariable(new ArrayVariable(owner, name, value));
@@ -516,6 +511,7 @@ public class JsonPaintTarget implements PaintTarget {
* if the paint operation failed.
*/
+ @Override
public void addUploadStreamVariable(VariableOwner owner, String name)
throws PaintException {
startTag("uploadstream");
@@ -536,6 +532,7 @@ public class JsonPaintTarget implements PaintTarget {
* if the paint operation failed.
*/
+ @Override
public void addSection(String sectionTagName, String sectionData)
throws PaintException {
tag.addData("{\"" + sectionTagName + "\":\"" + escapeJSON(sectionData)
@@ -551,6 +548,7 @@ public class JsonPaintTarget implements PaintTarget {
* if the paint operation failed.
*/
+ @Override
public void addUIDL(String xml) throws PaintException {
// Ensure that the target is open
@@ -585,6 +583,7 @@ public class JsonPaintTarget implements PaintTarget {
* String)
*/
+ @Override
public void addXMLSection(String sectionTagName, String sectionData,
String namespace) throws PaintException {
@@ -650,6 +649,7 @@ public class JsonPaintTarget implements PaintTarget {
* .Paintable, java.lang.String)
*/
+ @Override
public PaintStatus startPaintable(Component connector, String tagName)
throws PaintException {
boolean topLevelPaintable = openPaintables.isEmpty();
@@ -676,6 +676,7 @@ public class JsonPaintTarget implements PaintTarget {
return PaintStatus.PAINTING;
}
+ @Override
public void endPaintable(Component paintable) throws PaintException {
getLogger().fine(
"endPaintable for " + paintable.getClass().getName() + "@"
@@ -699,6 +700,7 @@ public class JsonPaintTarget implements PaintTarget {
* @see com.vaadin.terminal.PaintTarget#addCharacterData(java.lang.String )
*/
+ @Override
public void addCharacterData(String text) throws PaintException {
if (text != null) {
tag.addData(text);
@@ -968,6 +970,7 @@ public class JsonPaintTarget implements PaintTarget {
return usedResources;
}
+ @Override
@SuppressWarnings("unchecked")
public String getTag(ClientConnector clientConnector) {
Class<? extends ClientConnector> clientConnectorClass = clientConnector
@@ -990,10 +993,11 @@ public class JsonPaintTarget implements PaintTarget {
return usedClientConnectors;
}
+ @Override
public void addVariable(VariableOwner owner, String name,
StreamVariable value) throws PaintException {
- String url = manager.getStreamVariableTargetUrl((Connector) owner,
- name, value);
+ String url = manager.getStreamVariableTargetUrl(
+ (ClientConnector) owner, name, value);
if (url != null) {
addVariable(owner, name, url);
} // else { //NOP this was just a cleanup by component }
@@ -1006,6 +1010,7 @@ public class JsonPaintTarget implements PaintTarget {
* @see com.vaadin.terminal.PaintTarget#isFullRepaint()
*/
+ @Override
public boolean isFullRepaint() {
return !cacheEnabled;
}
diff --git a/src/com/vaadin/terminal/gwt/server/LegacyChangeVariablesInvocation.java b/src/com/vaadin/terminal/gwt/server/LegacyChangeVariablesInvocation.java
index 42fa3ab5a5..9dba05d2c1 100644
--- a/src/com/vaadin/terminal/gwt/server/LegacyChangeVariablesInvocation.java
+++ b/src/com/vaadin/terminal/gwt/server/LegacyChangeVariablesInvocation.java
@@ -6,8 +6,8 @@ package com.vaadin.terminal.gwt.server;
import java.util.HashMap;
import java.util.Map;
+import com.vaadin.shared.communication.MethodInvocation;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.terminal.gwt.client.communication.MethodInvocation;
public class LegacyChangeVariablesInvocation extends MethodInvocation {
private Map<String, Object> variableChanges = new HashMap<String, Object>();
diff --git a/src/com/vaadin/terminal/gwt/server/PortletApplicationContext2.java b/src/com/vaadin/terminal/gwt/server/PortletApplicationContext2.java
index de4f918b75..70505ab5f9 100644
--- a/src/com/vaadin/terminal/gwt/server/PortletApplicationContext2.java
+++ b/src/com/vaadin/terminal/gwt/server/PortletApplicationContext2.java
@@ -28,13 +28,12 @@ import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;
-import javax.portlet.ResourceURL;
import javax.portlet.StateAwareResponse;
import javax.servlet.http.HttpSessionBindingListener;
import javax.xml.namespace.QName;
import com.vaadin.Application;
-import com.vaadin.terminal.ApplicationResource;
+import com.vaadin.terminal.ExternalResource;
import com.vaadin.ui.Root;
/**
@@ -63,6 +62,7 @@ public class PortletApplicationContext2 extends AbstractWebApplicationContext {
private final Map<String, String> sharedParameterActionNameMap = new HashMap<String, String>();
private final Map<String, String> sharedParameterActionValueMap = new HashMap<String, String>();
+ @Override
public File getBaseDirectory() {
String resultPath = session.getPortletContext().getRealPath("/");
if (resultPath != null) {
@@ -253,27 +253,6 @@ public class PortletApplicationContext2 extends AbstractWebApplicationContext {
this.response = response;
}
- @Override
- public String generateApplicationResourceURL(ApplicationResource resource,
- String mapKey) {
- if (response instanceof MimeResponse) {
- ResourceURL resourceURL = ((MimeResponse) response)
- .createResourceURL();
- final String filename = resource.getFilename();
- if (filename == null) {
- resourceURL.setResourceID("APP/" + mapKey + "/");
- } else {
- resourceURL.setResourceID("APP/" + mapKey + "/"
- + urlEncode(filename));
- }
- return resourceURL.toString();
- } else {
- // in a background thread or otherwise outside a request
- // TODO exception ??
- return null;
- }
- }
-
/**
* Creates a new action URL.
*
@@ -324,9 +303,7 @@ public class PortletApplicationContext2 extends AbstractWebApplicationContext {
if (actionUrl != null) {
eventActionDestinationMap.put(actionKey, name);
eventActionValueMap.put(actionKey, value);
- throw new RuntimeException(
- "Root.open has not yet been implemented");
- // root.open(new ExternalResource(actionUrl.toString()));
+ root.getPage().open(new ExternalResource(actionUrl.toString()));
} else {
// this should never happen as we already know the response is a
// MimeResponse
@@ -372,9 +349,7 @@ public class PortletApplicationContext2 extends AbstractWebApplicationContext {
if (actionUrl != null) {
sharedParameterActionNameMap.put(actionKey, name);
sharedParameterActionValueMap.put(actionKey, value);
- throw new RuntimeException(
- "Root.open has not yet been implemented");
- // root.open(new ExternalResource(actionUrl.toString()));
+ root.getPage().open(new ExternalResource(actionUrl.toString()));
} else {
// this should never happen as we already know the response is a
// MimeResponse
diff --git a/src/com/vaadin/terminal/gwt/server/PortletCommunicationManager.java b/src/com/vaadin/terminal/gwt/server/PortletCommunicationManager.java
index d3fbf4d988..edd970a31f 100644
--- a/src/com/vaadin/terminal/gwt/server/PortletCommunicationManager.java
+++ b/src/com/vaadin/terminal/gwt/server/PortletCommunicationManager.java
@@ -5,9 +5,6 @@ package com.vaadin.terminal.gwt.server;
import java.io.IOException;
import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
import javax.portlet.MimeResponse;
import javax.portlet.PortletContext;
@@ -22,10 +19,9 @@ import com.vaadin.external.json.JSONException;
import com.vaadin.external.json.JSONObject;
import com.vaadin.terminal.DeploymentConfiguration;
import com.vaadin.terminal.PaintException;
-import com.vaadin.terminal.StreamVariable;
import com.vaadin.terminal.WrappedRequest;
import com.vaadin.terminal.WrappedResponse;
-import com.vaadin.terminal.gwt.client.Connector;
+import com.vaadin.terminal.gwt.client.ApplicationConfiguration;
import com.vaadin.ui.Root;
/**
@@ -37,131 +33,10 @@ import com.vaadin.ui.Root;
@SuppressWarnings("serial")
public class PortletCommunicationManager extends AbstractCommunicationManager {
- private transient MimeResponse currentMimeResponse;
-
public PortletCommunicationManager(Application application) {
super(application);
}
- public void handleFileUpload(Root root, WrappedRequest request,
- WrappedResponse response) throws IOException {
- String contentType = request.getContentType();
- String name = request.getParameter("name");
- String ownerId = request.getParameter("rec-owner");
- Connector owner = getConnector(root, ownerId);
- StreamVariable streamVariable = ownerToNameToStreamVariable.get(owner)
- .get(name);
-
- if (contentType.contains("boundary")) {
- doHandleSimpleMultipartFileUpload(request, response,
- streamVariable, name, owner,
- contentType.split("boundary=")[1]);
- } else {
- doHandleXhrFilePost(request, response, streamVariable, name, owner,
- request.getContentLength());
- }
-
- }
-
- @Override
- protected void postPaint(Root root) {
- super.postPaint(root);
-
- Application application = root.getApplication();
- if (ownerToNameToStreamVariable != null) {
- Iterator<Connector> iterator = ownerToNameToStreamVariable.keySet()
- .iterator();
- while (iterator.hasNext()) {
- Connector owner = iterator.next();
- if (getConnector(root, owner.getConnectorId()) == null) {
- // Owner is no longer attached to the application
- iterator.remove();
- }
- }
- }
- }
-
- @Override
- protected boolean handleApplicationRequest(WrappedRequest request,
- WrappedResponse response) throws IOException {
- setCurrentMimeReponse(response);
- try {
- return super.handleApplicationRequest(request, response);
- } finally {
- currentMimeResponse = null;
- }
- }
-
- private void setCurrentMimeReponse(WrappedResponse response) {
- PortletResponse portletResponse = ((WrappedPortletResponse) response)
- .getPortletResponse();
- if (portletResponse instanceof MimeResponse) {
- currentMimeResponse = (MimeResponse) portletResponse;
- }
-
- }
-
- @Override
- public void handleUidlRequest(WrappedRequest request,
- WrappedResponse response, Callback callback, Root root)
- throws IOException, InvalidUIDLSecurityKeyException {
- setCurrentMimeReponse(response);
- super.handleUidlRequest(request, response, callback, root);
- currentMimeResponse = null;
- }
-
- @Override
- public void handleBrowserDetailsRequest(WrappedRequest request,
- WrappedResponse response, Application application)
- throws IOException {
- setCurrentMimeReponse(response);
- super.handleBrowserDetailsRequest(request, response, application);
- currentMimeResponse = null;
-
- }
-
- private Map<Connector, Map<String, StreamVariable>> ownerToNameToStreamVariable;
-
- @Override
- String getStreamVariableTargetUrl(Connector owner, String name,
- StreamVariable value) {
- if (ownerToNameToStreamVariable == null) {
- ownerToNameToStreamVariable = new HashMap<Connector, Map<String, StreamVariable>>();
- }
- Map<String, StreamVariable> nameToReceiver = ownerToNameToStreamVariable
- .get(owner);
- if (nameToReceiver == null) {
- nameToReceiver = new HashMap<String, StreamVariable>();
- ownerToNameToStreamVariable.put(owner, nameToReceiver);
- }
- nameToReceiver.put(name, value);
- ResourceURL resurl = createResourceURL();
- resurl.setResourceID("UPLOAD");
- resurl.setParameter("name", name);
- resurl.setParameter("rec-owner", owner.getConnectorId());
- resurl.setProperty("name", name);
- resurl.setProperty("rec-owner", owner.getConnectorId());
- return resurl.toString();
- }
-
- private ResourceURL createResourceURL() {
- if (currentMimeResponse == null) {
- throw new RuntimeException(
- "No reponse object available. Cannot create a resource URL");
- }
- return currentMimeResponse.createResourceURL();
- }
-
- @Override
- protected void cleanStreamVariable(Connector owner, String name) {
- Map<String, StreamVariable> map = ownerToNameToStreamVariable
- .get(owner);
- map.remove(name);
- if (map.isEmpty()) {
- ownerToNameToStreamVariable.remove(owner);
- }
- }
-
@Override
protected BootstrapHandler createBootstrapHandler() {
return new BootstrapHandler() {
@@ -211,12 +86,14 @@ public class PortletCommunicationManager extends AbstractCommunicationManager {
* some other things
*/
JSONObject defaults = super.getDefaultParameters(context);
- defaults.put("usePortletURLs", true);
- ResourceURL uidlUrlBase = getRenderResponse(context)
+ ResourceURL portletResourceUrl = getRenderResponse(context)
.createResourceURL();
- uidlUrlBase.setResourceID("UIDL");
- defaults.put("portletUidlURLBase", uidlUrlBase.toString());
+ portletResourceUrl
+ .setResourceID(AbstractApplicationPortlet.RESOURCE_URL_ID);
+ defaults.put(ApplicationConfiguration.PORTLET_RESOUCE_URL_BASE,
+ portletResourceUrl.toString());
+
defaults.put("pathInfo", "");
return defaults;
@@ -253,7 +130,7 @@ public class PortletCommunicationManager extends AbstractCommunicationManager {
@Override
protected String getInitialUIDL(WrappedRequest request, Root root)
- throws PaintException {
+ throws PaintException, JSONException {
return PortletCommunicationManager.this.getInitialUIDL(request,
root);
}
diff --git a/src/com/vaadin/terminal/gwt/server/ResourceReference.java b/src/com/vaadin/terminal/gwt/server/ResourceReference.java
index 56f2bed896..2104ad4b87 100644
--- a/src/com/vaadin/terminal/gwt/server/ResourceReference.java
+++ b/src/com/vaadin/terminal/gwt/server/ResourceReference.java
@@ -4,11 +4,11 @@
package com.vaadin.terminal.gwt.server;
import com.vaadin.Application;
+import com.vaadin.shared.communication.URLReference;
import com.vaadin.terminal.ApplicationResource;
import com.vaadin.terminal.ExternalResource;
import com.vaadin.terminal.Resource;
import com.vaadin.terminal.ThemeResource;
-import com.vaadin.terminal.gwt.client.communication.URLReference;
public class ResourceReference extends URLReference {
@@ -48,4 +48,20 @@ public class ResourceReference extends URLReference {
}
}
+
+ public static ResourceReference create(Resource resource) {
+ if (resource == null) {
+ return null;
+ } else {
+ return new ResourceReference(resource);
+ }
+ }
+
+ public static Resource getResource(URLReference reference) {
+ if (reference == null) {
+ return null;
+ }
+ assert reference instanceof ResourceReference;
+ return ((ResourceReference) reference).getResource();
+ }
}
diff --git a/src/com/vaadin/terminal/gwt/server/RestrictedRenderResponse.java b/src/com/vaadin/terminal/gwt/server/RestrictedRenderResponse.java
index c4ef3fc8e5..9fdffbf9a5 100644
--- a/src/com/vaadin/terminal/gwt/server/RestrictedRenderResponse.java
+++ b/src/com/vaadin/terminal/gwt/server/RestrictedRenderResponse.java
@@ -34,112 +34,137 @@ class RestrictedRenderResponse implements RenderResponse, Serializable {
this.response = response;
}
+ @Override
public void addProperty(String key, String value) {
response.addProperty(key, value);
}
+ @Override
public PortletURL createActionURL() {
return response.createActionURL();
}
+ @Override
public PortletURL createRenderURL() {
return response.createRenderURL();
}
+ @Override
public String encodeURL(String path) {
return response.encodeURL(path);
}
+ @Override
public void flushBuffer() throws IOException {
// NOP
// TODO throw?
}
+ @Override
public int getBufferSize() {
return response.getBufferSize();
}
+ @Override
public String getCharacterEncoding() {
return response.getCharacterEncoding();
}
+ @Override
public String getContentType() {
return response.getContentType();
}
+ @Override
public Locale getLocale() {
return response.getLocale();
}
+ @Override
public String getNamespace() {
return response.getNamespace();
}
+ @Override
public OutputStream getPortletOutputStream() throws IOException {
// write forbidden
return null;
}
+ @Override
public PrintWriter getWriter() throws IOException {
// write forbidden
return null;
}
+ @Override
public boolean isCommitted() {
return response.isCommitted();
}
+ @Override
public void reset() {
// NOP
// TODO throw?
}
+ @Override
public void resetBuffer() {
// NOP
// TODO throw?
}
+ @Override
public void setBufferSize(int size) {
// NOP
// TODO throw?
}
+ @Override
public void setContentType(String type) {
// NOP
// TODO throw?
}
+ @Override
public void setProperty(String key, String value) {
response.setProperty(key, value);
}
+ @Override
public void setTitle(String title) {
response.setTitle(title);
}
+ @Override
public void setNextPossiblePortletModes(Collection<PortletMode> portletModes) {
// NOP
// TODO throw?
}
+ @Override
public ResourceURL createResourceURL() {
return response.createResourceURL();
}
+ @Override
public CacheControl getCacheControl() {
return response.getCacheControl();
}
+ @Override
public void addProperty(Cookie cookie) {
// NOP
// TODO throw?
}
+ @Override
public void addProperty(String key, Element element) {
// NOP
// TODO throw?
}
+ @Override
public Element createElement(String tagName) throws DOMException {
// NOP
return null;
diff --git a/src/com/vaadin/terminal/gwt/server/ServerRpcManager.java b/src/com/vaadin/terminal/gwt/server/ServerRpcManager.java
index d9931a9610..1c7af82a36 100644
--- a/src/com/vaadin/terminal/gwt/server/ServerRpcManager.java
+++ b/src/com/vaadin/terminal/gwt/server/ServerRpcManager.java
@@ -12,7 +12,7 @@ import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
-import com.vaadin.terminal.gwt.client.Connector;
+import com.vaadin.shared.Connector;
/**
* Server side RPC manager that handles RPC calls coming from the client.
@@ -111,6 +111,7 @@ public class ServerRpcManager<T> implements RpcManager {
* @param invocation
* method invocation to perform
*/
+ @Override
public void applyInvocation(ServerRpcMethodInvocation invocation)
throws RpcInvocationException {
Method method = invocation.getMethod();
diff --git a/src/com/vaadin/terminal/gwt/server/ServerRpcMethodInvocation.java b/src/com/vaadin/terminal/gwt/server/ServerRpcMethodInvocation.java
index 95565c4379..ff81a27596 100644
--- a/src/com/vaadin/terminal/gwt/server/ServerRpcMethodInvocation.java
+++ b/src/com/vaadin/terminal/gwt/server/ServerRpcMethodInvocation.java
@@ -7,8 +7,8 @@ import java.lang.reflect.Method;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import com.vaadin.terminal.gwt.client.communication.MethodInvocation;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.shared.communication.MethodInvocation;
+import com.vaadin.shared.communication.ServerRpc;
public class ServerRpcMethodInvocation extends MethodInvocation {
diff --git a/src/com/vaadin/terminal/gwt/server/ServletPortletHelper.java b/src/com/vaadin/terminal/gwt/server/ServletPortletHelper.java
index 9b1e60e621..b2b962b0fd 100644
--- a/src/com/vaadin/terminal/gwt/server/ServletPortletHelper.java
+++ b/src/com/vaadin/terminal/gwt/server/ServletPortletHelper.java
@@ -3,6 +3,9 @@ package com.vaadin.terminal.gwt.server;
import java.io.Serializable;
import com.vaadin.Application;
+import com.vaadin.terminal.DeploymentConfiguration;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.ui.Root;
/*
@@ -10,6 +13,8 @@ import com.vaadin.ui.Root;
*/
class ServletPortletHelper implements Serializable {
+ public static final String UPLOAD_URL_PREFIX = "APP/UPLOAD/";
+
public static class ApplicationClassException extends Exception {
public ApplicationClassException(String message, Throwable cause) {
@@ -22,8 +27,15 @@ class ServletPortletHelper implements Serializable {
}
static Class<? extends Application> getApplicationClass(
- String applicationParameter, String rootParameter,
- ClassLoader classLoader) throws ApplicationClassException {
+ DeploymentConfiguration deploymentConfiguration)
+ throws ApplicationClassException {
+ String applicationParameter = deploymentConfiguration
+ .getInitParameters().getProperty("application");
+ String rootParameter = deploymentConfiguration
+ .getInitParameters().getProperty(
+ Application.ROOT_PARAMETER);
+ ClassLoader classLoader = deploymentConfiguration.getClassLoader();
+
if (applicationParameter == null) {
// Validate the parameter value
@@ -70,4 +82,40 @@ class ServletPortletHelper implements Serializable {
+ " doesn't have a public no-args constructor");
}
}
+
+ private static boolean hasPathPrefix(WrappedRequest request, String prefix) {
+ String pathInfo = request.getRequestPathInfo();
+
+ if (pathInfo == null) {
+ return false;
+ }
+
+ if (!prefix.startsWith("/")) {
+ prefix = '/' + prefix;
+ }
+
+ if (pathInfo.startsWith(prefix)) {
+ return true;
+ }
+
+ return false;
+ }
+
+ public static boolean isFileUploadRequest(WrappedRequest request) {
+ return hasPathPrefix(request, UPLOAD_URL_PREFIX);
+ }
+
+ public static boolean isConnectorResourceRequest(WrappedRequest request) {
+ return hasPathPrefix(request,
+ ApplicationConnection.CONNECTOR_RESOURCE_PREFIX + "/");
+ }
+
+ public static boolean isUIDLRequest(WrappedRequest request) {
+ return hasPathPrefix(request, ApplicationConnection.UIDL_REQUEST_PATH);
+ }
+
+ public static boolean isApplicationResourceRequest(WrappedRequest request) {
+ return hasPathPrefix(request, ApplicationConnection.APP_REQUEST_PATH);
+ }
+
}
diff --git a/src/com/vaadin/terminal/gwt/server/StreamingErrorEventImpl.java b/src/com/vaadin/terminal/gwt/server/StreamingErrorEventImpl.java
index 7418867fc8..6ab3df2789 100644
--- a/src/com/vaadin/terminal/gwt/server/StreamingErrorEventImpl.java
+++ b/src/com/vaadin/terminal/gwt/server/StreamingErrorEventImpl.java
@@ -17,6 +17,7 @@ final class StreamingErrorEventImpl extends AbstractStreamingEvent implements
this.exception = exception;
}
+ @Override
public final Exception getException() {
return exception;
}
diff --git a/src/com/vaadin/terminal/gwt/server/StreamingStartEventImpl.java b/src/com/vaadin/terminal/gwt/server/StreamingStartEventImpl.java
index 6a7844abd0..274d05e111 100644
--- a/src/com/vaadin/terminal/gwt/server/StreamingStartEventImpl.java
+++ b/src/com/vaadin/terminal/gwt/server/StreamingStartEventImpl.java
@@ -16,6 +16,7 @@ final class StreamingStartEventImpl extends AbstractStreamingEvent implements
super(filename, type, contentLength, 0);
}
+ @Override
public void disposeStreamVariable() {
disposed = true;
}
diff --git a/src/com/vaadin/terminal/gwt/server/UnsupportedBrowserHandler.java b/src/com/vaadin/terminal/gwt/server/UnsupportedBrowserHandler.java
index 334a7acf8d..5248af595e 100644
--- a/src/com/vaadin/terminal/gwt/server/UnsupportedBrowserHandler.java
+++ b/src/com/vaadin/terminal/gwt/server/UnsupportedBrowserHandler.java
@@ -26,6 +26,7 @@ public class UnsupportedBrowserHandler implements RequestHandler {
/** Cookie used to ignore browser checks */
public static final String FORCE_LOAD_COOKIE = "vaadinforceload=1";
+ @Override
public boolean handleRequest(Application application,
WrappedRequest request, WrappedResponse response)
throws IOException {
diff --git a/src/com/vaadin/terminal/gwt/server/WebApplicationContext.java b/src/com/vaadin/terminal/gwt/server/WebApplicationContext.java
index 8a1ea792f5..36c08b2ed9 100644
--- a/src/com/vaadin/terminal/gwt/server/WebApplicationContext.java
+++ b/src/com/vaadin/terminal/gwt/server/WebApplicationContext.java
@@ -111,6 +111,7 @@ public class WebApplicationContext extends AbstractWebApplicationContext {
*
* @see com.vaadin.service.ApplicationContext#getBaseDirectory()
*/
+ @Override
public File getBaseDirectory() {
final String realPath = ApplicationServlet.getResourcePath(
session.getServletContext(), "/");
diff --git a/src/com/vaadin/terminal/gwt/server/WebBrowser.java b/src/com/vaadin/terminal/gwt/server/WebBrowser.java
index 38b5409594..4b92b12b66 100644
--- a/src/com/vaadin/terminal/gwt/server/WebBrowser.java
+++ b/src/com/vaadin/terminal/gwt/server/WebBrowser.java
@@ -7,9 +7,9 @@ package com.vaadin.terminal.gwt.server;
import java.util.Date;
import java.util.Locale;
+import com.vaadin.shared.VBrowserDetails;
import com.vaadin.terminal.Terminal;
import com.vaadin.terminal.WrappedRequest;
-import com.vaadin.terminal.gwt.client.VBrowserDetails;
/**
* Class that provides information about the web browser the user is using.
@@ -42,6 +42,7 @@ public class WebBrowser implements Terminal {
* @return Always returns null.
*/
+ @Override
public String getDefaultTheme() {
return null;
}
@@ -52,6 +53,7 @@ public class WebBrowser implements Terminal {
* @see com.vaadin.terminal.Terminal#getScreenHeight()
*/
+ @Override
public int getScreenHeight() {
return screenHeight;
}
@@ -62,6 +64,7 @@ public class WebBrowser implements Terminal {
* @see com.vaadin.terminal.Terminal#getScreenWidth()
*/
+ @Override
public int getScreenWidth() {
return screenWidth;
}
diff --git a/src/com/vaadin/terminal/gwt/server/WrappedHttpServletRequest.java b/src/com/vaadin/terminal/gwt/server/WrappedHttpServletRequest.java
index 0774a79990..cf58f398af 100644
--- a/src/com/vaadin/terminal/gwt/server/WrappedHttpServletRequest.java
+++ b/src/com/vaadin/terminal/gwt/server/WrappedHttpServletRequest.java
@@ -41,18 +41,22 @@ public class WrappedHttpServletRequest extends HttpServletRequestWrapper
this.deploymentConfiguration = deploymentConfiguration;
}
+ @Override
public String getRequestPathInfo() {
return getPathInfo();
}
+ @Override
public int getSessionMaxInactiveInterval() {
return getSession().getMaxInactiveInterval();
}
+ @Override
public Object getSessionAttribute(String name) {
return getSession().getAttribute(name);
}
+ @Override
public void setSessionAttribute(String name, Object attribute) {
getSession().setAttribute(name, attribute);
}
@@ -66,20 +70,25 @@ public class WrappedHttpServletRequest extends HttpServletRequestWrapper
return this;
}
+ @Override
public DeploymentConfiguration getDeploymentConfiguration() {
return deploymentConfiguration;
}
+ @Override
public BrowserDetails getBrowserDetails() {
return new BrowserDetails() {
+ @Override
public String getUriFragment() {
return null;
}
+ @Override
public String getWindowName() {
return null;
}
+ @Override
public WebBrowser getWebBrowser() {
WebApplicationContext context = (WebApplicationContext) Application
.getCurrent().getContext();
diff --git a/src/com/vaadin/terminal/gwt/server/WrappedHttpServletResponse.java b/src/com/vaadin/terminal/gwt/server/WrappedHttpServletResponse.java
index 14a391b21f..32b2f352a8 100644
--- a/src/com/vaadin/terminal/gwt/server/WrappedHttpServletResponse.java
+++ b/src/com/vaadin/terminal/gwt/server/WrappedHttpServletResponse.java
@@ -47,6 +47,7 @@ public class WrappedHttpServletResponse extends HttpServletResponseWrapper
return this;
}
+ @Override
public void setCacheTime(long milliseconds) {
doSetCacheTime(this, milliseconds);
}
@@ -67,6 +68,7 @@ public class WrappedHttpServletResponse extends HttpServletResponseWrapper
}
}
+ @Override
public DeploymentConfiguration getDeploymentConfiguration() {
return deploymentConfiguration;
}
diff --git a/src/com/vaadin/terminal/gwt/server/WrappedPortletRequest.java b/src/com/vaadin/terminal/gwt/server/WrappedPortletRequest.java
index 85d8d5c69c..a3fa172034 100644
--- a/src/com/vaadin/terminal/gwt/server/WrappedPortletRequest.java
+++ b/src/com/vaadin/terminal/gwt/server/WrappedPortletRequest.java
@@ -17,6 +17,7 @@ import com.vaadin.Application;
import com.vaadin.terminal.CombinedRequest;
import com.vaadin.terminal.DeploymentConfiguration;
import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.terminal.gwt.client.ApplicationConnection;
/**
* Wrapper for {@link PortletRequest} and its subclasses.
@@ -46,10 +47,12 @@ public class WrappedPortletRequest implements WrappedRequest {
this.deploymentConfiguration = deploymentConfiguration;
}
+ @Override
public Object getAttribute(String name) {
return request.getAttribute(name);
}
+ @Override
public int getContentLength() {
try {
return ((ClientDataRequest) request).getContentLength();
@@ -59,6 +62,7 @@ public class WrappedPortletRequest implements WrappedRequest {
}
}
+ @Override
public InputStream getInputStream() throws IOException {
try {
return ((ClientDataRequest) request).getPortletInputStream();
@@ -68,34 +72,48 @@ public class WrappedPortletRequest implements WrappedRequest {
}
}
+ @Override
public String getParameter(String name) {
return request.getParameter(name);
}
+ @Override
public Map<String, String[]> getParameterMap() {
return request.getParameterMap();
}
+ @Override
public void setAttribute(String name, Object o) {
request.setAttribute(name, o);
}
+ @Override
public String getRequestPathInfo() {
if (request instanceof ResourceRequest) {
- return ((ResourceRequest) request).getResourceID();
+ ResourceRequest resourceRequest = (ResourceRequest) request;
+ String resourceID = resourceRequest.getResourceID();
+ if (AbstractApplicationPortlet.RESOURCE_URL_ID.equals(resourceID)) {
+ String resourcePath = resourceRequest
+ .getParameter(ApplicationConnection.V_RESOURCE_PATH);
+ return resourcePath;
+ }
+ return resourceID;
} else {
return null;
}
}
+ @Override
public int getSessionMaxInactiveInterval() {
return request.getPortletSession().getMaxInactiveInterval();
}
+ @Override
public Object getSessionAttribute(String name) {
return request.getPortletSession().getAttribute(name);
}
+ @Override
public void setSessionAttribute(String name, Object attribute) {
request.getPortletSession().setAttribute(name, attribute);
}
@@ -109,6 +127,7 @@ public class WrappedPortletRequest implements WrappedRequest {
return request;
}
+ @Override
public String getContentType() {
try {
return ((ResourceRequest) request).getContentType();
@@ -118,16 +137,20 @@ public class WrappedPortletRequest implements WrappedRequest {
}
}
+ @Override
public BrowserDetails getBrowserDetails() {
return new BrowserDetails() {
+ @Override
public String getUriFragment() {
return null;
}
+ @Override
public String getWindowName() {
return null;
}
+ @Override
public WebBrowser getWebBrowser() {
PortletApplicationContext2 context = (PortletApplicationContext2) Application
.getCurrent().getContext();
@@ -136,18 +159,22 @@ public class WrappedPortletRequest implements WrappedRequest {
};
}
+ @Override
public Locale getLocale() {
return request.getLocale();
}
+ @Override
public String getRemoteAddr() {
return null;
}
+ @Override
public boolean isSecure() {
return request.isSecure();
}
+ @Override
public String getHeader(String string) {
return null;
}
@@ -164,6 +191,7 @@ public class WrappedPortletRequest implements WrappedRequest {
return request.getPortalContext().getProperty(name);
}
+ @Override
public DeploymentConfiguration getDeploymentConfiguration() {
return deploymentConfiguration;
}
diff --git a/src/com/vaadin/terminal/gwt/server/WrappedPortletResponse.java b/src/com/vaadin/terminal/gwt/server/WrappedPortletResponse.java
index 8824396352..f7ecf26f3c 100644
--- a/src/com/vaadin/terminal/gwt/server/WrappedPortletResponse.java
+++ b/src/com/vaadin/terminal/gwt/server/WrappedPortletResponse.java
@@ -53,6 +53,7 @@ public class WrappedPortletResponse implements WrappedResponse {
this.deploymentConfiguration = deploymentConfiguration;
}
+ @Override
public OutputStream getOutputStream() throws IOException {
return ((MimeResponse) response).getPortletOutputStream();
}
@@ -66,36 +67,44 @@ public class WrappedPortletResponse implements WrappedResponse {
return response;
}
+ @Override
public void setContentType(String type) {
((MimeResponse) response).setContentType(type);
}
+ @Override
public PrintWriter getWriter() throws IOException {
return ((MimeResponse) response).getWriter();
}
+ @Override
public void setStatus(int responseStatus) {
response.setProperty(ResourceResponse.HTTP_STATUS_CODE,
Integer.toString(responseStatus));
}
+ @Override
public void setHeader(String name, String value) {
response.setProperty(name, value);
}
+ @Override
public void setDateHeader(String name, long timestamp) {
response.setProperty(name, HTTP_DATE_FORMAT.format(new Date(timestamp)));
}
+ @Override
public void setCacheTime(long milliseconds) {
WrappedHttpServletResponse.doSetCacheTime(this, milliseconds);
}
+ @Override
public void sendError(int errorCode, String message) throws IOException {
setStatus(errorCode);
getWriter().write(message);
}
+ @Override
public DeploymentConfiguration getDeploymentConfiguration() {
return deploymentConfiguration;
}
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/AcceptCriteriaFactoryGenerator.java b/src/com/vaadin/terminal/gwt/widgetsetutils/AcceptCriteriaFactoryGenerator.java
index 6d90a51761..e5e2ee1f2c 100644
--- a/src/com/vaadin/terminal/gwt/widgetsetutils/AcceptCriteriaFactoryGenerator.java
+++ b/src/com/vaadin/terminal/gwt/widgetsetutils/AcceptCriteriaFactoryGenerator.java
@@ -15,7 +15,7 @@ import com.google.gwt.core.ext.typeinfo.JClassType;
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.ui.dd.AcceptCriterion;
+import com.vaadin.shared.ui.dd.AcceptCriterion;
import com.vaadin.terminal.gwt.client.ui.dd.VAcceptCriterion;
import com.vaadin.terminal.gwt.client.ui.dd.VAcceptCriterionFactory;
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/ClassPathExplorer.java b/src/com/vaadin/terminal/gwt/widgetsetutils/ClassPathExplorer.java
index 1c5b736492..6ee30183c1 100644
--- a/src/com/vaadin/terminal/gwt/widgetsetutils/ClassPathExplorer.java
+++ b/src/com/vaadin/terminal/gwt/widgetsetutils/ClassPathExplorer.java
@@ -49,6 +49,7 @@ public class ClassPathExplorer {
* File filter that only accepts directories.
*/
private final static FileFilter DIRECTORIES_ONLY = new FileFilter() {
+ @Override
public boolean accept(File f) {
if (f.exists() && f.isDirectory()) {
return true;
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/CustomWidgetMapGenerator.java b/src/com/vaadin/terminal/gwt/widgetsetutils/CustomWidgetMapGenerator.java
index f0f3df20b0..89045c63b2 100644
--- a/src/com/vaadin/terminal/gwt/widgetsetutils/CustomWidgetMapGenerator.java
+++ b/src/com/vaadin/terminal/gwt/widgetsetutils/CustomWidgetMapGenerator.java
@@ -6,10 +6,10 @@ package com.vaadin.terminal.gwt.widgetsetutils;
import java.util.Collection;
import java.util.HashSet;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ServerConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
/**
* An abstract helper class that can be used to easily build a widgetset with
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/EagerWidgetMapGenerator.java b/src/com/vaadin/terminal/gwt/widgetsetutils/EagerWidgetMapGenerator.java
index 084e1c3857..4ff0592ede 100644
--- a/src/com/vaadin/terminal/gwt/widgetsetutils/EagerWidgetMapGenerator.java
+++ b/src/com/vaadin/terminal/gwt/widgetsetutils/EagerWidgetMapGenerator.java
@@ -3,8 +3,8 @@
*/
package com.vaadin.terminal.gwt.widgetsetutils;
+import com.vaadin.shared.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ServerConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
/**
* WidgetMap generator that builds a widgetset that packs all included widgets
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/GeneratedRpcMethodProviderGenerator.java b/src/com/vaadin/terminal/gwt/widgetsetutils/GeneratedRpcMethodProviderGenerator.java
index b1d69b178b..e11a12a3b5 100644
--- a/src/com/vaadin/terminal/gwt/widgetsetutils/GeneratedRpcMethodProviderGenerator.java
+++ b/src/com/vaadin/terminal/gwt/widgetsetutils/GeneratedRpcMethodProviderGenerator.java
@@ -21,7 +21,7 @@ import com.google.gwt.core.ext.typeinfo.JType;
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.communication.ClientRpc;
+import com.vaadin.shared.communication.ClientRpc;
import com.vaadin.terminal.gwt.client.communication.GeneratedRpcMethodProvider;
import com.vaadin.terminal.gwt.client.communication.RpcManager;
import com.vaadin.terminal.gwt.client.communication.RpcMethod;
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/LazyWidgetMapGenerator.java b/src/com/vaadin/terminal/gwt/widgetsetutils/LazyWidgetMapGenerator.java
index f8366beb46..28f3dab482 100644
--- a/src/com/vaadin/terminal/gwt/widgetsetutils/LazyWidgetMapGenerator.java
+++ b/src/com/vaadin/terminal/gwt/widgetsetutils/LazyWidgetMapGenerator.java
@@ -3,8 +3,8 @@
*/
package com.vaadin.terminal.gwt.widgetsetutils;
+import com.vaadin.shared.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ServerConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
/**
* WidgetMap generator that builds a widgetset that optimizes the transferred
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/RpcProxyCreatorGenerator.java b/src/com/vaadin/terminal/gwt/widgetsetutils/RpcProxyCreatorGenerator.java
index 040715fccf..8a6c374187 100644
--- a/src/com/vaadin/terminal/gwt/widgetsetutils/RpcProxyCreatorGenerator.java
+++ b/src/com/vaadin/terminal/gwt/widgetsetutils/RpcProxyCreatorGenerator.java
@@ -16,10 +16,10 @@ import com.google.gwt.core.ext.typeinfo.JClassType;
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.shared.communication.ServerRpc;
import com.vaadin.terminal.gwt.client.ServerConnector;
import com.vaadin.terminal.gwt.client.communication.InitializableServerRpc;
import com.vaadin.terminal.gwt.client.communication.RpcProxy.RpcProxyCreator;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
public class RpcProxyCreatorGenerator extends Generator {
@@ -31,13 +31,13 @@ public class RpcProxyCreatorGenerator extends Generator {
assert (typeOracle != null);
JClassType requestedType = typeOracle.findType(requestedClassName);
- String packageName = requestedType.getPackage().getName();
- String className = requestedType.getSimpleSourceName() + "Impl";
if (requestedType == null) {
logger.log(TreeLogger.ERROR, "Unable to find metadata for type '"
+ requestedClassName + "'", null);
throw new UnableToCompleteException();
}
+ String packageName = requestedType.getPackage().getName();
+ String className = requestedType.getSimpleSourceName() + "Impl";
createType(logger, ctx, packageName, className);
return packageName + "." + className;
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/RpcProxyGenerator.java b/src/com/vaadin/terminal/gwt/widgetsetutils/RpcProxyGenerator.java
index d9bc8bc832..7a908e5b4d 100644
--- a/src/com/vaadin/terminal/gwt/widgetsetutils/RpcProxyGenerator.java
+++ b/src/com/vaadin/terminal/gwt/widgetsetutils/RpcProxyGenerator.java
@@ -17,11 +17,11 @@ import com.google.gwt.core.ext.typeinfo.JParameter;
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.shared.communication.MethodInvocation;
+import com.vaadin.shared.communication.ServerRpc;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ServerConnector;
import com.vaadin.terminal.gwt.client.communication.InitializableServerRpc;
-import com.vaadin.terminal.gwt.client.communication.MethodInvocation;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
/**
* GWT generator that creates client side proxy classes for making RPC calls
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/SerializerMapGenerator.java b/src/com/vaadin/terminal/gwt/widgetsetutils/SerializerMapGenerator.java
index 5e151323a0..3f1ad24066 100644
--- a/src/com/vaadin/terminal/gwt/widgetsetutils/SerializerMapGenerator.java
+++ b/src/com/vaadin/terminal/gwt/widgetsetutils/SerializerMapGenerator.java
@@ -22,17 +22,17 @@ import com.google.gwt.core.ext.typeinfo.JClassType;
import com.google.gwt.core.ext.typeinfo.JMethod;
import com.google.gwt.core.ext.typeinfo.JParameterizedType;
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.json.client.JSONObject;
+import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.rebind.ClassSourceFileComposerFactory;
import com.google.gwt.user.rebind.SourceWriter;
+import com.vaadin.shared.communication.ClientRpc;
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.communication.SharedState;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.terminal.gwt.client.ConnectorMap;
-import com.vaadin.terminal.gwt.client.communication.ClientRpc;
import com.vaadin.terminal.gwt.client.communication.JSONSerializer;
import com.vaadin.terminal.gwt.client.communication.SerializerMap;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
/**
* GWT generator that creates a {@link SerializerMap} implementation (mapper
@@ -43,6 +43,7 @@ import com.vaadin.terminal.gwt.client.communication.SharedState;
*/
public class SerializerMapGenerator extends Generator {
+ private static final String FAIL_IF_NOT_SERIALIZABLE = "vFailIfNotSerializable";
private String packageName;
private String className;
@@ -54,7 +55,7 @@ public class SerializerMapGenerator extends Generator {
TypeOracle typeOracle = context.getTypeOracle();
Set<JClassType> typesNeedingSerializers = findTypesNeedingSerializers(
typeOracle, logger);
- warnIfNotJavaSerializable(typesNeedingSerializers, typeOracle,
+ checkForUnserializableTypes(typesNeedingSerializers, typeOracle,
logger);
Set<JClassType> typesWithExistingSerializers = findTypesWithExistingSerializers(
typeOracle, logger);
@@ -90,10 +91,11 @@ public class SerializerMapGenerator extends Generator {
* @param typesNeedingSerializers
* @param typeOracle
* @param logger
+ * @throws UnableToCompleteException
*/
- private void warnIfNotJavaSerializable(
+ private void checkForUnserializableTypes(
Set<JClassType> typesNeedingSerializers, TypeOracle typeOracle,
- TreeLogger logger) {
+ TreeLogger logger) throws UnableToCompleteException {
JClassType javaSerializable = typeOracle.findType(Serializable.class
.getName());
for (JClassType type : typesNeedingSerializers) {
@@ -103,33 +105,59 @@ public class SerializerMapGenerator extends Generator {
}
boolean serializable = type.isAssignableTo(javaSerializable);
if (!serializable) {
+ boolean abortCompile = "true".equals(System
+ .getProperty(FAIL_IF_NOT_SERIALIZABLE));
logger.log(
- Type.ERROR,
+ abortCompile ? Type.ERROR : Type.WARN,
type
+ " is used in RPC or shared state but does not implement "
+ Serializable.class.getName()
- + ". Communication will work but the Application on server side cannot be serialized if it refers to objects of this type.");
+ + ". Communication will work but the Application on server side cannot be serialized if it refers to objects of this type. "
+ + "If the system property "
+ + FAIL_IF_NOT_SERIALIZABLE
+ + " is set to \"true\", this causes the compilation to fail instead of just emitting a warning.");
+ if (abortCompile) {
+ throw new UnableToCompleteException();
+ }
}
}
}
private Set<JClassType> findTypesWithExistingSerializers(
- TypeOracle typeOracle, TreeLogger logger) {
+ TypeOracle typeOracle, TreeLogger logger)
+ throws UnableToCompleteException {
JClassType serializerInterface = typeOracle
.findType(JSONSerializer.class.getName());
+ JType[] deserializeParamTypes = new JType[] {
+ typeOracle
+ .findType(com.vaadin.terminal.gwt.client.communication.Type.class
+ .getName()),
+ typeOracle.findType(JSONValue.class.getName()),
+ typeOracle.findType(ApplicationConnection.class.getName()) };
+ String deserializeMethodName = "deserialize";
+ try {
+ serializerInterface.getMethod(deserializeMethodName,
+ deserializeParamTypes);
+ } catch (NotFoundException e) {
+ logger.log(Type.ERROR, "Could not find " + deserializeMethodName
+ + " in " + serializerInterface);
+ throw new UnableToCompleteException();
+ }
+
Set<JClassType> types = new HashSet<JClassType>();
for (JClassType serializer : serializerInterface.getSubtypes()) {
- JType[] deserializeParamTypes = new JType[] {
- typeOracle.findType(JSONObject.class.getName()),
- typeOracle.findType(ConnectorMap.class.getName()),
- typeOracle.findType(ApplicationConnection.class.getName()) };
- JMethod deserializeMethod = serializer.findMethod("deserialize",
- deserializeParamTypes);
+ JMethod deserializeMethod = serializer.findMethod(
+ deserializeMethodName, deserializeParamTypes);
if (deserializeMethod == null) {
+ logger.log(Type.DEBUG, "Could not find "
+ + deserializeMethodName + " in " + serializer);
continue;
}
+ JType returnType = deserializeMethod.getReturnType();
+ logger.log(Type.DEBUG, "Found " + deserializeMethodName
+ + " with return type " + returnType + " in " + serializer);
- types.add(deserializeMethod.getReturnType().isClass());
+ types.add(returnType.isClass());
}
return types;
}
diff --git a/src/com/vaadin/terminal/gwt/widgetsetutils/WidgetMapGenerator.java b/src/com/vaadin/terminal/gwt/widgetsetutils/WidgetMapGenerator.java
index b264a9c7fe..0d062ec4ff 100644
--- a/src/com/vaadin/terminal/gwt/widgetsetutils/WidgetMapGenerator.java
+++ b/src/com/vaadin/terminal/gwt/widgetsetutils/WidgetMapGenerator.java
@@ -22,10 +22,10 @@ import com.google.gwt.core.ext.typeinfo.JClassType;
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.Connector;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.shared.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ServerConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.terminal.gwt.client.ui.Connect.LoadStyle;
import com.vaadin.terminal.gwt.client.ui.UnknownComponentConnector;
import com.vaadin.terminal.gwt.client.ui.root.RootConnector;
import com.vaadin.terminal.gwt.server.ClientConnector;
diff --git a/src/com/vaadin/tools/WidgetsetCompiler.java b/src/com/vaadin/tools/WidgetsetCompiler.java
index 407f0e2387..ecc1946e60 100644
--- a/src/com/vaadin/tools/WidgetsetCompiler.java
+++ b/src/com/vaadin/tools/WidgetsetCompiler.java
@@ -31,7 +31,8 @@ import com.vaadin.terminal.gwt.widgetsetutils.WidgetSetBuilder;
* included in the classpath, as well as the gwt-dev-[platform].jar and other
* relevant JARs.
*
- * @deprecated with Java 6, can use com.google.gwt.dev.Compiler directly (also in Eclipse plug-in etc.)
+ * @deprecated with Java 6, can use com.google.gwt.dev.Compiler directly (also
+ * in Eclipse plug-in etc.)
*/
@Deprecated
public class WidgetsetCompiler {
@@ -50,6 +51,7 @@ public class WidgetsetCompiler {
// http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6316197)
Runnable runCompiler = new Runnable() {
+ @Override
public void run() {
try {
// GWTCompiler.main(args);
diff --git a/src/com/vaadin/ui/AbsoluteLayout.java b/src/com/vaadin/ui/AbsoluteLayout.java
index 7d8c402fc9..1c84ca2865 100644
--- a/src/com/vaadin/ui/AbsoluteLayout.java
+++ b/src/com/vaadin/ui/AbsoluteLayout.java
@@ -12,12 +12,12 @@ import java.util.Map;
import com.vaadin.event.LayoutEvents.LayoutClickEvent;
import com.vaadin.event.LayoutEvents.LayoutClickListener;
import com.vaadin.event.LayoutEvents.LayoutClickNotifier;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.absolutelayout.AbsoluteLayoutServerRpc;
+import com.vaadin.shared.ui.absolutelayout.AbsoluteLayoutState;
import com.vaadin.terminal.Sizeable;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.ui.LayoutClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.absolutelayout.AbsoluteLayoutServerRpc;
-import com.vaadin.terminal.gwt.client.ui.absolutelayout.AbsoluteLayoutState;
/**
* AbsoluteLayout is a layout implementation that mimics html absolute
@@ -30,6 +30,7 @@ public class AbsoluteLayout extends AbstractLayout implements
private AbsoluteLayoutServerRpc rpc = new AbsoluteLayoutServerRpc() {
+ @Override
public void layoutClick(MouseEventDetails mouseDetails,
Connector clickedConnector) {
fireEvent(LayoutClickEvent.createEvent(AbsoluteLayout.this,
@@ -56,6 +57,7 @@ public class AbsoluteLayout extends AbstractLayout implements
* Gets an iterator for going through all components enclosed in the
* absolute layout.
*/
+ @Override
public Iterator<Component> getComponentIterator() {
return componentToCoordinates.keySet().iterator();
}
@@ -66,6 +68,7 @@ public class AbsoluteLayout extends AbstractLayout implements
*
* @return the number of contained components
*/
+ @Override
public int getComponentCount() {
return componentToCoordinates.size();
}
@@ -74,6 +77,7 @@ public class AbsoluteLayout extends AbstractLayout implements
* Replaces one component with another one. The new component inherits the
* old components position.
*/
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent) {
ComponentPosition position = getPosition(oldComponent);
removeComponent(oldComponent);
@@ -612,12 +616,14 @@ public class AbsoluteLayout extends AbstractLayout implements
}
+ @Override
public void addListener(LayoutClickListener listener) {
addListener(LayoutClickEventHandler.LAYOUT_CLICK_EVENT_IDENTIFIER,
LayoutClickEvent.class, listener,
LayoutClickListener.clickMethod);
}
+ @Override
public void removeListener(LayoutClickListener listener) {
removeListener(LayoutClickEventHandler.LAYOUT_CLICK_EVENT_IDENTIFIER,
LayoutClickEvent.class, listener);
diff --git a/src/com/vaadin/ui/AbstractComponent.java b/src/com/vaadin/ui/AbstractComponent.java
index ba0e5db89c..e7cb38256c 100644
--- a/src/com/vaadin/ui/AbstractComponent.java
+++ b/src/com/vaadin/ui/AbstractComponent.java
@@ -20,11 +20,11 @@ import com.vaadin.event.ActionManager;
import com.vaadin.event.EventRouter;
import com.vaadin.event.MethodEventSource;
import com.vaadin.event.ShortcutListener;
+import com.vaadin.shared.ComponentState;
import com.vaadin.terminal.AbstractClientConnector;
import com.vaadin.terminal.ErrorMessage;
import com.vaadin.terminal.Resource;
import com.vaadin.terminal.Terminal;
-import com.vaadin.terminal.gwt.client.ComponentState;
import com.vaadin.terminal.gwt.server.ClientConnector;
import com.vaadin.terminal.gwt.server.ComponentSizeValidator;
import com.vaadin.terminal.gwt.server.ResourceReference;
@@ -101,10 +101,12 @@ public abstract class AbstractComponent extends AbstractClientConnector
/* Get/Set component properties */
+ @Override
public void setDebugId(String id) {
getState().setDebugId(id);
}
+ @Override
public String getDebugId() {
return getState().getDebugId();
}
@@ -141,6 +143,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* Gets the component's style. Don't add a JavaDoc comment here, we use the
* default documentation from implemented interface.
*/
+ @Override
public String getStyleName() {
String s = "";
if (getState().getStyles() != null) {
@@ -159,6 +162,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* Sets the component's style. Don't add a JavaDoc comment here, we use the
* default documentation from implemented interface.
*/
+ @Override
public void setStyleName(String style) {
if (style == null || "".equals(style)) {
getState().setStyles(null);
@@ -179,6 +183,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
requestRepaint();
}
+ @Override
public void addStyleName(String style) {
if (style == null || "".equals(style)) {
return;
@@ -201,6 +206,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
}
}
+ @Override
public void removeStyleName(String style) {
if (getState().getStyles() != null) {
String[] styleParts = style.split(" +");
@@ -217,6 +223,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* Get's the component's caption. Don't add a JavaDoc comment here, we use
* the default documentation from implemented interface.
*/
+ @Override
public String getCaption() {
return getState().getCaption();
}
@@ -229,6 +236,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* @param caption
* the new caption <code>String</code> for the component.
*/
+ @Override
public void setCaption(String caption) {
getState().setCaption(caption);
requestRepaint();
@@ -238,6 +246,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* Don't add a JavaDoc comment here, we use the default documentation from
* implemented interface.
*/
+ @Override
public Locale getLocale() {
if (locale != null) {
return locale;
@@ -283,13 +292,9 @@ public abstract class AbstractComponent extends AbstractClientConnector
* Gets the component's icon resource. Don't add a JavaDoc comment here, we
* use the default documentation from implemented interface.
*/
+ @Override
public Resource getIcon() {
- ResourceReference ref = ((ResourceReference) getState().getIcon());
- if (ref == null) {
- return null;
- } else {
- return ref.getResource();
- }
+ return ResourceReference.getResource(getState().getIcon());
}
/**
@@ -299,12 +304,9 @@ public abstract class AbstractComponent extends AbstractClientConnector
* @param icon
* the icon to be shown with the component's caption.
*/
+ @Override
public void setIcon(Resource icon) {
- if (icon == null) {
- getState().setIcon(null);
- } else {
- getState().setIcon(new ResourceReference(icon));
- }
+ getState().setIcon(ResourceReference.create(icon));
requestRepaint();
}
@@ -313,6 +315,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.ui.Component#isEnabled()
*/
+ @Override
public boolean isEnabled() {
return getState().isEnabled();
}
@@ -322,6 +325,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.ui.Component#setEnabled(boolean)
*/
+ @Override
public void setEnabled(boolean enabled) {
if (getState().isEnabled() != enabled) {
getState().setEnabled(enabled);
@@ -377,6 +381,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.ui.Component#isVisible()
*/
+ @Override
public boolean isVisible() {
return getState().isVisible();
}
@@ -386,6 +391,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.ui.Component#setVisible(boolean)
*/
+ @Override
public void setVisible(boolean visible) {
if (getState().isVisible() == visible) {
return;
@@ -566,6 +572,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* Tests if the component is in read-only mode. Don't add a JavaDoc comment
* here, we use the default documentation from implemented interface.
*/
+ @Override
public boolean isReadOnly() {
return getState().isReadOnly();
}
@@ -574,6 +581,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* Sets the component's read-only mode. Don't add a JavaDoc comment here, we
* use the default documentation from implemented interface.
*/
+ @Override
public void setReadOnly(boolean readOnly) {
getState().setReadOnly(readOnly);
requestRepaint();
@@ -704,6 +712,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.ui.Component#updateState()
*/
+ @Override
public void updateState() {
// TODO This logic should be on the client side and the state should
// simply be a data object with "width" and "height".
@@ -863,6 +872,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* @param method
* the activation method.
*/
+ @Override
public void addListener(Class<?> eventType, Object target, Method method) {
if (eventRouter == null) {
eventRouter = new EventRouter();
@@ -904,6 +914,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* @param methodName
* the name of the activation method.
*/
+ @Override
public void addListener(Class<?> eventType, Object target, String methodName) {
if (eventRouter == null) {
eventRouter = new EventRouter();
@@ -929,6 +940,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* the target object that has registered to listen to events of
* type <code>eventType</code> with one or more methods.
*/
+ @Override
public void removeListener(Class<?> eventType, Object target) {
if (eventRouter != null) {
eventRouter.removeListener(eventType, target);
@@ -954,6 +966,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* the method owned by <code>target</code> that's registered to
* listen to events of type <code>eventType</code>.
*/
+ @Override
public void removeListener(Class<?> eventType, Object target, Method method) {
if (eventRouter != null) {
eventRouter.removeListener(eventType, target, method);
@@ -988,6 +1001,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* the name of the method owned by <code>target</code> that's
* registered to listen to events of type <code>eventType</code>.
*/
+ @Override
public void removeListener(Class<?> eventType, Object target,
String methodName) {
if (eventRouter != null) {
@@ -1032,6 +1046,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* Don't add a JavaDoc comment here, we use the default documentation from
* implemented interface.
*/
+ @Override
public void addListener(Component.Listener listener) {
addListener(Component.Event.class, listener, COMPONENT_EVENT_METHOD);
}
@@ -1041,6 +1056,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
* JavaDoc comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public void removeListener(Component.Listener listener) {
removeListener(Component.Event.class, listener, COMPONENT_EVENT_METHOD);
}
@@ -1090,6 +1106,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.terminal.Sizeable#getHeight()
*/
+ @Override
public float getHeight() {
return height;
}
@@ -1099,6 +1116,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.terminal.Sizeable#getHeightUnits()
*/
+ @Override
public Unit getHeightUnits() {
return heightUnit;
}
@@ -1108,6 +1126,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.terminal.Sizeable#getWidth()
*/
+ @Override
public float getWidth() {
return width;
}
@@ -1117,6 +1136,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.terminal.Sizeable#getWidthUnits()
*/
+ @Override
public Unit getWidthUnits() {
return widthUnit;
}
@@ -1126,6 +1146,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.terminal.Sizeable#setHeight(float, Unit)
*/
+ @Override
public void setHeight(float height, Unit unit) {
if (unit == null) {
throw new IllegalArgumentException("Unit can not be null");
@@ -1141,6 +1162,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.terminal.Sizeable#setSizeFull()
*/
+ @Override
public void setSizeFull() {
setWidth(100, Unit.PERCENTAGE);
setHeight(100, Unit.PERCENTAGE);
@@ -1151,6 +1173,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.terminal.Sizeable#setSizeUndefined()
*/
+ @Override
public void setSizeUndefined() {
setWidth(-1, Unit.PIXELS);
setHeight(-1, Unit.PIXELS);
@@ -1161,6 +1184,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.terminal.Sizeable#setWidth(float, Unit)
*/
+ @Override
public void setWidth(float width, Unit unit) {
if (unit == null) {
throw new IllegalArgumentException("Unit can not be null");
@@ -1176,6 +1200,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.terminal.Sizeable#setWidth(java.lang.String)
*/
+ @Override
public void setWidth(String width) {
Size size = parseStringSize(width);
if (size != null) {
@@ -1190,6 +1215,7 @@ public abstract class AbstractComponent extends AbstractClientConnector
*
* @see com.vaadin.terminal.Sizeable#setHeight(java.lang.String)
*/
+ @Override
public void setHeight(String height) {
Size size = parseStringSize(height);
if (size != null) {
diff --git a/src/com/vaadin/ui/AbstractComponentContainer.java b/src/com/vaadin/ui/AbstractComponentContainer.java
index 8ef458b704..bc27242bb8 100644
--- a/src/com/vaadin/ui/AbstractComponentContainer.java
+++ b/src/com/vaadin/ui/AbstractComponentContainer.java
@@ -38,6 +38,7 @@ public abstract class AbstractComponentContainer extends AbstractComponent
* Removes all components from the container. This should probably be
* re-implemented in extending classes for a more powerful implementation.
*/
+ @Override
public void removeAllComponents() {
final LinkedList<Component> l = new LinkedList<Component>();
@@ -57,6 +58,7 @@ public abstract class AbstractComponentContainer extends AbstractComponent
* add a JavaDoc comment here, we use the default documentation from
* implemented interface.
*/
+ @Override
public void moveComponentsFrom(ComponentContainer source) {
final LinkedList<Component> components = new LinkedList<Component>();
for (final Iterator<Component> i = source.getComponentIterator(); i
@@ -93,24 +95,28 @@ public abstract class AbstractComponentContainer extends AbstractComponent
}
/* documented in interface */
+ @Override
public void addListener(ComponentAttachListener listener) {
addListener(ComponentContainer.ComponentAttachEvent.class, listener,
COMPONENT_ATTACHED_METHOD);
}
/* documented in interface */
+ @Override
public void addListener(ComponentDetachListener listener) {
addListener(ComponentContainer.ComponentDetachEvent.class, listener,
COMPONENT_DETACHED_METHOD);
}
/* documented in interface */
+ @Override
public void removeListener(ComponentAttachListener listener) {
removeListener(ComponentContainer.ComponentAttachEvent.class, listener,
COMPONENT_ATTACHED_METHOD);
}
/* documented in interface */
+ @Override
public void removeListener(ComponentDetachListener listener) {
removeListener(ComponentContainer.ComponentDetachEvent.class, listener,
COMPONENT_DETACHED_METHOD);
@@ -147,6 +153,7 @@ public abstract class AbstractComponentContainer extends AbstractComponent
*
* @see com.vaadin.ui.ComponentContainer#addComponent(Component)
*/
+ @Override
public void addComponent(Component c) {
if (c instanceof ComponentContainer) {
// Make sure we're not adding the component inside it's own content
@@ -177,6 +184,7 @@ public abstract class AbstractComponentContainer extends AbstractComponent
*
* @see com.vaadin.ui.ComponentContainer#removeComponent(Component)
*/
+ @Override
public void removeComponent(Component c) {
if (c.getParent() == this) {
c.setParent(null);
@@ -325,6 +333,7 @@ public abstract class AbstractComponentContainer extends AbstractComponent
true);
}
+ @Override
public Iterator<Component> iterator() {
return getComponentIterator();
}
@@ -335,6 +344,7 @@ public abstract class AbstractComponentContainer extends AbstractComponent
* @see
* com.vaadin.ui.HasComponents#isComponentVisible(com.vaadin.ui.Component)
*/
+ @Override
public boolean isComponentVisible(Component childComponent) {
return true;
}
diff --git a/src/com/vaadin/ui/AbstractField.java b/src/com/vaadin/ui/AbstractField.java
index ce62fb43ed..6fe7f54df5 100644
--- a/src/com/vaadin/ui/AbstractField.java
+++ b/src/com/vaadin/ui/AbstractField.java
@@ -25,10 +25,10 @@ import com.vaadin.data.util.converter.ConverterUtil;
import com.vaadin.event.Action;
import com.vaadin.event.ShortcutAction;
import com.vaadin.event.ShortcutListener;
+import com.vaadin.shared.AbstractFieldState;
import com.vaadin.terminal.AbstractErrorMessage;
import com.vaadin.terminal.CompositeErrorMessage;
import com.vaadin.terminal.ErrorMessage;
-import com.vaadin.terminal.gwt.client.AbstractFieldState;
/**
* <p>
@@ -178,6 +178,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
*
* @return the type of the Field
*/
+ @Override
public abstract Class<? extends T> getType();
/**
@@ -206,6 +207,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
*
* @see com.vaadin.data.BufferedValidatable#isInvalidCommitted()
*/
+ @Override
public boolean isInvalidCommitted() {
return invalidCommitted;
}
@@ -215,6 +217,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
*
* @see com.vaadin.data.BufferedValidatable#setInvalidCommitted(boolean)
*/
+ @Override
public void setInvalidCommitted(boolean isCommitted) {
invalidCommitted = isCommitted;
}
@@ -223,6 +226,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* Saves the current value to the data source Don't add a JavaDoc comment
* here, we use the default documentation from the implemented interface.
*/
+ @Override
public void commit() throws Buffered.SourceException, InvalidValueException {
if (dataSource != null && !dataSource.isReadOnly()) {
if ((isInvalidCommitted() || isValid())) {
@@ -271,6 +275,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* Updates the value from the data source. Don't add a JavaDoc comment here,
* we use the default documentation from the implemented interface.
*/
+ @Override
public void discard() throws Buffered.SourceException {
if (dataSource != null) {
@@ -343,6 +348,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* comment here, we use the default documentation from the implemented
* interface.
*/
+ @Override
public boolean isModified() {
return getState().isModified();
}
@@ -356,6 +362,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* Tests if the field is in write-through mode. Don't add a JavaDoc comment
* here, we use the default documentation from the implemented interface.
*/
+ @Override
public boolean isWriteThrough() {
return writeThroughMode;
}
@@ -381,6 +388,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* setReadThrough(true), setWriteThrough(true) equals
* setBuffered(false)
*/
+ @Override
@Deprecated
public void setWriteThrough(boolean writeThrough)
throws Buffered.SourceException, InvalidValueException {
@@ -397,6 +405,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* Tests if the field is in read-through mode. Don't add a JavaDoc comment
* here, we use the default documentation from the implemented interface.
*/
+ @Override
public boolean isReadThrough() {
return readThroughMode;
}
@@ -420,6 +429,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* setReadThrough(true), setWriteThrough(true) equals
* setBuffered(false)
*/
+ @Override
@Deprecated
public void setReadThrough(boolean readThrough)
throws Buffered.SourceException {
@@ -452,6 +462,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* @param buffered
* true if buffered mode should be turned on, false otherwise
*/
+ @Override
public void setBuffered(boolean buffered) {
setReadThrough(!buffered);
setWriteThrough(!buffered);
@@ -464,6 +475,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
*
* @return true if buffered mode is on, false otherwise
*/
+ @Override
public boolean isBuffered() {
return !isReadThrough() && !isWriteThrough();
}
@@ -517,6 +529,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
*
* @return the current value of the field.
*/
+ @Override
public T getValue() {
return getFieldValue();
}
@@ -528,6 +541,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* the New value of the field.
* @throws Property.ReadOnlyException
*/
+ @Override
public void setValue(Object newFieldValue)
throws Property.ReadOnlyException, Converter.ConversionException {
// This check is needed as long as setValue accepts Object instead of T
@@ -644,6 +658,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* @return the current data source as a Property, or <code>null</code> if
* none defined.
*/
+ @Override
public Property getPropertyDataSource() {
return dataSource;
}
@@ -686,6 +701,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* @param newDataSource
* the new data source Property.
*/
+ @Override
public void setPropertyDataSource(Property newDataSource) {
// Saves the old value
@@ -863,6 +879,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* @param validator
* the new validator to be added.
*/
+ @Override
public void addValidator(Validator validator) {
if (validators == null) {
validators = new LinkedList<Validator>();
@@ -877,6 +894,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* @return the Unmodifiable collection that holds all validators for the
* field.
*/
+ @Override
public Collection<Validator> getValidators() {
if (validators == null || validators.isEmpty()) {
return null;
@@ -890,6 +908,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* @param validator
* the validator to remove.
*/
+ @Override
public void removeValidator(Validator validator) {
if (validators != null) {
validators.remove(validator);
@@ -919,6 +938,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* current value is valid or if the field is empty and not required,
* <code>false</code> otherwise.
*/
+ @Override
public boolean isValid() {
try {
@@ -943,6 +963,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
*
* @see com.vaadin.data.Validatable#validate()
*/
+ @Override
public void validate() throws Validator.InvalidValueException {
if (isRequired() && isEmpty()) {
@@ -1014,6 +1035,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* @return true iff the invalid values are allowed.
* @see com.vaadin.data.Validatable#isInvalidAllowed()
*/
+ @Override
public boolean isInvalidAllowed() {
return invalidAllowed;
}
@@ -1031,6 +1053,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
*
* @see com.vaadin.data.Validatable#setInvalidAllowed(boolean)
*/
+ @Override
public void setInvalidAllowed(boolean invalidAllowed)
throws UnsupportedOperationException {
this.invalidAllowed = invalidAllowed;
@@ -1103,6 +1126,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* Adds a value change listener for the field. Don't add a JavaDoc comment
* here, we use the default documentation from the implemented interface.
*/
+ @Override
public void addListener(Property.ValueChangeListener listener) {
addListener(AbstractField.ValueChangeEvent.class, listener,
VALUE_CHANGE_METHOD);
@@ -1113,6 +1137,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* comment here, we use the default documentation from the implemented
* interface.
*/
+ @Override
public void removeListener(Property.ValueChangeListener listener) {
removeListener(AbstractField.ValueChangeEvent.class, listener,
VALUE_CHANGE_METHOD);
@@ -1152,6 +1177,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
*
* @see Property.ReadOnlyStatusChangeListener
*/
+ @Override
public void readOnlyStatusChange(Property.ReadOnlyStatusChangeEvent event) {
getState().setPropertyReadOnly(event.getProperty().isReadOnly());
requestRepaint();
@@ -1184,6 +1210,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
*
* @return the Source of the event.
*/
+ @Override
public Property getProperty() {
return (Property) getSource();
}
@@ -1194,6 +1221,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* JavaDoc comment here, we use the default documentation from the
* implemented interface.
*/
+ @Override
public void addListener(Property.ReadOnlyStatusChangeListener listener) {
addListener(Property.ReadOnlyStatusChangeEvent.class, listener,
READ_ONLY_STATUS_CHANGE_METHOD);
@@ -1204,6 +1232,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* JavaDoc comment here, we use the default documentation from the
* implemented interface.
*/
+ @Override
public void removeListener(Property.ReadOnlyStatusChangeListener listener) {
removeListener(Property.ReadOnlyStatusChangeEvent.class, listener,
READ_ONLY_STATUS_CHANGE_METHOD);
@@ -1228,6 +1257,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* the value change event telling the data source contents have
* changed.
*/
+ @Override
public void valueChange(Property.ValueChangeEvent event) {
if (isReadThrough()) {
if (committingValueToDataSource) {
@@ -1271,6 +1301,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
*
* @see com.vaadin.ui.Component.Focusable#getTabIndex()
*/
+ @Override
public int getTabIndex() {
return getState().getTabIndex();
}
@@ -1280,6 +1311,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
*
* @see com.vaadin.ui.Component.Focusable#setTabIndex(int)
*/
+ @Override
public void setTabIndex(int tabIndex) {
getState().setTabIndex(tabIndex);
requestRepaint();
@@ -1362,6 +1394,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* @return <code>true</code> if the field is required, otherwise
* <code>false</code>.
*/
+ @Override
public boolean isRequired() {
return getState().isRequired();
}
@@ -1381,6 +1414,7 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* @param required
* Is the field required.
*/
+ @Override
public void setRequired(boolean required) {
getState().setRequired(required);
requestRepaint();
@@ -1395,11 +1429,13 @@ public abstract class AbstractField<T> extends AbstractComponent implements
* @param requiredMessage
* Message to be shown when this field is required, but empty.
*/
+ @Override
public void setRequiredError(String requiredMessage) {
requiredError = requiredMessage;
requestRepaint();
}
+ @Override
public String getRequiredError() {
return requiredError;
}
diff --git a/src/com/vaadin/ui/AbstractJavaScriptComponent.java b/src/com/vaadin/ui/AbstractJavaScriptComponent.java
index 95c45f55f9..3668669d16 100644
--- a/src/com/vaadin/ui/AbstractJavaScriptComponent.java
+++ b/src/com/vaadin/ui/AbstractJavaScriptComponent.java
@@ -3,8 +3,9 @@
*/
package com.vaadin.ui;
+import com.vaadin.shared.ui.JavaScriptComponentState;
import com.vaadin.terminal.JavaScriptCallbackHelper;
-import com.vaadin.terminal.gwt.client.ui.JavaScriptComponentState;
+import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.ui.JavaScriptWidget;
/**
@@ -37,9 +38,9 @@ import com.vaadin.terminal.gwt.client.ui.JavaScriptWidget;
* the connector's parent. If <code>connectorId</code> is provided, the id of
* the parent of the corresponding connector with the passed id is returned
* instead.</li>
- * <li><code>getWidgetElement([connectorId])</code> - returns the DOM Element
- * that is the root of a connector's widget. <code>null</code> is returned if
- * the connector can not be found or if the connector doesn't have a widget. If
+ * <li><code>getElement([connectorId])</code> - returns the DOM Element that is
+ * the root of a connector's widget. <code>null</code> is returned if the
+ * connector can not be found or if the connector doesn't have a widget. If
* <code>connectorId</code> is not provided, the connector id of the current
* connector will be used.</li>
* <li><code>getState()</code> - returns an object corresponding to the shared
@@ -66,6 +67,9 @@ import com.vaadin.terminal.gwt.client.ui.JavaScriptWidget;
* exception when called. The scheme for conversion between Java types in the
* RPC interface and the JavaScript values that should be passed to the
* functions is described bellow.</li>
+ * <li><code>translateVaadinUri(uri)</code> - Translates a Vaadin URI to a URL
+ * that can be used in the browser. This is just way of accessing
+ * {@link ApplicationConnection#translateVaadinUri(String)}</li>
* </ul>
* The connector wrapper also supports these special functions:
* <ul>
@@ -110,7 +114,7 @@ import com.vaadin.terminal.gwt.client.ui.JavaScriptWidget;
* @version @VERSION@
* @since 7.0.0
*/
-public class AbstractJavaScriptComponent extends AbstractComponent {
+public abstract class AbstractJavaScriptComponent extends AbstractComponent {
private JavaScriptCallbackHelper callbackHelper = new JavaScriptCallbackHelper(
this);
@@ -142,8 +146,9 @@ public class AbstractJavaScriptComponent extends AbstractComponent {
/**
* 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 primitive
- * boxing types, arrays, String, List, Set, Map, Connector and JavaBeans.
+ * 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
diff --git a/src/com/vaadin/ui/AbstractLayout.java b/src/com/vaadin/ui/AbstractLayout.java
index 4876b40265..7b3a537d06 100644
--- a/src/com/vaadin/ui/AbstractLayout.java
+++ b/src/com/vaadin/ui/AbstractLayout.java
@@ -4,7 +4,7 @@
package com.vaadin.ui;
-import com.vaadin.terminal.gwt.client.ui.AbstractLayoutState;
+import com.vaadin.shared.ui.AbstractLayoutState;
import com.vaadin.ui.Layout.MarginHandler;
/**
@@ -32,6 +32,7 @@ public abstract class AbstractLayout extends AbstractComponentContainer
*
* @see com.vaadin.ui.Layout#setMargin(boolean)
*/
+ @Override
public void setMargin(boolean enabled) {
margins.setMargins(enabled);
getState().setMarginsBitmask(margins.getBitMask());
@@ -43,6 +44,7 @@ public abstract class AbstractLayout extends AbstractComponentContainer
*
* @see com.vaadin.ui.Layout.MarginHandler#getMargin()
*/
+ @Override
public MarginInfo getMargin() {
return margins;
}
@@ -52,6 +54,7 @@ public abstract class AbstractLayout extends AbstractComponentContainer
*
* @see com.vaadin.ui.Layout.MarginHandler#setMargin(MarginInfo)
*/
+ @Override
public void setMargin(MarginInfo marginInfo) {
margins.setMargins(marginInfo);
getState().setMarginsBitmask(margins.getBitMask());
@@ -63,6 +66,7 @@ public abstract class AbstractLayout extends AbstractComponentContainer
*
* @see com.vaadin.ui.Layout#setMargin(boolean, boolean, boolean, boolean)
*/
+ @Override
public void setMargin(boolean topEnabled, boolean rightEnabled,
boolean bottomEnabled, boolean leftEnabled) {
margins.setMargins(topEnabled, rightEnabled, bottomEnabled, leftEnabled);
diff --git a/src/com/vaadin/ui/AbstractMedia.java b/src/com/vaadin/ui/AbstractMedia.java
index 760d9878ca..71b2e38ef3 100644
--- a/src/com/vaadin/ui/AbstractMedia.java
+++ b/src/com/vaadin/ui/AbstractMedia.java
@@ -7,10 +7,10 @@ package com.vaadin.ui;
import java.util.ArrayList;
import java.util.List;
+import com.vaadin.shared.communication.URLReference;
+import com.vaadin.shared.ui.AbstractMediaState;
+import com.vaadin.shared.ui.MediaControl;
import com.vaadin.terminal.Resource;
-import com.vaadin.terminal.gwt.client.communication.URLReference;
-import com.vaadin.terminal.gwt.client.ui.AbstractMediaState;
-import com.vaadin.terminal.gwt.client.ui.MediaBaseConnector.MediaControl;
import com.vaadin.terminal.gwt.server.ResourceReference;
/**
@@ -18,7 +18,7 @@ import com.vaadin.terminal.gwt.server.ResourceReference;
*
* @author Vaadin Ltd
*/
-public class AbstractMedia extends AbstractComponent {
+public abstract class AbstractMedia extends AbstractComponent {
@Override
public AbstractMediaState getState() {
diff --git a/src/com/vaadin/ui/AbstractOrderedLayout.java b/src/com/vaadin/ui/AbstractOrderedLayout.java
index 2cd6fc2a9a..0581d0a279 100644
--- a/src/com/vaadin/ui/AbstractOrderedLayout.java
+++ b/src/com/vaadin/ui/AbstractOrderedLayout.java
@@ -10,13 +10,13 @@ import java.util.LinkedList;
import com.vaadin.event.LayoutEvents.LayoutClickEvent;
import com.vaadin.event.LayoutEvents.LayoutClickListener;
import com.vaadin.event.LayoutEvents.LayoutClickNotifier;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.orderedlayout.AbstractOrderedLayoutServerRpc;
+import com.vaadin.shared.ui.orderedlayout.AbstractOrderedLayoutState;
+import com.vaadin.shared.ui.orderedlayout.AbstractOrderedLayoutState.ChildComponentData;
import com.vaadin.terminal.Sizeable;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.ui.LayoutClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.orderedlayout.AbstractOrderedLayoutServerRpc;
-import com.vaadin.terminal.gwt.client.ui.orderedlayout.AbstractOrderedLayoutState;
-import com.vaadin.terminal.gwt.client.ui.orderedlayout.AbstractOrderedLayoutState.ChildComponentData;
@SuppressWarnings("serial")
public abstract class AbstractOrderedLayout extends AbstractLayout implements
@@ -24,6 +24,7 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements
private AbstractOrderedLayoutServerRpc rpc = new AbstractOrderedLayoutServerRpc() {
+ @Override
public void layoutClick(MouseEventDetails mouseDetails,
Connector clickedConnector) {
fireEvent(LayoutClickEvent.createEvent(AbstractOrderedLayout.this,
@@ -157,6 +158,7 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements
*
* @return the Iterator of the components inside the container.
*/
+ @Override
public Iterator<Component> getComponentIterator() {
return components.iterator();
}
@@ -167,11 +169,13 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements
*
* @return the number of contained components
*/
+ @Override
public int getComponentCount() {
return components.size();
}
/* Documented in superclass */
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent) {
// Gets the locations
@@ -220,12 +224,14 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements
* @see com.vaadin.ui.Layout.AlignmentHandler#setComponentAlignment(com
* .vaadin.ui.Component, int, int)
*/
+ @Override
public void setComponentAlignment(Component childComponent,
int horizontalAlignment, int verticalAlignment) {
Alignment a = new Alignment(horizontalAlignment + verticalAlignment);
setComponentAlignment(childComponent, a);
}
+ @Override
public void setComponentAlignment(Component childComponent,
Alignment alignment) {
ChildComponentData childData = getState().getChildData().get(
@@ -247,6 +253,7 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements
* @see com.vaadin.ui.Layout.AlignmentHandler#getComponentAlignment(com
* .vaadin.ui.Component)
*/
+ @Override
public Alignment getComponentAlignment(Component childComponent) {
ChildComponentData childData = getState().getChildData().get(
childComponent);
@@ -263,6 +270,7 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements
*
* @see com.vaadin.ui.Layout.SpacingHandler#setSpacing(boolean)
*/
+ @Override
public void setSpacing(boolean spacing) {
getState().setSpacing(spacing);
requestRepaint();
@@ -273,6 +281,7 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements
*
* @see com.vaadin.ui.Layout.SpacingHandler#isSpacing()
*/
+ @Override
public boolean isSpacing() {
return getState().isSpacing();
}
@@ -334,12 +343,14 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements
return childData.getExpandRatio();
}
+ @Override
public void addListener(LayoutClickListener listener) {
addListener(LayoutClickEventHandler.LAYOUT_CLICK_EVENT_IDENTIFIER,
LayoutClickEvent.class, listener,
LayoutClickListener.clickMethod);
}
+ @Override
public void removeListener(LayoutClickListener listener) {
removeListener(LayoutClickEventHandler.LAYOUT_CLICK_EVENT_IDENTIFIER,
LayoutClickEvent.class, listener);
diff --git a/src/com/vaadin/ui/AbstractSelect.java b/src/com/vaadin/ui/AbstractSelect.java
index 6a927251af..0a97ceb649 100644
--- a/src/com/vaadin/ui/AbstractSelect.java
+++ b/src/com/vaadin/ui/AbstractSelect.java
@@ -27,12 +27,12 @@ import com.vaadin.event.dd.TargetDetailsImpl;
import com.vaadin.event.dd.acceptcriteria.ClientSideCriterion;
import com.vaadin.event.dd.acceptcriteria.ContainsDataFlavor;
import com.vaadin.event.dd.acceptcriteria.TargetDetailIs;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.terminal.KeyMapper;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Resource;
import com.vaadin.terminal.Vaadin6Component;
-import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
import com.vaadin.ui.AbstractSelect.ItemCaptionMode;
/**
@@ -320,6 +320,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
* @throws PaintException
* if the paint operation failed.
*/
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
// Paints select attributes
@@ -422,6 +423,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
* @see com.vaadin.ui.AbstractComponent#changeVariables(java.lang.Object,
* java.util.Map)
*/
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
// New option entered (and it is allowed)
@@ -434,7 +436,8 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
// Selection change
if (variables.containsKey("selected")) {
- final String[] ka = (String[]) variables.get("selected");
+ final String[] clientSideSelectedKeys = (String[]) variables
+ .get("selected");
// Multiselect mode
if (isMultiSelect()) {
@@ -442,19 +445,20 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
// TODO Optimize by adding repaintNotNeeded when applicable
// Converts the key-array to id-set
- final LinkedList<Object> s = new LinkedList<Object>();
- for (int i = 0; i < ka.length; i++) {
- final Object id = itemIdMapper.get(ka[i]);
+ final LinkedList<Object> acceptedSelections = new LinkedList<Object>();
+ for (int i = 0; i < clientSideSelectedKeys.length; i++) {
+ final Object id = itemIdMapper
+ .get(clientSideSelectedKeys[i]);
if (!isNullSelectionAllowed()
&& (id == null || id == getNullSelectionItemId())) {
// skip empty selection if nullselection is not allowed
requestRepaint();
} else if (id != null && containsId(id)) {
- s.add(id);
+ acceptedSelections.add(id);
}
}
- if (!isNullSelectionAllowed() && s.size() < 1) {
+ if (!isNullSelectionAllowed() && acceptedSelections.size() < 1) {
// empty selection not allowed, keep old value
requestRepaint();
return;
@@ -462,27 +466,32 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
// Limits the deselection to the set of visible items
// (non-visible items can not be deselected)
- final Collection<?> visible = getVisibleItemIds();
- if (visible != null) {
+ Collection<?> visibleNotSelected = getVisibleItemIds();
+ if (visibleNotSelected != null) {
+ visibleNotSelected = new HashSet<Object>(visibleNotSelected);
+ // Don't remove those that will be added to preserve order
+ visibleNotSelected.removeAll(acceptedSelections);
+
@SuppressWarnings("unchecked")
Set<Object> newsel = (Set<Object>) getValue();
if (newsel == null) {
- newsel = new HashSet<Object>();
+ newsel = new LinkedHashSet<Object>();
} else {
- newsel = new HashSet<Object>(newsel);
+ newsel = new LinkedHashSet<Object>(newsel);
}
- newsel.removeAll(visible);
- newsel.addAll(s);
+ newsel.removeAll(visibleNotSelected);
+ newsel.addAll(acceptedSelections);
setValue(newsel, true);
}
} else {
// Single select mode
if (!isNullSelectionAllowed()
- && (ka.length == 0 || ka[0] == null || ka[0] == getNullSelectionItemId())) {
+ && (clientSideSelectedKeys.length == 0
+ || clientSideSelectedKeys[0] == null || clientSideSelectedKeys[0] == getNullSelectionItemId())) {
requestRepaint();
return;
}
- if (ka.length == 0) {
+ if (clientSideSelectedKeys.length == 0) {
// Allows deselection only if the deselected item is
// visible
final Object current = getValue();
@@ -491,7 +500,8 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
setValue(null, true);
}
} else {
- final Object id = itemIdMapper.get(ka[0]);
+ final Object id = itemIdMapper
+ .get(clientSideSelectedKeys[0]);
if (!isNullSelectionAllowed() && id == null) {
requestRepaint();
} else if (id != null
@@ -542,6 +552,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
*/
public class DefaultNewItemHandler implements NewItemHandler {
+ @Override
public void addNewItem(String newItemCaption) {
// Checks for readonly
if (isReadOnly()) {
@@ -672,10 +683,10 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
if (isMultiSelect()) {
if (newValue == null) {
- super.setValue(new HashSet<Object>(), repaintIsNotNeeded);
+ super.setValue(new LinkedHashSet<Object>(), repaintIsNotNeeded);
} else if (Collection.class.isAssignableFrom(newValue.getClass())) {
- super.setValue(new HashSet<Object>((Collection<?>) newValue),
- repaintIsNotNeeded);
+ super.setValue(new LinkedHashSet<Object>(
+ (Collection<?>) newValue), repaintIsNotNeeded);
}
} else if (newValue == null || items.containsId(newValue)) {
super.setValue(newValue, repaintIsNotNeeded);
@@ -692,6 +703,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
* the item id.
* @return the item from the container.
*/
+ @Override
public Item getItem(Object itemId) {
return items.getItem(itemId);
}
@@ -701,6 +713,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @return the Collection of item ids.
*/
+ @Override
public Collection<?> getItemIds() {
return items.getItemIds();
}
@@ -710,6 +723,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @return the Collection of property ids.
*/
+ @Override
public Collection<?> getContainerPropertyIds() {
return items.getContainerPropertyIds();
}
@@ -721,6 +735,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
* the Id identifying the property.
* @see com.vaadin.data.Container#getType(java.lang.Object)
*/
+ @Override
public Class<?> getType(Object propertyId) {
return items.getType(propertyId);
}
@@ -732,6 +747,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @see com.vaadin.data.Container#size()
*/
+ @Override
public int size() {
return items.size();
}
@@ -742,6 +758,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
* @param itemId
* the Id the of item to be tested.
*/
+ @Override
public boolean containsId(Object itemId) {
if (itemId != null) {
return items.containsId(itemId);
@@ -756,6 +773,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @see com.vaadin.data.Container#getContainerProperty(Object, Object)
*/
+ @Override
public Property<?> getContainerProperty(Object itemId, Object propertyId) {
return items.getContainerProperty(itemId, propertyId);
}
@@ -771,6 +789,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
* @see com.vaadin.data.Container#addContainerProperty(java.lang.Object,
* java.lang.Class, java.lang.Object)
*/
+ @Override
public boolean addContainerProperty(Object propertyId, Class<?> type,
Object defaultValue) throws UnsupportedOperationException {
@@ -791,6 +810,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
* @return True if the operation succeeded.
* @see com.vaadin.data.Container#removeAllItems()
*/
+ @Override
public boolean removeAllItems() throws UnsupportedOperationException {
final boolean retval = items.removeAllItems();
@@ -812,6 +832,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
* @return the Id of the created item or null in case of failure.
* @see com.vaadin.data.Container#addItem()
*/
+ @Override
public Object addItem() throws UnsupportedOperationException {
final Object retval = items.addItem();
@@ -836,6 +857,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
* @return the Created item with the given id, or null in case of failure.
* @see com.vaadin.data.Container#addItem(java.lang.Object)
*/
+ @Override
public Item addItem(Object itemId) throws UnsupportedOperationException {
final Item retval = items.addItem(itemId);
@@ -851,6 +873,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @see com.vaadin.data.Container#removeItem(java.lang.Object)
*/
+ @Override
public boolean removeItem(Object itemId)
throws UnsupportedOperationException {
@@ -873,6 +896,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
* @return True if the operation succeeded.
* @see com.vaadin.data.Container#removeContainerProperty(java.lang.Object)
*/
+ @Override
public boolean removeContainerProperty(Object propertyId)
throws UnsupportedOperationException {
@@ -896,6 +920,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
* @param newDataSource
* the new data source.
*/
+ @Override
public void setContainerDataSource(Container newDataSource) {
if (newDataSource == null) {
newDataSource = new IndexedContainer();
@@ -950,6 +975,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @see com.vaadin.data.Container.Viewer#getContainerDataSource()
*/
+ @Override
public Container getContainerDataSource() {
return items;
}
@@ -1432,6 +1458,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @see com.vaadin.data.Container.PropertySetChangeListener#containerPropertySetChange(com.vaadin.data.Container.PropertySetChangeEvent)
*/
+ @Override
public void containerPropertySetChange(
Container.PropertySetChangeEvent event) {
firePropertySetChange();
@@ -1442,6 +1469,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @see com.vaadin.data.Container.PropertySetChangeNotifier#addListener(com.vaadin.data.Container.PropertySetChangeListener)
*/
+ @Override
public void addListener(Container.PropertySetChangeListener listener) {
if (propertySetEventListeners == null) {
propertySetEventListeners = new LinkedHashSet<Container.PropertySetChangeListener>();
@@ -1454,6 +1482,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @see com.vaadin.data.Container.PropertySetChangeNotifier#removeListener(com.vaadin.data.Container.PropertySetChangeListener)
*/
+ @Override
public void removeListener(Container.PropertySetChangeListener listener) {
if (propertySetEventListeners != null) {
propertySetEventListeners.remove(listener);
@@ -1468,6 +1497,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @see com.vaadin.data.Container.ItemSetChangeNotifier#addListener(com.vaadin.data.Container.ItemSetChangeListener)
*/
+ @Override
public void addListener(Container.ItemSetChangeListener listener) {
if (itemSetEventListeners == null) {
itemSetEventListeners = new LinkedHashSet<Container.ItemSetChangeListener>();
@@ -1480,6 +1510,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @see com.vaadin.data.Container.ItemSetChangeNotifier#removeListener(com.vaadin.data.Container.ItemSetChangeListener)
*/
+ @Override
public void removeListener(Container.ItemSetChangeListener listener) {
if (itemSetEventListeners != null) {
itemSetEventListeners.remove(listener);
@@ -1516,6 +1547,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @see com.vaadin.data.Container.ItemSetChangeListener#containerItemSetChange(com.vaadin.data.Container.ItemSetChangeEvent)
*/
+ @Override
public void containerItemSetChange(Container.ItemSetChangeEvent event) {
// Clears the item id mapping table
itemIdMapper.removeAll();
@@ -1566,6 +1598,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @see com.vaadin.data.Container.ItemSetChangeEvent#getContainer()
*/
+ @Override
public Container getContainer() {
return AbstractSelect.this;
}
@@ -1583,6 +1616,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
*
* @see com.vaadin.data.Container.PropertySetChangeEvent#getContainer()
*/
+ @Override
public Container getContainer() {
return AbstractSelect.this;
}
@@ -1778,10 +1812,12 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
captionChangeNotifiers.clear();
}
+ @Override
public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {
requestRepaint();
}
+ @Override
public void itemPropertySetChange(
com.vaadin.data.Item.PropertySetChangeEvent event) {
requestRepaint();
@@ -1809,6 +1845,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
super(select, itemId);
}
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
AbstractSelectTargetDetails dropTargetData = (AbstractSelectTargetDetails) dragEvent
.getTargetDetails();
@@ -1875,6 +1912,7 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
super(select, itemId);
}
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
DataBoundTransferable transferable = (DataBoundTransferable) dragEvent
.getTransferable();
diff --git a/src/com/vaadin/ui/AbstractSplitPanel.java b/src/com/vaadin/ui/AbstractSplitPanel.java
index 876d39f2ae..90dc38ff65 100644
--- a/src/com/vaadin/ui/AbstractSplitPanel.java
+++ b/src/com/vaadin/ui/AbstractSplitPanel.java
@@ -10,12 +10,12 @@ import java.util.Iterator;
import com.vaadin.event.ComponentEventListener;
import com.vaadin.event.MouseEvents.ClickEvent;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.splitpanel.AbstractSplitPanelRpc;
+import com.vaadin.shared.ui.splitpanel.AbstractSplitPanelState;
+import com.vaadin.shared.ui.splitpanel.AbstractSplitPanelState.SplitterState;
import com.vaadin.terminal.Sizeable;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.ui.ClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.splitpanel.AbstractSplitPanelRpc;
-import com.vaadin.terminal.gwt.client.ui.splitpanel.AbstractSplitPanelState;
-import com.vaadin.terminal.gwt.client.ui.splitpanel.AbstractSplitPanelState.SplitterState;
import com.vaadin.tools.ReflectTools;
/**
@@ -38,11 +38,13 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer {
private AbstractSplitPanelRpc rpc = new AbstractSplitPanelRpc() {
+ @Override
public void splitterClick(MouseEventDetails mouseDetails) {
fireEvent(new SplitterClickEvent(AbstractSplitPanel.this,
mouseDetails));
}
+ @Override
public void setSplitterPosition(float position) {
getSplitterState().setPosition(position);
}
@@ -63,6 +65,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer {
int i = 0;
+ @Override
public boolean hasNext() {
if (i < getComponentCount()) {
return true;
@@ -70,6 +73,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer {
return false;
}
+ @Override
public Component next() {
if (!hasNext()) {
return null;
@@ -84,6 +88,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer {
return null;
}
+ @Override
public void remove() {
if (i == 1) {
if (getFirstComponent() != null) {
@@ -211,6 +216,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer {
* @see com.vaadin.ui.ComponentContainer#getComponentIterator()
*/
+ @Override
public Iterator<Component> getComponentIterator() {
return new ComponentIterator();
}
@@ -222,6 +228,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer {
* @return the number of contained components (zero, one or two)
*/
+ @Override
public int getComponentCount() {
int count = 0;
if (getFirstComponent() != null) {
@@ -235,6 +242,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer {
/* Documented in superclass */
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent) {
if (oldComponent == getFirstComponent()) {
setFirstComponent(newComponent);
diff --git a/src/com/vaadin/ui/AbstractTextField.java b/src/com/vaadin/ui/AbstractTextField.java
index d584374bda..2326c07d97 100644
--- a/src/com/vaadin/ui/AbstractTextField.java
+++ b/src/com/vaadin/ui/AbstractTextField.java
@@ -15,10 +15,10 @@ import com.vaadin.event.FieldEvents.FocusNotifier;
import com.vaadin.event.FieldEvents.TextChangeEvent;
import com.vaadin.event.FieldEvents.TextChangeListener;
import com.vaadin.event.FieldEvents.TextChangeNotifier;
+import com.vaadin.shared.ui.textfield.AbstractTextFieldState;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Vaadin6Component;
-import com.vaadin.terminal.gwt.client.ui.textfield.AbstractTextFieldState;
import com.vaadin.terminal.gwt.client.ui.textfield.VTextField;
public abstract class AbstractTextField extends AbstractField<String> implements
@@ -95,6 +95,7 @@ public abstract class AbstractTextField extends AbstractField<String> implements
getState().setText(value);
}
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
if (selectionPosition != -1) {
@@ -123,6 +124,7 @@ public abstract class AbstractTextField extends AbstractField<String> implements
}
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
changingVariables = true;
@@ -498,11 +500,13 @@ public abstract class AbstractTextField extends AbstractField<String> implements
LAZY
}
+ @Override
public void addListener(TextChangeListener listener) {
addListener(TextChangeListener.EVENT_ID, TextChangeEvent.class,
listener, TextChangeListener.EVENT_METHOD);
}
+ @Override
public void removeListener(TextChangeListener listener) {
removeListener(TextChangeListener.EVENT_ID, TextChangeEvent.class,
listener);
@@ -645,20 +649,24 @@ public abstract class AbstractTextField extends AbstractField<String> implements
return lastKnownCursorPosition;
}
+ @Override
public void addListener(FocusListener listener) {
addListener(FocusEvent.EVENT_ID, FocusEvent.class, listener,
FocusListener.focusMethod);
}
+ @Override
public void removeListener(FocusListener listener) {
removeListener(FocusEvent.EVENT_ID, FocusEvent.class, listener);
}
+ @Override
public void addListener(BlurListener listener) {
addListener(BlurEvent.EVENT_ID, BlurEvent.class, listener,
BlurListener.blurMethod);
}
+ @Override
public void removeListener(BlurListener listener) {
removeListener(BlurEvent.EVENT_ID, BlurEvent.class, listener);
}
diff --git a/src/com/vaadin/ui/Alignment.java b/src/com/vaadin/ui/Alignment.java
index eb9e75e4d2..0d73da8504 100644
--- a/src/com/vaadin/ui/Alignment.java
+++ b/src/com/vaadin/ui/Alignment.java
@@ -5,7 +5,7 @@ package com.vaadin.ui;
import java.io.Serializable;
-import com.vaadin.terminal.gwt.client.ui.AlignmentInfo.Bits;
+import com.vaadin.shared.ui.AlignmentInfo.Bits;
/**
* Class containing information about alignment of a component. Use the
diff --git a/src/com/vaadin/ui/Button.java b/src/com/vaadin/ui/Button.java
index 0abc50f26f..0cb667d527 100644
--- a/src/com/vaadin/ui/Button.java
+++ b/src/com/vaadin/ui/Button.java
@@ -18,9 +18,9 @@ import com.vaadin.event.ShortcutAction;
import com.vaadin.event.ShortcutAction.KeyCode;
import com.vaadin.event.ShortcutAction.ModifierKey;
import com.vaadin.event.ShortcutListener;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
-import com.vaadin.terminal.gwt.client.ui.button.ButtonServerRpc;
-import com.vaadin.terminal.gwt.client.ui.button.ButtonState;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.button.ButtonServerRpc;
+import com.vaadin.shared.ui.button.ButtonState;
import com.vaadin.tools.ReflectTools;
import com.vaadin.ui.Component.Focusable;
@@ -39,10 +39,12 @@ public class Button extends AbstractComponent implements
private ButtonServerRpc rpc = new ButtonServerRpc() {
+ @Override
public void click(MouseEventDetails mouseEventDetails) {
fireClick(mouseEventDetails);
}
+ @Override
public void disableOnClick() {
// Could be optimized so the button is not repainted because of
// this (client side has already disabled the button)
@@ -332,20 +334,24 @@ public class Button extends AbstractComponent implements
fireEvent(new Button.ClickEvent(this, details));
}
+ @Override
public void addListener(BlurListener listener) {
addListener(BlurEvent.EVENT_ID, BlurEvent.class, listener,
BlurListener.blurMethod);
}
+ @Override
public void removeListener(BlurListener listener) {
removeListener(BlurEvent.EVENT_ID, BlurEvent.class, listener);
}
+ @Override
public void addListener(FocusListener listener) {
addListener(FocusEvent.EVENT_ID, FocusEvent.class, listener,
FocusListener.focusMethod);
}
+ @Override
public void removeListener(FocusListener listener) {
removeListener(FocusEvent.EVENT_ID, FocusEvent.class, listener);
@@ -474,6 +480,7 @@ public class Button extends AbstractComponent implements
*
* @see com.vaadin.ui.Component.Focusable#getTabIndex()
*/
+ @Override
public int getTabIndex() {
return getState().getTabIndex();
}
@@ -483,6 +490,7 @@ public class Button extends AbstractComponent implements
*
* @see com.vaadin.ui.Component.Focusable#setTabIndex(int)
*/
+ @Override
public void setTabIndex(int tabIndex) {
getState().setTabIndex(tabIndex);
requestRepaint();
diff --git a/src/com/vaadin/ui/CheckBox.java b/src/com/vaadin/ui/CheckBox.java
index 147a270059..30ac9b4626 100644
--- a/src/com/vaadin/ui/CheckBox.java
+++ b/src/com/vaadin/ui/CheckBox.java
@@ -10,14 +10,15 @@ import com.vaadin.event.FieldEvents.BlurListener;
import com.vaadin.event.FieldEvents.FocusAndBlurServerRpcImpl;
import com.vaadin.event.FieldEvents.FocusEvent;
import com.vaadin.event.FieldEvents.FocusListener;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
-import com.vaadin.terminal.gwt.client.ui.checkbox.CheckBoxServerRpc;
-import com.vaadin.terminal.gwt.client.ui.checkbox.CheckBoxState;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.checkbox.CheckBoxServerRpc;
+import com.vaadin.shared.ui.checkbox.CheckBoxState;
public class CheckBox extends AbstractField<Boolean> {
private CheckBoxServerRpc rpc = new CheckBoxServerRpc() {
+ @Override
public void setChecked(boolean checked,
MouseEventDetails mouseEventDetails) {
if (isReadOnly()) {
diff --git a/src/com/vaadin/ui/Component.java b/src/com/vaadin/ui/Component.java
index 81e0319880..a2c257ab68 100644
--- a/src/com/vaadin/ui/Component.java
+++ b/src/com/vaadin/ui/Component.java
@@ -11,11 +11,11 @@ import java.util.Locale;
import com.vaadin.Application;
import com.vaadin.event.FieldEvents;
+import com.vaadin.shared.ComponentState;
import com.vaadin.terminal.ErrorMessage;
import com.vaadin.terminal.Resource;
import com.vaadin.terminal.Sizeable;
import com.vaadin.terminal.VariableOwner;
-import com.vaadin.terminal.gwt.client.ComponentState;
import com.vaadin.terminal.gwt.server.ClientConnector;
/**
@@ -305,6 +305,7 @@ public interface Component extends ClientConnector, Sizeable, Serializable {
*
* @return the parent component
*/
+ @Override
public HasComponents getParent();
/**
@@ -507,6 +508,7 @@ public interface Component extends ClientConnector, Sizeable, Serializable {
* @return the Root of the component or <code>null</code> if it is not
* attached to a Root
*/
+ @Override
public Root getRoot();
/**
@@ -520,8 +522,8 @@ public interface Component extends ClientConnector, Sizeable, Serializable {
* <p>
* Getting a null value is often a problem in constructors of regular
* components and in the initializers of custom composite components. A
- * standard workaround is to use {@link Application#getCurrent()}
- * to retrieve the application instance that the current request relates to.
+ * standard workaround is to use {@link Application#getCurrent()} to
+ * retrieve the application instance that the current request relates to.
* Another way is to move the problematic initialization to
* {@link #attach()}, as described in the documentation of the method.
* </p>
@@ -585,6 +587,7 @@ public interface Component extends ClientConnector, Sizeable, Serializable {
* }
* </pre>
*/
+ @Override
public void attach();
/**
@@ -620,6 +623,7 @@ public interface Component extends ClientConnector, Sizeable, Serializable {
*
* @since 7.0
*/
+ @Override
public ComponentState getState();
/**
diff --git a/src/com/vaadin/ui/ConnectorTracker.java b/src/com/vaadin/ui/ConnectorTracker.java
index 75a75ad22a..e3d1bf86db 100644
--- a/src/com/vaadin/ui/ConnectorTracker.java
+++ b/src/com/vaadin/ui/ConnectorTracker.java
@@ -17,7 +17,7 @@ import com.vaadin.terminal.gwt.client.ServerConnector;
import com.vaadin.terminal.gwt.server.ClientConnector;
/**
- * A class which takes care of book keeping of {@link ClientConnector}s for one
+ * A class which takes care of book keeping of {@link ClientConnector}s for a
* Root.
* <p>
* Provides {@link #getConnector(String)} which can be used to lookup a
@@ -53,6 +53,14 @@ public class ConnectorTracker implements Serializable {
return Logger.getLogger(ConnectorTracker.class.getName());
}
+ /**
+ * Creates a new ConnectorTracker for the given root. A tracker is always
+ * attached to a root and the root cannot be changed during the lifetime of
+ * a {@link ConnectorTracker}.
+ *
+ * @param root
+ * The root to attach to. Cannot be null.
+ */
public ConnectorTracker(Root root) {
this.root = root;
}
@@ -144,61 +152,134 @@ public class ConnectorTracker implements Serializable {
while (iterator.hasNext()) {
String connectorId = iterator.next();
ClientConnector connector = connectorIdToConnector.get(connectorId);
- if (connector instanceof Component) {
- Component component = (Component) connector;
- if (component.getRoot() != root) {
- // If component is no longer part of this application,
- // remove it from the map. If it is re-attached to the
- // application at some point it will be re-added through
- // registerConnector(connector)
- iterator.remove();
- }
+ if (getRootForConnector(connector) != root) {
+ // If connector is no longer part of this root,
+ // remove it from the map. If it is re-attached to the
+ // application at some point it will be re-added through
+ // registerConnector(connector)
+
+ // This code should never be called as cleanup should take place
+ // in detach()
+ getLogger()
+ .warning(
+ "cleanConnectorMap unregistered connector "
+ + getConnectorAndParentInfo(connector)
+ + "). This should have been done when the connector was detached.");
+ iterator.remove();
}
}
}
+ /**
+ * Finds the root that the connector is attached to.
+ *
+ * @param connector
+ * The connector to lookup
+ * @return The root the connector is attached to or null if it is not
+ * attached to any root.
+ */
+ private Root getRootForConnector(ClientConnector connector) {
+ if (connector == null) {
+ return null;
+ }
+ if (connector instanceof Component) {
+ return ((Component) connector).getRoot();
+ }
+
+ return getRootForConnector(connector.getParent());
+ }
+
+ /**
+ * Mark the connector as dirty.
+ *
+ * @see #getDirtyConnectors()
+ *
+ * @param connector
+ * The connector that should be marked clean.
+ */
public void markDirty(ClientConnector connector) {
if (getLogger().isLoggable(Level.FINE)) {
if (!dirtyConnectors.contains(connector)) {
- getLogger()
- .fine(getDebugInfo(connector) + " " + "is now dirty");
+ getLogger().fine(
+ getConnectorAndParentInfo(connector) + " "
+ + "is now dirty");
}
}
dirtyConnectors.add(connector);
}
+ /**
+ * Mark the connector as clean.
+ *
+ * @param connector
+ * The connector that should be marked clean.
+ */
public void markClean(ClientConnector connector) {
if (getLogger().isLoggable(Level.FINE)) {
if (dirtyConnectors.contains(connector)) {
getLogger().fine(
- getDebugInfo(connector) + " " + "is no longer dirty");
+ getConnectorAndParentInfo(connector) + " "
+ + "is no longer dirty");
}
}
dirtyConnectors.remove(connector);
}
- private String getDebugInfo(ClientConnector connector) {
- String message = getObjectString(connector);
+ /**
+ * Returns {@link #getConnectorString(ClientConnector)} for the connector
+ * and its parent (if it has a parent).
+ *
+ * @param connector
+ * The connector
+ * @return A string describing the connector and its parent
+ */
+ private String getConnectorAndParentInfo(ClientConnector connector) {
+ String message = getConnectorString(connector);
if (connector.getParent() != null) {
- message += " (parent: " + getObjectString(connector.getParent())
+ message += " (parent: " + getConnectorString(connector.getParent())
+ ")";
}
return message;
}
- private String getObjectString(Object connector) {
- return connector.getClass().getName() + "@"
- + Integer.toHexString(connector.hashCode());
+ /**
+ * Returns a string with the connector name and id. Useful mostly for
+ * debugging and logging.
+ *
+ * @param connector
+ * The connector
+ * @return A string that describes the connector
+ */
+ private String getConnectorString(ClientConnector connector) {
+ if (connector == null) {
+ return "(null)";
+ }
+
+ String connectorId;
+ try {
+ connectorId = connector.getConnectorId();
+ } catch (RuntimeException e) {
+ // This happens if the connector is not attached to the application.
+ // SHOULD not happen in this case but theoretically can.
+ connectorId = "@" + Integer.toHexString(connector.hashCode());
+ }
+ return connector.getClass().getName() + "(" + connectorId + ")";
}
+ /**
+ * Mark all connectors in this root as dirty.
+ */
public void markAllConnectorsDirty() {
markConnectorsDirtyRecursively(root);
getLogger().fine("All connectors are now dirty");
}
+ /**
+ * Mark all connectors in this root as clean.
+ */
public void markAllConnectorsClean() {
dirtyConnectors.clear();
getLogger().fine("All connectors are now clean");
@@ -222,6 +303,16 @@ public class ConnectorTracker implements Serializable {
}
}
+ /**
+ * Returns a collection of all connectors which have been marked as dirty.
+ * <p>
+ * The state and pending RPC calls for dirty connectors are sent to the
+ * client in the following request.
+ * </p>
+ *
+ * @return A collection of all dirty connectors for this root. This list may
+ * contain invisible connectors.
+ */
public Collection<ClientConnector> getDirtyConnectors() {
return dirtyConnectors;
}
diff --git a/src/com/vaadin/ui/CssLayout.java b/src/com/vaadin/ui/CssLayout.java
index e8ec6bd041..356f0a3843 100644
--- a/src/com/vaadin/ui/CssLayout.java
+++ b/src/com/vaadin/ui/CssLayout.java
@@ -9,11 +9,11 @@ import java.util.LinkedList;
import com.vaadin.event.LayoutEvents.LayoutClickEvent;
import com.vaadin.event.LayoutEvents.LayoutClickListener;
import com.vaadin.event.LayoutEvents.LayoutClickNotifier;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.csslayout.CssLayoutServerRpc;
+import com.vaadin.shared.ui.csslayout.CssLayoutState;
import com.vaadin.terminal.gwt.client.ui.LayoutClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.csslayout.CssLayoutServerRpc;
-import com.vaadin.terminal.gwt.client.ui.csslayout.CssLayoutState;
/**
* CssLayout is a layout component that can be used in browser environment only.
@@ -60,6 +60,7 @@ public class CssLayout extends AbstractLayout implements LayoutClickNotifier {
private CssLayoutServerRpc rpc = new CssLayoutServerRpc() {
+ @Override
public void layoutClick(MouseEventDetails mouseDetails,
Connector clickedConnector) {
fireEvent(LayoutClickEvent.createEvent(CssLayout.this,
@@ -167,6 +168,7 @@ public class CssLayout extends AbstractLayout implements LayoutClickNotifier {
*
* @return the Iterator of the components inside the container.
*/
+ @Override
public Iterator<Component> getComponentIterator() {
return components.iterator();
}
@@ -177,6 +179,7 @@ public class CssLayout extends AbstractLayout implements LayoutClickNotifier {
*
* @return the number of contained components
*/
+ @Override
public int getComponentCount() {
return components.size();
}
@@ -223,6 +226,7 @@ public class CssLayout extends AbstractLayout implements LayoutClickNotifier {
}
/* Documented in superclass */
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent) {
// Gets the locations
@@ -264,12 +268,14 @@ public class CssLayout extends AbstractLayout implements LayoutClickNotifier {
}
}
+ @Override
public void addListener(LayoutClickListener listener) {
addListener(LayoutClickEventHandler.LAYOUT_CLICK_EVENT_IDENTIFIER,
LayoutClickEvent.class, listener,
LayoutClickListener.clickMethod);
}
+ @Override
public void removeListener(LayoutClickListener listener) {
removeListener(LayoutClickEventHandler.LAYOUT_CLICK_EVENT_IDENTIFIER,
LayoutClickEvent.class, listener);
diff --git a/src/com/vaadin/ui/CustomComponent.java b/src/com/vaadin/ui/CustomComponent.java
index 98d650f6db..40b5dcd636 100644
--- a/src/com/vaadin/ui/CustomComponent.java
+++ b/src/com/vaadin/ui/CustomComponent.java
@@ -100,20 +100,24 @@ public class CustomComponent extends AbstractComponentContainer {
Serializable {
boolean first = getCompositionRoot() != null;
+ @Override
public boolean hasNext() {
return first;
}
+ @Override
public Component next() {
first = false;
return root;
}
+ @Override
public void remove() {
throw new UnsupportedOperationException();
}
}
+ @Override
public Iterator<Component> getComponentIterator() {
return new ComponentIterator();
}
@@ -124,6 +128,7 @@ public class CustomComponent extends AbstractComponentContainer {
*
* @return the number of contained components (zero or one)
*/
+ @Override
public int getComponentCount() {
return (root != null ? 1 : 0);
}
@@ -134,6 +139,7 @@ public class CustomComponent extends AbstractComponentContainer {
* @see com.vaadin.ui.ComponentContainer#replaceComponent(com.vaadin.ui.Component,
* com.vaadin.ui.Component)
*/
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent) {
throw new UnsupportedOperationException();
}
diff --git a/src/com/vaadin/ui/CustomField.java b/src/com/vaadin/ui/CustomField.java
index 0998c11612..ab3797a58c 100644
--- a/src/com/vaadin/ui/CustomField.java
+++ b/src/com/vaadin/ui/CustomField.java
@@ -123,28 +123,34 @@ public abstract class CustomField<T> extends AbstractField<T> implements
Serializable {
boolean first = (root != null);
+ @Override
public boolean hasNext() {
return first;
}
+ @Override
public Component next() {
first = false;
return getContent();
}
+ @Override
public void remove() {
throw new UnsupportedOperationException();
}
}
+ @Override
public Iterator<Component> getComponentIterator() {
return new ComponentIterator();
}
+ @Override
public Iterator<Component> iterator() {
return getComponentIterator();
}
+ @Override
public int getComponentCount() {
return (null != getContent()) ? 1 : 0;
}
@@ -163,22 +169,27 @@ public abstract class CustomField<T> extends AbstractField<T> implements
// TODO remove these methods when ComponentContainer interface is cleaned up
+ @Override
public void addComponent(Component c) {
throw new UnsupportedOperationException();
}
+ @Override
public void removeComponent(Component c) {
throw new UnsupportedOperationException();
}
+ @Override
public void removeAllComponents() {
throw new UnsupportedOperationException();
}
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent) {
throw new UnsupportedOperationException();
}
+ @Override
public void moveComponentsFrom(ComponentContainer source) {
throw new UnsupportedOperationException();
}
@@ -197,24 +208,29 @@ public abstract class CustomField<T> extends AbstractField<T> implements
}
}
+ @Override
public void addListener(ComponentAttachListener listener) {
addListener(ComponentContainer.ComponentAttachEvent.class, listener,
COMPONENT_ATTACHED_METHOD);
}
+ @Override
public void removeListener(ComponentAttachListener listener) {
removeListener(ComponentContainer.ComponentAttachEvent.class, listener,
COMPONENT_ATTACHED_METHOD);
}
+ @Override
public void addListener(ComponentDetachListener listener) {
// content never detached
}
+ @Override
public void removeListener(ComponentDetachListener listener) {
// content never detached
}
+ @Override
public boolean isComponentVisible(Component childComponent) {
return true;
}
diff --git a/src/com/vaadin/ui/CustomLayout.java b/src/com/vaadin/ui/CustomLayout.java
index 97cea1c49d..d7830603f0 100644
--- a/src/com/vaadin/ui/CustomLayout.java
+++ b/src/com/vaadin/ui/CustomLayout.java
@@ -12,10 +12,10 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+import com.vaadin.shared.ui.customlayout.CustomLayoutState;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Vaadin6Component;
-import com.vaadin.terminal.gwt.client.ui.customlayout.CustomLayoutState;
import com.vaadin.terminal.gwt.server.JsonPaintTarget;
/**
@@ -185,6 +185,7 @@ public class CustomLayout extends AbstractLayout implements Vaadin6Component {
*
* @return the Iterator of the components inside the container.
*/
+ @Override
public Iterator<Component> getComponentIterator() {
return slots.values().iterator();
}
@@ -195,6 +196,7 @@ public class CustomLayout extends AbstractLayout implements Vaadin6Component {
*
* @return the number of contained components
*/
+ @Override
public int getComponentCount() {
return slots.values().size();
}
@@ -212,6 +214,7 @@ public class CustomLayout extends AbstractLayout implements Vaadin6Component {
}
/* Documented in superclass */
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent) {
// Gets the locations
@@ -305,10 +308,12 @@ public class CustomLayout extends AbstractLayout implements Vaadin6Component {
"CustomLayout does not support margins.");
}
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
// Nothing to see here
}
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
// Workaround to make the CommunicationManager read the template file
// and send it to the client
diff --git a/src/com/vaadin/ui/DateField.java b/src/com/vaadin/ui/DateField.java
index 55ff67229c..d0a22f3c29 100644
--- a/src/com/vaadin/ui/DateField.java
+++ b/src/com/vaadin/ui/DateField.java
@@ -286,6 +286,7 @@ public class DateField extends AbstractField<Date> implements
* Paints this component. Don't add a JavaDoc comment here, we use the
* default documentation from implemented interface.
*/
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
// Adds the locale as attribute
@@ -339,6 +340,7 @@ public class DateField extends AbstractField<Date> implements
* comment here, we use the default documentation from implemented
* interface.
*/
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
if (!isReadOnly()
@@ -729,20 +731,24 @@ public class DateField extends AbstractField<Date> implements
return lenient;
}
+ @Override
public void addListener(FocusListener listener) {
addListener(FocusEvent.EVENT_ID, FocusEvent.class, listener,
FocusListener.focusMethod);
}
+ @Override
public void removeListener(FocusListener listener) {
removeListener(FocusEvent.EVENT_ID, FocusEvent.class, listener);
}
+ @Override
public void addListener(BlurListener listener) {
addListener(BlurEvent.EVENT_ID, BlurEvent.class, listener,
BlurListener.blurMethod);
}
+ @Override
public void removeListener(BlurListener listener) {
removeListener(BlurEvent.EVENT_ID, BlurEvent.class, listener);
}
diff --git a/src/com/vaadin/ui/DefaultFieldFactory.java b/src/com/vaadin/ui/DefaultFieldFactory.java
index 9d096094e3..e17f08c1c6 100644
--- a/src/com/vaadin/ui/DefaultFieldFactory.java
+++ b/src/com/vaadin/ui/DefaultFieldFactory.java
@@ -35,6 +35,7 @@ public class DefaultFieldFactory implements FormFieldFactory, TableFieldFactory
protected DefaultFieldFactory() {
}
+ @Override
public Field<?> createField(Item item, Object propertyId,
Component uiContext) {
Class<?> type = item.getItemProperty(propertyId).getType();
@@ -43,6 +44,7 @@ public class DefaultFieldFactory implements FormFieldFactory, TableFieldFactory
return field;
}
+ @Override
public Field<?> createField(Container container, Object itemId,
Object propertyId, Component uiContext) {
Property<?> containerProperty = container.getContainerProperty(itemId,
diff --git a/src/com/vaadin/ui/DragAndDropWrapper.java b/src/com/vaadin/ui/DragAndDropWrapper.java
index b623197a4c..67229a45fe 100644
--- a/src/com/vaadin/ui/DragAndDropWrapper.java
+++ b/src/com/vaadin/ui/DragAndDropWrapper.java
@@ -17,13 +17,13 @@ import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.DropTarget;
import com.vaadin.event.dd.TargetDetails;
import com.vaadin.event.dd.TargetDetailsImpl;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.dd.HorizontalDropLocation;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.StreamVariable;
import com.vaadin.terminal.Vaadin6Component;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
-import com.vaadin.terminal.gwt.client.ui.dd.HorizontalDropLocation;
-import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
import com.vaadin.terminal.gwt.client.ui.draganddropwrapper.VDragAndDropWrapper;
@SuppressWarnings("serial")
@@ -214,10 +214,12 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
requestRepaint();
}
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
// TODO Remove once Vaadin6Component is no longer implemented
}
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
target.addAttribute(VDragAndDropWrapper.DRAG_START_MODE,
dragStartMode.ordinal());
@@ -249,6 +251,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
private DropHandler dropHandler;
+ @Override
public DropHandler getDropHandler() {
return dropHandler;
}
@@ -258,11 +261,13 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
requestRepaint();
}
+ @Override
public TargetDetails translateDropTargetDetails(
Map<String, Object> clientVariables) {
return new WrapperTargetDetails(clientVariables);
}
+ @Override
public Transferable getTransferable(final Map<String, Object> rawVariables) {
return new WrapperTransferable(this, rawVariables);
}
@@ -286,6 +291,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
private boolean listenProgressOfUploadedFile;
+ @Override
public OutputStream getOutputStream() {
if (file.getStreamVariable() == null) {
return null;
@@ -293,15 +299,18 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
return file.getStreamVariable().getOutputStream();
}
+ @Override
public boolean listenProgress() {
return file.getStreamVariable().listenProgress();
}
+ @Override
public void onProgress(StreamingProgressEvent event) {
file.getStreamVariable().onProgress(
new ReceivingEventWrapper(event));
}
+ @Override
public void streamingStarted(StreamingStartEvent event) {
listenProgressOfUploadedFile = file.getStreamVariable() != null;
if (listenProgressOfUploadedFile) {
@@ -315,6 +324,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
event.disposeStreamVariable();
}
+ @Override
public void streamingFinished(StreamingEndEvent event) {
if (listenProgressOfUploadedFile) {
file.getStreamVariable().streamingFinished(
@@ -322,6 +332,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
}
}
+ @Override
public void streamingFailed(final StreamingErrorEvent event) {
if (listenProgressOfUploadedFile) {
file.getStreamVariable().streamingFailed(
@@ -329,6 +340,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
}
}
+ @Override
public boolean isInterrupted() {
return file.getStreamVariable().isInterrupted();
}
@@ -348,14 +360,17 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
wrappedEvent = e;
}
+ @Override
public String getMimeType() {
return file.getType();
}
+ @Override
public String getFileName() {
return file.getFileName();
}
+ @Override
public long getContentLength() {
return file.getFileSize();
}
@@ -364,6 +379,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
return ProxyReceiver.this;
}
+ @Override
public Exception getException() {
if (wrappedEvent instanceof StreamingErrorEvent) {
return ((StreamingErrorEvent) wrappedEvent).getException();
@@ -371,6 +387,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
return null;
}
+ @Override
public long getBytesReceived() {
return wrappedEvent.getBytesReceived();
}
@@ -379,6 +396,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
* Calling this method has no effect. DD files are receive only once
* anyway.
*/
+ @Override
public void disposeStreamVariable() {
}
diff --git a/src/com/vaadin/ui/Embedded.java b/src/com/vaadin/ui/Embedded.java
index 1bcd984666..6088c5aa66 100644
--- a/src/com/vaadin/ui/Embedded.java
+++ b/src/com/vaadin/ui/Embedded.java
@@ -10,14 +10,14 @@ import java.util.Map;
import com.vaadin.event.MouseEvents.ClickEvent;
import com.vaadin.event.MouseEvents.ClickListener;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.embedded.EmbeddedServerRpc;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Resource;
import com.vaadin.terminal.Vaadin6Component;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.ui.ClickEventHandler;
import com.vaadin.terminal.gwt.client.ui.embedded.EmbeddedConnector;
-import com.vaadin.terminal.gwt.client.ui.embedded.EmbeddedServerRpc;
/**
* Component for embedding external objects.
@@ -81,6 +81,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component {
private String altText;
private EmbeddedServerRpc rpc = new EmbeddedServerRpc() {
+ @Override
public void click(MouseEventDetails mouseDetails) {
fireEvent(new ClickEvent(Embedded.this, mouseDetails));
}
@@ -120,6 +121,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component {
/**
* Invoked when the component state should be painted.
*/
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
switch (type) {
@@ -521,6 +523,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component {
ClickEvent.class, listener);
}
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
// TODO Remove once Vaadin6Component is no longer implemented
}
diff --git a/src/com/vaadin/ui/Field.java b/src/com/vaadin/ui/Field.java
index 3a66db47b0..6dc40d192f 100644
--- a/src/com/vaadin/ui/Field.java
+++ b/src/com/vaadin/ui/Field.java
@@ -89,6 +89,7 @@ public interface Field<T> extends Component, BufferedValidatable, Property<T>,
*
* @return the Source Property of the event.
*/
+ @Override
public Property getProperty() {
return (Property) getSource();
}
diff --git a/src/com/vaadin/ui/Form.java b/src/com/vaadin/ui/Form.java
index 796ad17448..fbc4d5a8e6 100644
--- a/src/com/vaadin/ui/Form.java
+++ b/src/com/vaadin/ui/Form.java
@@ -24,6 +24,7 @@ import com.vaadin.event.Action;
import com.vaadin.event.Action.Handler;
import com.vaadin.event.Action.ShortcutNotifier;
import com.vaadin.event.ActionManager;
+import com.vaadin.shared.ui.form.FormState;
import com.vaadin.terminal.AbstractErrorMessage;
import com.vaadin.terminal.CompositeErrorMessage;
import com.vaadin.terminal.ErrorMessage;
@@ -31,7 +32,6 @@ import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.UserError;
import com.vaadin.terminal.Vaadin6Component;
-import com.vaadin.terminal.gwt.client.ui.form.FormState;
/**
* Form component provides easy way of creating and managing sets fields.
@@ -126,6 +126,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
* See e.g. DateField#notifyFormOfValidityChange().
*/
private final ValueChangeListener fieldValueChangeListener = new ValueChangeListener() {
+ @Override
public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {
requestRepaint();
}
@@ -194,12 +195,14 @@ public class Form extends AbstractField<Object> implements Item.Editor,
}
/* Documented in interface */
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
if (ownActionManager != null) {
ownActionManager.paintActions(null, target);
}
}
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
// Actions
if (ownActionManager != null) {
@@ -467,6 +470,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
*
* @see com.vaadin.data.Item#addItemProperty(Object, Property)
*/
+ @Override
public boolean addItemProperty(Object id, Property property) {
// Checks inputs
@@ -598,6 +602,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
*
* @see com.vaadin.data.Item#getItemProperty(Object)
*/
+ @Override
public Property<?> getItemProperty(Object id) {
final Field<?> field = fields.get(id);
if (field == null) {
@@ -624,6 +629,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
}
/* Documented in interface */
+ @Override
public Collection<?> getItemPropertyIds() {
return Collections.unmodifiableCollection(propertyIds);
}
@@ -633,6 +639,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
*
* @see com.vaadin.data.Item#removeItemProperty(Object)
*/
+ @Override
public boolean removeItemProperty(Object id) {
ownProperties.remove(id);
@@ -687,6 +694,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
}
/* Documented in the interface */
+ @Override
public Item getItemDataSource() {
return itemDatasource;
}
@@ -701,6 +709,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
*
* @see com.vaadin.data.Item.Viewer#setItemDataSource(Item)
*/
+ @Override
public void setItemDataSource(Item newDataSource) {
setItemDataSource(newDataSource,
newDataSource != null ? newDataSource.getItemPropertyIds()
@@ -1301,10 +1310,12 @@ public class Form extends AbstractField<Object> implements Item.Editor,
return ownActionManager;
}
+ @Override
public void addActionHandler(Handler actionHandler) {
getOwnActionManager().addActionHandler(actionHandler);
}
+ @Override
public void removeActionHandler(Handler actionHandler) {
if (ownActionManager != null) {
ownActionManager.removeActionHandler(actionHandler);
@@ -1320,11 +1331,13 @@ public class Form extends AbstractField<Object> implements Item.Editor,
}
}
+ @Override
public <T extends Action & com.vaadin.event.Action.Listener> void addAction(
T action) {
getOwnActionManager().addAction(action);
}
+ @Override
public <T extends Action & com.vaadin.event.Action.Listener> void removeAction(
T action) {
if (ownActionManager != null) {
@@ -1332,6 +1345,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
}
}
+ @Override
public Iterator<Component> iterator() {
return getComponentIterator();
}
@@ -1345,6 +1359,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
int i = 0;
+ @Override
public boolean hasNext() {
if (i < getComponentCount()) {
return true;
@@ -1352,6 +1367,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
return false;
}
+ @Override
public Component next() {
if (!hasNext()) {
return null;
@@ -1365,6 +1381,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
return null;
}
+ @Override
public void remove() {
if (i == 1) {
if (getLayout() != null) {
@@ -1379,6 +1396,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
}
}
+ @Override
public Iterator<Component> getComponentIterator() {
return new ComponentIterator();
}
@@ -1395,6 +1413,7 @@ public class Form extends AbstractField<Object> implements Item.Editor,
return count;
}
+ @Override
public boolean isComponentVisible(Component childComponent) {
return true;
};
diff --git a/src/com/vaadin/ui/GridLayout.java b/src/com/vaadin/ui/GridLayout.java
index 0ab729ce5c..2391a9cd3a 100644
--- a/src/com/vaadin/ui/GridLayout.java
+++ b/src/com/vaadin/ui/GridLayout.java
@@ -15,15 +15,15 @@ import java.util.Map.Entry;
import com.vaadin.event.LayoutEvents.LayoutClickEvent;
import com.vaadin.event.LayoutEvents.LayoutClickListener;
import com.vaadin.event.LayoutEvents.LayoutClickNotifier;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.gridlayout.GridLayoutServerRpc;
+import com.vaadin.shared.ui.gridlayout.GridLayoutState;
import com.vaadin.terminal.LegacyPaint;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Vaadin6Component;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.ui.LayoutClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.gridlayout.GridLayoutServerRpc;
-import com.vaadin.terminal.gwt.client.ui.gridlayout.GridLayoutState;
/**
* A layout where the components are laid out on a grid using cell coordinates.
@@ -58,6 +58,7 @@ public class GridLayout extends AbstractLayout implements
private GridLayoutServerRpc rpc = new GridLayoutServerRpc() {
+ @Override
public void layoutClick(MouseEventDetails mouseDetails,
Connector clickedConnector) {
fireEvent(LayoutClickEvent.createEvent(GridLayout.this,
@@ -417,6 +418,7 @@ public class GridLayout extends AbstractLayout implements
*
* @return the Iterator of the components inside the layout.
*/
+ @Override
public Iterator<Component> getComponentIterator() {
return Collections.unmodifiableCollection(components).iterator();
}
@@ -427,10 +429,12 @@ public class GridLayout extends AbstractLayout implements
*
* @return the number of contained components
*/
+ @Override
public int getComponentCount() {
return components.size();
}
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
// TODO Remove once Vaadin6Component is no longer implemented
}
@@ -443,6 +447,7 @@ public class GridLayout extends AbstractLayout implements
* @throws PaintException
* if the paint operation failed.
*/
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
// TODO refactor attribute names in future release.
target.addAttribute("structuralChange", structuralChange);
@@ -668,6 +673,7 @@ public class GridLayout extends AbstractLayout implements
* @see com.vaadin.ui.Layout.AlignmentHandler#getComponentAlignment(com
* .vaadin.ui.Component)
*/
+ @Override
public Alignment getComponentAlignment(Component childComponent) {
Alignment alignment = componentToAlignment.get(childComponent);
if (alignment == null) {
@@ -1094,6 +1100,7 @@ public class GridLayout extends AbstractLayout implements
}
/* Documented in superclass */
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent) {
// Gets the locations
@@ -1143,6 +1150,7 @@ public class GridLayout extends AbstractLayout implements
* @see com.vaadin.ui.Layout.AlignmentHandler#setComponentAlignment(com
* .vaadin.ui.Component, int, int)
*/
+ @Override
public void setComponentAlignment(Component childComponent,
int horizontalAlignment, int verticalAlignment) {
componentToAlignment.put(childComponent, new Alignment(
@@ -1150,6 +1158,7 @@ public class GridLayout extends AbstractLayout implements
requestRepaint();
}
+ @Override
public void setComponentAlignment(Component childComponent,
Alignment alignment) {
componentToAlignment.put(childComponent, alignment);
@@ -1161,6 +1170,7 @@ public class GridLayout extends AbstractLayout implements
*
* @see com.vaadin.ui.Layout.SpacingHandler#setSpacing(boolean)
*/
+ @Override
public void setSpacing(boolean spacing) {
getState().setSpacing(spacing);
requestRepaint();
@@ -1171,6 +1181,7 @@ public class GridLayout extends AbstractLayout implements
*
* @see com.vaadin.ui.Layout.SpacingHandler#isSpacing()
*/
+ @Override
public boolean isSpacing() {
return getState().isSpacing();
}
@@ -1388,12 +1399,14 @@ public class GridLayout extends AbstractLayout implements
return null;
}
+ @Override
public void addListener(LayoutClickListener listener) {
addListener(LayoutClickEventHandler.LAYOUT_CLICK_EVENT_IDENTIFIER,
LayoutClickEvent.class, listener,
LayoutClickListener.clickMethod);
}
+ @Override
public void removeListener(LayoutClickListener listener) {
removeListener(LayoutClickEventHandler.LAYOUT_CLICK_EVENT_IDENTIFIER,
LayoutClickEvent.class, listener);
diff --git a/src/com/vaadin/ui/JavaScript.java b/src/com/vaadin/ui/JavaScript.java
index d256717711..53efb62965 100644
--- a/src/com/vaadin/ui/JavaScript.java
+++ b/src/com/vaadin/ui/JavaScript.java
@@ -9,11 +9,11 @@ import java.util.Map;
import com.vaadin.external.json.JSONArray;
import com.vaadin.external.json.JSONException;
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.extension.javascriptmanager.ExecuteJavaScriptRpc;
+import com.vaadin.shared.extension.javascriptmanager.JavaScriptManagerState;
import com.vaadin.terminal.AbstractExtension;
import com.vaadin.terminal.Page;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.extensions.javascriptmanager.ExecuteJavaScriptRpc;
-import com.vaadin.terminal.gwt.client.extensions.javascriptmanager.JavaScriptManagerState;
/**
* Provides access to JavaScript functionality in the web browser. To get an
@@ -41,6 +41,7 @@ public class JavaScript extends AbstractExtension {
*/
public JavaScript() {
registerRpc(new JavaScriptCallbackRpc() {
+ @Override
public void call(String name, JSONArray arguments) {
JavaScriptCallback callback = callbacks.get(name);
// TODO handle situation if name is not registered
@@ -115,6 +116,16 @@ public class JavaScript extends AbstractExtension {
}
/**
+ * Executes the given JavaScript code in the browser.
+ *
+ * @param script
+ * The JavaScript code to run.
+ */
+ public static void eval(String script) {
+ getCurrent().execute(script);
+ }
+
+ /**
* Get the JavaScript object for the current Page, or null if there is no
* current page.
*
diff --git a/src/com/vaadin/ui/Label.java b/src/com/vaadin/ui/Label.java
index e1c64605d7..7e50a37805 100644
--- a/src/com/vaadin/ui/Label.java
+++ b/src/com/vaadin/ui/Label.java
@@ -5,12 +5,13 @@
package com.vaadin.ui;
import java.lang.reflect.Method;
+import java.util.logging.Logger;
import com.vaadin.data.Property;
import com.vaadin.data.util.converter.Converter;
import com.vaadin.data.util.converter.ConverterUtil;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
-import com.vaadin.terminal.gwt.client.ui.label.LabelState;
+import com.vaadin.shared.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.LabelState;
/**
* Label component for showing non-editable short texts.
@@ -41,6 +42,9 @@ public class Label extends AbstractComponent implements Property<String>,
Property.Viewer, Property.ValueChangeListener,
Property.ValueChangeNotifier, Comparable<Label> {
+ private static final Logger logger = Logger
+ .getLogger(Label.class.getName());
+
/**
* @deprecated From 7.0, use {@link ContentMode#TEXT} instead
*/
@@ -142,11 +146,15 @@ public class Label extends AbstractComponent implements Property<String>,
}
/**
- * Gets the value of the label. Value of the label is the XML contents of
- * the label.
+ * Gets the value of the label.
+ * <p>
+ * The value of the label is the text that is shown to the end user.
+ * Depending on the {@link ContentMode} it is plain text or markup.
+ * </p>
*
- * @return the Value of the label.
+ * @return the value of the label.
*/
+ @Override
public String getValue() {
if (getPropertyDataSource() == null) {
// Use internal value if we are running without a data source
@@ -163,6 +171,7 @@ public class Label extends AbstractComponent implements Property<String>,
* @param newStringValue
* the New value of the label.
*/
+ @Override
public void setValue(Object newStringValue) {
if (newStringValue != null && newStringValue.getClass() != String.class) {
throw new Converter.ConversionException("Value of type "
@@ -179,15 +188,20 @@ public class Label extends AbstractComponent implements Property<String>,
}
/**
+ * Returns the value displayed by this label.
+ *
* @see java.lang.Object#toString()
- * @deprecated use the data source value or {@link #getStringValue()}
- * instead
+ * @deprecated As of 7.0.0, use {@link #getValue()} to get the value of the
+ * label or {@link #getPropertyDataSource()} .getValue() to get
+ * the value of the data source.
*/
@Deprecated
@Override
public String toString() {
- throw new UnsupportedOperationException(
- "Use getValue() instead of Label.toString()");
+ logger.warning("You are using Label.toString() to get the value for a "
+ + getClass().getSimpleName()
+ + ". This is not recommended and will not be supported in future versions.");
+ return getValue();
}
/**
@@ -195,6 +209,7 @@ public class Label extends AbstractComponent implements Property<String>,
*
* @see com.vaadin.data.Property#getType()
*/
+ @Override
public Class<String> getType() {
return String.class;
}
@@ -205,6 +220,7 @@ public class Label extends AbstractComponent implements Property<String>,
* @return the data source property.
* @see com.vaadin.data.Property.Viewer#getPropertyDataSource()
*/
+ @Override
public Property getPropertyDataSource() {
return dataSource;
}
@@ -216,6 +232,7 @@ public class Label extends AbstractComponent implements Property<String>,
* the new data source Property
* @see com.vaadin.data.Property.Viewer#setPropertyDataSource(com.vaadin.data.Property)
*/
+ @Override
public void setPropertyDataSource(Property newDataSource) {
// Stops listening the old data source changes
if (dataSource != null
@@ -312,6 +329,7 @@ public class Label extends AbstractComponent implements Property<String>,
*
* @see com.vaadin.data.Property.ValueChangeEvent#getProperty()
*/
+ @Override
public Property getProperty() {
return (Property) getSource();
}
@@ -324,6 +342,7 @@ public class Label extends AbstractComponent implements Property<String>,
* the Listener to be added.
* @see com.vaadin.data.Property.ValueChangeNotifier#addListener(com.vaadin.data.Property.ValueChangeListener)
*/
+ @Override
public void addListener(Property.ValueChangeListener listener) {
addListener(Label.ValueChangeEvent.class, listener, VALUE_CHANGE_METHOD);
}
@@ -335,6 +354,7 @@ public class Label extends AbstractComponent implements Property<String>,
* the Listener to be removed.
* @see com.vaadin.data.Property.ValueChangeNotifier#removeListener(com.vaadin.data.Property.ValueChangeListener)
*/
+ @Override
public void removeListener(Property.ValueChangeListener listener) {
removeListener(Label.ValueChangeEvent.class, listener,
VALUE_CHANGE_METHOD);
@@ -353,6 +373,7 @@ public class Label extends AbstractComponent implements Property<String>,
*
* @see com.vaadin.data.Property.ValueChangeListener#valueChange(Property.ValueChangeEvent)
*/
+ @Override
public void valueChange(Property.ValueChangeEvent event) {
// Update the internal value from the data source
getState().setText(getValue());
@@ -397,6 +418,7 @@ public class Label extends AbstractComponent implements Property<String>,
* less than, equal to, or greater than the specified object.
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
+ @Override
public int compareTo(Label other) {
String thisValue = getComparableValue();
diff --git a/src/com/vaadin/ui/Layout.java b/src/com/vaadin/ui/Layout.java
index 67bfaa75ff..d083f9afdc 100644
--- a/src/com/vaadin/ui/Layout.java
+++ b/src/com/vaadin/ui/Layout.java
@@ -6,8 +6,8 @@ package com.vaadin.ui;
import java.io.Serializable;
-import com.vaadin.terminal.gwt.client.ui.AlignmentInfo.Bits;
-import com.vaadin.terminal.gwt.client.ui.VMarginInfo;
+import com.vaadin.shared.ui.VMarginInfo;
+import com.vaadin.shared.ui.AlignmentInfo.Bits;
/**
* Extension to the {@link ComponentContainer} interface which adds the
diff --git a/src/com/vaadin/ui/Link.java b/src/com/vaadin/ui/Link.java
index db0dc58e6b..fd105f3255 100644
--- a/src/com/vaadin/ui/Link.java
+++ b/src/com/vaadin/ui/Link.java
@@ -96,6 +96,7 @@ public class Link extends AbstractComponent implements Vaadin6Component {
* @throws PaintException
* if the paint operation failed.
*/
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
if (resource != null) {
@@ -234,6 +235,7 @@ public class Link extends AbstractComponent implements Vaadin6Component {
requestRepaint();
}
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
// TODO Remove once Vaadin6Component is no longer implemented
}
diff --git a/src/com/vaadin/ui/LoginForm.java b/src/com/vaadin/ui/LoginForm.java
index 1d5203bc6b..db7e5f9dd9 100644
--- a/src/com/vaadin/ui/LoginForm.java
+++ b/src/com/vaadin/ui/LoginForm.java
@@ -48,33 +48,40 @@ public class LoginForm extends CustomComponent {
private ApplicationResource loginPage = new ApplicationResource() {
+ @Override
public Application getApplication() {
return LoginForm.this.getApplication();
}
+ @Override
public int getBufferSize() {
return getLoginHTML().length;
}
+ @Override
public long getCacheTime() {
return -1;
}
+ @Override
public String getFilename() {
return "login";
}
+ @Override
public DownloadStream getStream() {
return new DownloadStream(new ByteArrayInputStream(getLoginHTML()),
getMIMEType(), getFilename());
}
+ @Override
public String getMIMEType() {
return "text/html; charset=utf-8";
}
};
private final RequestHandler requestHandler = new RequestHandler() {
+ @Override
public boolean handleRequest(Application application,
WrappedRequest request, WrappedResponse response)
throws IOException {
@@ -84,7 +91,7 @@ public class LoginForm extends CustomComponent {
response.setContentType("text/html; charset=utf-8");
response.getWriter()
.write("<html><body>Login form handled."
- + "<script type='text/javascript'>top.vaadin.forceSync();"
+ + "<script type='text/javascript'>parent.parent.vaadin.forceSync();"
+ "</script></body></html>");
Map<String, String[]> parameters = request.getParameterMap();
diff --git a/src/com/vaadin/ui/MenuBar.java b/src/com/vaadin/ui/MenuBar.java
index f94bd7ea64..5b5dc13e20 100644
--- a/src/com/vaadin/ui/MenuBar.java
+++ b/src/com/vaadin/ui/MenuBar.java
@@ -39,6 +39,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component {
private boolean htmlContentAllowed;
/** Paint (serialise) the component for the client. */
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
target.addAttribute(VMenuBar.OPEN_ROOT_MENU_ON_HOWER, openRootOnHover);
@@ -125,6 +126,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component {
}
/** Deserialize changes received from client. */
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
Stack<MenuItem> items = new Stack<MenuItem>();
boolean found = false;
diff --git a/src/com/vaadin/ui/Notification.java b/src/com/vaadin/ui/Notification.java
index 0358283cb4..502e5ff788 100644
--- a/src/com/vaadin/ui/Notification.java
+++ b/src/com/vaadin/ui/Notification.java
@@ -76,8 +76,7 @@ public class Notification implements Serializable {
/**
* Creates a "humanized" notification message.
*
- * Care should be taken to to avoid XSS vulnerabilities as the caption is by
- * default rendered as html.
+ * The caption is rendered as plain text with HTML automatically escaped.
*
* @param caption
* The message to show
@@ -89,8 +88,7 @@ public class Notification implements Serializable {
/**
* Creates a notification message of the specified type.
*
- * Care should be taken to to avoid XSS vulnerabilities as the caption is by
- * default rendered as html.
+ * The caption is rendered as plain text with HTML automatically escaped.
*
* @param caption
* The message to show
@@ -105,8 +103,8 @@ public class Notification implements Serializable {
* Creates a "humanized" notification message with a bigger caption and
* smaller description.
*
- * Care should be taken to to avoid XSS vulnerabilities as the caption and
- * description are by default rendered as html.
+ * The caption and description are rendered as plain text with HTML
+ * automatically escaped.
*
* @param caption
* The message caption
@@ -121,8 +119,8 @@ public class Notification implements Serializable {
* Creates a notification message of the specified type, with a bigger
* caption and smaller description.
*
- * Care should be taken to to avoid XSS vulnerabilities as the caption and
- * description are by default rendered as html.
+ * The caption and description are rendered as plain text with HTML
+ * automatically escaped.
*
* @param caption
* The message caption
@@ -132,7 +130,7 @@ public class Notification implements Serializable {
* The type of message
*/
public Notification(String caption, String description, int type) {
- this(caption, description, type, true);
+ this(caption, description, type, false);
}
/**
@@ -335,8 +333,7 @@ public class Notification implements Serializable {
* Shows a notification message on the middle of the current page. The
* message automatically disappears ("humanized message").
*
- * Care should be taken to to avoid XSS vulnerabilities as the caption is
- * rendered as html.
+ * The caption is rendered as plain text with HTML automatically escaped.
*
* @see #Notification(String)
* @see #show(Page)
@@ -354,8 +351,7 @@ public class Notification implements Serializable {
* defined in {@link Notification}, for instance
* Notification.TYPE_WARNING_MESSAGE.
*
- * Care should be taken to to avoid XSS vulnerabilities as the caption is
- * rendered as html.
+ * The caption is rendered as plain text with HTML automatically escaped.
*
* @see #Notification(String, int)
* @see #show(Page)
diff --git a/src/com/vaadin/ui/OptionGroup.java b/src/com/vaadin/ui/OptionGroup.java
index a4aaf7ec99..e3bcdd61b7 100644
--- a/src/com/vaadin/ui/OptionGroup.java
+++ b/src/com/vaadin/ui/OptionGroup.java
@@ -75,20 +75,24 @@ public class OptionGroup extends AbstractSelect implements
}
}
+ @Override
public void addListener(BlurListener listener) {
addListener(BlurEvent.EVENT_ID, BlurEvent.class, listener,
BlurListener.blurMethod);
}
+ @Override
public void removeListener(BlurListener listener) {
removeListener(BlurEvent.EVENT_ID, BlurEvent.class, listener);
}
+ @Override
public void addListener(FocusListener listener) {
addListener(FocusEvent.EVENT_ID, FocusEvent.class, listener,
FocusListener.focusMethod);
}
+ @Override
public void removeListener(FocusListener listener) {
removeListener(FocusEvent.EVENT_ID, FocusEvent.class, listener);
diff --git a/src/com/vaadin/ui/Panel.java b/src/com/vaadin/ui/Panel.java
index c339100cda..3c26b73f09 100644
--- a/src/com/vaadin/ui/Panel.java
+++ b/src/com/vaadin/ui/Panel.java
@@ -13,14 +13,14 @@ import com.vaadin.event.Action.Handler;
import com.vaadin.event.ActionManager;
import com.vaadin.event.MouseEvents.ClickEvent;
import com.vaadin.event.MouseEvents.ClickListener;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.panel.PanelServerRpc;
+import com.vaadin.shared.ui.panel.PanelState;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Scrollable;
import com.vaadin.terminal.Vaadin6Component;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.ui.ClickEventHandler;
-import com.vaadin.terminal.gwt.client.ui.panel.PanelServerRpc;
-import com.vaadin.terminal.gwt.client.ui.panel.PanelState;
import com.vaadin.ui.Component.Focusable;
/**
@@ -49,6 +49,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
protected ActionManager actionManager;
private PanelServerRpc rpc = new PanelServerRpc() {
+ @Override
public void click(MouseEventDetails mouseDetails) {
fireEvent(new ClickEvent(Panel.this, mouseDetails));
}
@@ -188,6 +189,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
* com.vaadin.terminal.Vaadin6Component#paintContent(com.vaadin.terminal
* .PaintTarget)
*/
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
if (actionManager != null) {
actionManager.paintActions(null, target);
@@ -229,6 +231,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
* @return the Iterator of the components inside the container.
* @see com.vaadin.ui.ComponentContainer#getComponentIterator()
*/
+ @Override
public Iterator<Component> getComponentIterator() {
return Collections.singleton((Component) content).iterator();
}
@@ -239,6 +242,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
*
* @see com.vaadin.terminal.VariableOwner#changeVariables(Object, Map)
*/
+ @Override
@SuppressWarnings("unchecked")
public void changeVariables(Object source, Map<String, Object> variables) {
// Get new size
@@ -277,6 +281,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
*
* @see com.vaadin.terminal.Scrollable#setScrollable(boolean)
*/
+ @Override
public int getScrollLeft() {
return getState().getScrollLeft();
}
@@ -286,6 +291,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
*
* @see com.vaadin.terminal.Scrollable#setScrollable(boolean)
*/
+ @Override
public int getScrollTop() {
return getState().getScrollTop();
}
@@ -295,6 +301,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
*
* @see com.vaadin.terminal.Scrollable#setScrollLeft(int)
*/
+ @Override
public void setScrollLeft(int scrollLeft) {
if (scrollLeft < 0) {
throw new IllegalArgumentException(
@@ -309,6 +316,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
*
* @see com.vaadin.terminal.Scrollable#setScrollTop(int)
*/
+ @Override
public void setScrollTop(int scrollTop) {
if (scrollTop < 0) {
throw new IllegalArgumentException(
@@ -319,6 +327,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
}
/* Documented in superclass */
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent) {
content.replaceComponent(oldComponent, newComponent);
@@ -329,6 +338,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
*
* @see com.vaadin.ui.ComponentContainer.ComponentAttachListener#componentAttachedToContainer(com.vaadin.ui.ComponentContainer.ComponentAttachEvent)
*/
+ @Override
public void componentAttachedToContainer(ComponentAttachEvent event) {
if (event.getContainer() == content) {
fireComponentAttachEvent(event.getAttachedComponent());
@@ -340,6 +350,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
*
* @see com.vaadin.ui.ComponentContainer.ComponentDetachListener#componentDetachedFromContainer(com.vaadin.ui.ComponentContainer.ComponentDetachEvent)
*/
+ @Override
public void componentDetachedFromContainer(ComponentDetachEvent event) {
if (event.getContainer() == content) {
fireComponentDetachEvent(event.getDetachedComponent());
@@ -367,11 +378,13 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
return actionManager;
}
+ @Override
public <T extends Action & com.vaadin.event.Action.Listener> void addAction(
T action) {
getActionManager().addAction(action);
}
+ @Override
public <T extends Action & com.vaadin.event.Action.Listener> void removeAction(
T action) {
if (actionManager != null) {
@@ -379,10 +392,12 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
}
}
+ @Override
public void addActionHandler(Handler actionHandler) {
getActionManager().addActionHandler(actionHandler);
}
+ @Override
public void removeActionHandler(Handler actionHandler) {
if (actionManager != null) {
actionManager.removeActionHandler(actionHandler);
@@ -429,6 +444,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
/**
* {@inheritDoc}
*/
+ @Override
public int getTabIndex() {
return getState().getTabIndex();
}
@@ -436,6 +452,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
/**
* {@inheritDoc}
*/
+ @Override
public void setTabIndex(int tabIndex) {
getState().setTabIndex(tabIndex);
requestRepaint();
@@ -455,6 +472,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable,
*
* @see com.vaadin.ui.ComponentContainer#getComponentCount()
*/
+ @Override
public int getComponentCount() {
// This is so wrong... (#2924)
return content.getComponentCount();
diff --git a/src/com/vaadin/ui/PopupView.java b/src/com/vaadin/ui/PopupView.java
index 911d926053..766181b50f 100644
--- a/src/com/vaadin/ui/PopupView.java
+++ b/src/com/vaadin/ui/PopupView.java
@@ -58,10 +58,12 @@ public class PopupView extends AbstractComponentContainer implements
first = (component == null);
}
+ @Override
public boolean hasNext() {
return !first;
}
+ @Override
public Component next() {
if (!first) {
first = true;
@@ -71,6 +73,7 @@ public class PopupView extends AbstractComponentContainer implements
}
}
+ @Override
public void remove() {
throw new UnsupportedOperationException();
}
@@ -90,10 +93,12 @@ public class PopupView extends AbstractComponentContainer implements
*/
public PopupView(final java.lang.String small, final Component large) {
this(new PopupView.Content() {
+ @Override
public java.lang.String getMinimizedValueAsHTML() {
return small;
}
+ @Override
public Component getPopupComponent() {
return large;
}
@@ -223,6 +228,7 @@ public class PopupView extends AbstractComponentContainer implements
*
* @see com.vaadin.ui.ComponentContainer#getComponentIterator()
*/
+ @Override
public Iterator<Component> getComponentIterator() {
return new SingleComponentIterator(visibleComponent);
}
@@ -233,6 +239,7 @@ public class PopupView extends AbstractComponentContainer implements
*
* @return the number of contained components (zero or one)
*/
+ @Override
public int getComponentCount() {
return (visibleComponent != null ? 1 : 0);
}
@@ -280,6 +287,7 @@ public class PopupView extends AbstractComponentContainer implements
* com.vaadin.ui.Component)
* @throws UnsupportedOperationException
*/
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent)
throws UnsupportedOperationException {
@@ -307,6 +315,7 @@ public class PopupView extends AbstractComponentContainer implements
*
* @see com.vaadin.ui.AbstractComponent#paintContent(com.vaadin.terminal.PaintTarget)
*/
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
String html = content.getMinimizedValueAsHTML();
if (html == null) {
@@ -331,6 +340,7 @@ public class PopupView extends AbstractComponentContainer implements
* @see com.vaadin.ui.AbstractComponent#changeVariables(java.lang.Object,
* java.util.Map)
*/
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
if (variables.containsKey("popupVisibility")) {
setPopupVisible(((Boolean) variables.get("popupVisibility"))
diff --git a/src/com/vaadin/ui/ProgressIndicator.java b/src/com/vaadin/ui/ProgressIndicator.java
index 4d585cfdd7..fef54a267c 100644
--- a/src/com/vaadin/ui/ProgressIndicator.java
+++ b/src/com/vaadin/ui/ProgressIndicator.java
@@ -111,6 +111,7 @@ public class ProgressIndicator extends AbstractField<Number> implements
* @throws PaintException
* if the Paint Operation fails.
*/
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
target.addAttribute("indeterminate", indeterminate);
target.addAttribute("pollinginterval", pollingInterval);
@@ -247,6 +248,7 @@ public class ProgressIndicator extends AbstractField<Number> implements
return pollingInterval;
}
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
// TODO Remove once Vaadin6Component is no longer implemented
diff --git a/src/com/vaadin/ui/RichTextArea.java b/src/com/vaadin/ui/RichTextArea.java
index 16d4761b40..cec952926b 100644
--- a/src/com/vaadin/ui/RichTextArea.java
+++ b/src/com/vaadin/ui/RichTextArea.java
@@ -103,6 +103,7 @@ public class RichTextArea extends AbstractField<String> implements
setCaption(caption);
}
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
if (selectAll) {
target.addAttribute("selectAll", true);
@@ -185,6 +186,7 @@ public class RichTextArea extends AbstractField<String> implements
}
}
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
// Sets the text
if (variables.containsKey("text") && !isReadOnly()) {
diff --git a/src/com/vaadin/ui/Root.java b/src/com/vaadin/ui/Root.java
index 7ae687be79..bd4842632b 100644
--- a/src/com/vaadin/ui/Root.java
+++ b/src/com/vaadin/ui/Root.java
@@ -20,6 +20,9 @@ import com.vaadin.event.Action.Handler;
import com.vaadin.event.ActionManager;
import com.vaadin.event.MouseEvents.ClickEvent;
import com.vaadin.event.MouseEvents.ClickListener;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.root.RootServerRpc;
+import com.vaadin.shared.ui.root.RootState;
import com.vaadin.terminal.Page;
import com.vaadin.terminal.Page.BrowserWindowResizeEvent;
import com.vaadin.terminal.Page.BrowserWindowResizeListener;
@@ -29,9 +32,6 @@ import com.vaadin.terminal.Resource;
import com.vaadin.terminal.Vaadin6Component;
import com.vaadin.terminal.WrappedRequest;
import com.vaadin.terminal.WrappedRequest.BrowserDetails;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
-import com.vaadin.terminal.gwt.client.ui.root.RootServerRpc;
-import com.vaadin.terminal.gwt.client.ui.root.RootState;
import com.vaadin.terminal.gwt.client.ui.root.VRoot;
import com.vaadin.ui.Window.CloseListener;
@@ -419,6 +419,7 @@ public abstract class Root extends AbstractComponentContainer implements
private Page page = new Page(this);
private RootServerRpc rpc = new RootServerRpc() {
+ @Override
public void click(MouseEventDetails mouseDetails) {
fireEvent(new ClickEvent(Root.this, mouseDetails));
}
@@ -502,6 +503,7 @@ public abstract class Root extends AbstractComponentContainer implements
return this;
}
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent) {
throw new UnsupportedOperationException();
}
@@ -511,6 +513,7 @@ public abstract class Root extends AbstractComponentContainer implements
return application;
}
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
page.paintContent(target);
@@ -550,6 +553,7 @@ public abstract class Root extends AbstractComponentContainer implements
fireEvent(new ClickEvent(this, mouseDetails));
}
+ @Override
@SuppressWarnings("unchecked")
public void changeVariables(Object source, Map<String, Object> variables) {
if (variables.containsKey(CLICK_EVENT_ID)) {
@@ -578,6 +582,7 @@ public abstract class Root extends AbstractComponentContainer implements
*
* @see com.vaadin.ui.ComponentContainer#getComponentIterator()
*/
+ @Override
public Iterator<Component> getComponentIterator() {
// TODO could directly create some kind of combined iterator instead of
// creating a new ArrayList
@@ -597,6 +602,7 @@ public abstract class Root extends AbstractComponentContainer implements
*
* @see com.vaadin.ui.ComponentContainer#getComponentCount()
*/
+ @Override
public int getComponentCount() {
return windows.size() + (getContent() == null ? 0 : 1);
}
@@ -956,11 +962,13 @@ public abstract class Root extends AbstractComponentContainer implements
return actionManager;
}
+ @Override
public <T extends Action & com.vaadin.event.Action.Listener> void addAction(
T action) {
getActionManager().addAction(action);
}
+ @Override
public <T extends Action & com.vaadin.event.Action.Listener> void removeAction(
T action) {
if (actionManager != null) {
@@ -968,10 +976,12 @@ public abstract class Root extends AbstractComponentContainer implements
}
}
+ @Override
public void addActionHandler(Handler actionHandler) {
getActionManager().addActionHandler(actionHandler);
}
+ @Override
public void removeActionHandler(Handler actionHandler) {
if (actionManager != null) {
actionManager.removeActionHandler(actionHandler);
@@ -1071,11 +1081,14 @@ public abstract class Root extends AbstractComponentContainer implements
* @param caption
* The message
*
- * @deprecated As of 7.0, use Notification.show instead
+ * @deprecated As of 7.0, use Notification.show instead but be aware that
+ * Notification.show does not allow HTML.
*/
@Deprecated
public void showNotification(String caption) {
- getPage().showNotification(new Notification(caption));
+ Notification notification = new Notification(caption);
+ notification.setHtmlContentAllowed(true);// Backwards compatibility
+ getPage().showNotification(notification);
}
/**
@@ -1094,11 +1107,14 @@ public abstract class Root extends AbstractComponentContainer implements
* @param type
* The message type
*
- * @deprecated As of 7.0, use Notification.show instead
+ * @deprecated As of 7.0, use Notification.show instead but be aware that
+ * Notification.show does not allow HTML.
*/
@Deprecated
public void showNotification(String caption, int type) {
- getPage().showNotification(new Notification(caption, type));
+ Notification notification = new Notification(caption, type);
+ notification.setHtmlContentAllowed(true);// Backwards compatibility
+ getPage().showNotification(notification);
}
/**
@@ -1117,11 +1133,14 @@ public abstract class Root extends AbstractComponentContainer implements
* @param description
* The message description
*
- * @deprecated As of 7.0, use Notification.show instead
+ * @deprecated As of 7.0, use new Notification(...).show(Page) instead but
+ * be aware that HTML by default not allowed.
*/
@Deprecated
public void showNotification(String caption, String description) {
- getPage().showNotification(new Notification(caption, description));
+ Notification notification = new Notification(caption, description);
+ notification.setHtmlContentAllowed(true);// Backwards compatibility
+ getPage().showNotification(notification);
}
/**
@@ -1143,12 +1162,14 @@ public abstract class Root extends AbstractComponentContainer implements
* @param type
* The message type
*
- * @deprecated As of 7.0, use Notification.show instead
+ * @deprecated As of 7.0, use new Notification(...).show(Page) instead but
+ * be aware that HTML by default not allowed.
*/
@Deprecated
public void showNotification(String caption, String description, int type) {
- getPage()
- .showNotification(new Notification(caption, description, type));
+ Notification notification = new Notification(caption, description, type);
+ notification.setHtmlContentAllowed(true);// Backwards compatibility
+ getPage().showNotification(notification);
}
/**
@@ -1173,7 +1194,7 @@ public abstract class Root extends AbstractComponentContainer implements
* Whether html in the caption and description should be
* displayed as html or as plain text
*
- * @deprecated As of 7.0, use Notification.show instead
+ * @deprecated As of 7.0, use new Notification(...).show(Page).
*/
@Deprecated
public void showNotification(String caption, String description, int type,
diff --git a/src/com/vaadin/ui/Select.java b/src/com/vaadin/ui/Select.java
index 5398f11391..f60935c64b 100644
--- a/src/com/vaadin/ui/Select.java
+++ b/src/com/vaadin/ui/Select.java
@@ -677,10 +677,12 @@ public class Select extends AbstractSelect implements AbstractSelect.Filtering,
super.requestRepaint();
}
+ @Override
public void setFilteringMode(int filteringMode) {
this.filteringMode = filteringMode;
}
+ @Override
public int getFilteringMode() {
return filteringMode;
}
@@ -719,20 +721,24 @@ public class Select extends AbstractSelect implements AbstractSelect.Filtering,
return columns;
}
+ @Override
public void addListener(BlurListener listener) {
addListener(BlurEvent.EVENT_ID, BlurEvent.class, listener,
BlurListener.blurMethod);
}
+ @Override
public void removeListener(BlurListener listener) {
removeListener(BlurEvent.EVENT_ID, BlurEvent.class, listener);
}
+ @Override
public void addListener(FocusListener listener) {
addListener(FocusEvent.EVENT_ID, FocusEvent.class, listener,
FocusListener.focusMethod);
}
+ @Override
public void removeListener(FocusListener listener) {
removeListener(FocusEvent.EVENT_ID, FocusEvent.class, listener);
diff --git a/src/com/vaadin/ui/Slider.java b/src/com/vaadin/ui/Slider.java
index dc5dc0be98..94afe4e2bd 100644
--- a/src/com/vaadin/ui/Slider.java
+++ b/src/com/vaadin/ui/Slider.java
@@ -278,6 +278,7 @@ public class Slider extends AbstractField<Double> implements Vaadin6Component {
super.setValue(newFieldValue);
}
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
target.addAttribute("min", min);
@@ -307,6 +308,7 @@ public class Slider extends AbstractField<Double> implements Vaadin6Component {
* @param source
* @param variables
*/
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
if (variables.containsKey("value")) {
final Object value = variables.get("value");
diff --git a/src/com/vaadin/ui/TabSheet.java b/src/com/vaadin/ui/TabSheet.java
index 061809de67..c52e9394c0 100644
--- a/src/com/vaadin/ui/TabSheet.java
+++ b/src/com/vaadin/ui/TabSheet.java
@@ -109,6 +109,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable,
setImmediate(true);
setCloseHandler(new CloseHandler() {
+ @Override
public void onTabClose(TabSheet tabsheet, Component c) {
tabsheet.removeComponent(c);
}
@@ -122,6 +123,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable,
* @return the unmodifiable Iterator of the tab content components
*/
+ @Override
public Iterator<Component> getComponentIterator() {
return Collections.unmodifiableList(components).iterator();
}
@@ -133,6 +135,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable,
* @return the number of contained components
*/
+ @Override
public int getComponentCount() {
return components.size();
}
@@ -366,6 +369,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable,
* if the paint operation failed.
*/
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
if (areTabsHidden()) {
@@ -691,6 +695,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable,
// inherits javadoc
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
if (variables.containsKey("selected")) {
setSelectedTab(keyMapper.get((String) variables.get("selected")));
@@ -728,6 +733,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable,
* {@inheritDoc}
*/
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent) {
if (selected == oldComponent) {
@@ -1083,28 +1089,34 @@ public class TabSheet extends AbstractComponentContainer implements Focusable,
* Returns the tab caption. Can never be null.
*/
+ @Override
public String getCaption() {
return caption;
}
+ @Override
public void setCaption(String caption) {
this.caption = caption;
requestRepaint();
}
+ @Override
public Resource getIcon() {
return icon;
}
+ @Override
public void setIcon(Resource icon) {
this.icon = icon;
requestRepaint();
}
+ @Override
public boolean isEnabled() {
return enabled;
}
+ @Override
public void setEnabled(boolean enabled) {
this.enabled = enabled;
if (updateSelection()) {
@@ -1113,10 +1125,12 @@ public class TabSheet extends AbstractComponentContainer implements Focusable,
requestRepaint();
}
+ @Override
public boolean isVisible() {
return visible;
}
+ @Override
public void setVisible(boolean visible) {
this.visible = visible;
if (updateSelection()) {
@@ -1125,10 +1139,12 @@ public class TabSheet extends AbstractComponentContainer implements Focusable,
requestRepaint();
}
+ @Override
public boolean isClosable() {
return closable;
}
+ @Override
public void setClosable(boolean closable) {
this.closable = closable;
requestRepaint();
@@ -1138,24 +1154,29 @@ public class TabSheet extends AbstractComponentContainer implements Focusable,
}
+ @Override
public String getDescription() {
return description;
}
+ @Override
public void setDescription(String description) {
this.description = description;
requestRepaint();
}
+ @Override
public ErrorMessage getComponentError() {
return componentError;
}
+ @Override
public void setComponentError(ErrorMessage componentError) {
this.componentError = componentError;
requestRepaint();
}
+ @Override
public Component getComponent() {
for (Map.Entry<Component, Tab> entry : tabs.entrySet()) {
if (entry.getValue() == this) {
@@ -1165,11 +1186,13 @@ public class TabSheet extends AbstractComponentContainer implements Focusable,
return null;
}
+ @Override
public void setStyleName(String styleName) {
this.styleName = styleName;
requestRepaint();
}
+ @Override
public String getStyleName() {
return styleName;
}
@@ -1245,29 +1268,35 @@ public class TabSheet extends AbstractComponentContainer implements Focusable,
super.focus();
}
+ @Override
public int getTabIndex() {
return tabIndex;
}
+ @Override
public void setTabIndex(int tabIndex) {
this.tabIndex = tabIndex;
requestRepaint();
}
+ @Override
public void addListener(BlurListener listener) {
addListener(BlurEvent.EVENT_ID, BlurEvent.class, listener,
BlurListener.blurMethod);
}
+ @Override
public void removeListener(BlurListener listener) {
removeListener(BlurEvent.EVENT_ID, BlurEvent.class, listener);
}
+ @Override
public void addListener(FocusListener listener) {
addListener(FocusEvent.EVENT_ID, FocusEvent.class, listener,
FocusListener.focusMethod);
}
+ @Override
public void removeListener(FocusListener listener) {
removeListener(FocusEvent.EVENT_ID, FocusEvent.class, listener);
diff --git a/src/com/vaadin/ui/Table.java b/src/com/vaadin/ui/Table.java
index a1cc4f95fe..39b7fb7473 100644
--- a/src/com/vaadin/ui/Table.java
+++ b/src/com/vaadin/ui/Table.java
@@ -40,12 +40,12 @@ import com.vaadin.event.dd.DragSource;
import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.DropTarget;
import com.vaadin.event.dd.acceptcriteria.ServerSideCriterion;
+import com.vaadin.shared.MouseEventDetails;
import com.vaadin.terminal.KeyMapper;
import com.vaadin.terminal.LegacyPaint;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Resource;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.ui.table.VScrollTable;
/**
@@ -538,6 +538,13 @@ public class Table extends AbstractSelect implements Action.Container,
private HashMap<Object, Converter<String, Object>> propertyValueConverters = new HashMap<Object, Converter<String, Object>>();
+ /**
+ * Set to true if the client-side should be informed that the key mapper has
+ * been reset so it can avoid sending back references to keys that are no
+ * longer present.
+ */
+ private boolean keyMapperReset;
+
/* Table constructors */
/**
@@ -1587,9 +1594,10 @@ public class Table extends AbstractSelect implements Action.Container,
// Collects the basic facts about the table page
final int pagelen = getPageLength();
- int firstIndex = getCurrentPageFirstItemIndex();
int rows, totalRows;
rows = totalRows = size();
+ int firstIndex = Math
+ .min(getCurrentPageFirstItemIndex(), totalRows - 1);
if (rows > 0 && firstIndex >= 0) {
rows -= firstIndex;
}
@@ -2409,8 +2417,9 @@ public class Table extends AbstractSelect implements Action.Container,
* The end key
* @return
*/
- private Set<Object> getItemIdsInRange(Object itemId, final int length) {
- HashSet<Object> ids = new HashSet<Object>();
+ private LinkedHashSet<Object> getItemIdsInRange(Object itemId,
+ final int length) {
+ LinkedHashSet<Object> ids = new LinkedHashSet<Object>();
for (int i = 0; i < length; i++) {
assert itemId != null; // should not be null unless client-server
// are out of sync
@@ -2430,21 +2439,15 @@ public class Table extends AbstractSelect implements Action.Container,
final String[] ka = (String[]) variables.get("selected");
final String[] ranges = (String[]) variables.get("selectedRanges");
- Set<Object> renderedItemIds = getCurrentlyRenderedItemIds();
+ Set<Object> renderedButNotSelectedItemIds = getCurrentlyRenderedItemIds();
@SuppressWarnings("unchecked")
- HashSet<Object> newValue = new HashSet<Object>(
+ HashSet<Object> newValue = new LinkedHashSet<Object>(
(Collection<Object>) getValue());
if (variables.containsKey("clearSelections")) {
// the client side has instructed to swipe all previous selections
newValue.clear();
- } else {
- /*
- * first clear all selections that are currently rendered rows (the
- * ones that the client side counterpart is aware of)
- */
- newValue.removeAll(renderedItemIds);
}
/*
@@ -2461,6 +2464,7 @@ public class Table extends AbstractSelect implements Action.Container,
requestRepaint();
} else if (id != null && containsId(id)) {
newValue.add(id);
+ renderedButNotSelectedItemIds.remove(id);
}
}
@@ -2470,9 +2474,17 @@ public class Table extends AbstractSelect implements Action.Container,
String[] split = range.split("-");
Object startItemId = itemIdMapper.get(split[0]);
int length = Integer.valueOf(split[1]);
- newValue.addAll(getItemIdsInRange(startItemId, length));
+ LinkedHashSet<Object> itemIdsInRange = getItemIdsInRange(
+ startItemId, length);
+ newValue.addAll(itemIdsInRange);
+ renderedButNotSelectedItemIds.removeAll(itemIdsInRange);
}
}
+ /*
+ * finally clear all currently rendered rows (the ones that the client
+ * side counterpart is aware of) that the client didn't send as selected
+ */
+ newValue.removeAll(renderedButNotSelectedItemIds);
if (!isNullSelectionAllowed() && newValue.isEmpty()) {
// empty selection not allowed, keep old value
@@ -2885,6 +2897,11 @@ public class Table extends AbstractSelect implements Action.Container,
paintVisibleColumns(target);
+ if (keyMapperReset) {
+ keyMapperReset = false;
+ target.addAttribute(VScrollTable.ATTRIBUTE_KEY_MAPPER_RESET, true);
+ }
+
if (dropHandler != null) {
dropHandler.getAcceptCriterion().paint(target);
}
@@ -3681,6 +3698,7 @@ public class Table extends AbstractSelect implements Action.Container,
* @see com.vaadin.event.Action.Container#addActionHandler(Action.Handler)
*/
+ @Override
public void addActionHandler(Action.Handler actionHandler) {
if (actionHandler != null) {
@@ -3708,6 +3726,7 @@ public class Table extends AbstractSelect implements Action.Container,
* @see com.vaadin.event.Action.Container#removeActionHandler(Action.Handler)
*/
+ @Override
public void removeActionHandler(Action.Handler actionHandler) {
if (actionHandlers != null && actionHandlers.contains(actionHandler)) {
@@ -4046,6 +4065,10 @@ public class Table extends AbstractSelect implements Action.Container,
public void containerItemSetChange(Container.ItemSetChangeEvent event) {
super.containerItemSetChange(event);
+ // super method clears the key map, must inform client about this to
+ // avoid getting invalid keys back (#8584)
+ keyMapperReset = true;
+
// ensure that page still has first item in page, ignore buffer refresh
// (forced in this method)
setCurrentPageFirstItemIndex(getCurrentPageFirstItemIndex(), false);
@@ -4117,6 +4140,7 @@ public class Table extends AbstractSelect implements Action.Container,
* @see com.vaadin.data.Container.Ordered#nextItemId(java.lang.Object)
*/
+ @Override
public Object nextItemId(Object itemId) {
return ((Container.Ordered) items).nextItemId(itemId);
}
@@ -4128,6 +4152,7 @@ public class Table extends AbstractSelect implements Action.Container,
* @see com.vaadin.data.Container.Ordered#prevItemId(java.lang.Object)
*/
+ @Override
public Object prevItemId(Object itemId) {
return ((Container.Ordered) items).prevItemId(itemId);
}
@@ -4138,6 +4163,7 @@ public class Table extends AbstractSelect implements Action.Container,
* @see com.vaadin.data.Container.Ordered#firstItemId()
*/
+ @Override
public Object firstItemId() {
return ((Container.Ordered) items).firstItemId();
}
@@ -4148,6 +4174,7 @@ public class Table extends AbstractSelect implements Action.Container,
* @see com.vaadin.data.Container.Ordered#lastItemId()
*/
+ @Override
public Object lastItemId() {
return ((Container.Ordered) items).lastItemId();
}
@@ -4159,6 +4186,7 @@ public class Table extends AbstractSelect implements Action.Container,
* @see com.vaadin.data.Container.Ordered#isFirstId(java.lang.Object)
*/
+ @Override
public boolean isFirstId(Object itemId) {
return ((Container.Ordered) items).isFirstId(itemId);
}
@@ -4170,6 +4198,7 @@ public class Table extends AbstractSelect implements Action.Container,
* @see com.vaadin.data.Container.Ordered#isLastId(java.lang.Object)
*/
+ @Override
public boolean isLastId(Object itemId) {
return ((Container.Ordered) items).isLastId(itemId);
}
@@ -4180,6 +4209,7 @@ public class Table extends AbstractSelect implements Action.Container,
* @see com.vaadin.data.Container.Ordered#addItemAfter(java.lang.Object)
*/
+ @Override
public Object addItemAfter(Object previousItemId)
throws UnsupportedOperationException {
Object itemId = ((Container.Ordered) items)
@@ -4197,6 +4227,7 @@ public class Table extends AbstractSelect implements Action.Container,
* java.lang.Object)
*/
+ @Override
public Item addItemAfter(Object previousItemId, Object newItemId)
throws UnsupportedOperationException {
Item item = ((Container.Ordered) items).addItemAfter(previousItemId,
@@ -4290,6 +4321,7 @@ public class Table extends AbstractSelect implements Action.Container,
*
*/
+ @Override
public void sort(Object[] propertyId, boolean[] ascending)
throws UnsupportedOperationException {
final Container c = getContainerDataSource();
@@ -4331,6 +4363,7 @@ public class Table extends AbstractSelect implements Action.Container,
* @see com.vaadin.data.Container.Sortable#getSortableContainerPropertyIds()
*/
+ @Override
public Collection<?> getSortableContainerPropertyIds() {
final Container c = getContainerDataSource();
if (c instanceof Container.Sortable && isSortEnabled()) {
@@ -4544,11 +4577,13 @@ public class Table extends AbstractSelect implements Action.Container,
public abstract String getStyle(Object itemId, Object propertyId);
}
+ @Override
public void addListener(ItemClickListener listener) {
addListener(VScrollTable.ITEM_CLICK_EVENT_ID, ItemClickEvent.class,
listener, ItemClickEvent.ITEM_CLICK_METHOD);
}
+ @Override
public void removeListener(ItemClickListener listener) {
removeListener(VScrollTable.ITEM_CLICK_EVENT_ID, ItemClickEvent.class,
listener);
@@ -4625,11 +4660,13 @@ public class Table extends AbstractSelect implements Action.Container,
}
+ @Override
public TableTransferable getTransferable(Map<String, Object> rawVariables) {
TableTransferable transferable = new TableTransferable(rawVariables);
return transferable;
}
+ @Override
public DropHandler getDropHandler() {
return dropHandler;
}
@@ -4638,6 +4675,7 @@ public class Table extends AbstractSelect implements Action.Container,
this.dropHandler = dropHandler;
}
+ @Override
public AbstractSelectTargetDetails translateDropTargetDetails(
Map<String, Object> clientVariables) {
return new AbstractSelectTargetDetails(clientVariables);
@@ -4706,6 +4744,7 @@ public class Table extends AbstractSelect implements Action.Container,
* com.vaadin.event.dd.acceptcriteria.AcceptCriterion#accepts(com.vaadin
* .event.dd.DragAndDropEvent)
*/
+ @Override
@SuppressWarnings("unchecked")
public boolean accept(DragAndDropEvent dragEvent) {
AbstractSelectTargetDetails dropTargetData = (AbstractSelectTargetDetails) dragEvent
@@ -5381,10 +5420,12 @@ public class Table extends AbstractSelect implements Action.Container,
super.setVisible(visible);
}
+ @Override
public Iterator<Component> iterator() {
return getComponentIterator();
}
+ @Override
public Iterator<Component> getComponentIterator() {
if (visibleComponents == null) {
Collection<Component> empty = Collections.emptyList();
@@ -5394,6 +5435,7 @@ public class Table extends AbstractSelect implements Action.Container,
return visibleComponents.iterator();
}
+ @Override
public boolean isComponentVisible(Component childComponent) {
return true;
}
diff --git a/src/com/vaadin/ui/TextArea.java b/src/com/vaadin/ui/TextArea.java
index 4c0b563b00..d7837dd33f 100644
--- a/src/com/vaadin/ui/TextArea.java
+++ b/src/com/vaadin/ui/TextArea.java
@@ -5,7 +5,7 @@
package com.vaadin.ui;
import com.vaadin.data.Property;
-import com.vaadin.terminal.gwt.client.ui.textarea.TextAreaState;
+import com.vaadin.shared.ui.textarea.TextAreaState;
/**
* A text field that supports multi line editing.
diff --git a/src/com/vaadin/ui/Tree.java b/src/com/vaadin/ui/Tree.java
index dacb3a2027..c15975d879 100644
--- a/src/com/vaadin/ui/Tree.java
+++ b/src/com/vaadin/ui/Tree.java
@@ -37,12 +37,12 @@ import com.vaadin.event.dd.TargetDetails;
import com.vaadin.event.dd.acceptcriteria.ClientSideCriterion;
import com.vaadin.event.dd.acceptcriteria.ServerSideCriterion;
import com.vaadin.event.dd.acceptcriteria.TargetDetailIs;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.terminal.KeyMapper;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Resource;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
-import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
import com.vaadin.terminal.gwt.client.ui.tree.TreeConnector;
import com.vaadin.terminal.gwt.client.ui.tree.VTree;
import com.vaadin.tools.ReflectTools;
@@ -721,6 +721,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
*
* @see com.vaadin.data.Container.Hierarchical#areChildrenAllowed(Object)
*/
+ @Override
public boolean areChildrenAllowed(Object itemId) {
return ((Container.Hierarchical) items).areChildrenAllowed(itemId);
}
@@ -730,6 +731,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
*
* @see com.vaadin.data.Container.Hierarchical#getChildren(Object)
*/
+ @Override
public Collection<?> getChildren(Object itemId) {
return ((Container.Hierarchical) items).getChildren(itemId);
}
@@ -739,6 +741,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
*
* @see com.vaadin.data.Container.Hierarchical#getParent(Object)
*/
+ @Override
public Object getParent(Object itemId) {
return ((Container.Hierarchical) items).getParent(itemId);
}
@@ -748,6 +751,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
*
* @see com.vaadin.data.Container.Hierarchical#hasChildren(Object)
*/
+ @Override
public boolean hasChildren(Object itemId) {
return ((Container.Hierarchical) items).hasChildren(itemId);
}
@@ -757,6 +761,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
*
* @see com.vaadin.data.Container.Hierarchical#isRoot(Object)
*/
+ @Override
public boolean isRoot(Object itemId) {
return ((Container.Hierarchical) items).isRoot(itemId);
}
@@ -766,6 +771,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
*
* @see com.vaadin.data.Container.Hierarchical#rootItemIds()
*/
+ @Override
public Collection<?> rootItemIds() {
return ((Container.Hierarchical) items).rootItemIds();
}
@@ -776,6 +782,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* @see com.vaadin.data.Container.Hierarchical#setChildrenAllowed(Object,
* boolean)
*/
+ @Override
public boolean setChildrenAllowed(Object itemId, boolean areChildrenAllowed) {
final boolean success = ((Container.Hierarchical) items)
.setChildrenAllowed(itemId, areChildrenAllowed);
@@ -791,6 +798,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* @see com.vaadin.data.Container.Hierarchical#setParent(java.lang.Object ,
* java.lang.Object)
*/
+ @Override
public boolean setParent(Object itemId, Object newParentId) {
final boolean success = ((Container.Hierarchical) items).setParent(
itemId, newParentId);
@@ -1015,6 +1023,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
*
* @see com.vaadin.event.Action.Container#addActionHandler(Action.Handler)
*/
+ @Override
public void addActionHandler(Action.Handler actionHandler) {
if (actionHandler != null) {
@@ -1036,6 +1045,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
*
* @see com.vaadin.event.Action.Container#removeActionHandler(Action.Handler)
*/
+ @Override
public void removeActionHandler(Action.Handler actionHandler) {
if (actionHandlers != null && actionHandlers.contains(actionHandler)) {
@@ -1150,11 +1160,13 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
private DropHandler dropHandler;
+ @Override
public void addListener(ItemClickListener listener) {
addListener(VTree.ITEM_CLICK_EVENT_ID, ItemClickEvent.class, listener,
ItemClickEvent.ITEM_CLICK_METHOD);
}
+ @Override
public void removeListener(ItemClickListener listener) {
removeListener(VTree.ITEM_CLICK_EVENT_ID, ItemClickEvent.class,
listener);
@@ -1206,6 +1218,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
return super.removeItem(itemId);
}
+ @Override
public DropHandler getDropHandler() {
return dropHandler;
}
@@ -1304,6 +1317,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* @see
* com.vaadin.event.dd.DropTarget#translateDropTargetDetails(java.util.Map)
*/
+ @Override
public TreeTargetDetails translateDropTargetDetails(
Map<String, Object> clientVariables) {
return new TreeTargetDetails(clientVariables);
@@ -1371,6 +1385,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
*
* @see com.vaadin.event.dd.DragSource#getTransferable(java.util.Map)
*/
+ @Override
public Transferable getTransferable(Map<String, Object> payload) {
TreeTransferable transferable = new TreeTransferable(this, payload);
// updating drag source variables
@@ -1418,6 +1433,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* com.vaadin.event.dd.acceptCriteria.AcceptCriterion#accepts(com.vaadin
* .event.dd.DragAndDropEvent)
*/
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
AbstractSelectTargetDetails dropTargetData = (AbstractSelectTargetDetails) dragEvent
.getTargetDetails();
@@ -1541,6 +1557,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
this.depthToCheck = depthToCheck;
}
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
try {
TreeTargetDetails eventDetails = (TreeTargetDetails) dragEvent
diff --git a/src/com/vaadin/ui/TreeTable.java b/src/com/vaadin/ui/TreeTable.java
index 3294f6fab0..6132b652f7 100644
--- a/src/com/vaadin/ui/TreeTable.java
+++ b/src/com/vaadin/ui/TreeTable.java
@@ -82,6 +82,7 @@ public class TreeTable extends Table implements Hierarchical {
* scalability with some container implementations.
*/
+ @Override
public int getDepth(Object itemId) {
int depth = 0;
Hierarchical hierarchicalContainer = getContainerDataSource();
@@ -92,6 +93,7 @@ public class TreeTable extends Table implements Hierarchical {
return depth;
}
+ @Override
public void containerItemSetChange(ItemSetChangeEvent event) {
}
@@ -110,44 +112,54 @@ public class TreeTable extends Table implements Hierarchical {
return (Collapsible) getContainerDataSource();
}
+ @Override
public void toggleChildVisibility(Object itemId) {
c().setCollapsed(itemId, !c().isCollapsed(itemId));
}
+ @Override
public boolean isNodeOpen(Object itemId) {
return !c().isCollapsed(itemId);
}
+ @Override
public int size() {
return TreeTable.super.size();
}
+ @Override
public Object getIdByIndex(int index) {
return TreeTable.super.getIdByIndex(index);
}
+ @Override
public int indexOfId(Object id) {
return TreeTable.super.indexOfId(id);
}
+ @Override
public boolean isLastId(Object itemId) {
// using the default impl
return TreeTable.super.isLastId(itemId);
}
+ @Override
public Object lastItemId() {
// using the default impl
return TreeTable.super.lastItemId();
}
+ @Override
public Object nextItemId(Object itemId) {
return TreeTable.super.nextItemId(itemId);
}
+ @Override
public Object prevItemId(Object itemId) {
return TreeTable.super.prevItemId(itemId);
}
+ @Override
public Collection<?> getItemIds() {
return TreeTable.super.getItemIds();
}
@@ -165,18 +177,22 @@ public class TreeTable extends Table implements Hierarchical {
private final HashSet<Object> openItems = new HashSet<Object>();
+ @Override
public boolean isNodeOpen(Object itemId) {
return openItems.contains(itemId);
}
+ @Override
public int size() {
return getPreOrder().size();
}
+ @Override
public Collection<Object> getItemIds() {
return Collections.unmodifiableCollection(getPreOrder());
}
+ @Override
public boolean isLastId(Object itemId) {
if (itemId == null) {
return false;
@@ -185,6 +201,7 @@ public class TreeTable extends Table implements Hierarchical {
return itemId.equals(lastItemId());
}
+ @Override
public Object lastItemId() {
if (getPreOrder().size() > 0) {
return getPreOrder().get(getPreOrder().size() - 1);
@@ -193,6 +210,7 @@ public class TreeTable extends Table implements Hierarchical {
}
}
+ @Override
public Object nextItemId(Object itemId) {
int indexOf = getPreOrder().indexOf(itemId);
if (indexOf == -1) {
@@ -206,6 +224,7 @@ public class TreeTable extends Table implements Hierarchical {
}
}
+ @Override
public Object prevItemId(Object itemId) {
int indexOf = getPreOrder().indexOf(itemId);
indexOf--;
@@ -216,6 +235,7 @@ public class TreeTable extends Table implements Hierarchical {
}
}
+ @Override
public void toggleChildVisibility(Object itemId) {
boolean removed = openItems.remove(itemId);
if (!removed) {
@@ -265,10 +285,12 @@ public class TreeTable extends Table implements Hierarchical {
}
+ @Override
public int indexOfId(Object id) {
return getPreOrder().indexOf(id);
}
+ @Override
public Object getIdByIndex(int index) {
return getPreOrder().get(index);
}
@@ -610,36 +632,44 @@ public class TreeTable extends Table implements Hierarchical {
return getContainerStrategy().getItemIds();
}
+ @Override
public boolean areChildrenAllowed(Object itemId) {
return getContainerDataSource().areChildrenAllowed(itemId);
}
+ @Override
public Collection<?> getChildren(Object itemId) {
return getContainerDataSource().getChildren(itemId);
}
+ @Override
public Object getParent(Object itemId) {
return getContainerDataSource().getParent(itemId);
}
+ @Override
public boolean hasChildren(Object itemId) {
return getContainerDataSource().hasChildren(itemId);
}
+ @Override
public boolean isRoot(Object itemId) {
return getContainerDataSource().isRoot(itemId);
}
+ @Override
public Collection<?> rootItemIds() {
return getContainerDataSource().rootItemIds();
}
+ @Override
public boolean setChildrenAllowed(Object itemId, boolean areChildrenAllowed)
throws UnsupportedOperationException {
return getContainerDataSource().setChildrenAllowed(itemId,
areChildrenAllowed);
}
+ @Override
public boolean setParent(Object itemId, Object newParentId)
throws UnsupportedOperationException {
return getContainerDataSource().setParent(itemId, newParentId);
diff --git a/src/com/vaadin/ui/Upload.java b/src/com/vaadin/ui/Upload.java
index 4dff71e45b..9d533b67f6 100644
--- a/src/com/vaadin/ui/Upload.java
+++ b/src/com/vaadin/ui/Upload.java
@@ -122,6 +122,7 @@ public class Upload extends AbstractComponent implements Component.Focusable,
* @see com.vaadin.ui.AbstractComponent#changeVariables(java.lang.Object,
* java.util.Map)
*/
+ @Override
public void changeVariables(Object source, Map<String, Object> variables) {
if (variables.containsKey("pollForStart")) {
int id = (Integer) variables.get("pollForStart");
@@ -141,6 +142,7 @@ public class Upload extends AbstractComponent implements Component.Focusable,
* @throws PaintException
* if the paint operation failed.
*/
+ @Override
public void paintContent(PaintTarget target) throws PaintException {
if (notStarted) {
target.addAttribute("notStarted", true);
@@ -782,6 +784,7 @@ public class Upload extends AbstractComponent implements Component.Focusable,
*
* @see com.vaadin.ui.Component.Focusable#getTabIndex()
*/
+ @Override
public int getTabIndex() {
return tabIndex;
}
@@ -791,6 +794,7 @@ public class Upload extends AbstractComponent implements Component.Focusable,
*
* @see com.vaadin.ui.Component.Focusable#setTabIndex(int)
*/
+ @Override
public void setTabIndex(int tabIndex) {
this.tabIndex = tabIndex;
}
@@ -974,20 +978,24 @@ public class Upload extends AbstractComponent implements Component.Focusable,
streamVariable = new com.vaadin.terminal.StreamVariable() {
private StreamingStartEvent lastStartedEvent;
+ @Override
public boolean listenProgress() {
return (progressListeners != null && !progressListeners
.isEmpty());
}
+ @Override
public void onProgress(StreamingProgressEvent event) {
fireUpdateProgress(event.getBytesReceived(),
event.getContentLength());
}
+ @Override
public boolean isInterrupted() {
return interrupted;
}
+ @Override
public OutputStream getOutputStream() {
OutputStream receiveUpload = receiver.receiveUpload(
lastStartedEvent.getFileName(),
@@ -996,6 +1004,7 @@ public class Upload extends AbstractComponent implements Component.Focusable,
return receiveUpload;
}
+ @Override
public void streamingStarted(StreamingStartEvent event) {
startUpload();
contentLength = event.getContentLength();
@@ -1003,6 +1012,7 @@ public class Upload extends AbstractComponent implements Component.Focusable,
lastStartedEvent = event;
}
+ @Override
public void streamingFinished(StreamingEndEvent event) {
fireUploadSuccess(event.getFileName(), event.getMimeType(),
event.getContentLength());
@@ -1010,6 +1020,7 @@ public class Upload extends AbstractComponent implements Component.Focusable,
requestRepaint();
}
+ @Override
public void streamingFailed(StreamingErrorEvent event) {
Exception exception = event.getException();
if (exception instanceof NoInputStreamException) {
diff --git a/src/com/vaadin/ui/Video.java b/src/com/vaadin/ui/Video.java
index 0a2eccca0f..d4f95a5be3 100644
--- a/src/com/vaadin/ui/Video.java
+++ b/src/com/vaadin/ui/Video.java
@@ -4,8 +4,8 @@
package com.vaadin.ui;
+import com.vaadin.shared.ui.video.VideoState;
import com.vaadin.terminal.Resource;
-import com.vaadin.terminal.gwt.client.ui.video.VideoState;
import com.vaadin.terminal.gwt.server.ResourceReference;
/**
@@ -67,7 +67,7 @@ public class Video extends AbstractMedia {
* @param poster
*/
public void setPoster(Resource poster) {
- getState().setPoster(new ResourceReference(poster));
+ getState().setPoster(ResourceReference.create(poster));
requestRepaint();
}
@@ -75,7 +75,7 @@ public class Video extends AbstractMedia {
* @return The poster image.
*/
public Resource getPoster() {
- return ((ResourceReference) getState().getPoster()).getResource();
+ return ResourceReference.getResource(getState().getPoster());
}
}
diff --git a/src/com/vaadin/ui/Window.java b/src/com/vaadin/ui/Window.java
index 8866362587..e413d35e6d 100644
--- a/src/com/vaadin/ui/Window.java
+++ b/src/com/vaadin/ui/Window.java
@@ -19,13 +19,13 @@ import com.vaadin.event.ShortcutAction;
import com.vaadin.event.ShortcutAction.KeyCode;
import com.vaadin.event.ShortcutAction.ModifierKey;
import com.vaadin.event.ShortcutListener;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.window.WindowServerRpc;
+import com.vaadin.shared.ui.window.WindowState;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Vaadin6Component;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.ui.root.VRoot;
-import com.vaadin.terminal.gwt.client.ui.window.WindowServerRpc;
-import com.vaadin.terminal.gwt.client.ui.window.WindowState;
/**
* A component that represents a floating popup window that can be added to a
@@ -44,6 +44,10 @@ import com.vaadin.terminal.gwt.client.ui.window.WindowState;
* <p>
* The caption is displayed in the window header.
* </p>
+ * <p>
+ * In Vaadin versions prior to 7.0.0, Window was also used as application level
+ * windows. This function is now covered by the {@link Root} class.
+ * </p>
*
* @author Vaadin Ltd.
* @version
@@ -56,6 +60,7 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier,
private WindowServerRpc rpc = new WindowServerRpc() {
+ @Override
public void click(MouseEventDetails mouseDetails) {
fireEvent(new ClickEvent(Window.this, mouseDetails));
}
@@ -793,11 +798,13 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier,
* @see com.vaadin.event.FieldEvents.FocusNotifier#addListener(com.vaadin.event.FieldEvents.FocusListener)
*/
+ @Override
public void addListener(FocusListener listener) {
addListener(FocusEvent.EVENT_ID, FocusEvent.class, listener,
FocusListener.focusMethod);
}
+ @Override
public void removeListener(FocusListener listener) {
removeListener(FocusEvent.EVENT_ID, FocusEvent.class, listener);
}
@@ -810,11 +817,13 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier,
* @see com.vaadin.event.FieldEvents.BlurNotifier#addListener(com.vaadin.event.FieldEvents.BlurListener)
*/
+ @Override
public void addListener(BlurListener listener) {
addListener(BlurEvent.EVENT_ID, BlurEvent.class, listener,
BlurListener.blurMethod);
}
+ @Override
public void removeListener(BlurListener listener) {
removeListener(BlurEvent.EVENT_ID, BlurEvent.class, listener);
}
diff --git a/tests/client-side/com/vaadin/terminal/gwt/client/TestVBrowserDetailsUserAgentParser.java b/tests/client-side/com/vaadin/terminal/gwt/client/TestVBrowserDetailsUserAgentParser.java
index fedce98ecf..34b64606a5 100644
--- a/tests/client-side/com/vaadin/terminal/gwt/client/TestVBrowserDetailsUserAgentParser.java
+++ b/tests/client-side/com/vaadin/terminal/gwt/client/TestVBrowserDetailsUserAgentParser.java
@@ -1,5 +1,7 @@
package com.vaadin.terminal.gwt.client;
+import com.vaadin.shared.VBrowserDetails;
+
import junit.framework.TestCase;
public class TestVBrowserDetailsUserAgentParser extends TestCase {
diff --git a/tests/client-side/com/vaadin/terminal/gwt/server/JSONSerializerTest.java b/tests/client-side/com/vaadin/terminal/gwt/server/JSONSerializerTest.java
index fefc2d927c..6e39f17599 100644
--- a/tests/client-side/com/vaadin/terminal/gwt/server/JSONSerializerTest.java
+++ b/tests/client-side/com/vaadin/terminal/gwt/server/JSONSerializerTest.java
@@ -13,9 +13,9 @@ import java.util.Map;
import junit.framework.TestCase;
+import com.vaadin.shared.ui.splitpanel.AbstractSplitPanelState;
import com.vaadin.terminal.gwt.client.communication.JsonDecoder;
import com.vaadin.terminal.gwt.client.communication.JsonEncoder;
-import com.vaadin.terminal.gwt.client.ui.splitpanel.AbstractSplitPanelState;
/**
* Tests for {@link JsonCodec}, {@link JsonEncoder}, {@link JsonDecoder}
diff --git a/tests/integration-testscripts/GateIn-3/integration-test-GateIn-3.1.0-portlet2.html b/tests/integration-testscripts/GateIn-3/integration-test-GateIn-3.1.0-portlet2.html
index 85258d7036..4bc3e6a2cf 100644
--- a/tests/integration-testscripts/GateIn-3/integration-test-GateIn-3.1.0-portlet2.html
+++ b/tests/integration-testscripts/GateIn-3/integration-test-GateIn-3.1.0-portlet2.html
@@ -93,7 +93,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>//div[3]/div</td>
+ <td>//div[@onclick=&quot;javascript:ajaxGet('/portal/private/classic/home?portal:componentId=UIApplicationList&amp;portal:action=SelectCategory&amp;objectId=demo&amp;ajaxRequest=true')&quot;]</td>
<td>51,11</td>
</tr>
<tr>
@@ -156,7 +156,6 @@
<td></td>
<td>done</td>
</tr>
-
</tbody></table>
</body>
</html>
diff --git a/tests/integration-testscripts/Liferay-5/integration-test-liferay-5.2.3-portlet2.html b/tests/integration-testscripts/Liferay-5/integration-test-liferay-5.2.3-portlet2.html
index 3cb45d252a..55c9d18eb8 100644
--- a/tests/integration-testscripts/Liferay-5/integration-test-liferay-5.2.3-portlet2.html
+++ b/tests/integration-testscripts/Liferay-5/integration-test-liferay-5.2.3-portlet2.html
@@ -123,7 +123,7 @@
</tr>
<tr>
<td>mouseClickAndWait</td>
- <td>vaadin=v-JSR286TestPortlet_WAR_demo_LAYOUT_10706::/VVerticalLayout[0]/ChildComponentContainer[6]/VLink[0]/domChild[0]/domChild[0]</td>
+ <td>vaadin=v-JSR286TestPortlet_WAR_demo_LAYOUT_10706::/VVerticalLayout[0]/ChildComponentContainer[7]/VLink[0]/domChild[0]/domChild[0]</td>
<td>28,7</td>
</tr>
<tr>
@@ -166,7 +166,6 @@
<td>Maximize</td>
<td></td>
</tr>
-
</tbody></table>
</body>
</html>
diff --git a/tests/integration-testscripts/Liferay-6/Liferay6-theme.html b/tests/integration-testscripts/Liferay-6/Liferay6-theme.html
index 34919fe543..c61adb0dd7 100644
--- a/tests/integration-testscripts/Liferay-6/Liferay6-theme.html
+++ b/tests/integration-testscripts/Liferay-6/Liferay6-theme.html
@@ -313,7 +313,7 @@
</tr>
<tr>
<td>click</td>
- <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[9]/AbsolutePanel[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[0]/domChild[0]/domChild[0]</td>
<td></td>
</tr>
<tr>
@@ -323,12 +323,12 @@
</tr>
<tr>
<td>closeNotification</td>
- <td>//body/div[2]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::Root/VNotification[0]</td>
<td>0,0</td>
</tr>
<tr>
<td>click</td>
- <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[9]/AbsolutePanel[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[1]/domChild[0]/domChild[0]</td>
<td></td>
</tr>
<tr>
@@ -338,12 +338,12 @@
</tr>
<tr>
<td>closeNotification</td>
- <td>//body/div[2]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::Root/VNotification[0]</td>
<td>0,0</td>
</tr>
<tr>
<td>click</td>
- <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[9]/AbsolutePanel[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[2]/domChild[0]/domChild[0]</td>
<td></td>
</tr>
<tr>
@@ -353,7 +353,7 @@
</tr>
<tr>
<td>closeNotification</td>
- <td>//body/div[2]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::Root/VNotification[0]</td>
<td>0,0</td>
</tr>
<!--
@@ -365,7 +365,7 @@
-->
<tr>
<td>click</td>
- <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[9]/AbsolutePanel[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[3]/domChild[0]/domChild[0]</td>
<td></td>
</tr>
<tr>
@@ -375,7 +375,7 @@
</tr>
<tr>
<td>closeNotification</td>
- <td>//body/div[2]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::Root/VNotification[0]</td>
<td>0,0</td>
</tr>
<tr>
diff --git a/tests/integration-testscripts/Liferay-6EE/Liferay6EE-theme.html b/tests/integration-testscripts/Liferay-6EE/Liferay6EE-theme.html
index ddd01d4e3f..f4772ef7ad 100644
--- a/tests/integration-testscripts/Liferay-6EE/Liferay6EE-theme.html
+++ b/tests/integration-testscripts/Liferay-6EE/Liferay6EE-theme.html
@@ -314,7 +314,7 @@
</tr>
<tr>
<td>click</td>
- <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[9]/AbsolutePanel[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[0]/domChild[0]/domChild[0]</td>
<td></td>
</tr>
<tr>
@@ -324,12 +324,12 @@
</tr>
<tr>
<td>closeNotification</td>
- <td>//body/div[2]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::Root/VNotification[0]</td>
<td>0,0</td>
</tr>
<tr>
<td>click</td>
- <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[9]/AbsolutePanel[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[1]/domChild[0]/domChild[0]</td>
<td></td>
</tr>
<tr>
@@ -339,12 +339,12 @@
</tr>
<tr>
<td>closeNotification</td>
- <td>//body/div[2]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::Root/VNotification[0]</td>
<td>0,0</td>
</tr>
<tr>
<td>click</td>
- <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[9]/AbsolutePanel[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[2]/domChild[0]/domChild[0]</td>
<td></td>
</tr>
<tr>
@@ -354,7 +354,7 @@
</tr>
<tr>
<td>closeNotification</td>
- <td>//body/div[2]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::Root/VNotification[0]</td>
<td>0,0</td>
</tr>
<!--
@@ -366,7 +366,7 @@
-->
<tr>
<td>click</td>
- <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[9]/AbsolutePanel[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[3]/domChild[0]/domChild[0]</td>
<td></td>
</tr>
<tr>
@@ -376,7 +376,7 @@
</tr>
<tr>
<td>closeNotification</td>
- <td>//body/div[2]</td>
+ <td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_10413::Root/VNotification[0]</td>
<td>0,0</td>
</tr>
<tr>
diff --git a/tests/integration-testscripts/eXo-3/integration-test-eXo-3.0.3-portlet2.html b/tests/integration-testscripts/eXo-3/integration-test-eXo-3.0.3-portlet2.html
index 958c109e06..af85dfd161 100644
--- a/tests/integration-testscripts/eXo-3/integration-test-eXo-3.0.3-portlet2.html
+++ b/tests/integration-testscripts/eXo-3/integration-test-eXo-3.0.3-portlet2.html
@@ -13,15 +13,10 @@
</thead><tbody>
<tr>
<td>open</td>
- <td>/portal/public/default/</td>
+ <td>/portal/public/intranet/</td>
<td></td>
</tr>
<tr>
- <td>mouseClick</td>
- <td>link=Visit the Acme Social Intranet</td>
- <td>121,7</td>
-</tr>
-<tr>
<td>setTimeout</td>
<td>60000</td>
<td></td>
@@ -47,13 +42,18 @@
<td></td>
</tr>
<tr>
- <td>mouseClickAndWait</td>
- <td>link=Applications Registry</td>
+ <td>open</td>
+ <td>/portal/private/intranet/administration/registry</td>
<td>138,17</td>
</tr>
<tr>
+ <td>waitForElementPresent</td>
+ <td>//div[@id='UIApplicationOrganizer']/div[1]/div[2]</td>
+ <td></td>
+</tr>
+<tr>
<td>expectDialog</td>
- <td>//div[@onclick=&quot;javascript:if(confirm('This action will automatically create categories and import all the gadgets and portlets on it.'))ajaxGet('/portal/private/intranet/administration/registry?portal:componentId=09e0ea8b-7d6e-410d-9ed0-871e3e7bc17f&amp;portal:type=action&amp;uicomponent=UIApplicationOrganizer&amp;op=ImportAllApplications&amp;ajaxRequest=true')&quot;]</td>
+ <td>//div[@id='UIApplicationOrganizer']/div[1]/div[2]</td>
<td>36,15</td>
</tr>
<tr>
@@ -153,7 +153,7 @@
</tr>
<tr>
<td>mouseClickAndWait</td>
- <td>//div[@id='UIPage']/div/div/div[2]/div/div/div/div/div/div/div[2]/div/div[5]/div/div/a</td>
+ <td>//div[@id='UIPage']/div/div/div[2]/div/div/div/div/div/div/div[2]/div[5]/div/a</td>
<td>10,10</td>
</tr>
<tr>
@@ -173,7 +173,7 @@
</tr>
<tr>
<td>mouseClickAndWait</td>
- <td>//div[@id='UIPage']/div/div/div[2]/div/div/div/div/div/div/div[2]/div/div[5]/div/div/a</td>
+ <td>//div[@id='UIPage']/div/div/div[2]/div/div/div/div/div/div/div[2]/div[5]/div/a</td>
<td>15,8</td>
</tr>
<tr>
@@ -191,7 +191,6 @@
<td></td>
<td>done</td>
</tr>
-
</tbody></table>
</body>
</html>
diff --git a/tests/integration_tests.xml b/tests/integration_tests.xml
index 7f72758a37..e8e978c1ea 100644
--- a/tests/integration_tests.xml
+++ b/tests/integration_tests.xml
@@ -221,7 +221,7 @@
<pathconvert pathsep=" " property="testfiles" refid="html-test-files" />
<antcall target="run-generic-integration-test">
<param name="startDelay" value="600" />
- <param name="test_browsers" value="winxp-firefox36" />
+ <param name="test_browsers" value="winxp-googlechrome19" />
<param name="target-server" value="gatein3" />
</antcall>
</target>
@@ -231,7 +231,7 @@
<pathconvert pathsep=" " property="testfiles" refid="html-test-files" />
<antcall target="run-generic-integration-test">
<param name="startDelay" value="600" />
- <param name="test_browsers" value="winxp-firefox36" />
+ <param name="test_browsers" value="winxp-googlechrome19" />
<param name="target-server" value="exo3" />
</antcall>
</target>
diff --git a/tests/server-side/com/vaadin/data/util/AbstractContainerTest.java b/tests/server-side/com/vaadin/data/util/AbstractContainerTest.java
index 6cbe675fa1..d703fb0364 100644
--- a/tests/server-side/com/vaadin/data/util/AbstractContainerTest.java
+++ b/tests/server-side/com/vaadin/data/util/AbstractContainerTest.java
@@ -62,6 +62,7 @@ public abstract class AbstractContainerTest extends TestCase {
protected static class ItemSetChangeCounter extends AbstractEventCounter
implements ItemSetChangeListener {
+ @Override
public void containerItemSetChange(ItemSetChangeEvent event) {
increment();
}
diff --git a/tests/server-side/com/vaadin/data/util/BeanContainerTest.java b/tests/server-side/com/vaadin/data/util/BeanContainerTest.java
index d9fa8d896e..9037e303a8 100644
--- a/tests/server-side/com/vaadin/data/util/BeanContainerTest.java
+++ b/tests/server-side/com/vaadin/data/util/BeanContainerTest.java
@@ -18,6 +18,7 @@ public class BeanContainerTest extends AbstractBeanContainerTest {
protected static class PersonNameResolver implements
BeanIdResolver<String, Person> {
+ @Override
public String getIdForBean(Person bean) {
return bean != null ? bean.getName() : null;
}
@@ -27,6 +28,7 @@ public class BeanContainerTest extends AbstractBeanContainerTest {
protected static class NullResolver implements
BeanIdResolver<String, Person> {
+ @Override
public String getIdForBean(Person bean) {
return null;
}
@@ -332,6 +334,7 @@ public class BeanContainerTest extends AbstractBeanContainerTest {
container
.setBeanIdResolver(new BeanIdResolver<String, AbstractBeanContainerTest.Person>() {
+ @Override
public String getIdForBean(Person bean) {
return bean.getName();
}
diff --git a/tests/server-side/com/vaadin/data/util/BeanItemTest.java b/tests/server-side/com/vaadin/data/util/BeanItemTest.java
index 51e11260f5..e1ad75796c 100644
--- a/tests/server-side/com/vaadin/data/util/BeanItemTest.java
+++ b/tests/server-side/com/vaadin/data/util/BeanItemTest.java
@@ -127,6 +127,7 @@ public class BeanItemTest extends TestCase {
public void setSub(int i);
+ @Override
public int getOverride();
public void setOverride(int i);
diff --git a/tests/server-side/com/vaadin/data/util/TestContainerSorting.java b/tests/server-side/com/vaadin/data/util/TestContainerSorting.java
index 9e69b94fbb..497699605a 100644
--- a/tests/server-side/com/vaadin/data/util/TestContainerSorting.java
+++ b/tests/server-side/com/vaadin/data/util/TestContainerSorting.java
@@ -205,6 +205,7 @@ public class TestContainerSorting extends TestCase {
public class MyObject implements Comparable<MyObject> {
private String data;
+ @Override
public int compareTo(MyObject o) {
if (o == null) {
return 1;
diff --git a/tests/server-side/com/vaadin/data/util/TestHierarchicalContainer.java b/tests/server-side/com/vaadin/data/util/TestHierarchicalContainer.java
index 60894dbe6f..9e0558a122 100644
--- a/tests/server-side/com/vaadin/data/util/TestHierarchicalContainer.java
+++ b/tests/server-side/com/vaadin/data/util/TestHierarchicalContainer.java
@@ -176,11 +176,13 @@ public class TestHierarchicalContainer extends
// Dummy filter that does not remove any items
c.addContainerFilter(new Filter() {
+ @Override
public boolean passesFilter(Object itemId, Item item)
throws UnsupportedOperationException {
return true;
}
+ @Override
public boolean appliesToProperty(Object propertyId) {
return true;
}
diff --git a/tests/server-side/com/vaadin/data/util/filter/AbstractFilterTest.java b/tests/server-side/com/vaadin/data/util/filter/AbstractFilterTest.java
index efc31f0bd4..6f96c3a51a 100644
--- a/tests/server-side/com/vaadin/data/util/filter/AbstractFilterTest.java
+++ b/tests/server-side/com/vaadin/data/util/filter/AbstractFilterTest.java
@@ -24,22 +24,27 @@ public abstract class AbstractFilterTest<FILTERTYPE extends Filter> extends
protected static class NullProperty implements Property<String> {
+ @Override
public String getValue() {
return null;
}
+ @Override
public void setValue(Object newValue) throws ReadOnlyException {
throw new ReadOnlyException();
}
+ @Override
public Class<String> getType() {
return String.class;
}
+ @Override
public boolean isReadOnly() {
return true;
}
+ @Override
public void setReadOnly(boolean newStatus) {
// do nothing
}
@@ -60,11 +65,13 @@ public abstract class AbstractFilterTest<FILTERTYPE extends Filter> extends
this.propertyId = propertyId;
}
+ @Override
public boolean passesFilter(Object itemId, Item item)
throws UnsupportedOperationException {
return this.item == item;
}
+ @Override
public boolean appliesToProperty(Object propertyId) {
return this.propertyId != null ? this.propertyId.equals(propertyId)
: true;
diff --git a/tests/server-side/com/vaadin/data/util/sqlcontainer/SQLContainerTest.java b/tests/server-side/com/vaadin/data/util/sqlcontainer/SQLContainerTest.java
index c273bbf590..6649bc16e8 100644
--- a/tests/server-side/com/vaadin/data/util/sqlcontainer/SQLContainerTest.java
+++ b/tests/server-side/com/vaadin/data/util/sqlcontainer/SQLContainerTest.java
@@ -323,6 +323,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryString(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<String>() {
+ @Override
public String answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -1132,6 +1133,7 @@ public class SQLContainerTest {
delegate.storeRow(EasyMock.isA(Connection.class),
EasyMock.isA(RowItem.class)))
.andAnswer(new IAnswer<Integer>() {
+ @Override
public Integer answer() throws Throwable {
Connection conn = (Connection) EasyMock
.getCurrentArguments()[0];
@@ -1163,6 +1165,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryString(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<String>() {
+ @Override
public String answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -1231,6 +1234,7 @@ public class SQLContainerTest {
delegate.storeRow(EasyMock.isA(Connection.class),
EasyMock.isA(RowItem.class)))
.andAnswer(new IAnswer<Integer>() {
+ @Override
public Integer answer() throws Throwable {
Connection conn = (Connection) EasyMock
.getCurrentArguments()[0];
@@ -1262,6 +1266,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryString(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<String>() {
+ @Override
public String answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -1337,6 +1342,7 @@ public class SQLContainerTest {
delegate.removeRow(EasyMock.isA(Connection.class),
EasyMock.isA(RowItem.class)))
.andAnswer(new IAnswer<Boolean>() {
+ @Override
public Boolean answer() throws Throwable {
Connection conn = (Connection) EasyMock
.getCurrentArguments()[0];
@@ -1352,6 +1358,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryString(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<String>() {
+ @Override
public String answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -1414,6 +1421,7 @@ public class SQLContainerTest {
delegate.storeRow(EasyMock.isA(Connection.class),
EasyMock.isA(RowItem.class)))
.andAnswer(new IAnswer<Integer>() {
+ @Override
public Integer answer() throws Throwable {
Connection conn = (Connection) EasyMock
.getCurrentArguments()[0];
@@ -1432,6 +1440,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryString(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<String>() {
+ @Override
public String answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -1644,6 +1653,7 @@ public class SQLContainerTest {
EasyMock.expectLastCall().anyTimes();
delegate.setOrderBy(EasyMock.isA(List.class));
EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
+ @Override
public Object answer() throws Throwable {
List<OrderBy> orders = (List<OrderBy>) EasyMock
.getCurrentArguments()[0];
@@ -1655,6 +1665,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryString(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<String>() {
+ @Override
public String answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -1756,6 +1767,7 @@ public class SQLContainerTest {
EasyMock.expectLastCall().anyTimes();
delegate.setOrderBy(EasyMock.isA(List.class));
EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
+ @Override
public Object answer() throws Throwable {
List<OrderBy> orders = (List<OrderBy>) EasyMock
.getCurrentArguments()[0];
@@ -1767,6 +1779,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryString(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<String>() {
+ @Override
public String answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -1861,6 +1874,7 @@ public class SQLContainerTest {
EasyMock.expectLastCall().anyTimes();
delegate.setFilters(EasyMock.isA(List.class));
EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
+ @Override
public Object answer() throws Throwable {
List<Filter> orders = (List<Filter>) EasyMock
.getCurrentArguments()[0];
@@ -1872,6 +1886,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryStatement(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
public StatementHelper answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -1882,6 +1897,7 @@ public class SQLContainerTest {
}).anyTimes();
EasyMock.expect(delegate.getCountStatement())
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
@SuppressWarnings("deprecation")
public StatementHelper answer() throws Throwable {
StatementHelper sh = new StatementHelper();
@@ -1931,6 +1947,7 @@ public class SQLContainerTest {
EasyMock.expectLastCall().anyTimes();
delegate.setFilters(EasyMock.isA(List.class));
EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
+ @Override
public Object answer() throws Throwable {
List<Filter> orders = (List<Filter>) EasyMock
.getCurrentArguments()[0];
@@ -1942,6 +1959,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryStatement(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
public StatementHelper answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -1952,6 +1970,7 @@ public class SQLContainerTest {
}).anyTimes();
EasyMock.expect(delegate.getCountStatement())
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
@SuppressWarnings("deprecation")
public StatementHelper answer() throws Throwable {
StatementHelper sh = new StatementHelper();
@@ -2000,6 +2019,7 @@ public class SQLContainerTest {
EasyMock.expectLastCall().anyTimes();
delegate.setFilters(EasyMock.isA(List.class));
EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
+ @Override
public Object answer() throws Throwable {
List<Filter> orders = (List<Filter>) EasyMock
.getCurrentArguments()[0];
@@ -2011,6 +2031,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryStatement(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
public StatementHelper answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -2021,6 +2042,7 @@ public class SQLContainerTest {
}).anyTimes();
EasyMock.expect(delegate.getCountStatement())
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
public StatementHelper answer() throws Throwable {
StatementHelper sh = new StatementHelper();
StringBuffer query = new StringBuffer(
@@ -2069,6 +2091,7 @@ public class SQLContainerTest {
EasyMock.expectLastCall().anyTimes();
delegate.setFilters(EasyMock.isA(List.class));
EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
+ @Override
public Object answer() throws Throwable {
List<Filter> orders = (List<Filter>) EasyMock
.getCurrentArguments()[0];
@@ -2080,6 +2103,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryStatement(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
public StatementHelper answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -2090,6 +2114,7 @@ public class SQLContainerTest {
}).anyTimes();
EasyMock.expect(delegate.getCountStatement())
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
@SuppressWarnings("deprecation")
public StatementHelper answer() throws Throwable {
StatementHelper sh = new StatementHelper();
@@ -2145,6 +2170,7 @@ public class SQLContainerTest {
EasyMock.expectLastCall().anyTimes();
delegate.setFilters(EasyMock.isA(List.class));
EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
+ @Override
public Object answer() throws Throwable {
List<Filter> orders = (List<Filter>) EasyMock
.getCurrentArguments()[0];
@@ -2156,6 +2182,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryStatement(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
public StatementHelper answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -2166,6 +2193,7 @@ public class SQLContainerTest {
}).anyTimes();
EasyMock.expect(delegate.getCountStatement())
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
@SuppressWarnings("deprecation")
public StatementHelper answer() throws Throwable {
StatementHelper sh = new StatementHelper();
@@ -2221,6 +2249,7 @@ public class SQLContainerTest {
EasyMock.expectLastCall().anyTimes();
delegate.setFilters(EasyMock.isA(List.class));
EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
+ @Override
public Object answer() throws Throwable {
List<Filter> orders = (List<Filter>) EasyMock
.getCurrentArguments()[0];
@@ -2232,6 +2261,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryStatement(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
public StatementHelper answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -2242,6 +2272,7 @@ public class SQLContainerTest {
}).anyTimes();
EasyMock.expect(delegate.getCountStatement())
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
@SuppressWarnings("deprecation")
public StatementHelper answer() throws Throwable {
StatementHelper sh = new StatementHelper();
@@ -2323,6 +2354,7 @@ public class SQLContainerTest {
EasyMock.expectLastCall().anyTimes();
delegate.setOrderBy(EasyMock.isA(List.class));
EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
+ @Override
public Object answer() throws Throwable {
List<OrderBy> orders = (List<OrderBy>) EasyMock
.getCurrentArguments()[0];
@@ -2334,6 +2366,7 @@ public class SQLContainerTest {
EasyMock.expect(
delegate.getQueryString(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<String>() {
+ @Override
public String answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
diff --git a/tests/server-side/com/vaadin/data/util/sqlcontainer/TicketTests.java b/tests/server-side/com/vaadin/data/util/sqlcontainer/TicketTests.java
index 75ab455678..a12786f13a 100644
--- a/tests/server-side/com/vaadin/data/util/sqlcontainer/TicketTests.java
+++ b/tests/server-side/com/vaadin/data/util/sqlcontainer/TicketTests.java
@@ -64,6 +64,7 @@ public class TicketTests {
EasyMock.expectLastCall().anyTimes();
delegate.setFilters(EasyMock.isA(List.class));
EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
+ @Override
public Object answer() throws Throwable {
List<Filter> orders = (List<Filter>) EasyMock
.getCurrentArguments()[0];
@@ -75,6 +76,7 @@ public class TicketTests {
EasyMock.expect(
delegate.getQueryStatement(EasyMock.anyInt(), EasyMock.anyInt()))
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
public StatementHelper answer() throws Throwable {
Object[] args = EasyMock.getCurrentArguments();
int offset = (Integer) (args[0]);
@@ -85,6 +87,7 @@ public class TicketTests {
}).anyTimes();
EasyMock.expect(delegate.getCountStatement())
.andAnswer(new IAnswer<StatementHelper>() {
+ @Override
@SuppressWarnings("deprecation")
public StatementHelper answer() throws Throwable {
StatementHelper sh = new StatementHelper();
diff --git a/tests/server-side/com/vaadin/data/util/sqlcontainer/connection/MockInitialContextFactory.java b/tests/server-side/com/vaadin/data/util/sqlcontainer/connection/MockInitialContextFactory.java
index 3ee260245a..324899e373 100644
--- a/tests/server-side/com/vaadin/data/util/sqlcontainer/connection/MockInitialContextFactory.java
+++ b/tests/server-side/com/vaadin/data/util/sqlcontainer/connection/MockInitialContextFactory.java
@@ -22,6 +22,7 @@ public class MockInitialContextFactory implements InitialContextFactory {
mockCtx = ctx;
}
+ @Override
public Context getInitialContext(java.util.Hashtable<?, ?> environment)
throws NamingException {
if (mockCtx == null) {
diff --git a/tests/server-side/com/vaadin/terminal/gwt/server/TestAbstractApplicationServletStaticFilesLocation.java b/tests/server-side/com/vaadin/terminal/gwt/server/TestAbstractApplicationServletStaticFilesLocation.java
index 7e45ea50d7..38fca09157 100644
--- a/tests/server-side/com/vaadin/terminal/gwt/server/TestAbstractApplicationServletStaticFilesLocation.java
+++ b/tests/server-side/com/vaadin/terminal/gwt/server/TestAbstractApplicationServletStaticFilesLocation.java
@@ -46,29 +46,35 @@ public class TestAbstractApplicationServletStaticFilesLocation extends TestCase
public class DummyServletConfig implements ServletConfig {
// public DummyServletConfig(Map<String,String> initParameters, )
+ @Override
public String getInitParameter(String name) {
// TODO Auto-generated method stub
return null;
}
+ @Override
public Enumeration<Object> getInitParameterNames() {
return new Enumeration<Object>() {
+ @Override
public boolean hasMoreElements() {
return false;
}
+ @Override
public Object nextElement() {
return null;
}
};
}
+ @Override
public ServletContext getServletContext() {
// TODO Auto-generated method stub
return null;
}
+ @Override
public String getServletName() {
// TODO Auto-generated method stub
return null;
diff --git a/tests/server-side/com/vaadin/tests/VaadinClasses.java b/tests/server-side/com/vaadin/tests/VaadinClasses.java
index 0ee193e8f1..2f937bf58d 100644
--- a/tests/server-side/com/vaadin/tests/VaadinClasses.java
+++ b/tests/server-side/com/vaadin/tests/VaadinClasses.java
@@ -164,6 +164,7 @@ public class VaadinClasses {
Collections.sort(classes, new Comparator<Class<? extends T>>() {
+ @Override
public int compare(Class<? extends T> o1, Class<? extends T> o2) {
return o1.getName().compareTo(o2.getName());
}
diff --git a/tests/server-side/com/vaadin/tests/data/converter/ConverterFactory.java b/tests/server-side/com/vaadin/tests/data/converter/ConverterFactory.java
index 4bd9cf0cf7..19a470d816 100644
--- a/tests/server-side/com/vaadin/tests/data/converter/ConverterFactory.java
+++ b/tests/server-side/com/vaadin/tests/data/converter/ConverterFactory.java
@@ -16,20 +16,24 @@ public class ConverterFactory extends TestCase {
public static class ConvertTo42 implements Converter<String, Integer> {
+ @Override
public Integer convertToModel(String value, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
return 42;
}
+ @Override
public String convertToPresentation(Integer value, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
return "42";
}
+ @Override
public Class<Integer> getModelType() {
return Integer.class;
}
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
diff --git a/tests/server-side/com/vaadin/tests/server/SourceFileChecker.java b/tests/server-side/com/vaadin/tests/server/SourceFileChecker.java
index 9906990165..f02e5d2932 100644
--- a/tests/server-side/com/vaadin/tests/server/SourceFileChecker.java
+++ b/tests/server-side/com/vaadin/tests/server/SourceFileChecker.java
@@ -148,6 +148,7 @@ public class SourceFileChecker extends TestCase {
}
abstract class FileContentsValidator implements FileValidator {
+ @Override
public void validateFile(File f) throws Exception {
FileInputStream fis = new FileInputStream(f);
String contents = IOUtils.toString(fis);
diff --git a/tests/server-side/com/vaadin/tests/server/TestEventRouter.java b/tests/server-side/com/vaadin/tests/server/TestEventRouter.java
index dc388a66ac..a8f5039042 100644
--- a/tests/server-side/com/vaadin/tests/server/TestEventRouter.java
+++ b/tests/server-side/com/vaadin/tests/server/TestEventRouter.java
@@ -15,9 +15,11 @@ public class TestEventRouter extends TestCase {
final ValueChangeListener outer = new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
ValueChangeListener inner = new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
innerListenerCalls++;
System.out.println("The inner listener was called");
diff --git a/tests/server-side/com/vaadin/tests/server/TestStreamVariableMapping.java b/tests/server-side/com/vaadin/tests/server/TestStreamVariableMapping.java
new file mode 100644
index 0000000000..ca1bb45330
--- /dev/null
+++ b/tests/server-side/com/vaadin/tests/server/TestStreamVariableMapping.java
@@ -0,0 +1,77 @@
+package com.vaadin.tests.server;
+
+import junit.framework.TestCase;
+
+import org.easymock.EasyMock;
+
+import com.vaadin.Application;
+import com.vaadin.terminal.StreamVariable;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.terminal.gwt.server.CommunicationManager;
+import com.vaadin.ui.Root;
+import com.vaadin.ui.Upload;
+
+public class TestStreamVariableMapping extends TestCase {
+ private static final String variableName = "myName";
+
+ private Upload owner;
+ private StreamVariable streamVariable;
+
+ private CommunicationManager cm;
+
+ @Override
+ protected void setUp() throws Exception {
+ final Application application = new Application();
+ final Root root = new Root() {
+ @Override
+ protected void init(WrappedRequest request) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public Application getApplication() {
+ return application;
+ }
+ };
+ owner = new Upload() {
+ @Override
+ public Root getRoot() {
+ return root;
+ }
+ };
+ streamVariable = EasyMock.createMock(StreamVariable.class);
+ cm = createCommunicationManager();
+
+ super.setUp();
+ }
+
+ public void testAddStreamVariable() {
+ String targetUrl = cm.getStreamVariableTargetUrl(owner, variableName,
+ streamVariable);
+ assertTrue(targetUrl.startsWith("app://APP/UPLOAD/-1/1/myName/"));
+
+ StreamVariable streamVariable2 = cm.getStreamVariable(
+ owner.getConnectorId(), variableName);
+ assertSame(streamVariable, streamVariable2);
+ }
+
+ public void testRemoverVariable() {
+ cm.getStreamVariableTargetUrl(owner, variableName, streamVariable);
+ assertNotNull(cm
+ .getStreamVariable(owner.getConnectorId(), variableName));
+
+ cm.cleanStreamVariable(owner, variableName);
+ assertNull(cm.getStreamVariable(owner.getConnectorId(), variableName));
+ }
+
+ private CommunicationManager createCommunicationManager() {
+ return new CommunicationManager(new Application() {
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+ }
+ });
+ }
+
+}
diff --git a/tests/server-side/com/vaadin/tests/server/TransactionListenersConcurrency.java b/tests/server-side/com/vaadin/tests/server/TransactionListenersConcurrency.java
index 8cc26a5c7f..b567617fdd 100644
--- a/tests/server-side/com/vaadin/tests/server/TransactionListenersConcurrency.java
+++ b/tests/server-side/com/vaadin/tests/server/TransactionListenersConcurrency.java
@@ -46,6 +46,7 @@ public class TransactionListenersConcurrency extends TestCase {
for (int i = 0; i < 5; i++) {
Thread t = new Thread(new Runnable() {
+ @Override
public void run() {
Application app = new Application() {
@@ -98,6 +99,7 @@ public class TransactionListenersConcurrency extends TestCase {
threads.add(t);
t.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
+ @Override
public void uncaughtException(Thread t, Throwable e) {
e = e.getCause();
exceptions.add(e);
@@ -163,6 +165,7 @@ public class TransactionListenersConcurrency extends TestCase {
this.delay = delay;
}
+ @Override
public void transactionStart(Application application,
Object transactionData) {
try {
@@ -173,6 +176,7 @@ public class TransactionListenersConcurrency extends TestCase {
}
+ @Override
public void transactionEnd(Application application,
Object transactionData) {
try {
diff --git a/tests/server-side/com/vaadin/tests/server/component/abstractfield/AbstractFieldValueConversions.java b/tests/server-side/com/vaadin/tests/server/component/abstractfield/AbstractFieldValueConversions.java
index 446228583a..57af748247 100644
--- a/tests/server-side/com/vaadin/tests/server/component/abstractfield/AbstractFieldValueConversions.java
+++ b/tests/server-side/com/vaadin/tests/server/component/abstractfield/AbstractFieldValueConversions.java
@@ -37,18 +37,22 @@ public class AbstractFieldValueConversions extends TestCase {
TextField tf = new TextField();
tf.setConverter(new Converter<String, String>() {
+ @Override
public String convertToModel(String value, Locale locale) {
return value;
}
+ @Override
public String convertToPresentation(String value, Locale locale) {
return value;
}
+ @Override
public Class<String> getModelType() {
return String.class;
}
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
@@ -67,19 +71,23 @@ public class AbstractFieldValueConversions extends TestCase {
TextField tf = new TextField();
tf.setConverter(new Converter<String, Integer>() {
+ @Override
public Integer convertToModel(String value, Locale locale) {
throw new ConversionException("Failed");
}
+ @Override
public String convertToPresentation(Integer value, Locale locale) {
throw new ConversionException("Failed");
}
+ @Override
public Class<Integer> getModelType() {
// TODO Auto-generated method stub
return null;
}
+ @Override
public Class<String> getPresentationType() {
// TODO Auto-generated method stub
return null;
@@ -112,6 +120,7 @@ public class AbstractFieldValueConversions extends TestCase {
CheckBox cb = new CheckBox();
cb.setConverter(new Converter<Boolean, Boolean>() {
+ @Override
public Boolean convertToModel(Boolean value, Locale locale) {
// value from a CheckBox should never be null as long as it is
// not set to null (handled by conversion below).
@@ -119,6 +128,7 @@ public class AbstractFieldValueConversions extends TestCase {
return value;
}
+ @Override
public Boolean convertToPresentation(Boolean value, Locale locale) {
// Datamodel -> field
if (value == null) {
@@ -128,10 +138,12 @@ public class AbstractFieldValueConversions extends TestCase {
return value;
}
+ @Override
public Class<Boolean> getModelType() {
return Boolean.class;
}
+ @Override
public Class<Boolean> getPresentationType() {
return Boolean.class;
}
diff --git a/tests/server-side/com/vaadin/tests/server/component/abstractfield/RemoveListenersOnDetach.java b/tests/server-side/com/vaadin/tests/server/component/abstractfield/RemoveListenersOnDetach.java
index 94385700d8..f66f523770 100644
--- a/tests/server-side/com/vaadin/tests/server/component/abstractfield/RemoveListenersOnDetach.java
+++ b/tests/server-side/com/vaadin/tests/server/component/abstractfield/RemoveListenersOnDetach.java
@@ -60,15 +60,18 @@ public class RemoveListenersOnDetach {
};
Property property = new AbstractProperty() {
+ @Override
public Object getValue() {
return null;
}
+ @Override
public void setValue(Object newValue) throws ReadOnlyException,
ConversionException {
fireValueChange();
}
+ @Override
public Class<?> getType() {
return String.class;
}
diff --git a/tests/server-side/com/vaadin/tests/server/component/button/ButtonClick.java b/tests/server-side/com/vaadin/tests/server/component/button/ButtonClick.java
index 464d131996..4fe499a0a0 100644
--- a/tests/server-side/com/vaadin/tests/server/component/button/ButtonClick.java
+++ b/tests/server-side/com/vaadin/tests/server/component/button/ButtonClick.java
@@ -38,6 +38,7 @@ public class ButtonClick {
private Button getButton() {
Button b = new Button();
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent ev) {
clicked = true;
}
diff --git a/tests/server-side/com/vaadin/tests/server/component/menubar/MenuBarIds.java b/tests/server-side/com/vaadin/tests/server/component/menubar/MenuBarIds.java
index a0dadf8cc6..f304315ebc 100644
--- a/tests/server-side/com/vaadin/tests/server/component/menubar/MenuBarIds.java
+++ b/tests/server-side/com/vaadin/tests/server/component/menubar/MenuBarIds.java
@@ -87,6 +87,7 @@ public class MenuBarIds extends TestCase implements Command {
}
}
+ @Override
public void menuSelected(MenuItem selectedItem) {
assertNull("lastSelectedItem was not cleared before selecting an item",
lastSelectedItem);
diff --git a/tests/server-side/com/vaadin/tests/server/component/table/TableSerialization.java b/tests/server-side/com/vaadin/tests/server/component/table/TableSerialization.java
index 44dcd60fa5..ee6349093c 100644
--- a/tests/server-side/com/vaadin/tests/server/component/table/TableSerialization.java
+++ b/tests/server-side/com/vaadin/tests/server/component/table/TableSerialization.java
@@ -12,8 +12,9 @@ public class TableSerialization extends TestCase {
Table t = new Table();
byte[] ser = SerializationUtils.serialize(t);
Table t2 = (Table) SerializationUtils.deserialize(ser);
-
+
}
+
public void testSerializationWithRowHeaders() {
Table t = new Table();
t.setRowHeaderMode(Table.ROW_HEADER_MODE_EXPLICIT);
diff --git a/tests/server-side/com/vaadin/tests/server/component/textfield/TextFieldWithPropertyFormatter.java b/tests/server-side/com/vaadin/tests/server/component/textfield/TextFieldWithPropertyFormatter.java
index c6af98a873..bd6dd6c7b1 100644
--- a/tests/server-side/com/vaadin/tests/server/component/textfield/TextFieldWithPropertyFormatter.java
+++ b/tests/server-side/com/vaadin/tests/server/component/textfield/TextFieldWithPropertyFormatter.java
@@ -57,6 +57,7 @@ public class TextFieldWithPropertyFormatter extends TestCase {
listener = new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
listenerCalled++;
assertEquals(1, listenerCalled);
diff --git a/tests/server-side/com/vaadin/tests/server/component/tree/TestListeners.java b/tests/server-side/com/vaadin/tests/server/component/tree/TestListeners.java
index 49610ff293..4984cf161b 100644
--- a/tests/server-side/com/vaadin/tests/server/component/tree/TestListeners.java
+++ b/tests/server-side/com/vaadin/tests/server/component/tree/TestListeners.java
@@ -121,12 +121,14 @@ public class TestListeners extends TestCase implements ExpandListener,
assertEquals(0, collapseCalled);
}
+ @Override
public void nodeExpand(ExpandEvent event) {
lastExpanded = event.getItemId();
expandCalled++;
}
+ @Override
public void nodeCollapse(CollapseEvent event) {
lastCollapsed = event.getItemId();
collapseCalled++;
diff --git a/tests/server-side/com/vaadin/tests/server/component/window/AttachDetachWindow.java b/tests/server-side/com/vaadin/tests/server/component/window/AttachDetachWindow.java
index 7423ba8669..e1435ea2ab 100644
--- a/tests/server-side/com/vaadin/tests/server/component/window/AttachDetachWindow.java
+++ b/tests/server-side/com/vaadin/tests/server/component/window/AttachDetachWindow.java
@@ -47,14 +47,17 @@ public class AttachDetachWindow {
windowDetachCalled = true;
}
+ @Override
public boolean attachCalled() {
return windowAttachCalled;
}
+ @Override
public boolean detachCalled() {
return windowDetachCalled;
}
+ @Override
public TestContent getTestContent() {
return testContent;
}
@@ -111,14 +114,17 @@ public class AttachDetachWindow {
// Do nothing
}
+ @Override
public boolean attachCalled() {
return rootAttachCalled;
}
+ @Override
public boolean detachCalled() {
return rootDetachCalled;
}
+ @Override
public TestContent getTestContent() {
return testContent;
}
diff --git a/tests/server-side/com/vaadin/tests/server/components/ComponentAttachDetachListenerTest.java b/tests/server-side/com/vaadin/tests/server/components/ComponentAttachDetachListenerTest.java
index 1e01d9a55f..3ba1c4c7f1 100644
--- a/tests/server-side/com/vaadin/tests/server/components/ComponentAttachDetachListenerTest.java
+++ b/tests/server-side/com/vaadin/tests/server/components/ComponentAttachDetachListenerTest.java
@@ -46,6 +46,7 @@ public class ComponentAttachDetachListenerTest extends TestCase {
private ComponentPosition componentPosition = null;
private class MyAttachListener implements ComponentAttachListener {
+ @Override
public void componentAttachedToContainer(ComponentAttachEvent event) {
attachCounter++;
attachedComponent = event.getAttachedComponent();
@@ -75,6 +76,7 @@ public class ComponentAttachDetachListenerTest extends TestCase {
}
private class MyDetachListener implements ComponentDetachListener {
+ @Override
public void componentDetachedFromContainer(ComponentDetachEvent event) {
detachCounter++;
detachedComponent = event.getDetachedComponent();
diff --git a/tests/server-side/com/vaadin/tests/server/navigator/ClassBasedViewProviderTest.java b/tests/server-side/com/vaadin/tests/server/navigator/ClassBasedViewProviderTest.java
index fc0d1b60a0..58bc2c4d4c 100644
--- a/tests/server-side/com/vaadin/tests/server/navigator/ClassBasedViewProviderTest.java
+++ b/tests/server-side/com/vaadin/tests/server/navigator/ClassBasedViewProviderTest.java
@@ -15,6 +15,7 @@ public class ClassBasedViewProviderTest extends TestCase {
public static class TestView extends Label implements View {
public String parameters = null;
+ @Override
public void navigateTo(String parameters) {
this.parameters = parameters;
}
diff --git a/tests/server-side/com/vaadin/tests/server/navigator/NavigatorTest.java b/tests/server-side/com/vaadin/tests/server/navigator/NavigatorTest.java
index 03f49d4ab6..0507db6700 100644
--- a/tests/server-side/com/vaadin/tests/server/navigator/NavigatorTest.java
+++ b/tests/server-side/com/vaadin/tests/server/navigator/NavigatorTest.java
@@ -13,13 +13,11 @@ import org.easymock.IMocksControl;
import com.vaadin.navigator.FragmentManager;
import com.vaadin.navigator.Navigator;
-import com.vaadin.navigator.Navigator.SimpleViewDisplay;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener;
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.navigator.ViewDisplay;
import com.vaadin.navigator.ViewProvider;
-import com.vaadin.terminal.Page;
import com.vaadin.tests.server.navigator.ClassBasedViewProviderTest.TestView;
import com.vaadin.tests.server.navigator.ClassBasedViewProviderTest.TestView2;
@@ -29,16 +27,19 @@ public class NavigatorTest extends TestCase {
// TODO test listeners blocking navigation, multiple listeners
public static class NullDisplay implements ViewDisplay {
+ @Override
public void showView(View view) {
// do nothing
}
}
public static class NullFragmentManager implements FragmentManager {
+ @Override
public String getFragment() {
return null;
}
+ @Override
public void setFragment(String fragment) {
// do nothing
}
@@ -47,6 +48,7 @@ public class NavigatorTest extends TestCase {
public static class TestDisplay implements ViewDisplay {
private View currentView;
+ @Override
public void showView(View view) {
currentView = view;
}
@@ -120,6 +122,7 @@ public class NavigatorTest extends TestCase {
}
}
+ @Override
public boolean isViewChangeAllowed(ViewChangeEvent event) {
if (referenceEvents.isEmpty()) {
fail("Unexpected call to isViewChangeAllowed()");
@@ -138,6 +141,7 @@ public class NavigatorTest extends TestCase {
return returnValue;
}
+ @Override
public void navigatorViewChanged(ViewChangeEvent event) {
if (referenceEvents.isEmpty()) {
fail("Unexpected call to navigatorViewChanged()");
@@ -364,16 +368,6 @@ public class NavigatorTest extends TestCase {
}
}
- public void testDefaultDisplayType() {
- IMocksControl control = EasyMock.createControl();
- Page page = control.createMock(Page.class);
-
- Navigator navigator = new Navigator(page);
-
- assertEquals("Default display should be a SimpleViewDisplay",
- SimpleViewDisplay.class, navigator.getDisplay().getClass());
- }
-
public void testAddViewInstance() throws Exception {
View view = new TestView();
diff --git a/tests/server-side/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java b/tests/server-side/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java
index 65294b2913..37c9a7ecd5 100644
--- a/tests/server-side/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java
+++ b/tests/server-side/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java
@@ -22,7 +22,7 @@ public class UriFragmentManagerTest extends TestCase {
// prepare mock
EasyMock.expect(page.getFragment()).andReturn("");
- page.setFragment("test");
+ page.setFragment("test", false);
EasyMock.expect(page.getFragment()).andReturn("test");
EasyMock.replay(page);
diff --git a/tests/test.xml b/tests/test.xml
index 222fe0a452..9b879ec789 100644
--- a/tests/test.xml
+++ b/tests/test.xml
@@ -11,7 +11,7 @@
<!-- Configuration -->
<!-- ================================================================== -->
<!-- Browsers to use for testing -->
- <property name="browsers-windows" value="winxp-ie8,win7-ie9,winxp-firefox12,winxp-safari5,winxp-googlechrome19,winxp-opera11" />
+ <property name="browsers-windows" value="winxp-ie8,win7-ie9,winxp-firefox12,winxp-safari5,winxp-googlechrome21,winxp-opera11" />
<property name="browsers-linux" value="linux-firefox3,linux-opera10,linux-googlechrome8" />
<property name="browsers-mac" value="osx-firefox3,osx-opera10,osx-googlechrome8,osx-safari4,osx-safari5" />
diff --git a/tests/testbench/com/vaadin/launcher/ApplicationRunnerServlet.java b/tests/testbench/com/vaadin/launcher/ApplicationRunnerServlet.java
index dd93b1a8b6..b2148c8f08 100644
--- a/tests/testbench/com/vaadin/launcher/ApplicationRunnerServlet.java
+++ b/tests/testbench/com/vaadin/launcher/ApplicationRunnerServlet.java
@@ -61,7 +61,8 @@ public class ApplicationRunnerServlet extends AbstractApplicationServlet {
Collections.addAll(defaultPackages, initParameter.split(","));
}
String str = TestBase.class.getName().replace('.', '/') + ".class";
- URL url = getClassLoader().getResource(str);
+ URL url = getDeploymentConfiguration().getClassLoader()
+ .getResource(str);
if ("file".equals(url.getProtocol())) {
File comVaadinTests = new File(url.getPath()).getParentFile()
.getParentFile();
diff --git a/tests/testbench/com/vaadin/launcher/DemoLauncher.java b/tests/testbench/com/vaadin/launcher/DemoLauncher.java
index 2b2f73abd6..91cdd343c7 100644
--- a/tests/testbench/com/vaadin/launcher/DemoLauncher.java
+++ b/tests/testbench/com/vaadin/launcher/DemoLauncher.java
@@ -75,6 +75,7 @@ public class DemoLauncher {
* dispatch thread.
*/
java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
public void run() {
try {
openServerControlDialog(url);
@@ -125,6 +126,7 @@ public class DemoLauncher {
// List for close verify buttons
final ActionListener buttonListener = new ActionListener() {
+ @Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == okButton) {
System.exit(0);
diff --git a/tests/testbench/com/vaadin/launcher/DevelopmentServerLauncher.java b/tests/testbench/com/vaadin/launcher/DevelopmentServerLauncher.java
index 05658e74b1..cd465bc7cc 100644
--- a/tests/testbench/com/vaadin/launcher/DevelopmentServerLauncher.java
+++ b/tests/testbench/com/vaadin/launcher/DevelopmentServerLauncher.java
@@ -13,14 +13,14 @@ import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
-import com.vaadin.launcher.util.BrowserLauncher;
-
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.security.SslSocketConnector;
import org.mortbay.jetty.webapp.WebAppContext;
+import com.vaadin.launcher.util.BrowserLauncher;
+
/**
* Class for running Jetty servlet container within Eclipse project.
*
@@ -40,6 +40,7 @@ public class DevelopmentServerLauncher {
* @throws Exception
*/
public static void main(String[] args) {
+ System.setProperty("java.awt.headless", "true");
// Pass-through of arguments for Jetty
final Map<String, String> serverArgs = parseArguments(args);
diff --git a/tests/testbench/com/vaadin/tests/Components.java b/tests/testbench/com/vaadin/tests/Components.java
index 4352072ccf..f4fa1b6608 100644
--- a/tests/testbench/com/vaadin/tests/Components.java
+++ b/tests/testbench/com/vaadin/tests/Components.java
@@ -15,9 +15,9 @@ import com.vaadin.data.util.DefaultItemSorter;
import com.vaadin.data.util.HierarchicalContainer;
import com.vaadin.event.ItemClickEvent;
import com.vaadin.event.ItemClickEvent.ItemClickListener;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.ExternalResource;
import com.vaadin.terminal.Sizeable;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.tests.components.AbstractComponentTest;
import com.vaadin.ui.AbstractComponent;
import com.vaadin.ui.Component;
@@ -137,6 +137,7 @@ public class Components extends Application.LegacyApplication {
naviTree = new Tree();
naviTree.setItemStyleGenerator(new ItemStyleGenerator() {
+ @Override
public String getStyle(Object itemId) {
Class<?> cls = (Class<?>) itemId;
if (!isAbstract(cls)) {
@@ -182,6 +183,7 @@ public class Components extends Application.LegacyApplication {
naviTree.addListener(new ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
Class<?> cls = (Class<?>) event.getItemId();
if (!isAbstract(cls)) {
diff --git a/tests/testbench/com/vaadin/tests/CustomLayoutDemo.java b/tests/testbench/com/vaadin/tests/CustomLayoutDemo.java
index 73282cc1fb..6991b669a8 100644
--- a/tests/testbench/com/vaadin/tests/CustomLayoutDemo.java
+++ b/tests/testbench/com/vaadin/tests/CustomLayoutDemo.java
@@ -4,7 +4,7 @@
package com.vaadin.tests;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Component.Event;
@@ -45,6 +45,7 @@ public class CustomLayoutDemo extends com.vaadin.Application.LegacyApplication
private final Button loginButton = new Button("Login",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
loginClicked();
}
@@ -131,6 +132,7 @@ public class CustomLayoutDemo extends com.vaadin.Application.LegacyApplication
* Handle all menu events. Updates body panel contents if menu item is
* clicked.
*/
+ @Override
public void componentEvent(Event event) {
// Check if event occured at fsTree component
if (event.getSource() == menu) {
diff --git a/tests/testbench/com/vaadin/tests/FocusingComponents.java b/tests/testbench/com/vaadin/tests/FocusingComponents.java
index e74a935830..f63989fafb 100644
--- a/tests/testbench/com/vaadin/tests/FocusingComponents.java
+++ b/tests/testbench/com/vaadin/tests/FocusingComponents.java
@@ -54,6 +54,7 @@ public class FocusingComponents extends CustomComponent {
Button focus = new Button("focus");
focus.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
f.focus();
}
diff --git a/tests/testbench/com/vaadin/tests/LayoutDemo.java b/tests/testbench/com/vaadin/tests/LayoutDemo.java
index d838283cf1..e2d858560a 100644
--- a/tests/testbench/com/vaadin/tests/LayoutDemo.java
+++ b/tests/testbench/com/vaadin/tests/LayoutDemo.java
@@ -4,8 +4,8 @@
package com.vaadin.tests;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.ClassResource;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.Component;
import com.vaadin.ui.Embedded;
import com.vaadin.ui.GridLayout;
diff --git a/tests/testbench/com/vaadin/tests/ListenerOrder.java b/tests/testbench/com/vaadin/tests/ListenerOrder.java
index 797561eb00..7f136b10ed 100644
--- a/tests/testbench/com/vaadin/tests/ListenerOrder.java
+++ b/tests/testbench/com/vaadin/tests/ListenerOrder.java
@@ -59,6 +59,7 @@ public class ListenerOrder extends com.vaadin.Application.LegacyApplication
b1.removeListener(b1Listener);
// remove non-existing listener
b1.removeListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
}
});
@@ -107,6 +108,7 @@ public class ListenerOrder extends com.vaadin.Application.LegacyApplication
return listener;
}
+ @Override
public void buttonClick(ClickEvent event) {
System.out.println("ClickEvent from Test1");
s1.addItem("new item " + System.currentTimeMillis());
@@ -133,6 +135,7 @@ public class ListenerOrder extends com.vaadin.Application.LegacyApplication
System.out.println("Created listener " + name + ", id=" + count);
}
+ @Override
public void buttonClick(ClickEvent event) {
String msg = "ClickEvent from MyClickListener " + name + ", id="
+ count;
@@ -142,18 +145,21 @@ public class ListenerOrder extends com.vaadin.Application.LegacyApplication
}
+ @Override
public void containerPropertySetChange(PropertySetChangeEvent event) {
String msg = "containerPropertySetChange from " + this;
System.out.println(msg);
getMainWindow().showNotification(msg);
}
+ @Override
public void containerItemSetChange(ItemSetChangeEvent event) {
String msg = "containerItemSetChange from " + this;
System.out.println(msg);
getMainWindow().showNotification(msg);
}
+ @Override
public void valueChange(ValueChangeEvent event) {
String msg = "valueChange from " + this;
System.out.println(msg);
diff --git a/tests/testbench/com/vaadin/tests/ModalWindow.java b/tests/testbench/com/vaadin/tests/ModalWindow.java
index c848803642..340571cd37 100644
--- a/tests/testbench/com/vaadin/tests/ModalWindow.java
+++ b/tests/testbench/com/vaadin/tests/ModalWindow.java
@@ -54,6 +54,7 @@ public class ModalWindow extends com.vaadin.Application.LegacyApplication
}
+ @Override
public void buttonClick(ClickEvent event) {
if (event.getButton() == reopen) {
openSubWindow();
diff --git a/tests/testbench/com/vaadin/tests/NativeWindowing.java b/tests/testbench/com/vaadin/tests/NativeWindowing.java
index 6a561dd861..36cbe48935 100644
--- a/tests/testbench/com/vaadin/tests/NativeWindowing.java
+++ b/tests/testbench/com/vaadin/tests/NativeWindowing.java
@@ -8,7 +8,7 @@ import java.net.MalformedURLException;
import java.net.URL;
import com.vaadin.Application;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Label;
@@ -26,6 +26,7 @@ public class NativeWindowing extends Application.LegacyApplication {
main.addComponent(new Button("Add new subwindow",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
final Window w = new Window("sw "
+ System.currentTimeMillis());
@@ -40,6 +41,7 @@ public class NativeWindowing extends Application.LegacyApplication {
final Button closebutton = new Button("Close "
+ w.getCaption(), new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
main.removeWindow(w);
}
@@ -78,6 +80,7 @@ public class NativeWindowing extends Application.LegacyApplication {
main.addComponent(new Button(
"Open a currently uncreated application level window",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
main.open(
@@ -114,6 +117,7 @@ public class NativeWindowing extends Application.LegacyApplication {
ww.addComponent(new Button("Click me", new Button.ClickListener() {
int state = 0;
+ @Override
public void buttonClick(ClickEvent event) {
ww.addComponent(new Label("Button clicked " + (++state)
+ " times"));
diff --git a/tests/testbench/com/vaadin/tests/OrderedLayoutSwapComponents.java b/tests/testbench/com/vaadin/tests/OrderedLayoutSwapComponents.java
index 93e6290ee4..af73bdc652 100644
--- a/tests/testbench/com/vaadin/tests/OrderedLayoutSwapComponents.java
+++ b/tests/testbench/com/vaadin/tests/OrderedLayoutSwapComponents.java
@@ -60,6 +60,7 @@ public class OrderedLayoutSwapComponents extends CustomComponent {
ol.addComponent(new Label(name));
up = new Button("up");
up.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
int newIndex = order.indexOf(MyComponent.this) - 1;
MyComponent old = order.get(newIndex);
@@ -77,6 +78,7 @@ public class OrderedLayoutSwapComponents extends CustomComponent {
down = new Button("down");
down.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
int newIndex = order.indexOf(MyComponent.this) + 1;
MyComponent old = order.get(newIndex);
diff --git a/tests/testbench/com/vaadin/tests/Parameters.java b/tests/testbench/com/vaadin/tests/Parameters.java
index 8d940101c3..1e8ca53875 100644
--- a/tests/testbench/com/vaadin/tests/Parameters.java
+++ b/tests/testbench/com/vaadin/tests/Parameters.java
@@ -93,6 +93,7 @@ public class Parameters extends com.vaadin.Application.LegacyApplication
main.setContent(layout);
}
+ @Override
public boolean handleRequest(Application application,
WrappedRequest request, WrappedResponse response)
throws IOException {
diff --git a/tests/testbench/com/vaadin/tests/PerformanceTestBasicComponentRendering.java b/tests/testbench/com/vaadin/tests/PerformanceTestBasicComponentRendering.java
index 0d588a3306..e93ebc52f3 100644
--- a/tests/testbench/com/vaadin/tests/PerformanceTestBasicComponentRendering.java
+++ b/tests/testbench/com/vaadin/tests/PerformanceTestBasicComponentRendering.java
@@ -7,8 +7,8 @@ package com.vaadin.tests;
import java.util.Date;
import java.util.Map;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.UserError;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.CustomComponent;
diff --git a/tests/testbench/com/vaadin/tests/PerformanceTestLabelsAndOrderedLayouts.java b/tests/testbench/com/vaadin/tests/PerformanceTestLabelsAndOrderedLayouts.java
index b3f232f24d..66c20009e0 100644
--- a/tests/testbench/com/vaadin/tests/PerformanceTestLabelsAndOrderedLayouts.java
+++ b/tests/testbench/com/vaadin/tests/PerformanceTestLabelsAndOrderedLayouts.java
@@ -6,7 +6,7 @@ package com.vaadin.tests;
import java.util.Date;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.AbstractOrderedLayout;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
@@ -39,6 +39,7 @@ public class PerformanceTestLabelsAndOrderedLayouts extends CustomComponent {
main.addComponent(new Button("click when rendered",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
endTest();
}
@@ -47,6 +48,7 @@ public class PerformanceTestLabelsAndOrderedLayouts extends CustomComponent {
main.addComponent(new Button(
"Click for layout repaint (cached components)",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
testContainer.requestRepaint();
}
diff --git a/tests/testbench/com/vaadin/tests/PerformanceTestSubTreeCaching.java b/tests/testbench/com/vaadin/tests/PerformanceTestSubTreeCaching.java
index 882b776d5d..e0a7e2c90c 100644
--- a/tests/testbench/com/vaadin/tests/PerformanceTestSubTreeCaching.java
+++ b/tests/testbench/com/vaadin/tests/PerformanceTestSubTreeCaching.java
@@ -6,7 +6,7 @@ package com.vaadin.tests;
import java.util.Date;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.CustomComponent;
@@ -39,6 +39,7 @@ public class PerformanceTestSubTreeCaching extends CustomComponent {
addInfo();
Button b = new Button("start test", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
startTest();
}
@@ -46,6 +47,7 @@ public class PerformanceTestSubTreeCaching extends CustomComponent {
b.setDescription("Push this button to start test. A test label will be rendered above existing components.");
main.addComponent(b);
b = new Button("end test", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
endTest();
}
diff --git a/tests/testbench/com/vaadin/tests/ScrollbarStressTest.java b/tests/testbench/com/vaadin/tests/ScrollbarStressTest.java
index bd40a7fb7b..9cd27e9d5c 100644
--- a/tests/testbench/com/vaadin/tests/ScrollbarStressTest.java
+++ b/tests/testbench/com/vaadin/tests/ScrollbarStressTest.java
@@ -73,6 +73,7 @@ public class ScrollbarStressTest extends Application.LegacyApplication {
height.setValue("100%");
final Button set = new Button("Set", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getTable = testComponent.getValue().equals("Table");
diff --git a/tests/testbench/com/vaadin/tests/StressComponentsInTable.java b/tests/testbench/com/vaadin/tests/StressComponentsInTable.java
index 9c2703822e..87ab7fa1d4 100644
--- a/tests/testbench/com/vaadin/tests/StressComponentsInTable.java
+++ b/tests/testbench/com/vaadin/tests/StressComponentsInTable.java
@@ -37,6 +37,7 @@ public class StressComponentsInTable extends CustomComponent {
}
content.add(new Button("b" + i, new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Button b = event.getButton();
System.out.println(b.getCaption() + " click: "
diff --git a/tests/testbench/com/vaadin/tests/TableChangingDatasource.java b/tests/testbench/com/vaadin/tests/TableChangingDatasource.java
index fa7edc3a45..3f87f2fe4c 100644
--- a/tests/testbench/com/vaadin/tests/TableChangingDatasource.java
+++ b/tests/testbench/com/vaadin/tests/TableChangingDatasource.java
@@ -45,6 +45,7 @@ public class TableChangingDatasource extends CustomComponent implements
}
+ @Override
public void buttonClick(ClickEvent event) {
int i = mode % 4;
t.setContainerDataSource(ta[i].getContainerDataSource());
diff --git a/tests/testbench/com/vaadin/tests/TableSelectTest.java b/tests/testbench/com/vaadin/tests/TableSelectTest.java
index 62070c4b97..823bdfb3c4 100644
--- a/tests/testbench/com/vaadin/tests/TableSelectTest.java
+++ b/tests/testbench/com/vaadin/tests/TableSelectTest.java
@@ -113,6 +113,7 @@ public class TableSelectTest extends CustomComponent implements
return id;
}
+ @Override
public void valueChange(ValueChangeEvent event) {
final Object val = event.getProperty().getValue();
diff --git a/tests/testbench/com/vaadin/tests/TestBench.java b/tests/testbench/com/vaadin/tests/TestBench.java
index 1ac497e574..04f71ce535 100644
--- a/tests/testbench/com/vaadin/tests/TestBench.java
+++ b/tests/testbench/com/vaadin/tests/TestBench.java
@@ -120,6 +120,7 @@ public class TestBench extends com.vaadin.Application.LegacyApplication
lo.addComponent(menu);
mainWindow.getPage().addListener(new Page.FragmentChangedListener() {
+ @Override
public void fragmentChanged(FragmentChangedEvent source) {
String fragment = source.getFragment();
if (fragment != null && !"".equals(fragment)) {
@@ -238,6 +239,7 @@ public class TestBench extends com.vaadin.Application.LegacyApplication
}
// Handle menu selection and update body
+ @Override
public void valueChange(Property.ValueChangeEvent event) {
bodyLayout.removeAllComponents();
bodyLayout.setCaption(null);
diff --git a/tests/testbench/com/vaadin/tests/TestCaptionWrapper.java b/tests/testbench/com/vaadin/tests/TestCaptionWrapper.java
index 0e49fdd8ae..d086e0a665 100644
--- a/tests/testbench/com/vaadin/tests/TestCaptionWrapper.java
+++ b/tests/testbench/com/vaadin/tests/TestCaptionWrapper.java
@@ -4,11 +4,11 @@
package com.vaadin.tests;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.ClassResource;
import com.vaadin.terminal.ErrorMessage;
import com.vaadin.terminal.ExternalResource;
import com.vaadin.terminal.UserError;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.AbstractComponent;
import com.vaadin.ui.Button;
import com.vaadin.ui.CheckBox;
@@ -195,6 +195,7 @@ public class TestCaptionWrapper extends CustomComponent implements Listener {
layout.addComponent(c);
}
+ @Override
public void componentEvent(Event event) {
final String feedback = eventListenerString + " source="
+ event.getSource() + ", toString()=" + event.toString();
diff --git a/tests/testbench/com/vaadin/tests/TestComponentAddAndRecursion.java b/tests/testbench/com/vaadin/tests/TestComponentAddAndRecursion.java
index 3adaff93ea..e13b907f77 100644
--- a/tests/testbench/com/vaadin/tests/TestComponentAddAndRecursion.java
+++ b/tests/testbench/com/vaadin/tests/TestComponentAddAndRecursion.java
@@ -43,6 +43,7 @@ public class TestComponentAddAndRecursion extends CustomComponent {
Button b = new Button("use gridlayout", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
p.setContent(new GridLayout());
p2.setContent(new GridLayout());
@@ -53,6 +54,7 @@ public class TestComponentAddAndRecursion extends CustomComponent {
main.addComponent(b);
b = new Button("use orderedlayout", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
p.setContent(new VerticalLayout());
p2.setContent(new VerticalLayout());
@@ -63,6 +65,7 @@ public class TestComponentAddAndRecursion extends CustomComponent {
main.addComponent(b);
b = new Button("move B", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
p2.addComponent(l2);
}
@@ -71,6 +74,7 @@ public class TestComponentAddAndRecursion extends CustomComponent {
main.addComponent(b);
b = new Button("move p", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
p3.addComponent(p);
}
@@ -79,6 +83,7 @@ public class TestComponentAddAndRecursion extends CustomComponent {
main.addComponent(b);
b = new Button("add to both", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Label l = new Label("both");
p.addComponent(l);
@@ -89,6 +94,7 @@ public class TestComponentAddAndRecursion extends CustomComponent {
main.addComponent(b);
b = new Button("recurse", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
p3.addComponent(p2);
@@ -106,6 +112,7 @@ public class TestComponentAddAndRecursion extends CustomComponent {
main.addComponent(b);
b = new Button("recurse2", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Panel p = new Panel("dynamic");
p.addComponent(p2);
diff --git a/tests/testbench/com/vaadin/tests/TestContainerChanges.java b/tests/testbench/com/vaadin/tests/TestContainerChanges.java
index b7f24abd8b..87251c0d65 100644
--- a/tests/testbench/com/vaadin/tests/TestContainerChanges.java
+++ b/tests/testbench/com/vaadin/tests/TestContainerChanges.java
@@ -70,6 +70,7 @@ public class TestContainerChanges extends CustomComponent {
tbl2.setMultiSelect(false);
tbl2.setImmediate(true);
tbl2.addListener(new Table.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
System.err.println("Value now "
+ event.getProperty().getValue());
@@ -85,6 +86,7 @@ public class TestContainerChanges extends CustomComponent {
Button b = new Button("table.commit()", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tbl.commit();
}
@@ -95,6 +97,7 @@ public class TestContainerChanges extends CustomComponent {
b = new Button("indexedcontainer.addItem()",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
cont.addItem(new Integer(cnt++));
}
@@ -104,6 +107,7 @@ public class TestContainerChanges extends CustomComponent {
b = new Button("indexedcontainer.addItem(null)",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
cont.addItem(null);
}
@@ -113,6 +117,7 @@ public class TestContainerChanges extends CustomComponent {
b = new Button("indexedcontainer.removeItem(table.lastItemId()",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
cont.removeItem(tbl.lastItemId());
}
@@ -123,6 +128,7 @@ public class TestContainerChanges extends CustomComponent {
b = new Button("indexedcontainer.addContainerProperty()",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
cont.addContainerProperty("prop" + cnt, String.class,
"#" + cnt++);
@@ -133,6 +139,7 @@ public class TestContainerChanges extends CustomComponent {
b = new Button("indexedcontainer.clear()", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
cont.removeAllItems();
}
@@ -142,6 +149,7 @@ public class TestContainerChanges extends CustomComponent {
b = new Button("table.setContainerDataSource(indexedcontainer)",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tbl.setContainerDataSource(cont);
}
@@ -151,6 +159,7 @@ public class TestContainerChanges extends CustomComponent {
b = new Button("table.setContainerDataSource(orderedwrapper)",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tbl.setContainerDataSource(ordered);
}
@@ -160,6 +169,7 @@ public class TestContainerChanges extends CustomComponent {
b = new Button("table.setContainerDataSource(hierarchicalwrapper)",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tbl.setContainerDataSource(hierarchical);
}
diff --git a/tests/testbench/com/vaadin/tests/TestForBasicApplicationLayout.java b/tests/testbench/com/vaadin/tests/TestForBasicApplicationLayout.java
index 67370039bb..eadc787ad8 100644
--- a/tests/testbench/com/vaadin/tests/TestForBasicApplicationLayout.java
+++ b/tests/testbench/com/vaadin/tests/TestForBasicApplicationLayout.java
@@ -30,6 +30,7 @@ public class TestForBasicApplicationLayout extends CustomComponent {
click = new Button("Set height -1", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tab.setHeight(null);
}
@@ -38,6 +39,7 @@ public class TestForBasicApplicationLayout extends CustomComponent {
click2 = new Button("Set height 100%", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tab.setHeight(100, TabSheet.UNITS_PERCENTAGE);
}
diff --git a/tests/testbench/com/vaadin/tests/TestForChildComponentRendering.java b/tests/testbench/com/vaadin/tests/TestForChildComponentRendering.java
index e90231eefd..3852c5f13f 100644
--- a/tests/testbench/com/vaadin/tests/TestForChildComponentRendering.java
+++ b/tests/testbench/com/vaadin/tests/TestForChildComponentRendering.java
@@ -53,6 +53,7 @@ public class TestForChildComponentRendering extends CustomComponent {
se.addItem("Valinta 2");
Button b = new Button("refresh view", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
createNewView();
}
@@ -60,6 +61,7 @@ public class TestForChildComponentRendering extends CustomComponent {
main.addComponent(b);
b = new Button("reorder view", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
randomReorder();
}
@@ -68,6 +70,7 @@ public class TestForChildComponentRendering extends CustomComponent {
b = new Button("remove randomly one component",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
removeRandomComponent();
}
diff --git a/tests/testbench/com/vaadin/tests/TestForContainerFilterable.java b/tests/testbench/com/vaadin/tests/TestForContainerFilterable.java
index 92b7ae4f62..f3bd5ab227 100644
--- a/tests/testbench/com/vaadin/tests/TestForContainerFilterable.java
+++ b/tests/testbench/com/vaadin/tests/TestForContainerFilterable.java
@@ -60,6 +60,7 @@ public class TestForContainerFilterable extends CustomComponent {
// Handler
filterButton.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
ic.removeAllContainerFilters();
if (fooFilter.getValue().length() > 0) {
@@ -77,6 +78,7 @@ public class TestForContainerFilterable extends CustomComponent {
// Resetbutton
lo.addComponent(new Button("Rebind table datasource",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
t.setContainerDataSource(ic);
}
diff --git a/tests/testbench/com/vaadin/tests/TestForGridLayoutChildComponentRendering.java b/tests/testbench/com/vaadin/tests/TestForGridLayoutChildComponentRendering.java
index 6adcf49ec6..982c86781c 100644
--- a/tests/testbench/com/vaadin/tests/TestForGridLayoutChildComponentRendering.java
+++ b/tests/testbench/com/vaadin/tests/TestForGridLayoutChildComponentRendering.java
@@ -54,6 +54,7 @@ public class TestForGridLayoutChildComponentRendering extends CustomComponent {
main.addComponent(se, 0, 1, 1, 1);
Button b = new Button("refresh view", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
createNewView();
}
@@ -61,6 +62,7 @@ public class TestForGridLayoutChildComponentRendering extends CustomComponent {
main.addComponent(b);
b = new Button("reorder view", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
randomReorder();
}
@@ -69,6 +71,7 @@ public class TestForGridLayoutChildComponentRendering extends CustomComponent {
b = new Button("remove randomly one component",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
removeRandomComponent();
}
diff --git a/tests/testbench/com/vaadin/tests/TestForMultipleStyleNames.java b/tests/testbench/com/vaadin/tests/TestForMultipleStyleNames.java
index e192d2738d..17c118803b 100644
--- a/tests/testbench/com/vaadin/tests/TestForMultipleStyleNames.java
+++ b/tests/testbench/com/vaadin/tests/TestForMultipleStyleNames.java
@@ -65,6 +65,7 @@ public class TestForMultipleStyleNames extends CustomComponent implements
}
+ @Override
public void valueChange(ValueChangeEvent event) {
final String currentStyle = l.getStyleName();
diff --git a/tests/testbench/com/vaadin/tests/TestForNativeWindowing.java b/tests/testbench/com/vaadin/tests/TestForNativeWindowing.java
index 8e4ec17738..ea66ed1ab2 100644
--- a/tests/testbench/com/vaadin/tests/TestForNativeWindowing.java
+++ b/tests/testbench/com/vaadin/tests/TestForNativeWindowing.java
@@ -8,7 +8,7 @@ import java.net.MalformedURLException;
import java.net.URL;
import com.vaadin.Application;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Label;
@@ -26,6 +26,7 @@ public class TestForNativeWindowing extends Application.LegacyApplication {
main.addComponent(new Button("Add new subwindow",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
final Window w = new Window("sw "
+ System.currentTimeMillis());
@@ -40,6 +41,7 @@ public class TestForNativeWindowing extends Application.LegacyApplication {
final Button closebutton = new Button("Close "
+ w.getCaption(), new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
main.removeWindow(w);
}
@@ -78,6 +80,7 @@ public class TestForNativeWindowing extends Application.LegacyApplication {
main.addComponent(new Button(
"Open a currently uncreated application level window",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
main.open(
@@ -114,6 +117,7 @@ public class TestForNativeWindowing extends Application.LegacyApplication {
ww.addComponent(new Button("Click me", new Button.ClickListener() {
int state = 0;
+ @Override
public void buttonClick(ClickEvent event) {
ww.addComponent(new Label("Button clicked " + (++state)
+ " times"));
diff --git a/tests/testbench/com/vaadin/tests/TestForPreconfiguredComponents.java b/tests/testbench/com/vaadin/tests/TestForPreconfiguredComponents.java
index 74fdb0c35f..9a41d719d4 100644
--- a/tests/testbench/com/vaadin/tests/TestForPreconfiguredComponents.java
+++ b/tests/testbench/com/vaadin/tests/TestForPreconfiguredComponents.java
@@ -91,6 +91,7 @@ public class TestForPreconfiguredComponents extends CustomComponent implements
main.addComponent(test);
final Button b = new Button("refresh view", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
createNewView();
}
@@ -146,6 +147,7 @@ public class TestForPreconfiguredComponents extends CustomComponent implements
final Panel status = new Panel("Events");
final Button clear = new Button("clear event log");
clear.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
status.removeAllComponents();
status.addComponent(ol2);
@@ -162,6 +164,7 @@ public class TestForPreconfiguredComponents extends CustomComponent implements
ol.addComponent(status);
t.addListener(new Listener() {
+ @Override
public void componentEvent(Event event) {
status.addComponent(new Label(event.getClass().getName()));
// TODO should not use Field.toString()
@@ -173,10 +176,12 @@ public class TestForPreconfiguredComponents extends CustomComponent implements
return ol;
}
+ @Override
public Action[] getActions(Object target, Object sender) {
return actions;
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
if (action == actions[1]) {
al.addComponent(new Label("Delete selected on " + target));
diff --git a/tests/testbench/com/vaadin/tests/TestForRichTextEditor.java b/tests/testbench/com/vaadin/tests/TestForRichTextEditor.java
index 992222cb9a..417dde71c8 100644
--- a/tests/testbench/com/vaadin/tests/TestForRichTextEditor.java
+++ b/tests/testbench/com/vaadin/tests/TestForRichTextEditor.java
@@ -7,7 +7,7 @@ package com.vaadin.tests;
import com.vaadin.data.Property;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.CustomComponent;
@@ -53,6 +53,7 @@ public class TestForRichTextEditor extends CustomComponent implements
b.setImmediate(true);
b.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
rte.setEnabled(!rte.isEnabled());
}
@@ -61,6 +62,7 @@ public class TestForRichTextEditor extends CustomComponent implements
}
+ @Override
public void valueChange(ValueChangeEvent event) {
l.setValue(rte.getValue());
}
diff --git a/tests/testbench/com/vaadin/tests/TestForStyledUpload.java b/tests/testbench/com/vaadin/tests/TestForStyledUpload.java
index 1fc20fe3e2..2526941ed1 100644
--- a/tests/testbench/com/vaadin/tests/TestForStyledUpload.java
+++ b/tests/testbench/com/vaadin/tests/TestForStyledUpload.java
@@ -15,8 +15,8 @@ import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import com.vaadin.Application;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.StreamResource;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Label;
@@ -70,6 +70,7 @@ public class TestForStyledUpload extends Application.LegacyApplication
up.addListener(new Upload.ProgressListener() {
+ @Override
public void updateProgress(long readBytes, long contentLenght) {
pi.setValue(new Float(readBytes / (float) contentLenght));
@@ -83,6 +84,7 @@ public class TestForStyledUpload extends Application.LegacyApplication
final Button b = new Button("Update status",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
readState();
}
@@ -90,6 +92,7 @@ public class TestForStyledUpload extends Application.LegacyApplication
final Button c = new Button("Update status with gc",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
gc();
}
@@ -112,6 +115,7 @@ public class TestForStyledUpload extends Application.LegacyApplication
Button cancel = new Button("Cancel current upload");
cancel.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
buffer.cancel();
}
@@ -122,6 +126,7 @@ public class TestForStyledUpload extends Application.LegacyApplication
final Button restart = new Button("Restart demo application");
restart.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
TestForStyledUpload.this.close();
}
@@ -156,6 +161,7 @@ public class TestForStyledUpload extends Application.LegacyApplication
refreshMemUsage();
}
+ @Override
public void uploadFinished(FinishedEvent event) {
status.removeAllComponents();
final InputStream stream = buffer.getStream();
@@ -208,6 +214,7 @@ public class TestForStyledUpload extends Application.LegacyApplication
up.interruptUpload();
}
+ @Override
public InputStream getStream() {
if (file == null) {
return null;
@@ -225,6 +232,7 @@ public class TestForStyledUpload extends Application.LegacyApplication
/**
* @see com.vaadin.ui.Upload.Receiver#receiveUpload(String, String)
*/
+ @Override
public OutputStream receiveUpload(String filename, String MIMEType) {
fileName = filename;
mimeType = MIMEType;
@@ -242,6 +250,7 @@ public class TestForStyledUpload extends Application.LegacyApplication
*
* @return String
*/
+ @Override
public String getFileName() {
return fileName;
}
@@ -257,11 +266,13 @@ public class TestForStyledUpload extends Application.LegacyApplication
}
+ @Override
public void uploadFailed(FailedEvent event) {
pi.setVisible(false);
l.setValue("Upload was interrupted");
}
+ @Override
public void uploadSucceeded(SucceededEvent event) {
pi.setVisible(false);
l.setValue("Finished upload, idle");
@@ -280,6 +291,7 @@ public class TestForStyledUpload extends Application.LegacyApplication
}
+ @Override
public void uploadStarted(StartedEvent event) {
pi.setVisible(true);
l.setValue("Started uploading file " + event.getFilename());
diff --git a/tests/testbench/com/vaadin/tests/TestForTabSheet.java b/tests/testbench/com/vaadin/tests/TestForTabSheet.java
index 938bf43115..d180bd4be3 100644
--- a/tests/testbench/com/vaadin/tests/TestForTabSheet.java
+++ b/tests/testbench/com/vaadin/tests/TestForTabSheet.java
@@ -32,6 +32,7 @@ public class TestForTabSheet extends CustomComponent implements
tabsheet.addTab(tab3_root, "Third tab", null);
}
+ @Override
public void buttonClick(ClickEvent event) {
System.out.println("tab2=" + tab2_root.isEnabled() + " tab3="
+ tab3_root.isEnabled());
@@ -39,6 +40,7 @@ public class TestForTabSheet extends CustomComponent implements
tab3_root.setEnabled(true);
}
+ @Override
public void selectedTabChange(SelectedTabChangeEvent event) {
/*
* Cast to a TabSheet. This isn't really necessary in this example, as
diff --git a/tests/testbench/com/vaadin/tests/TestForTablesInitialColumnWidthLogicRendering.java b/tests/testbench/com/vaadin/tests/TestForTablesInitialColumnWidthLogicRendering.java
index 48c056ff58..a8d42184a0 100644
--- a/tests/testbench/com/vaadin/tests/TestForTablesInitialColumnWidthLogicRendering.java
+++ b/tests/testbench/com/vaadin/tests/TestForTablesInitialColumnWidthLogicRendering.java
@@ -103,6 +103,7 @@ public class TestForTablesInitialColumnWidthLogicRendering extends
main.addComponent(t);
final Button b = new Button("refresh view", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
createNewView();
}
@@ -125,6 +126,7 @@ public class TestForTablesInitialColumnWidthLogicRendering extends
}
Button button = new Button("b", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
System.out.println("b click");
diff --git a/tests/testbench/com/vaadin/tests/TestForTrees.java b/tests/testbench/com/vaadin/tests/TestForTrees.java
index 37030a25c2..24d6102f80 100644
--- a/tests/testbench/com/vaadin/tests/TestForTrees.java
+++ b/tests/testbench/com/vaadin/tests/TestForTrees.java
@@ -87,6 +87,7 @@ public class TestForTrees extends CustomComponent implements Handler {
contextTree = t;
final Button b = new Button("refresh view", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
createNewView();
}
@@ -131,6 +132,7 @@ public class TestForTrees extends CustomComponent implements Handler {
final Panel status = new Panel("Events");
final Button clear = new Button("c");
clear.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
status.removeAllComponents();
status.addComponent(clear);
@@ -144,6 +146,7 @@ public class TestForTrees extends CustomComponent implements Handler {
ol.addComponent(status);
t.addListener(new Listener() {
+ @Override
public void componentEvent(Event event) {
status.addComponent(new Label(event.getClass().getName()));
// TODO should not use Field.toString()
@@ -155,10 +158,12 @@ public class TestForTrees extends CustomComponent implements Handler {
return ol;
}
+ @Override
public Action[] getActions(Object target, Object sender) {
return actions;
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
if (action == actions[1]) {
al.addComponent(new Label("Delete selected on " + target));
diff --git a/tests/testbench/com/vaadin/tests/TestForUpload.java b/tests/testbench/com/vaadin/tests/TestForUpload.java
index c254198add..cfb40fc854 100644
--- a/tests/testbench/com/vaadin/tests/TestForUpload.java
+++ b/tests/testbench/com/vaadin/tests/TestForUpload.java
@@ -17,8 +17,8 @@ import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.StreamResource;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.AbstractField;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
@@ -95,6 +95,7 @@ public class TestForUpload extends CustomComponent implements
up.addListener(new Listener() {
private static final long serialVersionUID = -8319074730512324303L;
+ @Override
public void componentEvent(Event event) {
// print out all events fired by upload for debug purposes
System.out.println("Upload fired event | " + event);
@@ -104,6 +105,7 @@ public class TestForUpload extends CustomComponent implements
up.addListener(new StartedListener() {
private static final long serialVersionUID = 5508883803861085154L;
+ @Override
public void uploadStarted(StartedEvent event) {
pi.setVisible(true);
pi2.setVisible(true);
@@ -117,6 +119,7 @@ public class TestForUpload extends CustomComponent implements
up.addListener(new Upload.FinishedListener() {
private static final long serialVersionUID = -3773034195991947371L;
+ @Override
public void uploadFinished(FinishedEvent event) {
pi.setVisible(false);
pi2.setVisible(false);
@@ -156,6 +159,7 @@ public class TestForUpload extends CustomComponent implements
up.addListener(new Upload.ProgressListener() {
+ @Override
public void updateProgress(long readBytes, long contentLenght) {
pi2.setValue(new Float(readBytes / (float) contentLenght));
@@ -166,12 +170,14 @@ public class TestForUpload extends CustomComponent implements
final Button b = new Button("Reed state from upload",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
readState();
}
});
final Button c = new Button("Force GC", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
gc();
}
@@ -183,6 +189,7 @@ public class TestForUpload extends CustomComponent implements
main.addComponent(throwExecption);
main.addComponent(interrupt);
interrupt.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
up.interruptUpload();
}
@@ -195,6 +202,7 @@ public class TestForUpload extends CustomComponent implements
uploadBufferSelector.addItem("tempfile");
uploadBufferSelector
.addListener(new AbstractField.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
setBuffer();
}
@@ -222,6 +230,7 @@ public class TestForUpload extends CustomComponent implements
final Button restart = new Button("R");
restart.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getApplication().close();
}
@@ -280,6 +289,7 @@ public class TestForUpload extends CustomComponent implements
}
+ @Override
public InputStream getStream() {
if (outputBuffer == null) {
return null;
@@ -290,6 +300,7 @@ public class TestForUpload extends CustomComponent implements
/**
* @see com.vaadin.ui.Upload.Receiver#receiveUpload(String, String)
*/
+ @Override
public OutputStream receiveUpload(String filename, String MIMEType) {
fileName = filename;
mimeType = MIMEType;
@@ -310,6 +321,7 @@ public class TestForUpload extends CustomComponent implements
*
* @return String
*/
+ @Override
public String getFileName() {
return fileName;
}
@@ -344,6 +356,7 @@ public class TestForUpload extends CustomComponent implements
}
+ @Override
public InputStream getStream() {
if (file == null) {
return null;
@@ -360,6 +373,7 @@ public class TestForUpload extends CustomComponent implements
/**
* @see com.vaadin.ui.Upload.Receiver#receiveUpload(String, String)
*/
+ @Override
public OutputStream receiveUpload(String filename, String MIMEType) {
fileName = filename;
mimeType = MIMEType;
@@ -387,6 +401,7 @@ public class TestForUpload extends CustomComponent implements
*
* @return String
*/
+ @Override
public String getFileName() {
return fileName;
}
@@ -402,6 +417,7 @@ public class TestForUpload extends CustomComponent implements
}
+ @Override
public void updateProgress(long readBytes, long contentLenght) {
pi.setValue(new Float(readBytes / (float) contentLenght));
diff --git a/tests/testbench/com/vaadin/tests/TestForWindowOpen.java b/tests/testbench/com/vaadin/tests/TestForWindowOpen.java
index 75395f0d5c..761d9bc106 100644
--- a/tests/testbench/com/vaadin/tests/TestForWindowOpen.java
+++ b/tests/testbench/com/vaadin/tests/TestForWindowOpen.java
@@ -21,6 +21,7 @@ public class TestForWindowOpen extends CustomComponent {
main.addComponent(new Button("Open in this window",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
final ExternalResource r = new ExternalResource(
"http://www.google.com");
@@ -33,6 +34,7 @@ public class TestForWindowOpen extends CustomComponent {
main.addComponent(new Button("Open in target \"mytarget\"",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
final ExternalResource r = new ExternalResource(
"http://www.google.com");
@@ -45,6 +47,7 @@ public class TestForWindowOpen extends CustomComponent {
main.addComponent(new Button("Open in target \"secondtarget\"",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
final ExternalResource r = new ExternalResource(
"http://www.google.com");
diff --git a/tests/testbench/com/vaadin/tests/TestForWindowing.java b/tests/testbench/com/vaadin/tests/TestForWindowing.java
index b9e14608f5..bbd523c0fd 100644
--- a/tests/testbench/com/vaadin/tests/TestForWindowing.java
+++ b/tests/testbench/com/vaadin/tests/TestForWindowing.java
@@ -37,6 +37,7 @@ public class TestForWindowing extends CustomComponent {
final Button create = new Button("Create a new window",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Window w = new Window("Testing Window");
@@ -59,6 +60,7 @@ public class TestForWindowing extends CustomComponent {
s1.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
String v = (String) event.getProperty()
.getValue();
diff --git a/tests/testbench/com/vaadin/tests/TestIFrames.java b/tests/testbench/com/vaadin/tests/TestIFrames.java
index ccddc7f557..48c4027a79 100644
--- a/tests/testbench/com/vaadin/tests/TestIFrames.java
+++ b/tests/testbench/com/vaadin/tests/TestIFrames.java
@@ -4,7 +4,7 @@
package com.vaadin.tests;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.Label;
import com.vaadin.ui.VerticalLayout;
diff --git a/tests/testbench/com/vaadin/tests/TestSetVisibleAndCaching.java b/tests/testbench/com/vaadin/tests/TestSetVisibleAndCaching.java
index a46253598f..064a04847a 100644
--- a/tests/testbench/com/vaadin/tests/TestSetVisibleAndCaching.java
+++ b/tests/testbench/com/vaadin/tests/TestSetVisibleAndCaching.java
@@ -50,6 +50,7 @@ public class TestSetVisibleAndCaching extends
selectPanel(selectedPanel);
buttonNextPanel.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
selectedPanel++;
if (selectedPanel > 2) {
diff --git a/tests/testbench/com/vaadin/tests/TestSizeableIncomponents.java b/tests/testbench/com/vaadin/tests/TestSizeableIncomponents.java
index a9005e7fd3..50028137df 100644
--- a/tests/testbench/com/vaadin/tests/TestSizeableIncomponents.java
+++ b/tests/testbench/com/vaadin/tests/TestSizeableIncomponents.java
@@ -56,6 +56,7 @@ public class TestSizeableIncomponents extends Application.LegacyApplication {
prev = new Button("<<-|");
prev.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Object cur = select.getValue();
Testable prev = (Testable) cont.prevItemId(cur);
@@ -71,6 +72,7 @@ public class TestSizeableIncomponents extends Application.LegacyApplication {
});
next = new Button("|->>");
next.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Object cur = select.getValue();
Testable next = (Testable) cont.nextItemId(cur);
@@ -93,6 +95,7 @@ public class TestSizeableIncomponents extends Application.LegacyApplication {
select.setContainerDataSource(cont);
select.addListener(new ComboBox.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Testable t = (Testable) select.getValue();
if (t != null) {
diff --git a/tests/testbench/com/vaadin/tests/TreeFilesystem.java b/tests/testbench/com/vaadin/tests/TreeFilesystem.java
index e451d2ced7..f43bcfb576 100644
--- a/tests/testbench/com/vaadin/tests/TreeFilesystem.java
+++ b/tests/testbench/com/vaadin/tests/TreeFilesystem.java
@@ -7,7 +7,7 @@ package com.vaadin.tests;
import java.io.File;
import com.vaadin.data.Item;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.util.SampleDirectory;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
@@ -60,6 +60,7 @@ public class TreeFilesystem extends com.vaadin.Application.LegacyApplication
* Handle tree expand event, populate expanded node's childs with new files
* and directories.
*/
+ @Override
public void nodeExpand(ExpandEvent event) {
final Item i = tree.getItem(event.getItemId());
if (!tree.hasChildren(i)) {
diff --git a/tests/testbench/com/vaadin/tests/TreeFilesystemContainer.java b/tests/testbench/com/vaadin/tests/TreeFilesystemContainer.java
index 1b32a35a38..2458f2dfa1 100644
--- a/tests/testbench/com/vaadin/tests/TreeFilesystemContainer.java
+++ b/tests/testbench/com/vaadin/tests/TreeFilesystemContainer.java
@@ -80,6 +80,7 @@ public class TreeFilesystemContainer extends
* Listener for any component events. This class has been registered as an
* listener for component fsTree.
*/
+ @Override
public void componentEvent(Event event) {
// Check if event occured at fsTree component
if (event.getSource() == filesystem) {
diff --git a/tests/testbench/com/vaadin/tests/UpgradingSample.java b/tests/testbench/com/vaadin/tests/UpgradingSample.java
index 0db63ca789..3090962b71 100644
--- a/tests/testbench/com/vaadin/tests/UpgradingSample.java
+++ b/tests/testbench/com/vaadin/tests/UpgradingSample.java
@@ -94,6 +94,7 @@ public class UpgradingSample extends Application.LegacyApplication implements
}
// Handle menu selection and update visible page
+ @Override
public void valueChange(Property.ValueChangeEvent event) {
layout.removeComponent(1, 0);
final String title = (String) menu.getValue();
@@ -116,6 +117,7 @@ public class UpgradingSample extends Application.LegacyApplication implements
private final Button loginButton = new Button("Enter",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
login();
}
@@ -127,6 +129,7 @@ public class UpgradingSample extends Application.LegacyApplication implements
private final Button logoutButton = new Button("Logout",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
close();
}
@@ -163,6 +166,7 @@ public class UpgradingSample extends Application.LegacyApplication implements
}
// Update login status on application user change events
+ @Override
public void applicationUserChanged(Application.UserChangeEvent event) {
updateStatus();
}
diff --git a/tests/testbench/com/vaadin/tests/UsingCustomNewItemHandlerInSelect.java b/tests/testbench/com/vaadin/tests/UsingCustomNewItemHandlerInSelect.java
index 54a7d3d080..94635d17c4 100644
--- a/tests/testbench/com/vaadin/tests/UsingCustomNewItemHandlerInSelect.java
+++ b/tests/testbench/com/vaadin/tests/UsingCustomNewItemHandlerInSelect.java
@@ -51,6 +51,7 @@ public class UsingCustomNewItemHandlerInSelect extends CustomComponent {
}
public class MyNewItemHandler implements AbstractSelect.NewItemHandler {
+ @Override
public void addNewItem(String newItemCaption) {
// here could be db insert or other backend operation
Integer id = new Integer(sequence++);
diff --git a/tests/testbench/com/vaadin/tests/UsingObjectsInSelect.java b/tests/testbench/com/vaadin/tests/UsingObjectsInSelect.java
index 13918ace90..db17148549 100644
--- a/tests/testbench/com/vaadin/tests/UsingObjectsInSelect.java
+++ b/tests/testbench/com/vaadin/tests/UsingObjectsInSelect.java
@@ -9,7 +9,7 @@ import java.util.Random;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.Root.LegacyWindow;
@@ -60,6 +60,7 @@ public class UsingObjectsInSelect extends
}
}
+ @Override
public void valueChange(ValueChangeEvent event) {
final Task task = (Task) select.getValue();
selectedTask.setValue("<b>Type:</b> " + task.getType()
diff --git a/tests/testbench/com/vaadin/tests/appengine/GAESyncTest.java b/tests/testbench/com/vaadin/tests/appengine/GAESyncTest.java
index 58faec35f0..fbf9e7b46e 100644
--- a/tests/testbench/com/vaadin/tests/appengine/GAESyncTest.java
+++ b/tests/testbench/com/vaadin/tests/appengine/GAESyncTest.java
@@ -59,6 +59,7 @@ public class GAESyncTest extends Application.LegacyApplication {
tf = new TextField("Echo thingie");
tf.setImmediate(true);
tf.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
IntrWindow.this.showNotification((String) event
.getProperty().getValue());
@@ -73,6 +74,7 @@ public class GAESyncTest extends Application.LegacyApplication {
{
Button b = new Button("Slow", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
Thread.sleep(15000);
@@ -89,6 +91,7 @@ public class GAESyncTest extends Application.LegacyApplication {
{
Button b = new Button("Add", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (getRoot() == getMainWindow()) {
getRoot().getPage().showNotification(
diff --git a/tests/testbench/com/vaadin/tests/application/ApplicationCloseTest.java b/tests/testbench/com/vaadin/tests/application/ApplicationCloseTest.java
index ce41a895c4..cfbb4045a2 100644
--- a/tests/testbench/com/vaadin/tests/application/ApplicationCloseTest.java
+++ b/tests/testbench/com/vaadin/tests/application/ApplicationCloseTest.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.application;
import com.vaadin.Application;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.gwt.server.WebApplicationContext;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Button;
@@ -27,6 +27,7 @@ public class ApplicationCloseTest extends TestBase {
Label thisApp = new Label("This applications: " + this);
Button close = new Button("Close this", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
event.getButton().getApplication().close();
}
diff --git a/tests/testbench/com/vaadin/tests/application/ErrorInUnloadEvent.java b/tests/testbench/com/vaadin/tests/application/ErrorInUnloadEvent.java
index fcc4e26b55..690df3f360 100644
--- a/tests/testbench/com/vaadin/tests/application/ErrorInUnloadEvent.java
+++ b/tests/testbench/com/vaadin/tests/application/ErrorInUnloadEvent.java
@@ -50,6 +50,7 @@ public class ErrorInUnloadEvent extends AbstractTestCase {
mainWindow.setContent(formLayout);
login.addListener(new ClickListener() {
+ @Override
public void buttonClick(final ClickEvent event) {
String username = userField.getValue();
String password = passwordField.getValue();
@@ -81,6 +82,7 @@ public class ErrorInUnloadEvent extends AbstractTestCase {
header.addComponent(title);
Button logout = new Button("Logout");
logout.addListener(new ClickListener() {
+ @Override
public void buttonClick(final ClickEvent event) {
setUser(null);
showLoginWindow();
diff --git a/tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.java b/tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.java
index f2ae7a3891..4a029e3373 100644
--- a/tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.java
+++ b/tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.java
@@ -16,6 +16,7 @@ public class TerminalErrorNotification extends TestBase {
Button button = new Button("Throw exception",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
throw new RuntimeException("You asked for it");
}
diff --git a/tests/testbench/com/vaadin/tests/application/ThreadLocalInstances.java b/tests/testbench/com/vaadin/tests/application/ThreadLocalInstances.java
index fd65adf209..def68a7357 100644
--- a/tests/testbench/com/vaadin/tests/application/ThreadLocalInstances.java
+++ b/tests/testbench/com/vaadin/tests/application/ThreadLocalInstances.java
@@ -61,6 +61,7 @@ public class ThreadLocalInstances extends AbstractTestApplication {
mainWindow.addComponent(log);
mainWindow.addComponent(new Embedded("Icon", resource));
mainWindow.addComponent(new Button("Sync", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
reportCurrentStatus("button listener");
}
@@ -92,8 +93,7 @@ public class ThreadLocalInstances extends AbstractTestApplication {
}
private void reportCurrentStatus(String phase) {
- reportStatus(phase, Application.getCurrent(),
- Root.getCurrent());
+ reportStatus(phase, Application.getCurrent(), Root.getCurrent());
}
private void reportStatus(String phase, Application application, Root root) {
diff --git a/tests/testbench/com/vaadin/tests/application/WebBrowserSizeTest.java b/tests/testbench/com/vaadin/tests/application/WebBrowserSizeTest.java
index a3f11f2cd3..817acf20b5 100644
--- a/tests/testbench/com/vaadin/tests/application/WebBrowserSizeTest.java
+++ b/tests/testbench/com/vaadin/tests/application/WebBrowserSizeTest.java
@@ -18,6 +18,7 @@ public class WebBrowserSizeTest extends TestBase {
final Button update = new Button("Refresh", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
screenSizeLabel.setValue(getBrowser().getScreenWidth() + " x "
+ getBrowser().getScreenHeight());
diff --git a/tests/testbench/com/vaadin/tests/application/WebBrowserTest.java b/tests/testbench/com/vaadin/tests/application/WebBrowserTest.java
index 35235bbe1f..004c8f1c91 100644
--- a/tests/testbench/com/vaadin/tests/application/WebBrowserTest.java
+++ b/tests/testbench/com/vaadin/tests/application/WebBrowserTest.java
@@ -38,6 +38,7 @@ public class WebBrowserTest extends TestBase {
final Button update = new Button("Get TimeZone from browser",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
TimeZone hkiTZ = TimeZone
.getTimeZone("Europe/Helsinki");
diff --git a/tests/testbench/com/vaadin/tests/applicationcontext/ChangeSessionId.java b/tests/testbench/com/vaadin/tests/applicationcontext/ChangeSessionId.java
index 17ac74e5a3..abcdf232cd 100644
--- a/tests/testbench/com/vaadin/tests/applicationcontext/ChangeSessionId.java
+++ b/tests/testbench/com/vaadin/tests/applicationcontext/ChangeSessionId.java
@@ -22,6 +22,7 @@ public class ChangeSessionId extends AbstractTestCase {
mainWindow.addComponent(new Button("Show session id",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
logSessionId();
}
@@ -29,6 +30,7 @@ public class ChangeSessionId extends AbstractTestCase {
setMainWindow(mainWindow);
loginButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
WebApplicationContext context = ((WebApplicationContext) getContext());
diff --git a/tests/testbench/com/vaadin/tests/applicationcontext/RemoveTransactionListener.java b/tests/testbench/com/vaadin/tests/applicationcontext/RemoveTransactionListener.java
index 8723e23a2a..f1730ed5f5 100644
--- a/tests/testbench/com/vaadin/tests/applicationcontext/RemoveTransactionListener.java
+++ b/tests/testbench/com/vaadin/tests/applicationcontext/RemoveTransactionListener.java
@@ -15,10 +15,12 @@ public class RemoveTransactionListener extends TestBase {
// Add one listener that will remove itself from within transactionEnd
getMainWindow().getApplication().getContext()
.addTransactionListener(new TransactionListener() {
+ @Override
public void transactionStart(Application application,
Object transactionData) {
}
+ @Override
public void transactionEnd(Application application,
Object transactionData) {
removeListener(this);
@@ -29,12 +31,14 @@ public class RemoveTransactionListener extends TestBase {
// Add one listener that will remove itself from within transactionStart
getMainWindow().getApplication().getContext()
.addTransactionListener(new TransactionListener() {
+ @Override
public void transactionStart(Application application,
Object transactionData) {
removeListener(this);
log.log("Listener removed in transactionStart");
}
+ @Override
public void transactionEnd(Application application,
Object transactionData) {
}
@@ -45,11 +49,13 @@ public class RemoveTransactionListener extends TestBase {
// ignored
getMainWindow().getApplication().getContext()
.addTransactionListener(new TransactionListener() {
+ @Override
public void transactionStart(Application application,
Object transactionData) {
log.log("transactionStart from last listener");
}
+ @Override
public void transactionEnd(Application application,
Object transactionData) {
log.log("transactionEnd from last listener");
diff --git a/tests/testbench/com/vaadin/tests/components/AbstractComponentContainerTest.java b/tests/testbench/com/vaadin/tests/components/AbstractComponentContainerTest.java
index 6e9e4e8930..be3b7760f2 100644
--- a/tests/testbench/com/vaadin/tests/components/AbstractComponentContainerTest.java
+++ b/tests/testbench/com/vaadin/tests/components/AbstractComponentContainerTest.java
@@ -29,6 +29,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
private String CATEGORY_COMPONENT_CONTAINER_FEATURES = "Component container features";
private Command<T, ComponentSize> addButtonCommand = new Command<T, ComponentSize>() {
+ @Override
public void execute(T c, ComponentSize size, Object data) {
Button b = new Button("A button");
c.addComponent(b);
@@ -38,6 +39,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
private Command<T, ComponentSize> addNativeButtonCommand = new Command<T, ComponentSize>() {
+ @Override
public void execute(T c, ComponentSize size, Object data) {
NativeButton b = new NativeButton("Native button");
c.addComponent(b);
@@ -46,6 +48,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
};
private Command<T, ComponentSize> addTextAreaCommand = new Command<T, ComponentSize>() {
+ @Override
public void execute(T c, ComponentSize size, Object data) {
TextArea ta = new TextArea();
c.addComponent(ta);
@@ -54,6 +57,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
};
private Command<T, ComponentSize> addRichTextAreaCommand = new Command<T, ComponentSize>() {
+ @Override
public void execute(T c, ComponentSize size, Object data) {
RichTextArea ta = new RichTextArea();
c.addComponent(ta);
@@ -62,6 +66,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
};
private Command<T, ComponentSize> addTextFieldCommand = new Command<T, ComponentSize>() {
+ @Override
public void execute(T c, ComponentSize size, Object data) {
TextField tf = new TextField();
c.addComponent(tf);
@@ -70,6 +75,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
};
private Command<T, ComponentSize> addInlineDateFieldCommand = new Command<T, ComponentSize>() {
+ @Override
public void execute(T c, ComponentSize size, Object data) {
InlineDateField tf = new InlineDateField();
c.addComponent(tf);
@@ -77,6 +83,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
}
};
private Command<T, ComponentSize> addPopupDateFieldCommand = new Command<T, ComponentSize>() {
+ @Override
public void execute(T c, ComponentSize size, Object data) {
PopupDateField tf = new PopupDateField();
c.addComponent(tf);
@@ -85,6 +92,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
};
private Command<T, ComponentSize> addVerticalSplitPanelCommand = new Command<T, ComponentSize>() {
+ @Override
public void execute(T c, ComponentSize size, Object data) {
VerticalSplitPanel vsp = new VerticalSplitPanel();
c.addComponent(vsp);
@@ -93,6 +101,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
};
private Command<T, ComponentSize> addHorizontalSplitPanelCommand = new Command<T, ComponentSize>() {
+ @Override
public void execute(T c, ComponentSize size, Object data) {
HorizontalSplitPanel vsp = new HorizontalSplitPanel();
c.addComponent(vsp);
@@ -101,6 +110,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
};
private Command<T, ComponentSize> addTabSheetCommand = new Command<T, ComponentSize>() {
+ @Override
public void execute(T c, ComponentSize size, Object data) {
TabSheet ts = createTabSheet();
c.addComponent(ts);
@@ -110,6 +120,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
private Command<T, ComponentSize> addTableCommand = new Command<T, ComponentSize>() {
+ @Override
public void execute(T c, ComponentSize size, Object data) {
Table t = createTable();
c.addComponent(t);
@@ -117,12 +128,14 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
}
};
private Command<T, Object> removeAllComponentsCommand = new Command<T, Object>() {
+ @Override
public void execute(T c, Object value, Object data) {
c.removeAllComponents();
}
};
private Command<T, Integer> removeComponentByIndexCommand = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer value, Object data) {
Component child = getComponentAtIndex(c, value);
c.removeComponent(child);
@@ -131,6 +144,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
};
private Command<T, Boolean> componentAttachListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
c.addListener((ComponentAttachListener) AbstractComponentContainerTest.this);
@@ -142,6 +156,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
private Command<T, Boolean> componentDetachListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
c.addListener((ComponentDetachListener) AbstractComponentContainerTest.this);
@@ -153,6 +168,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
private Command<T, Integer> setComponentHeight = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer value, Object data) {
Component child = getComponentAtIndex(c, value);
child.setHeight((String) data);
@@ -162,6 +178,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
private Command<T, Integer> setComponentWidth = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer value, Object data) {
Component child = getComponentAtIndex(c, value);
child.setWidth((String) data);
@@ -348,6 +365,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
}
+ @Override
public void componentDetachedFromContainer(ComponentDetachEvent event) {
log(event.getClass().getSimpleName() + ": "
+ event.getDetachedComponent().getClass().getSimpleName()
@@ -355,6 +373,7 @@ public abstract class AbstractComponentContainerTest<T extends AbstractComponent
+ event.getContainer().getClass().getSimpleName());
}
+ @Override
public void componentAttachedToContainer(ComponentAttachEvent event) {
log(event.getClass().getSimpleName() + ": "
+ event.getAttachedComponent().getClass().getSimpleName()
diff --git a/tests/testbench/com/vaadin/tests/components/AbstractComponentTest.java b/tests/testbench/com/vaadin/tests/components/AbstractComponentTest.java
index 60ce941565..38bba7721c 100644
--- a/tests/testbench/com/vaadin/tests/components/AbstractComponentTest.java
+++ b/tests/testbench/com/vaadin/tests/components/AbstractComponentTest.java
@@ -120,6 +120,7 @@ public abstract class AbstractComponentTest<T extends AbstractComponent>
MenuItem showEventLog = settingsMenu.addItem("Show event log",
new MenuBar.Command() {
+ @Override
public void menuSelected(MenuItem selectedItem) {
boolean selected = !isSelected(selectedItem);
setLogVisible(selected);
@@ -131,6 +132,7 @@ public abstract class AbstractComponentTest<T extends AbstractComponent>
settingsMenu.addItem("Clear log", new MenuBar.Command() {
+ @Override
public void menuSelected(MenuItem selectedItem) {
log.clear();
}
@@ -140,6 +142,7 @@ public abstract class AbstractComponentTest<T extends AbstractComponent>
MenuItem layoutHeight = layoutSize.addItem("Height", null);
for (final String name : sizeOptions.keySet()) {
layoutWidth.addItem(name, new MenuBar.Command() {
+ @Override
public void menuSelected(MenuItem selectedItem) {
getTestComponents().get(0).getParent()
.setWidth(sizeOptions.get(name));
@@ -147,6 +150,7 @@ public abstract class AbstractComponentTest<T extends AbstractComponent>
}
});
layoutHeight.addItem(name, new MenuBar.Command() {
+ @Override
public void menuSelected(MenuItem selectedItem) {
getTestComponents().get(0).getParent()
.setHeight(sizeOptions.get(name));
@@ -243,6 +247,7 @@ public abstract class AbstractComponentTest<T extends AbstractComponent>
protected Command<T, Boolean> focusListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
((FocusNotifier) c).addListener(AbstractComponentTest.this);
@@ -253,6 +258,7 @@ public abstract class AbstractComponentTest<T extends AbstractComponent>
};
protected Command<T, Boolean> blurListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
((BlurNotifier) c).addListener(AbstractComponentTest.this);
@@ -469,6 +475,7 @@ public abstract class AbstractComponentTest<T extends AbstractComponent>
final Object data) {
return new MenuBar.Command() {
+ @Override
public void menuSelected(MenuItem selectedItem) {
boolean selected = !isSelected(selectedItem);
doCommand(getText(selectedItem), booleanCommand, selected, data);
@@ -483,6 +490,7 @@ public abstract class AbstractComponentTest<T extends AbstractComponent>
final DATATYPE value, final Object data) {
return new MenuBar.Command() {
+ @Override
public void menuSelected(MenuItem selectedItem) {
doCommand(getText(selectedItem), command, value, data);
}
@@ -506,6 +514,7 @@ public abstract class AbstractComponentTest<T extends AbstractComponent>
final com.vaadin.tests.components.ComponentTestCase.Command<T, VALUETYPE> cmd,
final VALUETYPE object, final Object data) {
return new MenuBar.Command() {
+ @Override
public void menuSelected(MenuItem selectedItem) {
doCommand(getText(selectedItem), cmd, object, data);
@@ -722,10 +731,12 @@ public abstract class AbstractComponentTest<T extends AbstractComponent>
}
+ @Override
public void focus(FocusEvent event) {
log(event.getClass().getSimpleName());
}
+ @Override
public void blur(BlurEvent event) {
log(event.getClass().getSimpleName());
}
diff --git a/tests/testbench/com/vaadin/tests/components/AbstractComponentTestCase.java b/tests/testbench/com/vaadin/tests/components/AbstractComponentTestCase.java
index 57a32aafc4..d8ae43fd6d 100644
--- a/tests/testbench/com/vaadin/tests/components/AbstractComponentTestCase.java
+++ b/tests/testbench/com/vaadin/tests/components/AbstractComponentTestCase.java
@@ -71,12 +71,14 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
protected Command<T, String> widthCommand = new Command<T, String>() {
+ @Override
public void execute(T t, String value, Object data) {
t.setWidth(value);
}
};
protected Command<T, String> heightCommand = new Command<T, String>() {
+ @Override
public void execute(T t, String value, Object data) {
t.setHeight(value);
}
@@ -84,6 +86,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
protected Command<T, Boolean> enabledCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean enabled, Object data) {
c.setEnabled(enabled);
}
@@ -91,6 +94,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
protected Command<T, Boolean> immediateCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean immediate, Object data) {
c.setImmediate(immediate);
}
@@ -98,6 +102,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
protected Command<T, Boolean> errorIndicatorCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean enabled, Object data) {
if (enabled) {
c.setComponentError(new UserError(errorMessage));
@@ -111,6 +116,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
protected Command<T, String> errorMessageCommand = new Command<T, String>() {
+ @Override
public void execute(T c, String value, Object data) {
errorMessage = value;
if (c.getComponentError() != null) {
@@ -124,6 +130,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
// TODO Move to AbstractFieldTestCase
protected Command<T, Boolean> requiredCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean enabled, Object data) {
if (c instanceof Field) {
((Field<?>) c).setRequired(enabled);
@@ -135,6 +142,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
};
protected Command<T, String> requiredErrorMessageCommand = new Command<T, String>() {
+ @Override
public void execute(T c, String value, Object data) {
((Field<?>) c).setRequiredError(value);
}
@@ -142,6 +150,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
};
protected Command<T, String> descriptionCommand = new Command<T, String>() {
+ @Override
public void execute(T c, String value, Object data) {
c.setDescription(value);
}
@@ -149,6 +158,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
protected Command<T, Boolean> readonlyCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean enabled, Object data) {
c.setReadOnly(enabled);
}
@@ -156,6 +166,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
protected Command<T, Boolean> visibleCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean enabled, Object data) {
c.setVisible(enabled);
}
@@ -163,6 +174,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
protected Command<T, Resource> iconCommand = new Command<T, Resource>() {
+ @Override
public void execute(T c, Resource value, Object data) {
c.setIcon(value);
}
@@ -170,6 +182,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
};
protected Command<T, String> captionCommand = new Command<T, String>() {
+ @Override
public void execute(T c, String value, Object data) {
c.setCaption(value);
}
@@ -178,6 +191,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
protected Command<T, Locale> localeCommand = new Command<T, Locale>() {
+ @Override
public void execute(T c, Locale value, Object data) {
c.setLocale(value);
}
@@ -206,6 +220,7 @@ public abstract class AbstractComponentTestCase<T extends AbstractComponent>
}
protected Command<T, String> styleNameCommand = new Command<T, String>() {
+ @Override
public void execute(T c, String value, Object data) {
c.setStyleName(value);
}
diff --git a/tests/testbench/com/vaadin/tests/components/AbstractLayoutTest.java b/tests/testbench/com/vaadin/tests/components/AbstractLayoutTest.java
index 5c25359e28..af62e5e4a4 100644
--- a/tests/testbench/com/vaadin/tests/components/AbstractLayoutTest.java
+++ b/tests/testbench/com/vaadin/tests/components/AbstractLayoutTest.java
@@ -15,6 +15,7 @@ public abstract class AbstractLayoutTest<T extends AbstractLayout> extends
protected static final String CATEGORY_LAYOUT_FEATURES = "Layout features";
private Command<T, MarginInfo> marginCommand = new Command<T, MarginInfo>() {
+ @Override
public void execute(T c, MarginInfo value, Object data) {
c.setMargin(value);
@@ -22,6 +23,7 @@ public abstract class AbstractLayoutTest<T extends AbstractLayout> extends
};
protected Command<T, Boolean> spacingCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
((SpacingHandler) c).setSpacing(value);
}
@@ -29,6 +31,7 @@ public abstract class AbstractLayoutTest<T extends AbstractLayout> extends
private Command<T, Integer> setComponentAlignment = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer value, Object alignment) {
Component child = getComponentAtIndex(c, value);
((AlignmentHandler) c).setComponentAlignment(child,
diff --git a/tests/testbench/com/vaadin/tests/components/AbstractOrderedLayoutTest.java b/tests/testbench/com/vaadin/tests/components/AbstractOrderedLayoutTest.java
index fd323d2156..1d18cba952 100644
--- a/tests/testbench/com/vaadin/tests/components/AbstractOrderedLayoutTest.java
+++ b/tests/testbench/com/vaadin/tests/components/AbstractOrderedLayoutTest.java
@@ -12,6 +12,7 @@ public abstract class AbstractOrderedLayoutTest<T extends AbstractOrderedLayout>
private Command<T, Boolean> layoutClickListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
c.addListener((LayoutClickListener) AbstractOrderedLayoutTest.this);
@@ -24,6 +25,7 @@ public abstract class AbstractOrderedLayoutTest<T extends AbstractOrderedLayout>
private Command<T, Integer> setComponentExpandRatio = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer value, Object ratio) {
Component child = getComponentAtIndex(c, value);
c.setExpandRatio(child, (Float) ratio);
@@ -74,6 +76,7 @@ public abstract class AbstractOrderedLayoutTest<T extends AbstractOrderedLayout>
}
+ @Override
public void layoutClick(LayoutClickEvent event) {
log(event.getClass().getSimpleName() + ": button="
+ event.getButtonName() + ", childComponent="
diff --git a/tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java b/tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java
index 875d2b1df8..d20f7a4a21 100644
--- a/tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java
+++ b/tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java
@@ -2,8 +2,8 @@ package com.vaadin.tests.components;
import com.vaadin.Application;
import com.vaadin.service.ApplicationContext;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.WrappedRequest;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.terminal.gwt.server.AbstractWebApplicationContext;
import com.vaadin.terminal.gwt.server.WebBrowser;
import com.vaadin.ui.Component;
@@ -57,8 +57,7 @@ public abstract class AbstractTestRoot extends Root {
protected abstract Integer getTicketNumber();
protected WebBrowser getBrowser() {
- ApplicationContext context = Application.getCurrent()
- .getContext();
+ ApplicationContext context = Application.getCurrent().getContext();
if (context instanceof AbstractWebApplicationContext) {
AbstractWebApplicationContext webContext = (AbstractWebApplicationContext) context;
return webContext.getBrowser();
diff --git a/tests/testbench/com/vaadin/tests/components/AddRemoveSetStyleNamesTest.html b/tests/testbench/com/vaadin/tests/components/AddRemoveSetStyleNamesTest.html
new file mode 100644
index 0000000000..512140cc6d
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/AddRemoveSetStyleNamesTest.html
@@ -0,0 +1,456 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="http://localhost:8888/" />
+<title>AddRemoveSetStyleNamesTest</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">AddRemoveSetStyleNamesTest</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>run/com.vaadin.tests.components.AddRemoveSetStyleNamesTest?restartApplication</td>
+ <td></td>
+</tr>
+<!--add style 1. assert style1-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]#popupButton</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>style1</td>
+</tr>
+<!--add style 2. assert style1, style2-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[1]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-style2</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>style2</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]#popupButton</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-style2</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>style2</td>
+</tr>
+<!--remove style 1. assertNot style1. assert style2-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-style1</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-style2</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>style2</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]#popupButton</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-style1</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-style2</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>style2</td>
+</tr>
+<!--remove style 2. assertNot style1, style2-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[1]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-style1</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-style2</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>style2</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]#popupButton</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-style1</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-style2</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>style2</td>
+</tr>
+<!--add style1. set thestyle. assertNot style1. assert thestyle.-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[2]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-style1</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>thestyle</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-thestyle</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]#popupButton</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-style1</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-thestyle</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>thestyle</td>
+</tr>
+<!--remove thestyle. assertNot thestyle-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[2]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>thestyle</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-thestyle</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]#popupButton</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-thestyle</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>thestyle</td>
+</tr>
+<!--set thestyle. add style1. assert thestyle, style1-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[2]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>thestyle</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-thestyle</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]#popupButton</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-thestyle</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>thestyle</td>
+</tr>
+<!--remove style 1. assertNot style1. assert thestyle-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-style1</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-thestyle</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>thestyle</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]#popupButton</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-style1</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-thestyle</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>thestyle</td>
+</tr>
+<!--add style 1. remove thestyle. assertNot style1, thestyle-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[2]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>v-datefield-thestyle</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]</td>
+ <td>thestyle</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::/VVerticalLayout[0]/VVerticalLayout[0]/VPopupCalendar[0]#popupButton</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-style1</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>style1</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>v-datefield-popup-thestyle</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsAddRemoveSetStyleNamesTest::Root/VOverlay[0]</td>
+ <td>thestyle</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/AddRemoveSetStyleNamesTest.java b/tests/testbench/com/vaadin/tests/components/AddRemoveSetStyleNamesTest.java
new file mode 100644
index 0000000000..926af72a2f
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/AddRemoveSetStyleNamesTest.java
@@ -0,0 +1,83 @@
+package com.vaadin.tests.components;
+
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.PopupDateField;
+
+public class AddRemoveSetStyleNamesTest extends TestBase {
+
+ private String style1 = "style1";
+ private String style2 = "style2";
+ private String thestyle = "thestyle";
+
+ private PopupDateField popupDateField;
+ private Button button1;
+ private Button button2;
+ private Button button3;
+
+ private Button.ClickListener listener;
+
+ @Override
+ protected void setup() {
+ popupDateField = new PopupDateField("PopupDateField");
+ popupDateField.setRequired(true);
+ popupDateField.setRequiredError("abcd");
+ addComponent(popupDateField);
+
+ listener = new Button.ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ String style = (String) event.getButton().getData();
+ setComponentsStyle(style, !popupDateField.getStyleName()
+ .contains(style), event.getButton());
+ }
+ };
+
+ button1 = new Button("Add style1", listener);
+ button1.setData(style1);
+ addComponent(button1);
+
+ button2 = new Button("Add style2", listener);
+ button2.setData(style2);
+ addComponent(button2);
+
+ button3 = new Button("Set thestyle", new Button.ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ if (popupDateField.getStyleName().contains(thestyle)) {
+ popupDateField.removeStyleName(thestyle);
+ button3.setCaption("Set thestyle");
+ } else {
+ popupDateField.setStyleName(thestyle);
+ button1.setCaption("Add style1");
+ button2.setCaption("Add style2");
+ button3.setCaption("Remove thestyle");
+ }
+ }
+ });
+ addComponent(button3);
+ }
+
+ private void setComponentsStyle(String style, boolean add, Button button) {
+ if (add) {
+ popupDateField.addStyleName(style);
+ button.setCaption("Remove " + style);
+ } else {
+ popupDateField.removeStyleName(style);
+ button.setCaption("Add " + style);
+ }
+ }
+
+ @Override
+ protected String getDescription() {
+ return "If a widget has set multiple css class names, AbtractComponentConnector.getStyleNames() removes all but first one of them. This is not acceptable, because we should be able to create connector for any existing GWT component and thus we do not know it it depends on multiple css class names.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 8664;
+ }
+
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/components/ComponentTestCase.java b/tests/testbench/com/vaadin/tests/components/ComponentTestCase.java
index a2c186df7e..e949d62f71 100644
--- a/tests/testbench/com/vaadin/tests/components/ComponentTestCase.java
+++ b/tests/testbench/com/vaadin/tests/components/ComponentTestCase.java
@@ -114,6 +114,7 @@ public abstract class ComponentTestCase<T extends AbstractComponent> extends
CheckBox checkBox = new CheckBox(caption);
checkBox.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
boolean enabled = (Boolean) event.getProperty().getValue();
doCommand(command, enabled);
@@ -136,6 +137,7 @@ public abstract class ComponentTestCase<T extends AbstractComponent> extends
Button button = new Button(caption);
button.setData(Boolean.FALSE);
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Button b = event.getButton();
boolean state = (Boolean) b.getData();
@@ -163,6 +165,7 @@ public abstract class ComponentTestCase<T extends AbstractComponent> extends
select.setNullSelectionAllowed(false);
select.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Object itemId = event.getProperty().getValue();
Item item = select.getItem(itemId);
diff --git a/tests/testbench/com/vaadin/tests/components/CustomComponentwithUndefinedSize.java b/tests/testbench/com/vaadin/tests/components/CustomComponentwithUndefinedSize.java
index 57b81ddecc..9fe13c457a 100644
--- a/tests/testbench/com/vaadin/tests/components/CustomComponentwithUndefinedSize.java
+++ b/tests/testbench/com/vaadin/tests/components/CustomComponentwithUndefinedSize.java
@@ -57,6 +57,7 @@ public class CustomComponentwithUndefinedSize extends TestBase {
Button button = new Button("Change panel size",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
switch (step++ % 4) {
case 0:
diff --git a/tests/testbench/com/vaadin/tests/components/DisableEnableCascade.java b/tests/testbench/com/vaadin/tests/components/DisableEnableCascade.java
index aa83ff7a42..cd284224a0 100644
--- a/tests/testbench/com/vaadin/tests/components/DisableEnableCascade.java
+++ b/tests/testbench/com/vaadin/tests/components/DisableEnableCascade.java
@@ -33,6 +33,7 @@ public class DisableEnableCascade extends TestBase {
enableDisablePanelButton = new Button("Disable panel",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
enableDisable(outerPanel, enableDisablePanelButton);
@@ -42,6 +43,7 @@ public class DisableEnableCascade extends TestBase {
enableDisableTabSheetButton = new Button("Disable TabSheet",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
enableDisable(innerTabsheet,
enableDisableTabSheetButton);
@@ -52,6 +54,7 @@ public class DisableEnableCascade extends TestBase {
enableDisableButtonButton = new Button("Disable Button",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
enableDisable(button, enableDisableButtonButton);
diff --git a/tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.java b/tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.java
index f3391afd1f..0279a92437 100644
--- a/tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.java
+++ b/tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.java
@@ -55,6 +55,7 @@ public class DisableEnableCascadeStyles extends TestBase {
enableDisablePanelButton = new Button("Disable panel",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
enableDisable(outerPanel, enableDisablePanelButton);
@@ -64,6 +65,7 @@ public class DisableEnableCascadeStyles extends TestBase {
enableDisableTabSheetButton = new Button("Disable TabSheet",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
enableDisable(innerTabsheet,
enableDisableTabSheetButton);
@@ -74,6 +76,7 @@ public class DisableEnableCascadeStyles extends TestBase {
enableDisableLayoutButton = new Button("Disable Tab content (Layout)",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
enableDisable(layout, enableDisableLayoutButton);
@@ -82,6 +85,7 @@ public class DisableEnableCascadeStyles extends TestBase {
enableDisableComponentsButton = new Button("Disable Layout Components",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
for (Iterator<Component> i = layout
.getComponentIterator(); i.hasNext();) {
diff --git a/tests/testbench/com/vaadin/tests/components/FocusAndBlurListeners.java b/tests/testbench/com/vaadin/tests/components/FocusAndBlurListeners.java
index 267807b16b..7987c800f9 100644
--- a/tests/testbench/com/vaadin/tests/components/FocusAndBlurListeners.java
+++ b/tests/testbench/com/vaadin/tests/components/FocusAndBlurListeners.java
@@ -23,6 +23,7 @@ public class FocusAndBlurListeners extends TestBase {
private FocusListener focusListener = new FocusListener() {
+ @Override
public void focus(FocusEvent event) {
Label msg = new Label(new Date() + " Focused "
+ event.getComponent().getCaption());
@@ -31,6 +32,7 @@ public class FocusAndBlurListeners extends TestBase {
};
private BlurListener blurListener = new BlurListener() {
+ @Override
public void blur(BlurEvent event) {
Label msg = new Label(new Date() + " Blurred "
+ event.getComponent().getCaption());
@@ -74,6 +76,7 @@ public class FocusAndBlurListeners extends TestBase {
private int i;
+ @Override
public void buttonClick(ClickEvent event) {
ogm.addItem("newItem" + i++);
diff --git a/tests/testbench/com/vaadin/tests/components/FocusFromShortcutAction.java b/tests/testbench/com/vaadin/tests/components/FocusFromShortcutAction.java
index 124f2b9cdf..cffc8ca27b 100644
--- a/tests/testbench/com/vaadin/tests/components/FocusFromShortcutAction.java
+++ b/tests/testbench/com/vaadin/tests/components/FocusFromShortcutAction.java
@@ -20,6 +20,7 @@ public class FocusFromShortcutAction extends TestBase {
addComponent(select);
addComponent(text);
Button focusText = new Button("Focus text", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
text.focus();
}
@@ -29,6 +30,7 @@ public class FocusFromShortcutAction extends TestBase {
addComponent(focusText);
Button focusSelect = new Button("Focus select",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
select.focus();
}
diff --git a/tests/testbench/com/vaadin/tests/components/LayoutAttachListenerInfo.java b/tests/testbench/com/vaadin/tests/components/LayoutAttachListenerInfo.java
index dc07c35f62..6e54c0d9f4 100644
--- a/tests/testbench/com/vaadin/tests/components/LayoutAttachListenerInfo.java
+++ b/tests/testbench/com/vaadin/tests/components/LayoutAttachListenerInfo.java
@@ -27,6 +27,7 @@ public class LayoutAttachListenerInfo extends TestBase {
layouts.select("AbsoluteLayout");
layouts.setImmediate(true);
layouts.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (event.getProperty().getValue().equals("AbsoluteLayout")) {
testAbsoluteLayout();
@@ -64,6 +65,7 @@ public class LayoutAttachListenerInfo extends TestBase {
a.setWidth("300px");
a.setHeight("300px");
a.addListener(new ComponentContainer.ComponentAttachListener() {
+ @Override
public void componentAttachedToContainer(ComponentAttachEvent event) {
AbsoluteLayout layout = (AbsoluteLayout) event.getContainer();
AbsoluteLayout.ComponentPosition position = layout
@@ -78,6 +80,7 @@ public class LayoutAttachListenerInfo extends TestBase {
content.addComponent(new Button("Attach label to layout",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
a.addComponent(new Label("X"), "top:50px;left:50px");
}
@@ -91,6 +94,7 @@ public class LayoutAttachListenerInfo extends TestBase {
v.setWidth("300px");
v.setHeight("300px");
v.addListener(new ComponentContainer.ComponentAttachListener() {
+ @Override
public void componentAttachedToContainer(ComponentAttachEvent event) {
VerticalLayout layout = (VerticalLayout) event.getContainer();
getMainWindow().showNotification(
@@ -104,6 +108,7 @@ public class LayoutAttachListenerInfo extends TestBase {
content.addComponent(new Button("Attach label to layout",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
v.addComponent(new Label("X"));
@@ -118,6 +123,7 @@ public class LayoutAttachListenerInfo extends TestBase {
g.setWidth("300px");
g.setHeight("300px");
g.addListener(new ComponentContainer.ComponentAttachListener() {
+ @Override
public void componentAttachedToContainer(ComponentAttachEvent event) {
GridLayout layout = (GridLayout) event.getContainer();
GridLayout.Area area = layout.getComponentArea(event
@@ -133,6 +139,7 @@ public class LayoutAttachListenerInfo extends TestBase {
content.addComponent(new Button("Attach label to layout",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
g.addComponent(new Label("X"), 2, 3);
}
diff --git a/tests/testbench/com/vaadin/tests/components/LongTooltip.html b/tests/testbench/com/vaadin/tests/components/LongTooltip.html
index ac317380b8..a5055741f1 100644
--- a/tests/testbench/com/vaadin/tests/components/LongTooltip.html
+++ b/tests/testbench/com/vaadin/tests/components/LongTooltip.html
@@ -36,8 +36,8 @@
</tr>
<!--Hide tooltip-->
<tr>
- <td>mouseOut</td>
- <td>vaadin=runcomvaadintestscomponentsLongTooltip::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentsLongTooltip::/VVerticalLayout[0]/VVerticalLayout[0]/VGridLayout[0]</td>
<td>55,43</td>
</tr>
<!--Wait for tooltip to disappear. Cannot for some reason use waitForNotVisible-->
@@ -63,8 +63,8 @@
</tr>
<!--Hide tooltip-->
<tr>
- <td>mouseOut</td>
- <td>vaadin=runcomvaadintestscomponentsLongTooltip::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentsLongTooltip::/VVerticalLayout[0]/VVerticalLayout[0]/VGridLayout[0]</td>
<td>55,43</td>
</tr>
<!--Wait for tooltip to disappear. Cannot for some reason use waitForNotVisible-->
@@ -113,8 +113,8 @@
</tr>
<!--Hide tooltip-->
<tr>
- <td>mouseOut</td>
- <td>vaadin=runcomvaadintestscomponentsLongTooltip::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentsLongTooltip::/VVerticalLayout[0]/VVerticalLayout[0]/VGridLayout[0]</td>
<td>55,43</td>
</tr>
<!--Wait for tooltip to disappear. Cannot for some reason use waitForNotVisible-->
@@ -140,8 +140,8 @@
</tr>
<!--Hide tooltip-->
<tr>
- <td>mouseOut</td>
- <td>vaadin=runcomvaadintestscomponentsLongTooltip::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentsLongTooltip::/VVerticalLayout[0]/VVerticalLayout[0]/VGridLayout[0]</td>
<td>55,43</td>
</tr>
<!--Wait for tooltip to disappear. Cannot for some reason use waitForNotVisible-->
@@ -190,8 +190,8 @@
</tr>
<!--Hide tooltip-->
<tr>
- <td>mouseOut</td>
- <td>vaadin=runcomvaadintestscomponentsLongTooltip::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentsLongTooltip::/VVerticalLayout[0]/VVerticalLayout[0]/VGridLayout[0]</td>
<td>55,43</td>
</tr>
<!--Wait for tooltip to disappear. Cannot for some reason use waitForNotVisible-->
@@ -217,8 +217,8 @@
</tr>
<!--Hide tooltip-->
<tr>
- <td>mouseOut</td>
- <td>vaadin=runcomvaadintestscomponentsLongTooltip::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentsLongTooltip::/VVerticalLayout[0]/VVerticalLayout[0]/VGridLayout[0]</td>
<td>55,43</td>
</tr>
<!--Wait for tooltip to disappear. Cannot for some reason use waitForNotVisible-->
@@ -267,8 +267,8 @@
</tr>
<!--Hide tooltip-->
<tr>
- <td>mouseOut</td>
- <td>vaadin=runcomvaadintestscomponentsLongTooltip::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentsLongTooltip::/VVerticalLayout[0]/VVerticalLayout[0]/VGridLayout[0]</td>
<td>55,43</td>
</tr>
<!--Wait for tooltip to disappear. Cannot for some reason use waitForNotVisible-->
@@ -294,8 +294,8 @@
</tr>
<!--Hide tooltip-->
<tr>
- <td>mouseOut</td>
- <td>vaadin=runcomvaadintestscomponentsLongTooltip::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentsLongTooltip::/VVerticalLayout[0]/VVerticalLayout[0]/VGridLayout[0]</td>
<td>55,43</td>
</tr>
<!--Wait for tooltip to disappear. Cannot for some reason use waitForNotVisible-->
@@ -319,7 +319,6 @@
<td></td>
<td>tooltip-upper-left-3</td>
</tr>
-
</tbody></table>
</body>
</html>
diff --git a/tests/testbench/com/vaadin/tests/components/TestBase.java b/tests/testbench/com/vaadin/tests/components/TestBase.java
index b3c0f63dcb..a66f0efe64 100644
--- a/tests/testbench/com/vaadin/tests/components/TestBase.java
+++ b/tests/testbench/com/vaadin/tests/components/TestBase.java
@@ -1,6 +1,6 @@
package com.vaadin.tests.components;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Component;
import com.vaadin.ui.Label;
import com.vaadin.ui.Root.LegacyWindow;
diff --git a/tests/testbench/com/vaadin/tests/components/TouchScrollables.java b/tests/testbench/com/vaadin/tests/components/TouchScrollables.java
index 8ad12da85f..415f660c62 100644
--- a/tests/testbench/com/vaadin/tests/components/TouchScrollables.java
+++ b/tests/testbench/com/vaadin/tests/components/TouchScrollables.java
@@ -11,7 +11,7 @@ import com.vaadin.event.dd.DragAndDropEvent;
import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
import com.vaadin.event.dd.acceptcriteria.SourceIs;
-import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.tests.util.Person;
import com.vaadin.tests.util.PersonContainer;
import com.vaadin.tests.util.TestUtils;
@@ -79,12 +79,14 @@ public class TouchScrollables extends TestBase {
final Label l = l50;
Button button = new Button("Scroll to label 50",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getLayout().getRoot().scrollIntoView(l);
}
});
cssLayout.addComponent(button);
button = new Button("Scroll to 100px", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
p.setScrollTop(100);
}
@@ -117,6 +119,7 @@ public class TouchScrollables extends TestBase {
Button button = new Button("Toggle lazyloading");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (table.getCacheRate() == 100) {
table.setCacheRate(2);
@@ -131,6 +134,7 @@ public class TouchScrollables extends TestBase {
button = new Button("Toggle selectable");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setSelectable(!table.isSelectable());
}
@@ -159,6 +163,7 @@ public class TouchScrollables extends TestBase {
private Component getSubWindowTest() {
Button b = new Button("Open subwindow", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Window w = new Window("Subwindow");
w.center();
@@ -185,10 +190,12 @@ public class TouchScrollables extends TestBase {
Action[] actions = new Action[] { new Action("FOO"),
new Action("BAR"), new Action("CAR") };
+ @Override
public Action[] getActions(Object target, Object sender) {
return actions;
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
Notification.show(action.getCaption());
@@ -206,10 +213,12 @@ public class TouchScrollables extends TestBase {
// accept only drags from this table
AcceptCriterion crit = new SourceIs(table);
+ @Override
public AcceptCriterion getAcceptCriterion() {
return crit;
}
+ @Override
public void drop(DragAndDropEvent dropEvent) {
AbstractSelectTargetDetails dropTargetData = (AbstractSelectTargetDetails) dropEvent
.getTargetDetails();
diff --git a/tests/testbench/com/vaadin/tests/components/absolutelayout/MoveComponentsFromAbsoluteLayoutToInnerLayout.java b/tests/testbench/com/vaadin/tests/components/absolutelayout/MoveComponentsFromAbsoluteLayoutToInnerLayout.java
index 139ed5bb0b..826b7cee07 100644
--- a/tests/testbench/com/vaadin/tests/components/absolutelayout/MoveComponentsFromAbsoluteLayoutToInnerLayout.java
+++ b/tests/testbench/com/vaadin/tests/components/absolutelayout/MoveComponentsFromAbsoluteLayoutToInnerLayout.java
@@ -22,6 +22,7 @@ public class MoveComponentsFromAbsoluteLayoutToInnerLayout extends TestBase {
testButton = new Button("Click to move to inner layout",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
vl.addComponent(testButton);
}
@@ -37,6 +38,7 @@ public class MoveComponentsFromAbsoluteLayoutToInnerLayout extends TestBase {
Button b = new Button("Repaint inner layout",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
vl.requestRepaint();
}
diff --git a/tests/testbench/com/vaadin/tests/components/abstractcomponent/AllComponentTooltipTest.java b/tests/testbench/com/vaadin/tests/components/abstractcomponent/AllComponentTooltipTest.java
new file mode 100644
index 0000000000..17cc4270fb
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/abstractcomponent/AllComponentTooltipTest.java
@@ -0,0 +1,50 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.tests.components.abstractcomponent;
+
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.tests.VaadinClasses;
+import com.vaadin.tests.components.AbstractTestRoot;
+import com.vaadin.ui.AbstractComponent;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.GridLayout;
+
+public class AllComponentTooltipTest extends AbstractTestRoot {
+
+ @Override
+ protected void setup(WrappedRequest request) {
+ setContent(new GridLayout(5, 5));
+ for (Class<? extends Component> cls : VaadinClasses.getComponents()) {
+ try {
+ AbstractComponent c = (AbstractComponent) cls.newInstance();
+ if (c instanceof LegacyWindow) {
+ continue;
+ }
+
+ c.setDebugId(cls.getName());
+ c.setCaption(cls.getName());
+ c.setDescription(cls.getName());
+ c.setWidth("100px");
+ c.setHeight("100px");
+ getContent().addComponent(c);
+ System.out.println("Added " + cls.getName());
+ } catch (Exception e) {
+ System.err.println("Could not instatiate " + cls.getName());
+ }
+ }
+ }
+
+ @Override
+ protected String getTestDescription() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/abstractcomponent/EnableState.java b/tests/testbench/com/vaadin/tests/components/abstractcomponent/EnableState.java
index 9261962b0d..f8931ecdea 100644
--- a/tests/testbench/com/vaadin/tests/components/abstractcomponent/EnableState.java
+++ b/tests/testbench/com/vaadin/tests/components/abstractcomponent/EnableState.java
@@ -20,6 +20,7 @@ public class EnableState extends AbstractTestCase {
CheckBox enable = new CheckBox("Toggle button enabled", true);
enable.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
boolean enabled = (Boolean) event.getProperty().getValue();
button.setEnabled(enabled);
@@ -31,6 +32,7 @@ public class EnableState extends AbstractTestCase {
CheckBox caption = new CheckBox("Toggle button caption", true);
caption.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
button.setCaption(button.getCaption() + "+");
}
@@ -40,6 +42,7 @@ public class EnableState extends AbstractTestCase {
CheckBox visible = new CheckBox("Toggle panel visibility", true);
visible.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
boolean visible = (Boolean) event.getProperty().getValue();
@@ -51,6 +54,7 @@ public class EnableState extends AbstractTestCase {
CheckBox panelEnable = new CheckBox("Toggle panel enabled", true);
panelEnable.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
boolean enabled = (Boolean) event.getProperty().getValue();
panel.setEnabled(enabled);
diff --git a/tests/testbench/com/vaadin/tests/components/abstractcomponent/TooltipTests.html b/tests/testbench/com/vaadin/tests/components/abstractcomponent/TooltipTests.html
new file mode 100644
index 0000000000..3cea965690
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/abstractcomponent/TooltipTests.html
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="http://localhost:8888/" />
+<title>TooltipTests</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TooltipTests</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.abstractcomponent.TooltipTests?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>showTooltip</td>
+ <td>//div[@id='label']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>no_tooltip</td>
+</tr>
+<tr>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentsabstractcomponentTooltipTests::/VVerticalLayout[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsabstractcomponentTooltipTests::/VVerticalLayout[0]/VVerticalLayout[0]/VHorizontalLayout[0]/VCheckBox[0]/domChild[0]</td>
+ <td>10,7</td>
+</tr>
+<tr>
+ <td>showTooltip</td>
+ <td>//div[@id='label']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>panel_tooltip</td>
+</tr>
+<tr>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentsabstractcomponentTooltipTests::/VVerticalLayout[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsabstractcomponentTooltipTests::/VVerticalLayout[0]/VVerticalLayout[0]/VHorizontalLayout[0]/VCheckBox[1]/domChild[0]</td>
+ <td>8,6</td>
+</tr>
+<tr>
+ <td>showTooltip</td>
+ <td>//div[@id='label']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>layout_tooltip</td>
+</tr>
+<tr>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentsabstractcomponentTooltipTests::/VVerticalLayout[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsabstractcomponentTooltipTests::/VVerticalLayout[0]/VVerticalLayout[0]/VHorizontalLayout[0]/VCheckBox[2]/domChild[0]</td>
+ <td>5,5</td>
+</tr>
+<tr>
+ <td>showTooltip</td>
+ <td>//div[@id='label']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>label_tooltip</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/abstractcomponent/TooltipTests.java b/tests/testbench/com/vaadin/tests/components/abstractcomponent/TooltipTests.java
new file mode 100644
index 0000000000..300abe1851
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/abstractcomponent/TooltipTests.java
@@ -0,0 +1,100 @@
+package com.vaadin.tests.components.abstractcomponent;
+
+import com.vaadin.data.Property;
+import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.CheckBox;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Panel;
+import com.vaadin.ui.VerticalLayout;
+
+public class TooltipTests extends TestBase {
+
+ private Panel panel;
+ private VerticalLayout layout;
+ private Label label;
+
+ @Override
+ protected String getDescription() {
+ return "Generic tooltip handling tests";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 8425;
+ }
+
+ @Override
+ protected void setup() {
+ HorizontalLayout topLayout = new HorizontalLayout();
+ addComponent(topLayout);
+ CheckBox panelCbox = new CheckBox("Panel");
+ panelCbox.addListener(panelListener);
+ topLayout.addComponent(panelCbox);
+ CheckBox layoutCbox = new CheckBox("Layout");
+ layoutCbox.addListener(layoutListener);
+ topLayout.addComponent(layoutCbox);
+ CheckBox labelCbox = new CheckBox("Label");
+ topLayout.addComponent(labelCbox);
+ labelCbox.addListener(labelListener);
+
+ panel = new Panel();
+ panel.setCaption("Panel caption");
+ panel.setDebugId("panel");
+ addComponent(panel);
+
+ layout = new VerticalLayout();
+ layout.setDebugId("layout");
+ layout.setMargin(true);
+ layout.setSpacing(true);
+ panel.setContent(layout);
+
+ label = new Label("Hover me!");
+ label.setDebugId("label");
+ layout.addComponent(label);
+ }
+
+ private final Property.ValueChangeListener panelListener = new Property.ValueChangeListener() {
+
+ @Override
+ public void valueChange(ValueChangeEvent event) {
+ boolean value = (Boolean) (event.getProperty().getValue());
+ if (value) {
+ panel.setDescription("I'm panel!");
+ } else {
+ panel.setDescription("");
+ }
+ }
+
+ };
+
+ private final Property.ValueChangeListener layoutListener = new Property.ValueChangeListener() {
+
+ @Override
+ public void valueChange(ValueChangeEvent event) {
+ boolean value = (Boolean) (event.getProperty().getValue());
+ if (value) {
+ layout.setDescription("I'm layout!");
+ } else {
+ layout.setDescription("");
+ }
+ }
+
+ };
+
+ private final Property.ValueChangeListener labelListener = new Property.ValueChangeListener() {
+
+ @Override
+ public void valueChange(ValueChangeEvent event) {
+ boolean value = (Boolean) (event.getProperty().getValue());
+ if (value) {
+ label.setDescription("I'm label!");
+ } else {
+ label.setDescription("");
+ }
+ }
+
+ };
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractComponentDataBindingTest.java b/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractComponentDataBindingTest.java
index 93ba858e37..9b29ae1bab 100644
--- a/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractComponentDataBindingTest.java
+++ b/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractComponentDataBindingTest.java
@@ -45,6 +45,7 @@ public abstract class AbstractComponentDataBindingTest extends TestBase
cb.setImmediate(true);
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
updateLocale((Locale) localeSelect.getValue());
}
@@ -91,6 +92,7 @@ public abstract class AbstractComponentDataBindingTest extends TestBase
return null;
}
+ @Override
public void valueChange(ValueChangeEvent event) {
AbstractField field = (AbstractField) event.getProperty();
// if (field == localeSelect) {
diff --git a/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.java b/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.java
index 5d0e0fe488..aa630c79fd 100644
--- a/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.java
+++ b/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.java
@@ -33,6 +33,7 @@ public class AbstractFieldCommitWithInvalidValues extends TestBase {
Button b = new Button("Commit", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
tf.commit();
diff --git a/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldDataSourceReadOnly.java b/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldDataSourceReadOnly.java
index 780130847a..f1b96d24fd 100644
--- a/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldDataSourceReadOnly.java
+++ b/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldDataSourceReadOnly.java
@@ -34,6 +34,7 @@ public class AbstractFieldDataSourceReadOnly extends TestBase {
// Button
Button button = new Button("Make data source read-only");
button.addListener(new Listener() {
+ @Override
public void componentEvent(Event event) {
stateHolder.buttonClicked();
}
diff --git a/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldTest.java b/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldTest.java
index 716f80e23f..efba67199d 100644
--- a/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldTest.java
+++ b/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldTest.java
@@ -24,6 +24,8 @@ public abstract class AbstractFieldTest<T extends AbstractField<?>> extends
AbstractComponentTest<T> implements ValueChangeListener,
ReadOnlyStatusChangeListener {
+ private boolean sortValueChanges = true;
+
@Override
protected void createActions() {
super.createActions();
@@ -65,6 +67,7 @@ public abstract class AbstractFieldTest<T extends AbstractField<?>> extends
.addItem("AbstractField", null);
abstractField.addItem("Show value", new MenuBar.Command() {
+ @Override
public void menuSelected(MenuItem selectedItem) {
for (T a : getTestComponents()) {
log(a.getClass().getSimpleName() + " value: "
@@ -72,6 +75,18 @@ public abstract class AbstractFieldTest<T extends AbstractField<?>> extends
}
}
});
+
+ MenuItem sortValueChangesItem = abstractField.addItem(
+ "Show sorted value changes", new MenuBar.Command() {
+ @Override
+ public void menuSelected(MenuItem selectedItem) {
+ sortValueChanges = selectedItem.isChecked();
+ log("Show sorted value changes: "
+ + sortValueChanges);
+ }
+ });
+ sortValueChangesItem.setCheckable(true);
+ sortValueChangesItem.setChecked(true);
}
}
@@ -101,6 +116,7 @@ public abstract class AbstractFieldTest<T extends AbstractField<?>> extends
protected Command<T, Boolean> valueChangeListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
c.addListener((ValueChangeListener) AbstractFieldTest.this);
@@ -111,6 +127,7 @@ public abstract class AbstractFieldTest<T extends AbstractField<?>> extends
};
protected Command<T, Boolean> readonlyStatusChangeListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
c.addListener((ReadOnlyStatusChangeListener) AbstractFieldTest.this);
@@ -122,11 +139,13 @@ public abstract class AbstractFieldTest<T extends AbstractField<?>> extends
protected Command<T, Object> setValueCommand = new Command<T, Object>() {
+ @Override
public void execute(T c, Object value, Object data) {
c.setValue(value);
}
};
+ @Override
public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {
log(event.getClass().getSimpleName() + ", new value: "
+ getValue(event.getProperty()));
@@ -135,7 +154,7 @@ public abstract class AbstractFieldTest<T extends AbstractField<?>> extends
@SuppressWarnings({ "rawtypes", "unchecked" })
private String getValue(Property property) {
Object o = property.getValue();
- if (o instanceof Collection) {
+ if (o instanceof Collection && sortValueChanges) {
// Sort collections to avoid problems with values printed in
// different order
try {
@@ -168,6 +187,7 @@ public abstract class AbstractFieldTest<T extends AbstractField<?>> extends
}
+ @Override
public void readOnlyStatusChange(ReadOnlyStatusChangeEvent event) {
log(event.getClass().getSimpleName());
}
diff --git a/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractTextFieldTest.java b/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractTextFieldTest.java
index b68134f379..1f407c710f 100644
--- a/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractTextFieldTest.java
+++ b/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractTextFieldTest.java
@@ -14,12 +14,14 @@ public abstract class AbstractTextFieldTest<T extends AbstractTextField>
private Command<T, Integer> maxlengthCommand = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer value, Object data) {
c.setMaxLength(value);
}
};
private Command<T, Boolean> nullSelectionAllowedCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
c.setNullSettingAllowed(value);
@@ -27,18 +29,21 @@ public abstract class AbstractTextFieldTest<T extends AbstractTextField>
};
private Command<T, String> nullRepresentationCommand = new Command<T, String>() {
+ @Override
public void execute(T c, String value, Object data) {
c.setNullRepresentation(value);
}
};
private Command<T, String> inputPromptCommand = new Command<T, String>() {
+ @Override
public void execute(T c, String value, Object data) {
c.setInputPrompt(value);
}
};
private Command<T, Boolean> textChangeListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
c.addListener((TextChangeListener) AbstractTextFieldTest.this);
@@ -49,24 +54,28 @@ public abstract class AbstractTextFieldTest<T extends AbstractTextField>
};
private Command<T, Integer> colsCommand = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer value, Object data) {
c.setColumns(value);
}
};
private Command<T, TextChangeEventMode> textChangeEventModeCommand = new Command<T, TextChangeEventMode>() {
+ @Override
public void execute(T c, TextChangeEventMode value, Object data) {
c.setTextChangeEventMode(value);
}
};
private Command<T, Integer> textChangeTimeoutCommand = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer value, Object data) {
c.setTextChangeTimeout(value);
}
};
private Command<T, Range> selectionRangeCommand = new Command<T, Range>() {
+ @Override
public void execute(T c, Range value, Object data) {
c.setSelectionRange(value.getStart(),
value.getEnd() - value.getStart());
@@ -74,6 +83,7 @@ public abstract class AbstractTextFieldTest<T extends AbstractTextField>
}
};
private Command<T, Object> selectAllCommand = new Command<T, Object>() {
+ @Override
public void execute(T c, Object value, Object data) {
c.selectAll();
}
@@ -81,6 +91,7 @@ public abstract class AbstractTextFieldTest<T extends AbstractTextField>
private Command<T, Integer> setCursorPositionCommand = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer value, Object data) {
c.setCursorPosition(value);
}
@@ -230,6 +241,7 @@ public abstract class AbstractTextFieldTest<T extends AbstractTextField>
}
+ @Override
public void textChange(TextChangeEvent event) {
AbstractTextField tf = (AbstractTextField) event.getComponent();
log("TextChangeEvent: text='" + event.getText() + "', cursor position="
diff --git a/tests/testbench/com/vaadin/tests/components/abstractfield/DateFieldBasedOnLong.java b/tests/testbench/com/vaadin/tests/components/abstractfield/DateFieldBasedOnLong.java
index deea0fbe0a..aa8c7ff778 100644
--- a/tests/testbench/com/vaadin/tests/components/abstractfield/DateFieldBasedOnLong.java
+++ b/tests/testbench/com/vaadin/tests/components/abstractfield/DateFieldBasedOnLong.java
@@ -24,6 +24,7 @@ public class DateFieldBasedOnLong extends AbstractComponentDataBindingTest {
addComponent(new Button("Set property value to 10000L",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
property.setValue(10000L);
diff --git a/tests/testbench/com/vaadin/tests/components/abstractfield/IntegerDoubleFieldsWithDataSource.java b/tests/testbench/com/vaadin/tests/components/abstractfield/IntegerDoubleFieldsWithDataSource.java
index c13aadd895..01fcb02b77 100644
--- a/tests/testbench/com/vaadin/tests/components/abstractfield/IntegerDoubleFieldsWithDataSource.java
+++ b/tests/testbench/com/vaadin/tests/components/abstractfield/IntegerDoubleFieldsWithDataSource.java
@@ -34,6 +34,7 @@ public class IntegerDoubleFieldsWithDataSource extends TestBase {
tf.setImmediate(true);
tf.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
try {
log.log("Value for " + tf.getCaption() + " changed to "
diff --git a/tests/testbench/com/vaadin/tests/components/abstractfield/IntegerFieldWithoutDataSource.java b/tests/testbench/com/vaadin/tests/components/abstractfield/IntegerFieldWithoutDataSource.java
index b25dc9d953..929247fc80 100644
--- a/tests/testbench/com/vaadin/tests/components/abstractfield/IntegerFieldWithoutDataSource.java
+++ b/tests/testbench/com/vaadin/tests/components/abstractfield/IntegerFieldWithoutDataSource.java
@@ -29,6 +29,7 @@ public class IntegerFieldWithoutDataSource extends TestBase {
tf.setImmediate(true);
tf.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
try {
log.log("Value for " + tf.getCaption() + " changed to "
diff --git a/tests/testbench/com/vaadin/tests/components/abstractfield/ShortcutAddAndRemove.java b/tests/testbench/com/vaadin/tests/components/abstractfield/ShortcutAddAndRemove.java
index 26720d67f3..309e297374 100644
--- a/tests/testbench/com/vaadin/tests/components/abstractfield/ShortcutAddAndRemove.java
+++ b/tests/testbench/com/vaadin/tests/components/abstractfield/ShortcutAddAndRemove.java
@@ -20,6 +20,7 @@ public class ShortcutAddAndRemove extends TestBase {
final Button logButton = new Button("Log a row (enter shortcut)");
logButton.setClickShortcut(KeyCode.ENTER);
logButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log("Log button was clicked");
}
@@ -27,6 +28,7 @@ public class ShortcutAddAndRemove extends TestBase {
final Button removeShortcut = new Button("Remove shortcut");
removeShortcut.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
logButton.removeClickShortcut();
logButton.setCaption("Log a row (no shortcut)");
@@ -34,6 +36,7 @@ public class ShortcutAddAndRemove extends TestBase {
});
final Button addShortcut = new Button("Add shortcut");
addShortcut.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
logButton.setClickShortcut(KeyCode.ENTER);
logButton.setCaption("Log a row (enter shortcut)");
diff --git a/tests/testbench/com/vaadin/tests/components/abstractfield/TextFieldConversions.java b/tests/testbench/com/vaadin/tests/components/abstractfield/TextFieldConversions.java
index 8ce214918d..fc08a4505c 100644
--- a/tests/testbench/com/vaadin/tests/components/abstractfield/TextFieldConversions.java
+++ b/tests/testbench/com/vaadin/tests/components/abstractfield/TextFieldConversions.java
@@ -31,6 +31,7 @@ public class TextFieldConversions extends AbstractComponentDataBindingTest {
dataType.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
tf.setPropertyDataSource(new ObjectProperty<Object>(o,
(Class<Object>) dataType.getValue()));
@@ -42,6 +43,7 @@ public class TextFieldConversions extends AbstractComponentDataBindingTest {
addComponent(tf);
tf.setErrorHandler(new ComponentErrorHandler() {
+ @Override
public boolean handleComponentError(ComponentErrorEvent event) {
tf.setComponentError(new UserError("Invalid value"));
return true;
diff --git a/tests/testbench/com/vaadin/tests/components/abstractfield/Vaadin6ImplicitDoubleConverter.java b/tests/testbench/com/vaadin/tests/components/abstractfield/Vaadin6ImplicitDoubleConverter.java
index 0228a59f06..a9aa4d2a43 100644
--- a/tests/testbench/com/vaadin/tests/components/abstractfield/Vaadin6ImplicitDoubleConverter.java
+++ b/tests/testbench/com/vaadin/tests/components/abstractfield/Vaadin6ImplicitDoubleConverter.java
@@ -7,6 +7,7 @@ import com.vaadin.data.util.converter.Converter;
public class Vaadin6ImplicitDoubleConverter implements
Converter<String, Double> {
+ @Override
public Double convertToModel(String value, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
if (null == value) {
@@ -15,6 +16,7 @@ public class Vaadin6ImplicitDoubleConverter implements
return new Double(value.toString());
}
+ @Override
public String convertToPresentation(Double value, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
if (value == null) {
@@ -24,10 +26,12 @@ public class Vaadin6ImplicitDoubleConverter implements
}
+ @Override
public Class<Double> getModelType() {
return Double.class;
}
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
diff --git a/tests/testbench/com/vaadin/tests/components/accordion/RemoveTabs.java b/tests/testbench/com/vaadin/tests/components/accordion/RemoveTabs.java
index a048cf04a8..d24def22dd 100644
--- a/tests/testbench/com/vaadin/tests/components/accordion/RemoveTabs.java
+++ b/tests/testbench/com/vaadin/tests/components/accordion/RemoveTabs.java
@@ -47,6 +47,7 @@ public class RemoveTabs extends TestBase {
closeCurrent = new Button("Close current tab");
closeCurrent.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
closeCurrentTab();
@@ -55,6 +56,7 @@ public class RemoveTabs extends TestBase {
closeFirst = new Button("close first tab");
closeFirst.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
closeFirstTab();
@@ -63,6 +65,7 @@ public class RemoveTabs extends TestBase {
closeLast = new Button("close last tab");
closeLast.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
closeLastTab();
@@ -71,6 +74,7 @@ public class RemoveTabs extends TestBase {
reorderTabs = new Button("reorder");
reorderTabs.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
reorder();
diff --git a/tests/testbench/com/vaadin/tests/components/beanitemcontainer/BeanItemContainerNullValues.java b/tests/testbench/com/vaadin/tests/components/beanitemcontainer/BeanItemContainerNullValues.java
index f613a8b14f..605ab676b6 100644
--- a/tests/testbench/com/vaadin/tests/components/beanitemcontainer/BeanItemContainerNullValues.java
+++ b/tests/testbench/com/vaadin/tests/components/beanitemcontainer/BeanItemContainerNullValues.java
@@ -29,6 +29,7 @@ public class BeanItemContainerNullValues extends TestBase {
Button b = new Button("Disable sorting", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setSortEnabled(!table.isSortEnabled());
if (table.isSortEnabled()) {
diff --git a/tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.java b/tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.java
index 7efd40ca5d..0d4981a441 100644
--- a/tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.java
+++ b/tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.java
@@ -17,10 +17,12 @@ public class ButtonEnterWithWindowShortcut extends TestBase {
getMainWindow().addActionHandler(new Handler() {
private static final long serialVersionUID = -4976129418325394913L;
+ @Override
public void handleAction(Action action, Object sender, Object target) {
log.log(action.getCaption() + " pressed in window");
}
+ @Override
public Action[] getActions(Object target, Object sender) {
ShortcutAction enter = new ShortcutAction("enter",
ShortcutAction.KeyCode.ENTER, null);
@@ -32,6 +34,7 @@ public class ButtonEnterWithWindowShortcut extends TestBase {
Button button = new Button("Focus me and press enter",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log("button click listener fired");
}
diff --git a/tests/testbench/com/vaadin/tests/components/button/ButtonErrorMessage.java b/tests/testbench/com/vaadin/tests/components/button/ButtonErrorMessage.java
index aca85d4efe..b27f948669 100644
--- a/tests/testbench/com/vaadin/tests/components/button/ButtonErrorMessage.java
+++ b/tests/testbench/com/vaadin/tests/components/button/ButtonErrorMessage.java
@@ -11,6 +11,7 @@ public class ButtonErrorMessage extends TestBase {
protected void setup() {
Button b = new Button("Click for error");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
throw new NullPointerException();
}
diff --git a/tests/testbench/com/vaadin/tests/components/button/ButtonHtml.java b/tests/testbench/com/vaadin/tests/components/button/ButtonHtml.java
index 253de5b43c..5cdc34e8e8 100644
--- a/tests/testbench/com/vaadin/tests/components/button/ButtonHtml.java
+++ b/tests/testbench/com/vaadin/tests/components/button/ButtonHtml.java
@@ -19,6 +19,7 @@ public class ButtonHtml extends TestBase {
final Button swapButton = new Button("<i>Swap button<i>");
swapButton.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
swapButton.setHtmlContentAllowed(!swapButton
.isHtmlContentAllowed());
diff --git a/tests/testbench/com/vaadin/tests/components/button/ButtonMouseDetails.java b/tests/testbench/com/vaadin/tests/components/button/ButtonMouseDetails.java
index 8fe56b7619..1b6a81551a 100644
--- a/tests/testbench/com/vaadin/tests/components/button/ButtonMouseDetails.java
+++ b/tests/testbench/com/vaadin/tests/components/button/ButtonMouseDetails.java
@@ -1,6 +1,6 @@
package com.vaadin.tests.components.button;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
@@ -14,6 +14,7 @@ public class ButtonMouseDetails extends TestBase {
private Button.ClickListener clickListener = new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
StringBuilder str = new StringBuilder(out.getValue().toString());
str.append(clickCounter + ":\t");
diff --git a/tests/testbench/com/vaadin/tests/components/button/Buttons2.java b/tests/testbench/com/vaadin/tests/components/button/Buttons2.java
index e04d50bddb..7526e7dbc3 100644
--- a/tests/testbench/com/vaadin/tests/components/button/Buttons2.java
+++ b/tests/testbench/com/vaadin/tests/components/button/Buttons2.java
@@ -13,6 +13,7 @@ public class Buttons2<T extends Button> extends AbstractComponentTest<T>
private Command<T, Boolean> disableOnClickCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
c.setDisableOnClick(value);
}
@@ -20,6 +21,7 @@ public class Buttons2<T extends Button> extends AbstractComponentTest<T>
private Command<T, Boolean> clickListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
c.addListener((Button.ClickListener) Buttons2.this);
@@ -62,6 +64,7 @@ public class Buttons2<T extends Button> extends AbstractComponentTest<T>
}
+ @Override
public void buttonClick(ClickEvent event) {
log(event.getClass().getSimpleName());
}
diff --git a/tests/testbench/com/vaadin/tests/components/button/ShortCutListenerModification.java b/tests/testbench/com/vaadin/tests/components/button/ShortCutListenerModification.java
index 295c04fc0c..4fb8df678e 100644
--- a/tests/testbench/com/vaadin/tests/components/button/ShortCutListenerModification.java
+++ b/tests/testbench/com/vaadin/tests/components/button/ShortCutListenerModification.java
@@ -60,6 +60,7 @@ public class ShortCutListenerModification extends TestBase implements
}
+ @Override
public void buttonClick(ClickEvent event) {
Component c = event.getButton();
while (!(c instanceof Window)) {
diff --git a/tests/testbench/com/vaadin/tests/components/button/TooltipForDisabledButton.java b/tests/testbench/com/vaadin/tests/components/button/TooltipForDisabledButton.java
index 4952b4bc50..c1f1846415 100644
--- a/tests/testbench/com/vaadin/tests/components/button/TooltipForDisabledButton.java
+++ b/tests/testbench/com/vaadin/tests/components/button/TooltipForDisabledButton.java
@@ -27,6 +27,7 @@ public class TooltipForDisabledButton extends TestBase {
buttonDisabled.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().showNotification("Clicked Disabled");
}
@@ -35,6 +36,7 @@ public class TooltipForDisabledButton extends TestBase {
buttonEnabled.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().showNotification("Clicked Enabled");
}
diff --git a/tests/testbench/com/vaadin/tests/components/caption/IconsInCaption.java b/tests/testbench/com/vaadin/tests/components/caption/IconsInCaption.java
index 3211a9c142..57ef9e6656 100644
--- a/tests/testbench/com/vaadin/tests/components/caption/IconsInCaption.java
+++ b/tests/testbench/com/vaadin/tests/components/caption/IconsInCaption.java
@@ -2,8 +2,8 @@ package com.vaadin.tests.components.caption;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.ThemeResource;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.tests.VaadinClasses;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.Log;
@@ -47,6 +47,7 @@ public class IconsInCaption extends TestBase {
iconTypeSelect.setImmediate(true);
iconTypeSelect.setNullSelectionAllowed(false);
iconTypeSelect.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
updateContainer();
}
@@ -60,6 +61,7 @@ public class IconsInCaption extends TestBase {
containerSelect.setImmediate(true);
containerSelect.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
updateContainer();
diff --git a/tests/testbench/com/vaadin/tests/components/checkbox/CheckBoxNullValue.java b/tests/testbench/com/vaadin/tests/components/checkbox/CheckBoxNullValue.java
index 2c981432c8..28abf5172d 100644
--- a/tests/testbench/com/vaadin/tests/components/checkbox/CheckBoxNullValue.java
+++ b/tests/testbench/com/vaadin/tests/components/checkbox/CheckBoxNullValue.java
@@ -29,6 +29,7 @@ public class CheckBoxNullValue extends TestBase {
final Button button = new Button("Validate");
addComponent(button);
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
checkbox.setComponentError(null);
requiredCheckbox.setComponentError(null);
diff --git a/tests/testbench/com/vaadin/tests/components/checkbox/CheckBoxes2.java b/tests/testbench/com/vaadin/tests/components/checkbox/CheckBoxes2.java
index 4f9cd10ecc..6734c752de 100644
--- a/tests/testbench/com/vaadin/tests/components/checkbox/CheckBoxes2.java
+++ b/tests/testbench/com/vaadin/tests/components/checkbox/CheckBoxes2.java
@@ -19,6 +19,7 @@ public class CheckBoxes2 extends AbstractFieldTest<CheckBox> implements
}
+ @Override
public void buttonClick(ClickEvent event) {
log(event.getClass().getSimpleName());
}
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxCombinedWithEnterShortcut.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxCombinedWithEnterShortcut.java
index 88a403b1b6..38bdf0c5fe 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxCombinedWithEnterShortcut.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxCombinedWithEnterShortcut.java
@@ -29,6 +29,7 @@ public class ComboBoxCombinedWithEnterShortcut extends TestBase {
aButton.setClickShortcut(KeyCode.ENTER);
aButton.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log("Button clicked. ComboBox value: " + l.getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxDataSourceChange.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxDataSourceChange.java
index 9285983b99..a475c86ca0 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxDataSourceChange.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxDataSourceChange.java
@@ -57,6 +57,7 @@ public class ComboBoxDataSourceChange extends TestBase {
Button b = new Button("Use ds1");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
cb2.setContainerDataSource(ds1);
currentDS.setValue("ds1");
@@ -72,6 +73,7 @@ public class ComboBoxDataSourceChange extends TestBase {
b = new Button("Use ds2");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
cb2.setContainerDataSource(ds2);
currentDS.setValue("ds2");
@@ -82,6 +84,7 @@ public class ComboBoxDataSourceChange extends TestBase {
addComponent(hl);
cb2.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
currentValue.setValue(event.getProperty().getValue());
}
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxEnablesComboBox.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxEnablesComboBox.java
index d9739602f6..c5e411678d 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxEnablesComboBox.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxEnablesComboBox.java
@@ -16,6 +16,7 @@ public class ComboBoxEnablesComboBox extends TestBase {
populate(cb);
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
cb2.setEnabled(true);
}
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxIdenticalItems.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxIdenticalItems.java
index fd434a7acd..5f33b96a73 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxIdenticalItems.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxIdenticalItems.java
@@ -27,6 +27,7 @@ public class ComboBoxIdenticalItems extends TestBase {
select.addListener(new Property.ValueChangeListener() {
private static final long serialVersionUID = -7932700771673919620L;
+ @Override
public void valueChange(ValueChangeEvent event) {
log.log("Item " + select.getValue() + " selected");
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInPopup.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInPopup.java
index 70aad31364..c0490c127d 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInPopup.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInPopup.java
@@ -17,6 +17,7 @@ public class ComboBoxInPopup extends TestBase {
w.addComponent(createComboBox());
Button close = new Button("Close window", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
w.close();
}
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.java
index e11b10f3e1..0afa1e887e 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.java
@@ -24,6 +24,7 @@ public class ComboBoxInvalidNullSelection extends TestBase {
Button b = new Button("Swap data source");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (combo.getContainerDataSource() == ds1) {
combo.setContainerDataSource(ds2);
@@ -39,6 +40,7 @@ public class ComboBoxInvalidNullSelection extends TestBase {
combo.setContainerDataSource(ds1);
combo.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
log.log("Value is now: " + combo.getValue());
}
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxReapperingOldValue.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxReapperingOldValue.java
index c78ff7675f..5dc5a2efbd 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxReapperingOldValue.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxReapperingOldValue.java
@@ -58,6 +58,7 @@ public class ComboBoxReapperingOldValue extends Application.LegacyApplication
return container;
}
+ @Override
public void valueChange(ValueChangeEvent event) {
cbox2.removeAllItems();
if ("1".equals(event.getProperty().getValue().toString())) {
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSlow.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSlow.java
index 15742cc783..0336ff423b 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSlow.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSlow.java
@@ -45,6 +45,7 @@ public class ComboBoxSlow extends TestBase {
}
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
log.log("Value changed to " + cb.getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSlowInFF.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSlowInFF.java
index 5c1dad4a30..d98997d28f 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSlowInFF.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSlowInFF.java
@@ -24,6 +24,7 @@ public class ComboBoxSlowInFF extends TestBase {
Button fill = new Button("fill it");
fill.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
t.removeAllItems();
for (int i = 0; i < 200; i++) {
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSuggestionOnDetach.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSuggestionOnDetach.java
index 09354fdacf..24aea18314 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSuggestionOnDetach.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxSuggestionOnDetach.java
@@ -16,6 +16,7 @@ public class ComboBoxSuggestionOnDetach extends TestBase {
ComboBox comboBox = new ComboBox("Combo box", Arrays.asList("Option 1",
"Option 2", "Option 3"));
comboBox.addListener(new FieldEvents.FocusListener() {
+ @Override
public void focus(FocusEvent event) {
popup.close();
}
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxTextFieldEventOrder.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxTextFieldEventOrder.java
index 6f6e550ab4..d33a858dc8 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxTextFieldEventOrder.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxTextFieldEventOrder.java
@@ -17,6 +17,7 @@ public class ComboBoxTextFieldEventOrder extends TestBase {
final Select select = new Select("select", Arrays.asList("1", "2", "3",
"4"));
textField.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
select.addItem(Long.valueOf(select.size() + 1).toString()); // or
// just
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxValueUpdate.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxValueUpdate.java
index b8f7a9758d..76ee83384e 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxValueUpdate.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxValueUpdate.java
@@ -29,6 +29,7 @@ public class ComboBoxValueUpdate extends TestBase {
select.addListener(new ComboBox.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
System.err
.println("Selected " + event.getProperty().getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxes2.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxes2.java
index 8befbb4612..3071ab4c2d 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxes2.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxes2.java
@@ -10,12 +10,14 @@ import com.vaadin.ui.Select;
public class ComboBoxes2 extends SelectTest<ComboBox> {
private Command<ComboBox, String> inputPromptCommand = new Command<ComboBox, String>() {
+ @Override
public void execute(ComboBox c, String value, Object data) {
c.setInputPrompt(value);
}
};
private Command<ComboBox, Integer> filteringModeCommand = new Command<ComboBox, Integer>() {
+ @Override
public void execute(ComboBox c, Integer value, Object data) {
c.setFilteringMode(value);
}
@@ -39,6 +41,7 @@ public class ComboBoxes2 extends SelectTest<ComboBox> {
private void createTextInputAlowedAction(String category) {
createBooleanAction("Text input allowed", category, true,
new Command<ComboBox, Boolean>() {
+ @Override
public void execute(ComboBox c, Boolean value, Object data) {
c.setTextInputAllowed(value.booleanValue());
}
@@ -48,6 +51,7 @@ public class ComboBoxes2 extends SelectTest<ComboBox> {
private void createNewItemsAllowedAction(String category) {
createBooleanAction("New items allowed", category, false,
new Command<ComboBox, Boolean>() {
+ @Override
public void execute(ComboBox c, Boolean value, Object data) {
c.setNewItemsAllowed(value.booleanValue());
}
@@ -80,6 +84,7 @@ public class ComboBoxes2 extends SelectTest<ComboBox> {
createSelectAction("Icon", category, createIconOptions(false), "-",
new Command<ComboBox, Resource>() {
+ @Override
public void execute(ComboBox c, Resource value, Object data) {
for (Object id : c.getItemIds()) {
if (value == null) {
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboFocusBlurEvents.java b/tests/testbench/com/vaadin/tests/components/combobox/ComboFocusBlurEvents.java
index 44285f97c2..b9c222247b 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboFocusBlurEvents.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboFocusBlurEvents.java
@@ -7,7 +7,7 @@ import com.vaadin.data.util.ObjectProperty;
import com.vaadin.event.FieldEvents;
import com.vaadin.event.FieldEvents.BlurEvent;
import com.vaadin.event.FieldEvents.FocusEvent;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.Label;
@@ -34,6 +34,7 @@ public class ComboFocusBlurEvents extends TestBase {
final ObjectProperty<String> log = new ObjectProperty<String>("");
cb.addListener(new FieldEvents.FocusListener() {
+ @Override
public void focus(FocusEvent event) {
log.setValue(log.getValue().toString() + "<br>" + counter
+ ": Focus event!");
@@ -42,6 +43,7 @@ public class ComboFocusBlurEvents extends TestBase {
});
cb.addListener(new FieldEvents.BlurListener() {
+ @Override
public void blur(BlurEvent event) {
log.setValue(log.getValue().toString() + "<br>" + counter
+ ": Blur event!");
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/Comboboxes.java b/tests/testbench/com/vaadin/tests/components/combobox/Comboboxes.java
index 94ab20df43..5b1af58421 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/Comboboxes.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/Comboboxes.java
@@ -136,6 +136,7 @@ public class Comboboxes extends ComponentTestCase<ComboBox> {
return createSelectAction("Icon", options, "<None>",
new Command<ComboBox, String>() {
+ @Override
public void execute(ComboBox c, String value, Object data) {
for (Object id : c.getItemIds()) {
if (value == null) {
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/NewItemsESCPress.java b/tests/testbench/com/vaadin/tests/components/combobox/NewItemsESCPress.java
index d93db563e3..00e9242a7a 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/NewItemsESCPress.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/NewItemsESCPress.java
@@ -17,6 +17,7 @@ public class NewItemsESCPress extends TestBase {
final ComboBox box = new ComboBox("New items are allowed");
box.setNewItemsAllowed(true);
box.setNewItemHandler(new NewItemHandler() {
+ @Override
public void addNewItem(String newItemCaption) {
String value = (String) addedItems.getValue();
addedItems.setValue(value + newItemCaption + "\n");
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/RemovalOfSelectedIcon.java b/tests/testbench/com/vaadin/tests/components/combobox/RemovalOfSelectedIcon.java
index a79b85ece4..ce6a24d9bd 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/RemovalOfSelectedIcon.java
+++ b/tests/testbench/com/vaadin/tests/components/combobox/RemovalOfSelectedIcon.java
@@ -22,6 +22,7 @@ public class RemovalOfSelectedIcon extends TestBase {
btClear.setImmediate(true);
btClear.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
cb2.removeAllItems();
cb2.setContainerDataSource(null);
diff --git a/tests/testbench/com/vaadin/tests/components/customcomponent/ClipContent.java b/tests/testbench/com/vaadin/tests/components/customcomponent/ClipContent.java
index 22fc381c72..094a63c163 100644
--- a/tests/testbench/com/vaadin/tests/components/customcomponent/ClipContent.java
+++ b/tests/testbench/com/vaadin/tests/components/customcomponent/ClipContent.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.components.customcomponent;
import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Button;
import com.vaadin.ui.CustomComponent;
@@ -24,6 +24,7 @@ public class ClipContent extends TestBase {
final TextField w = new TextField("Width");
w.setValue("20px");
w.addListener(new TextField.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
cc.setWidth(w.getValue());
}
@@ -32,6 +33,7 @@ public class ClipContent extends TestBase {
final TextField h = new TextField("Height");
h.setValue("20px");
h.addListener(new TextField.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
cc.setHeight(h.getValue());
}
diff --git a/tests/testbench/com/vaadin/tests/components/customcomponent/CustomComponentGrowingContent.java b/tests/testbench/com/vaadin/tests/components/customcomponent/CustomComponentGrowingContent.java
index 9a559f7414..4311ad1f08 100644
--- a/tests/testbench/com/vaadin/tests/components/customcomponent/CustomComponentGrowingContent.java
+++ b/tests/testbench/com/vaadin/tests/components/customcomponent/CustomComponentGrowingContent.java
@@ -24,6 +24,7 @@ public class CustomComponentGrowingContent extends TestBase {
});
addComponent(new Button("Set long content", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
label.setValue("Longer content that should be fully visible");
}
diff --git a/tests/testbench/com/vaadin/tests/components/customcomponent/CustomComponentSizeUpdate.java b/tests/testbench/com/vaadin/tests/components/customcomponent/CustomComponentSizeUpdate.java
index 43d4c70eb8..2351b02e2a 100644
--- a/tests/testbench/com/vaadin/tests/components/customcomponent/CustomComponentSizeUpdate.java
+++ b/tests/testbench/com/vaadin/tests/components/customcomponent/CustomComponentSizeUpdate.java
@@ -20,6 +20,7 @@ public class CustomComponentSizeUpdate extends TestBase {
nb.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
cc.setWidth((cc.getWidth() - 20) + "px");
cc.setHeight((cc.getHeight() - 20) + "px");
diff --git a/tests/testbench/com/vaadin/tests/components/customcomponent/CustomLayoutUsingTemplate.java b/tests/testbench/com/vaadin/tests/components/customcomponent/CustomLayoutUsingTemplate.java
index 2dc3063b0c..28e4dfb385 100644
--- a/tests/testbench/com/vaadin/tests/components/customcomponent/CustomLayoutUsingTemplate.java
+++ b/tests/testbench/com/vaadin/tests/components/customcomponent/CustomLayoutUsingTemplate.java
@@ -54,6 +54,7 @@ public class CustomLayoutUsingTemplate extends TestBase implements
return null;
}
+ @Override
public void buttonClick(ClickEvent event) {
layout.addComponent(new TextField("A text field!"), "location2");
}
diff --git a/tests/testbench/com/vaadin/tests/components/customcomponent/CustomLayoutUsingTheme.java b/tests/testbench/com/vaadin/tests/components/customcomponent/CustomLayoutUsingTheme.java
index 6ea1d0a0c5..06dd39ac38 100644
--- a/tests/testbench/com/vaadin/tests/components/customcomponent/CustomLayoutUsingTheme.java
+++ b/tests/testbench/com/vaadin/tests/components/customcomponent/CustomLayoutUsingTheme.java
@@ -28,6 +28,7 @@ public class CustomLayoutUsingTheme extends TestBase implements ClickListener {
VerticalLayout menu = new VerticalLayout();
menu.addComponent(new Button("Set body to label", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
layout.addComponent(new Label(LoremIpsum.get(200)), "body");
}
@@ -35,6 +36,7 @@ public class CustomLayoutUsingTheme extends TestBase implements ClickListener {
menu.addComponent(new Button("Set body to huge NativeButton",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
layout.addComponent(new NativeButton(
"This is it, the body!"), "body");
@@ -53,6 +55,7 @@ public class CustomLayoutUsingTheme extends TestBase implements ClickListener {
return null;
}
+ @Override
public void buttonClick(ClickEvent event) {
layout.addComponent(new TextField("A text field!"), "location2");
}
diff --git a/tests/testbench/com/vaadin/tests/components/customfield/AbstractNestedFormExample.java b/tests/testbench/com/vaadin/tests/components/customfield/AbstractNestedFormExample.java
index c15ca1916a..07c740a96d 100644
--- a/tests/testbench/com/vaadin/tests/components/customfield/AbstractNestedFormExample.java
+++ b/tests/testbench/com/vaadin/tests/components/customfield/AbstractNestedFormExample.java
@@ -52,6 +52,7 @@ public abstract class AbstractNestedFormExample extends TestBase {
private Property.ValueChangeListener getTableValueChangeListener() {
return new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (personForm != null) {
removeComponent(personForm);
diff --git a/tests/testbench/com/vaadin/tests/components/customfield/AddressFormExample.java b/tests/testbench/com/vaadin/tests/components/customfield/AddressFormExample.java
index 02c080e8fd..693b1e11b1 100644
--- a/tests/testbench/com/vaadin/tests/components/customfield/AddressFormExample.java
+++ b/tests/testbench/com/vaadin/tests/components/customfield/AddressFormExample.java
@@ -21,6 +21,7 @@ public class AddressFormExample extends TestBase {
addComponent(field);
Button commitButton = new Button("Save", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
field.commit();
Address address = field.getValue();
diff --git a/tests/testbench/com/vaadin/tests/components/customfield/BooleanField.java b/tests/testbench/com/vaadin/tests/components/customfield/BooleanField.java
index dc60d7e517..409ecccca8 100644
--- a/tests/testbench/com/vaadin/tests/components/customfield/BooleanField.java
+++ b/tests/testbench/com/vaadin/tests/components/customfield/BooleanField.java
@@ -23,6 +23,7 @@ public class BooleanField extends CustomField {
final Button button = new Button("Click me");
button.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Object value = getValue();
boolean newValue = true;
diff --git a/tests/testbench/com/vaadin/tests/components/customfield/BooleanFieldExample.java b/tests/testbench/com/vaadin/tests/components/customfield/BooleanFieldExample.java
index 694c5b54f9..a52b168e84 100644
--- a/tests/testbench/com/vaadin/tests/components/customfield/BooleanFieldExample.java
+++ b/tests/testbench/com/vaadin/tests/components/customfield/BooleanFieldExample.java
@@ -61,10 +61,11 @@ public class BooleanFieldExample extends TestBase {
layout.addComponent(form);
Button submit = new Button("Submit", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
form.commit();
Notification.show("The custom boolean field value is "
- + data.isCustom() + ".<br>"
+ + data.isCustom() + ".\n"
+ "The checkbox (default boolean field) value is "
+ data.isNormal() + ".");
}
diff --git a/tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java b/tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java
index e0a3b08bc7..0bc4f45545 100644
--- a/tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java
+++ b/tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java
@@ -48,6 +48,7 @@ public class NestedPersonForm extends Form {
buttons.setSpacing(true);
Button discardChanges = new Button("Discard changes",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
NestedPersonForm.this.discard();
}
@@ -56,6 +57,7 @@ public class NestedPersonForm extends Form {
buttons.setComponentAlignment(discardChanges, Alignment.MIDDLE_LEFT);
Button apply = new Button("Apply", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
NestedPersonForm.this.commit();
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/CommitInvalid.java b/tests/testbench/com/vaadin/tests/components/datefield/CommitInvalid.java
index 1395b4d735..c4f001ac41 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/CommitInvalid.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/CommitInvalid.java
@@ -72,6 +72,7 @@ public class CommitInvalid extends TestBase {
Button validate = new Button("Validate");
validate.setDebugId("_validate");
validate.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
form.validate();
@@ -88,6 +89,7 @@ public class CommitInvalid extends TestBase {
Button commit = new Button("Commit");
commit.setDebugId("_commit");
commit.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
form.commit();
@@ -103,6 +105,7 @@ public class CommitInvalid extends TestBase {
form.getFooter().addComponent(commit);
Button printState = new Button("printState");
printState.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
printState();
}
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/CustomDateFormats.java b/tests/testbench/com/vaadin/tests/components/datefield/CustomDateFormats.java
index 48bf3622d1..acca47ee5e 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/CustomDateFormats.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/CustomDateFormats.java
@@ -37,6 +37,7 @@ public class CustomDateFormats extends TestBase {
s.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
setDateFieldLocale((Locale) s.getValue());
}
@@ -155,6 +156,7 @@ public class CustomDateFormats extends TestBase {
df.setValue(cal.getTime());
df.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
updateServerSideLabel((DateField) event.getProperty());
}
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldEmptyValid.java b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldEmptyValid.java
index dac3169b18..5098a4e459 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldEmptyValid.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldEmptyValid.java
@@ -7,7 +7,7 @@ import java.util.Locale;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.data.util.ObjectProperty;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.Log;
import com.vaadin.ui.Button;
@@ -48,6 +48,7 @@ public class DateFieldEmptyValid extends TestBase {
df.setImmediate(true);
df.setResolution(DateField.RESOLUTION_DAY);
df.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
log.log("Value changeEvent");
checkEmpty();
@@ -59,6 +60,7 @@ public class DateFieldEmptyValid extends TestBase {
b.setDebugId("clear");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log("Clearing date aka setValue(null)");
df.setValue(null);
@@ -70,6 +72,7 @@ public class DateFieldEmptyValid extends TestBase {
b.setDebugId("set4.5.1990");
b.addListener(new ClickListener() {
+ @Override
@SuppressWarnings("deprecation")
public void buttonClick(ClickEvent event) {
log.log("Setting new value to datefield (4.5.1990)");
@@ -81,6 +84,7 @@ public class DateFieldEmptyValid extends TestBase {
b = new Button("Set date to 5.6.2000 using a property data source");
b.addListener(new ClickListener() {
+ @Override
@SuppressWarnings("deprecation")
public void buttonClick(ClickEvent event) {
log.log("Setting new object property (5.6.2000) to datefield");
@@ -97,6 +101,7 @@ public class DateFieldEmptyValid extends TestBase {
b.setDebugId("set-via-ds");
b.addListener(new ClickListener() {
+ @Override
@SuppressWarnings("deprecation")
public void buttonClick(ClickEvent event) {
log.log("Setting object property (with value null) to datefield and set value of property to 27.8.2005");
@@ -111,6 +116,7 @@ public class DateFieldEmptyValid extends TestBase {
b = new Button("Check value");
b.setDebugId("check-value");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log("Checking state");
checkEmpty();
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldInSubWindow.java b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldInSubWindow.java
index 298359068e..2a7807670b 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldInSubWindow.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldInSubWindow.java
@@ -106,6 +106,7 @@ public class DateFieldInSubWindow extends AbstractTestCase {
Button b = new Button("Close", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
TestCaseWindow.this.close();
}
@@ -122,6 +123,7 @@ public class DateFieldInSubWindow extends AbstractTestCase {
LegacyWindow mainWindow = new LegacyWindow();
setMainWindow(mainWindow);
Button open = new Button("Open window", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().addWindow(new TestCaseWindow());
}
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldLocale.java b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldLocale.java
index dd61ccd60c..5d06895d11 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldLocale.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldLocale.java
@@ -21,6 +21,7 @@ public class DateFieldLocale extends TestBase {
addComponent(new Button("Change locale", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (dateField.getLocale().getCountry().equalsIgnoreCase("fi")) {
dateField.setLocale(new Locale("zh", "CN"));
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldMinResolution.java b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldMinResolution.java
index e7c3442060..1a3b3858b8 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldMinResolution.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldMinResolution.java
@@ -39,6 +39,7 @@ public class DateFieldMinResolution extends TestBase {
idf.setImmediate(true);
idf.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
lbl.setValue(dformat.format(event.getProperty().getValue()));
}
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java
index bf93d8c8b9..befdd65693 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java
@@ -56,6 +56,7 @@ public class DateFieldRangeValidation extends TestBase {
private Range range = new Range();
private ValueChangeListener refreshField = new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
actualDateField.requestRepaint();
}
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldReadOnly.java b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldReadOnly.java
index 516d207a38..392dbaf9c6 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldReadOnly.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldReadOnly.java
@@ -43,6 +43,7 @@ public class DateFieldReadOnly extends TestBase {
Button b = new Button("Switch read-only");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
timeField.setReadOnly(!timeField.isReadOnly());
}
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldTest.java b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldTest.java
index e8c8b69f9f..c502b9597e 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldTest.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldTest.java
@@ -21,6 +21,7 @@ public class DateFieldTest<T extends DateField> extends AbstractFieldTest<T> {
private Command<T, Date> setValue = new Command<T, Date>() {
+ @Override
public void execute(T c, Date value, Object data) {
c.setValue(value);
}
@@ -109,6 +110,7 @@ public class DateFieldTest<T extends DateField> extends AbstractFieldTest<T> {
private Command<T, Resolution> resolutionCommand = new Command<T, Resolution>() {
+ @Override
public void execute(T c, Resolution value, Object data) {
c.setResolution(value);
@@ -116,6 +118,7 @@ public class DateFieldTest<T extends DateField> extends AbstractFieldTest<T> {
};
private Command<T, Boolean> lenientCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
c.setLenient(false);
@@ -123,6 +126,7 @@ public class DateFieldTest<T extends DateField> extends AbstractFieldTest<T> {
};
private Command<T, Boolean> weekNumberCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
c.setShowISOWeekNumbers(value);
@@ -130,6 +134,7 @@ public class DateFieldTest<T extends DateField> extends AbstractFieldTest<T> {
};
private Command<T, String> dateFormatCommand = new Command<T, String>() {
+ @Override
public void execute(T c, String value, Object data) {
c.setDateFormat(value);
}
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldTimezone.java b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldTimezone.java
index 340b647931..6f31b4d80f 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldTimezone.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldTimezone.java
@@ -51,6 +51,7 @@ public class DateFieldTimezone extends TestBase {
timezoneSelector.setNullSelectionItemId(nullValue);
timezoneSelector.setFilteringMode(ComboBox.FILTERINGMODE_CONTAINS);
timezoneSelector.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Object value = event.getProperty().getValue();
TimeZone timeZone;
@@ -75,6 +76,7 @@ public class DateFieldTimezone extends TestBase {
dateField.setTimeZone(cal.getTimeZone());
dateField.setLocale(EN);
dateField.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Date date = dateField.getValue();
DateFormat format = DateFormat.getDateTimeInstance(
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldUnparsableDate.java b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldUnparsableDate.java
index 9b4a3c3383..bbe2423a3f 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldUnparsableDate.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldUnparsableDate.java
@@ -15,6 +15,7 @@ public class DateFieldUnparsableDate extends TestBase {
public MyDateField(String caption) {
super(caption);
addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(
com.vaadin.data.Property.ValueChangeEvent event) {
oldDate = getValue();
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DefaultHandleUnparsableDateField.java b/tests/testbench/com/vaadin/tests/components/datefield/DefaultHandleUnparsableDateField.java
index 060c7fcc0a..b5842694f0 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/DefaultHandleUnparsableDateField.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/DefaultHandleUnparsableDateField.java
@@ -15,6 +15,7 @@ public class DefaultHandleUnparsableDateField extends TestBase {
date.setImmediate(true);
addComponent(date);
date.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (date.isValid()) {
getMainWindow()
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DisabledDateFieldWidth.java b/tests/testbench/com/vaadin/tests/components/datefield/DisabledDateFieldWidth.java
index 8f201e120d..4e256aa947 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/DisabledDateFieldWidth.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/DisabledDateFieldWidth.java
@@ -16,6 +16,7 @@ public class DisabledDateFieldWidth extends TestBase {
Button button = new Button("Repaint datefield",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
dateField1.requestRepaint();
}
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/InlineDateFields.java b/tests/testbench/com/vaadin/tests/components/datefield/InlineDateFields.java
index b8c5be57bf..c642db1bc0 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/InlineDateFields.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/InlineDateFields.java
@@ -81,6 +81,7 @@ public class InlineDateFields extends ComponentTestCase<InlineDateField> {
return createSelectAction("Resolution", options, "Year",
new Command<InlineDateField, Resolution>() {
+ @Override
public void execute(InlineDateField c, Resolution value,
Object data) {
c.setResolution(value);
@@ -97,6 +98,7 @@ public class InlineDateFields extends ComponentTestCase<InlineDateField> {
return createSelectAction("Locale", options, LOCALES[0].toString(),
new Command<InlineDateField, Locale>() {
+ @Override
public void execute(InlineDateField c, Locale value,
Object data) {
c.setCaption(c.getCaption().replaceAll(
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/LenientMode.java b/tests/testbench/com/vaadin/tests/components/datefield/LenientMode.java
index cbe9ac613f..585395d747 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/LenientMode.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/LenientMode.java
@@ -73,6 +73,7 @@ public class LenientMode extends TestBase implements ValueChangeListener {
}
+ @Override
public void valueChange(ValueChangeEvent event) {
getMainWindow().showNotification(
"New value" + event.getProperty().getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/LowResolution.java b/tests/testbench/com/vaadin/tests/components/datefield/LowResolution.java
index 1c1994cbe5..9c2d3d7d51 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/LowResolution.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/LowResolution.java
@@ -16,6 +16,7 @@ public class LowResolution extends TestBase {
dateField.setValue(new java.util.Date());
dateField.setResolution(PopupDateField.RESOLUTION_MONTH);
dateField.addListener(new PopupDateField.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
getMainWindow().showNotification(
"Date now" + event.getProperty());
@@ -28,6 +29,7 @@ public class LowResolution extends TestBase {
// dateField.setValue(new java.util.Date());
dateField3.setResolution(PopupDateField.RESOLUTION_YEAR);
dateField3.addListener(new PopupDateField.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
getMainWindow().showNotification(
"Date now" + event.getProperty());
@@ -40,6 +42,7 @@ public class LowResolution extends TestBase {
dateField2.setValue(new java.util.Date());
dateField2.setResolution(PopupDateField.RESOLUTION_MONTH);
dateField2.addListener(new PopupDateField.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
getMainWindow().showNotification(
"Date now" + event.getProperty());
@@ -52,6 +55,7 @@ public class LowResolution extends TestBase {
"Immediate (use sync button to change fields) ");
immediate.setValue(true);
immediate.addListener(new CheckBox.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
boolean immediate = !dateField.isImmediate();
dateField.setImmediate(immediate);
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldExtendedRange.java b/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldExtendedRange.java
index 357c61f4f6..a12bdfa44c 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldExtendedRange.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldExtendedRange.java
@@ -41,6 +41,7 @@ public class PopupDateFieldExtendedRange extends TestBase {
}
addComponent(new Button("Change date", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
date.set(2010, 1, 16);
for (PopupDateField f : fields) {
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldTest.java b/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldTest.java
index 3ab1f52891..3e8b0678a7 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldTest.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFieldTest.java
@@ -27,6 +27,7 @@ public class PopupDateFieldTest extends DateFieldTest<PopupDateField> {
createSelectAction("Input prompt", category, options, "<none>",
new Command<PopupDateField, String>() {
+ @Override
public void execute(PopupDateField c, String value,
Object data) {
c.setInputPrompt(value);
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFields.java b/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFields.java
index ad961ee7a6..bf2a679c63 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFields.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/PopupDateFields.java
@@ -77,6 +77,7 @@ public class PopupDateFields extends ComponentTestCase<PopupDateField> {
return createSelectAction("Resolution", options, "Year",
new Command<PopupDateField, Resolution>() {
+ @Override
public void execute(PopupDateField c, Resolution value,
Object data) {
c.setResolution(value);
@@ -94,6 +95,7 @@ public class PopupDateFields extends ComponentTestCase<PopupDateField> {
return createSelectAction("Input prompt", options, "<none>",
new Command<PopupDateField, String>() {
+ @Override
public void execute(PopupDateField c, String value,
Object data) {
c.setInputPrompt(value);
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/ShowSelectedDateAfterInvalid.java b/tests/testbench/com/vaadin/tests/components/datefield/ShowSelectedDateAfterInvalid.java
index 6686fa6fe0..da8f45690c 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/ShowSelectedDateAfterInvalid.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/ShowSelectedDateAfterInvalid.java
@@ -28,6 +28,7 @@ public class ShowSelectedDateAfterInvalid extends TestBase {
Button button = new Button("Validate");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
form.setValidationVisible(true);
if (form.isValid()) {
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/ValueThroughProperty.java b/tests/testbench/com/vaadin/tests/components/datefield/ValueThroughProperty.java
index 578c4df903..a45d3b8ad0 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/ValueThroughProperty.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/ValueThroughProperty.java
@@ -6,7 +6,7 @@ import java.util.Locale;
import com.vaadin.data.Property;
import com.vaadin.data.util.ObjectProperty;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
@@ -44,6 +44,7 @@ public class ValueThroughProperty extends TestBase {
cal.set(Calendar.DAY_OF_MONTH, 14);
Button setDateButton1 = new Button(
"Set value to 12/14/10 using property", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
dateProperty.setValue(cal.getTime());
}
@@ -53,6 +54,7 @@ public class ValueThroughProperty extends TestBase {
Button setDateButton2 = new Button(
"Set value to 12/14/10 using setValue", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
df.setValue(cal.getTime());
}
diff --git a/tests/testbench/com/vaadin/tests/components/datefield/WidthRecalculationOnEnableStateChange.java b/tests/testbench/com/vaadin/tests/components/datefield/WidthRecalculationOnEnableStateChange.java
index 88542751c3..b7b0f50947 100644
--- a/tests/testbench/com/vaadin/tests/components/datefield/WidthRecalculationOnEnableStateChange.java
+++ b/tests/testbench/com/vaadin/tests/components/datefield/WidthRecalculationOnEnableStateChange.java
@@ -20,12 +20,14 @@ public class WidthRecalculationOnEnableStateChange extends TestBase {
addComponent(df);
addComponent(new Button("Toggle disabled for date field",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
df.setEnabled(!df.isEnabled());
}
}));
addComponent(new Button("Toggle read only for date field",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
df.setReadOnly(!df.isReadOnly());
}
diff --git a/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragAndDropWrapperTooltips.java b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragAndDropWrapperTooltips.java
index 6b89d1392c..aeb0864707 100644
--- a/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragAndDropWrapperTooltips.java
+++ b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragAndDropWrapperTooltips.java
@@ -80,10 +80,12 @@ public class DragAndDropWrapperTooltips extends TestBase {
private DropHandler dh = new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptAll.get();
}
+ @Override
public void drop(DragAndDropEvent dropEvent) {
Transferable transferable = dropEvent.getTransferable();
if (transferable instanceof TransferableImpl) {
diff --git a/tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.html b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.html
index 08dc608787..c85d7e0626 100644
--- a/tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.html
+++ b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.html
@@ -17,7 +17,7 @@
<td></td>
</tr>
<tr>
- <td>mouseOver</td>
+ <td>showTooltip</td>
<td>vaadin=runcomvaadintestscomponentsdraganddropwrapperTooltipHandlingWhenNotDefined::PID_StooltipLabel</td>
<td></td>
</tr>
diff --git a/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedAltText.java b/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedAltText.java
index f8874810fc..9a412cee9d 100644
--- a/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedAltText.java
+++ b/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedAltText.java
@@ -38,6 +38,7 @@ public class EmbeddedAltText extends TestBase {
Button changeAltTexts = new Button("Change alt texts",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
e.setAlternateText("New alt text of the image!");
player.setAlternateText("New alt text of the object!");
diff --git a/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedClickListenerRelativeCoordinates.java b/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedClickListenerRelativeCoordinates.java
index 96b1d36901..c9b6991d8f 100644
--- a/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedClickListenerRelativeCoordinates.java
+++ b/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedClickListenerRelativeCoordinates.java
@@ -14,6 +14,7 @@ public class EmbeddedClickListenerRelativeCoordinates extends TestBase {
"../runo/icons/64/ok.png"));
e.addListener(new ClickListener() {
+ @Override
public void click(ClickEvent event) {
getMainWindow()
.showNotification(
diff --git a/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedImageRefresh.java b/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedImageRefresh.java
index 1a5327c8b9..e316fcc5ec 100644
--- a/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedImageRefresh.java
+++ b/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedImageRefresh.java
@@ -45,6 +45,7 @@ public class EmbeddedImageRefresh extends TestBase {
// The button requests repainting the embedded.
Button button = new Button("refr");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
embedded.requestRepaint();
}
@@ -52,6 +53,7 @@ public class EmbeddedImageRefresh extends TestBase {
addComponent(button);
button = new Button("refr name");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
((StreamResource) embedded.getSource()).setFilename(new Date()
.getTime() + ".png");
@@ -61,6 +63,7 @@ public class EmbeddedImageRefresh extends TestBase {
addComponent(button);
button = new Button("200x200");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
embedded.setWidth("200px");
embedded.setHeight("200px");
@@ -69,6 +72,7 @@ public class EmbeddedImageRefresh extends TestBase {
addComponent(button);
button = new Button("undef");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
embedded.setSizeUndefined();
}
@@ -85,6 +89,7 @@ public class EmbeddedImageRefresh extends TestBase {
return (int) Math.round(pos * resolution / (cells * 1.0));
}
+ @Override
public InputStream getStream() {
// Create an image and draw some background on it.
BufferedImage image = new BufferedImage(640, 480,
diff --git a/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedPdf.java b/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedPdf.java
index d507cebebc..c3854d2420 100644
--- a/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedPdf.java
+++ b/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedPdf.java
@@ -29,6 +29,7 @@ public class EmbeddedPdf extends TestBase {
addComponent(player);
addComponent(new Button("Remove pdf", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
removeComponent(player);
}
diff --git a/tests/testbench/com/vaadin/tests/components/form/FormClearDatasourceRepaint.java b/tests/testbench/com/vaadin/tests/components/form/FormClearDatasourceRepaint.java
index 5255b97ffa..539263a363 100644
--- a/tests/testbench/com/vaadin/tests/components/form/FormClearDatasourceRepaint.java
+++ b/tests/testbench/com/vaadin/tests/components/form/FormClearDatasourceRepaint.java
@@ -42,6 +42,7 @@ public class FormClearDatasourceRepaint extends TestBase {
addComponent(form);
addComponent(new Button("Clear datasource", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
form.setItemDataSource(null);
}
@@ -49,6 +50,7 @@ public class FormClearDatasourceRepaint extends TestBase {
addComponent(new Button("Change data source",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
form.setItemDataSource(new BeanItem<MyBean>(
new MyBean()));
diff --git a/tests/testbench/com/vaadin/tests/components/form/FormCommitWithInvalidValues.java b/tests/testbench/com/vaadin/tests/components/form/FormCommitWithInvalidValues.java
index 6bc7cb5cca..907b8a27f3 100644
--- a/tests/testbench/com/vaadin/tests/components/form/FormCommitWithInvalidValues.java
+++ b/tests/testbench/com/vaadin/tests/components/form/FormCommitWithInvalidValues.java
@@ -34,6 +34,7 @@ public class FormCommitWithInvalidValues extends TestBase {
Button b = new Button("Commit", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
form.commit();
diff --git a/tests/testbench/com/vaadin/tests/components/form/FormDescription.java b/tests/testbench/com/vaadin/tests/components/form/FormDescription.java
index 63369413f6..76ea039756 100644
--- a/tests/testbench/com/vaadin/tests/components/form/FormDescription.java
+++ b/tests/testbench/com/vaadin/tests/components/form/FormDescription.java
@@ -17,6 +17,7 @@ public class FormDescription extends TestBase {
addComponent(new Button("Toggle description",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (form.getDescription() == null) {
form.setDescription("Form description");
diff --git a/tests/testbench/com/vaadin/tests/components/form/FormRenderingFlicker.java b/tests/testbench/com/vaadin/tests/components/form/FormRenderingFlicker.java
index ecf3215005..41e1a91781 100644
--- a/tests/testbench/com/vaadin/tests/components/form/FormRenderingFlicker.java
+++ b/tests/testbench/com/vaadin/tests/components/form/FormRenderingFlicker.java
@@ -49,6 +49,7 @@ public class FormRenderingFlicker extends TestBase {
table.setImmediate(true);
table.addListener(new ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
clicked(event.getItem());
}
diff --git a/tests/testbench/com/vaadin/tests/components/form/FormTest.java b/tests/testbench/com/vaadin/tests/components/form/FormTest.java
index 451a1b7fa3..604beb5fcc 100644
--- a/tests/testbench/com/vaadin/tests/components/form/FormTest.java
+++ b/tests/testbench/com/vaadin/tests/components/form/FormTest.java
@@ -4,7 +4,7 @@ import java.util.LinkedHashMap;
import com.vaadin.data.Item;
import com.vaadin.data.util.BeanItem;
-import com.vaadin.terminal.gwt.client.ui.AlignmentInfo;
+import com.vaadin.shared.ui.AlignmentInfo;
import com.vaadin.tests.components.abstractfield.AbstractFieldTest;
import com.vaadin.tests.components.select.AbstractSelectTestCase;
import com.vaadin.tests.util.Person;
@@ -30,6 +30,7 @@ public class FormTest extends AbstractFieldTest<Form> {
private Command<Form, String> footerWidthCommand = new Command<Form, String>() {
+ @Override
public void execute(Form c, String value, Object data) {
Layout footer = c.getFooter();
if (footer != null) {
@@ -40,6 +41,7 @@ public class FormTest extends AbstractFieldTest<Form> {
};
private Command<Form, String> footerHeightCommand = new Command<Form, String>() {
+ @Override
public void execute(Form c, String value, Object data) {
Layout footer = c.getFooter();
if (footer != null) {
@@ -51,6 +53,7 @@ public class FormTest extends AbstractFieldTest<Form> {
private Command<Form, Class<? extends Layout>> formLayoutCommand = new Command<Form, Class<? extends Layout>>() {
+ @Override
public void execute(Form c, Class<? extends Layout> value, Object data) {
if (value == null) {
c.setLayout(null);
@@ -73,6 +76,7 @@ public class FormTest extends AbstractFieldTest<Form> {
};
private Command<Form, Class<? extends Layout>> formFooterCommand = new Command<Form, Class<? extends Layout>>() {
+ @Override
public void execute(Form c, Class<? extends Layout> value, Object data) {
if (value == null) {
c.setFooter(null);
@@ -92,6 +96,7 @@ public class FormTest extends AbstractFieldTest<Form> {
};
private Command<Form, Item> formItemDataSourceCommand = new Command<Form, Item>() {
+ @Override
public void execute(Form c, Item value, Object data) {
c.setItemDataSource(value);
}
@@ -148,6 +153,7 @@ public class FormTest extends AbstractFieldTest<Form> {
options.put("Default", DefaultFieldFactory.get());
options.put("Custom FieldFactory", new FormFieldFactory() {
+ @Override
public Field<?> createField(Item item, Object propertyId,
Component uiContext) {
Class<?> type = item.getItemProperty(propertyId).getType();
@@ -186,6 +192,7 @@ public class FormTest extends AbstractFieldTest<Form> {
Command<Form, FormFieldFactory> formFactoryCommand = new Command<Form, FormFieldFactory>() {
+ @Override
public void execute(Form c, FormFieldFactory value, Object data) {
c.setFormFieldFactory(value);
c.setItemDataSource(c.getItemDataSource());
@@ -227,6 +234,7 @@ public class FormTest extends AbstractFieldTest<Form> {
}
Command<Form, Alignment> footerComponentAlignmentCommand = new Command<Form, Alignment>() {
+ @Override
public void execute(Form c, Alignment value, Object data) {
Layout l = c.getFooter();
if (l instanceof AlignmentHandler) {
diff --git a/tests/testbench/com/vaadin/tests/components/form/FormWithEnterShortCut.java b/tests/testbench/com/vaadin/tests/components/form/FormWithEnterShortCut.java
index 689ba7ea83..ed1a3d9bd9 100644
--- a/tests/testbench/com/vaadin/tests/components/form/FormWithEnterShortCut.java
+++ b/tests/testbench/com/vaadin/tests/components/form/FormWithEnterShortCut.java
@@ -20,6 +20,7 @@ public class FormWithEnterShortCut extends TestBase {
Button button = new Button("Go");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log("search: " + tf.getValue());
}
diff --git a/tests/testbench/com/vaadin/tests/components/form/FormWithPropertyFormatterConnected.java b/tests/testbench/com/vaadin/tests/components/form/FormWithPropertyFormatterConnected.java
index b803f8667f..24d207739e 100644
--- a/tests/testbench/com/vaadin/tests/components/form/FormWithPropertyFormatterConnected.java
+++ b/tests/testbench/com/vaadin/tests/components/form/FormWithPropertyFormatterConnected.java
@@ -18,6 +18,7 @@ public class FormWithPropertyFormatterConnected extends TestBase {
Form form2 = new Form();
form2.setFormFieldFactory(new FormFieldFactory() {
+ @Override
public Field createField(Item item, Object propertyId,
Component uiContext) {
AbstractField f = (AbstractField) DefaultFieldFactory.get()
diff --git a/tests/testbench/com/vaadin/tests/components/formlayout/FormLayoutCaptionStyles.java b/tests/testbench/com/vaadin/tests/components/formlayout/FormLayoutCaptionStyles.java
index e74969f637..0055c3782e 100644
--- a/tests/testbench/com/vaadin/tests/components/formlayout/FormLayoutCaptionStyles.java
+++ b/tests/testbench/com/vaadin/tests/components/formlayout/FormLayoutCaptionStyles.java
@@ -20,6 +20,7 @@ public class FormLayoutCaptionStyles extends TestBase {
fl.addComponent(new Button("Toggle Text field 2 bold style",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if ("bold".equals(f2.getStyleName())) {
f2.setStyleName("");
diff --git a/tests/testbench/com/vaadin/tests/components/formlayout/FormLayoutErrorHover.html b/tests/testbench/com/vaadin/tests/components/formlayout/FormLayoutErrorHover.html
index f6fc12af0a..7733da4e95 100644
--- a/tests/testbench/com/vaadin/tests/components/formlayout/FormLayoutErrorHover.html
+++ b/tests/testbench/com/vaadin/tests/components/formlayout/FormLayoutErrorHover.html
@@ -28,7 +28,7 @@
</tr>
<!--Hover error indicator-->
<tr>
- <td>mouseOver</td>
+ <td>showTooltip</td>
<td>vaadin=runcomvaadintestscomponentsformlayoutFormLayoutErrorHover::/VVerticalLayout[0]/VVerticalLayout[0]/VFormLayout[0]/domChild[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]</td>
<td></td>
</tr>
diff --git a/tests/testbench/com/vaadin/tests/components/gridlayout/GridLayoutInForm.java b/tests/testbench/com/vaadin/tests/components/gridlayout/GridLayoutInForm.java
index 648bbd2d52..165827eb6b 100644
--- a/tests/testbench/com/vaadin/tests/components/gridlayout/GridLayoutInForm.java
+++ b/tests/testbench/com/vaadin/tests/components/gridlayout/GridLayoutInForm.java
@@ -45,6 +45,7 @@ public class GridLayoutInForm extends TestBase {
addComponent(new Button("Use 15 first fields",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
form.setVisibleItemProperties(propertyIds
.subList(0, 15));
@@ -52,6 +53,7 @@ public class GridLayoutInForm extends TestBase {
}));
addComponent(new Button("Use 15 last fields",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
form.setVisibleItemProperties(propertyIds.subList(35,
50));
@@ -59,6 +61,7 @@ public class GridLayoutInForm extends TestBase {
}));
addComponent(new Button("Use all fields", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
form.setVisibleItemProperties(propertyIds);
}
diff --git a/tests/testbench/com/vaadin/tests/components/gridlayout/MoveComponentsFromGridLayoutToInnerLayout.java b/tests/testbench/com/vaadin/tests/components/gridlayout/MoveComponentsFromGridLayoutToInnerLayout.java
index da0efe9464..1c10b1d9d7 100644
--- a/tests/testbench/com/vaadin/tests/components/gridlayout/MoveComponentsFromGridLayoutToInnerLayout.java
+++ b/tests/testbench/com/vaadin/tests/components/gridlayout/MoveComponentsFromGridLayoutToInnerLayout.java
@@ -22,6 +22,7 @@ public class MoveComponentsFromGridLayoutToInnerLayout extends TestBase {
testButton = new Button("Click to move to inner layout",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
vl.addComponent(testButton);
}
@@ -37,6 +38,7 @@ public class MoveComponentsFromGridLayoutToInnerLayout extends TestBase {
Button b = new Button("Repaint inner layout",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
vl.requestRepaint();
}
diff --git a/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.html b/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.html
new file mode 100644
index 0000000000..16e74aa485
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.html
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.javascriptcomponent.BasicJavaScriptComponent?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsjavascriptcomponentBasicJavaScriptComponent::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[0]</td>
+ <td>3. Got callback message: Callback message processed</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsjavascriptcomponentBasicJavaScriptComponent::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[1]</td>
+ <td>2. Got RPC message: RPC message processed</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsjavascriptcomponentBasicJavaScriptComponent::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[2]</td>
+ <td>1. Parent ids checked</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsjavascriptcomponentBasicJavaScriptComponent::/VVerticalLayout[0]/VVerticalLayout[0]/domChild[1]/domChild[0]/domChild[0]</td>
+ <td>Component caption</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsjavascriptcomponentBasicJavaScriptComponent::/VVerticalLayout[0]/VVerticalLayout[0]/JavaScriptWidget[0]/domChild[0]</td>
+ <td>4. Url: /run/com.vaadin.tests.components.javascriptcomponent.BasicJavaScriptComponent/APP/1/test</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsjavascriptcomponentBasicJavaScriptComponent::/VVerticalLayout[0]/VVerticalLayout[0]/JavaScriptWidget[0]/domChild[1]</td>
+ <td>3. State message: Second state message</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsjavascriptcomponentBasicJavaScriptComponent::/VVerticalLayout[0]/VVerticalLayout[0]/JavaScriptWidget[0]/domChild[2]</td>
+ <td>2. State message: First state message</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsjavascriptcomponentBasicJavaScriptComponent::/VVerticalLayout[0]/VVerticalLayout[0]/JavaScriptWidget[0]/domChild[3]</td>
+ <td>1. Parent element className: v-verticallayout v-connector v-has-width</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.java b/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.java
index 5f2f945c8b..9ea61b92bb 100644
--- a/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.java
+++ b/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.java
@@ -3,79 +3,128 @@
*/
package com.vaadin.tests.components.javascriptcomponent;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import com.vaadin.annotations.LoadScripts;
+import com.vaadin.annotations.JavaScript;
import com.vaadin.external.json.JSONArray;
import com.vaadin.external.json.JSONException;
+import com.vaadin.shared.communication.ClientRpc;
+import com.vaadin.shared.communication.ServerRpc;
+import com.vaadin.shared.communication.URLReference;
+import com.vaadin.shared.ui.JavaScriptComponentState;
+import com.vaadin.terminal.ClassResource;
import com.vaadin.terminal.WrappedRequest;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.ui.JavaScriptComponentState;
+import com.vaadin.terminal.gwt.server.ResourceReference;
import com.vaadin.tests.components.AbstractTestRoot;
+import com.vaadin.tests.util.Log;
import com.vaadin.ui.AbstractJavaScriptComponent;
+import com.vaadin.ui.HasComponents;
import com.vaadin.ui.JavaScriptCallback;
-import com.vaadin.ui.Notification;
-@LoadScripts({ "/statictestfiles/jsconnector.js" })
public class BasicJavaScriptComponent extends AbstractTestRoot {
- public interface ExampleClickRpc extends ServerRpc {
- public void onClick(String message);
+ public interface TestRpc extends ServerRpc, ClientRpc {
+ public void sendRpc(String message);
}
- public static class SpecialState extends JavaScriptComponentState {
- private List<String> data;
+ public static class TestState extends JavaScriptComponentState {
+ private List<String> messages = new ArrayList<String>();
+ private URLReference url;
- public List<String> getData() {
- return data;
+ public List<String> getMessages() {
+ return messages;
}
- public void setData(List<String> data) {
- this.data = data;
+ public void setMessages(List<String> messages) {
+ this.messages = messages;
+ }
+
+ public URLReference getUrl() {
+ return url;
+ }
+
+ public void setUrl(URLReference url) {
+ this.url = url;
}
}
- public static class ExampleWidget extends AbstractJavaScriptComponent {
+ @JavaScript("BasicJavaScriptComponentConnector.js")
+ public class ExampleWidget extends AbstractJavaScriptComponent {
public ExampleWidget() {
- registerRpc(new ExampleClickRpc() {
- public void onClick(String message) {
- Notification.show("Got a click: " + message);
+ registerRpc(new TestRpc() {
+ @Override
+ public void sendRpc(String message) {
+ log.log("Got RPC message: " + message);
}
});
- registerCallback("onclick", new JavaScriptCallback() {
+ registerCallback("messageToServer", new JavaScriptCallback() {
+ @Override
public void call(JSONArray arguments) throws JSONException {
- Notification.show("Got a callback: "
- + arguments.getString(0));
+ log.log("Got callback message: " + arguments.getString(0));
}
});
- getState().setData(Arrays.asList("a", "b", "c"));
+
+ registerCallback("reportParentIds", new JavaScriptCallback() {
+ @Override
+ public void call(JSONArray arguments) throws JSONException {
+ JSONArray parentIds = arguments.getJSONArray(0);
+ if (!parentIds.getString(0).equals(getConnectorId())) {
+ log.log("Connector ids doesn't match");
+ }
+
+ HasComponents parent = getParent();
+ int i = 1;
+ while (parent != null) {
+ if (!parentIds.getString(i).equals(
+ parent.getConnectorId())) {
+ log.log("parentIds[" + i + "] doesn't match");
+ }
+ i++;
+ parent = parent.getParent();
+ }
+ log.log("Parent ids checked");
+ }
+ });
+
+ getRpcProxy(TestRpc.class).sendRpc("RPC message");
+ invokeCallback("messageToClient", "Callback message");
+
+ getState()
+ .setMessages(
+ Arrays.asList("First state message",
+ "Second state message"));
+ ClassResource resource = new ClassResource("test",
+ BasicJavaScriptComponent.this.getApplication());
+ getState().setUrl(new ResourceReference(resource));
}
@Override
- public SpecialState getState() {
- return (SpecialState) super.getState();
+ public TestState getState() {
+ return (TestState) super.getState();
}
}
+ private final Log log = new Log(5);
+
@Override
protected void setup(WrappedRequest request) {
+ addComponent(log);
+
ExampleWidget c = new ExampleWidget();
- c.setCaption("test caption");
- c.setDescription("Some description");
+ c.setCaption("Component caption");
addComponent(c);
}
@Override
protected String getTestDescription() {
- // TODO Auto-generated method stub
- return null;
+ return "Test for basic JavaScript component functionality.";
}
@Override
protected Integer getTicketNumber() {
- // TODO Auto-generated method stub
- return null;
+ return Integer.valueOf(8888);
}
}
diff --git a/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponentConnector.js b/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponentConnector.js
new file mode 100644
index 0000000000..fe8367d18a
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponentConnector.js
@@ -0,0 +1,40 @@
+window.com_vaadin_tests_components_javascriptcomponent_BasicJavaScriptComponent_ExampleWidget = function() {
+ var parentIds = [];
+ var connectorId = this.getConnectorId();
+ while(connectorId) {
+ parentIds.push(connectorId);
+ connectorId = this.getParentId(connectorId);
+ }
+ this.reportParentIds(parentIds);
+
+ this.onStateChange = function() {
+ var e = this.getElement();
+
+ e.innerHTML = '';
+
+ var row = 1;
+ var log = function(text) {
+ e.innerHTML = "<div>" + row++ + ". " + text + "</div>" + e.innerHTML;
+ }
+
+ log("Parent element className: " + this.getElement(this.getParentId()).className);
+
+ var messages = this.getState().messages;
+ for(var i = 0; i < messages.length; i++) {
+ log("State message: " + messages[i]);
+ }
+
+ var url = this.getState().url;
+ log("Url: " + this.translateVaadinUri(url.uRL)); //Strange format, see #9210
+ }
+
+ this.registerRpc({
+ sendRpc: function(message) {
+ this.getRpcProxy().sendRpc(message + " processed");
+ }
+ });
+
+ this.messageToClient = function(message) {
+ this.messageToServer(message + " processed");
+ }
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/components/label/HundredPercentWideLabelResize.java b/tests/testbench/com/vaadin/tests/components/label/HundredPercentWideLabelResize.java
index a5bb291b67..61caf9a2f2 100644
--- a/tests/testbench/com/vaadin/tests/components/label/HundredPercentWideLabelResize.java
+++ b/tests/testbench/com/vaadin/tests/components/label/HundredPercentWideLabelResize.java
@@ -27,6 +27,7 @@ public class HundredPercentWideLabelResize extends TestBase {
getLayout().addComponent(
new Button("toggle width", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (getLayout().getWidth() == 500) {
getLayout().setWidth("100px");
diff --git a/tests/testbench/com/vaadin/tests/components/label/LabelModes.java b/tests/testbench/com/vaadin/tests/components/label/LabelModes.java
index c220076b58..207a9a8de7 100644
--- a/tests/testbench/com/vaadin/tests/components/label/LabelModes.java
+++ b/tests/testbench/com/vaadin/tests/components/label/LabelModes.java
@@ -1,6 +1,6 @@
package com.vaadin.tests.components.label;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.ComponentTestCase;
import com.vaadin.ui.Label;
diff --git a/tests/testbench/com/vaadin/tests/components/label/LabelTest.java b/tests/testbench/com/vaadin/tests/components/label/LabelTest.java
index 6547e7a20f..186b3deeb3 100644
--- a/tests/testbench/com/vaadin/tests/components/label/LabelTest.java
+++ b/tests/testbench/com/vaadin/tests/components/label/LabelTest.java
@@ -5,7 +5,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.AbstractComponentTest;
import com.vaadin.ui.Label;
@@ -14,12 +14,14 @@ public class LabelTest extends AbstractComponentTest<Label> implements
private Command<Label, Object> setValueCommand = new Command<Label, Object>() {
+ @Override
public void execute(Label c, Object value, Object data) {
c.setValue(value);
}
};
private Command<Label, Boolean> valueChangeListenerCommand = new Command<Label, Boolean>() {
+ @Override
public void execute(Label c, Boolean value, Object data) {
if (value) {
c.addListener(LabelTest.this);
@@ -31,6 +33,7 @@ public class LabelTest extends AbstractComponentTest<Label> implements
};
private Command<Label, ContentMode> contentModeCommand = new Command<Label, ContentMode>() {
+ @Override
public void execute(Label c, ContentMode value, Object data) {
c.setContentMode(value);
}
@@ -87,6 +90,7 @@ public class LabelTest extends AbstractComponentTest<Label> implements
valueChangeListenerCommand);
}
+ @Override
public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {
Object o = event.getProperty().getValue();
diff --git a/tests/testbench/com/vaadin/tests/components/label/LabelWrapping.java b/tests/testbench/com/vaadin/tests/components/label/LabelWrapping.java
index 166d0bda77..82969fdb08 100644
--- a/tests/testbench/com/vaadin/tests/components/label/LabelWrapping.java
+++ b/tests/testbench/com/vaadin/tests/components/label/LabelWrapping.java
@@ -28,6 +28,7 @@ public class LabelWrapping extends TestBase {
Button changeLength = new Button("Change length");
changeLength.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (longLabel.getValue().equals(longString)) {
longLabel.setValue("");
diff --git a/tests/testbench/com/vaadin/tests/components/label/Labels.java b/tests/testbench/com/vaadin/tests/components/label/Labels.java
index 1536f4555e..1da588576b 100644
--- a/tests/testbench/com/vaadin/tests/components/label/Labels.java
+++ b/tests/testbench/com/vaadin/tests/components/label/Labels.java
@@ -1,6 +1,6 @@
package com.vaadin.tests.components.label;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.ComponentTestCase;
import com.vaadin.tests.util.LoremIpsum;
import com.vaadin.ui.Label;
diff --git a/tests/testbench/com/vaadin/tests/components/label/MarginsInLabels.java b/tests/testbench/com/vaadin/tests/components/label/MarginsInLabels.java
index 55f5d431d3..b1cf2957be 100644
--- a/tests/testbench/com/vaadin/tests/components/label/MarginsInLabels.java
+++ b/tests/testbench/com/vaadin/tests/components/label/MarginsInLabels.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.components.label;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.WrappedRequest;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.tests.components.AbstractTestRoot;
import com.vaadin.ui.AbstractLayout;
import com.vaadin.ui.Accordion;
diff --git a/tests/testbench/com/vaadin/tests/components/link/LinkToPercentage.java b/tests/testbench/com/vaadin/tests/components/link/LinkToPercentage.java
index ce8626444c..f14e1afd8c 100644
--- a/tests/testbench/com/vaadin/tests/components/link/LinkToPercentage.java
+++ b/tests/testbench/com/vaadin/tests/components/link/LinkToPercentage.java
@@ -15,6 +15,7 @@ public class LinkToPercentage extends TestBase {
protected void setup() {
String filename = "110% Vaadin";
ApplicationResource resource = new StreamResource(new StreamSource() {
+ @Override
public InputStream getStream() {
return new InputStream() {
boolean first = true;
diff --git a/tests/testbench/com/vaadin/tests/components/listselect/ListSelects.java b/tests/testbench/com/vaadin/tests/components/listselect/ListSelects.java
index 3bab03287c..a3fa973bc2 100644
--- a/tests/testbench/com/vaadin/tests/components/listselect/ListSelects.java
+++ b/tests/testbench/com/vaadin/tests/components/listselect/ListSelects.java
@@ -8,12 +8,14 @@ import com.vaadin.ui.ListSelect;
public class ListSelects extends AbstractSelectTestCase<ListSelect> {
private Command<ListSelect, Integer> rowsCommand = new Command<ListSelect, Integer>() {
+ @Override
public void execute(ListSelect c, Integer value, Object data) {
c.setRows(value);
}
};
private Command<ListSelect, Integer> colsCommand = new Command<ListSelect, Integer>() {
+ @Override
public void execute(ListSelect c, Integer value, Object data) {
c.setColumns(value);
}
diff --git a/tests/testbench/com/vaadin/tests/components/loginform/LoginFormInIframe.html_disabled b/tests/testbench/com/vaadin/tests/components/loginform/LoginFormInIframe.html_disabled
new file mode 100644
index 0000000000..075bb3c57f
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/loginform/LoginFormInIframe.html_disabled
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>LoginFormTest</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">LoginFormTest</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/statictestfiles/LoginFormIframe.html</td>
+ <td></td>
+</tr>
+<tr>
+ <td>selectFrame</td>
+ <td>LoginForm</td>
+ <td></td>
+</tr>
+<tr>
+ <td>selectFrame</td>
+ <td>PID6</td>
+ <td></td>
+</tr>
+<tr>
+ <td>enterCharacter</td>
+ <td>username</td>
+ <td>username</td>
+</tr>
+<tr>
+ <td>enterCharacter</td>
+ <td>password</td>
+ <td>password</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//form[@id='loginf']/div[5]/div/span/span</td>
+ <td></td>
+</tr>
+<tr>
+ <td>selectFrame</td>
+ <td>relative=top</td>
+ <td></td>
+</tr>
+<tr>
+ <td>selectFrame</td>
+ <td>LoginForm</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsloginformLoginFormTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+ <td>User 'username', password='password' logged in</td>
+</tr>
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/loginform/LoginFormTest.java b/tests/testbench/com/vaadin/tests/components/loginform/LoginFormTest.java
index bbc7d2ca7e..629edc2130 100644
--- a/tests/testbench/com/vaadin/tests/components/loginform/LoginFormTest.java
+++ b/tests/testbench/com/vaadin/tests/components/loginform/LoginFormTest.java
@@ -31,6 +31,7 @@ public class LoginFormTest extends TestBase {
*/
private static final long serialVersionUID = 1L;
+ @Override
public void onLogin(LoginEvent event) {
login((LoginForm) event.getSource(),
event.getLoginParameter("username"),
@@ -43,6 +44,7 @@ public class LoginFormTest extends TestBase {
Button changeWidth = new Button("Change width", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (loginForm.getWidth() < 0) {
loginForm.setWidth("300px");
@@ -55,6 +57,7 @@ public class LoginFormTest extends TestBase {
Button changeHeight = new Button("Change height", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (loginForm.getHeight() < 0) {
loginForm.setHeight("200px");
@@ -88,6 +91,7 @@ public class LoginFormTest extends TestBase {
+ "' logged in");
Button logoutButton = new Button("Log out", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Button b = event.getButton();
loginFormLayout.replaceComponent(b.getParent(),
diff --git a/tests/testbench/com/vaadin/tests/components/loginform/LoginFormWithMultipleWindows.java b/tests/testbench/com/vaadin/tests/components/loginform/LoginFormWithMultipleWindows.java
index 1295cadf95..83f89f0214 100644
--- a/tests/testbench/com/vaadin/tests/components/loginform/LoginFormWithMultipleWindows.java
+++ b/tests/testbench/com/vaadin/tests/components/loginform/LoginFormWithMultipleWindows.java
@@ -27,6 +27,7 @@ public class LoginFormWithMultipleWindows extends Application {
private static final long serialVersionUID = 1L;
+ @Override
public void onLogin(LoginEvent event) {
showNotification(event.getLoginParameter("username") + ":"
+ event.getLoginParameter("password"));
diff --git a/tests/testbench/com/vaadin/tests/components/media/Media.java b/tests/testbench/com/vaadin/tests/components/media/Media.java
index 84b6974293..a1977c6ba1 100644
--- a/tests/testbench/com/vaadin/tests/components/media/Media.java
+++ b/tests/testbench/com/vaadin/tests/components/media/Media.java
@@ -27,6 +27,7 @@ public class Media extends TestBase {
addComponent(v);
addComponent(new Button("Play video", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
v.play();
}
@@ -34,6 +35,7 @@ public class Media extends TestBase {
}));
addComponent(new Button("Pause video", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
v.pause();
}
@@ -50,6 +52,7 @@ public class Media extends TestBase {
addComponent(new Button("Play audio", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
a.play();
}
@@ -57,6 +60,7 @@ public class Media extends TestBase {
}));
addComponent(new Button("Pause audio", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
a.pause();
}
diff --git a/tests/testbench/com/vaadin/tests/components/menubar/MenuBarHtmlItems.java b/tests/testbench/com/vaadin/tests/components/menubar/MenuBarHtmlItems.java
index ba22bcb7a4..d7585af8ac 100644
--- a/tests/testbench/com/vaadin/tests/components/menubar/MenuBarHtmlItems.java
+++ b/tests/testbench/com/vaadin/tests/components/menubar/MenuBarHtmlItems.java
@@ -44,6 +44,7 @@ public class MenuBarHtmlItems extends ComponentTestCase<MenuBar> {
private Component createSwitchHtmlAction() {
return createBooleanAction("Html content allowed", false,
new Command<MenuBar, Boolean>() {
+ @Override
public void execute(MenuBar c, Boolean value, Object data) {
c.setHtmlContentAllowed(value.booleanValue());
}
diff --git a/tests/testbench/com/vaadin/tests/components/menubar/MenuBarNavigation.java b/tests/testbench/com/vaadin/tests/components/menubar/MenuBarNavigation.java
index ede0c0c5a5..3af07645d6 100644
--- a/tests/testbench/com/vaadin/tests/components/menubar/MenuBarNavigation.java
+++ b/tests/testbench/com/vaadin/tests/components/menubar/MenuBarNavigation.java
@@ -47,6 +47,7 @@ public class MenuBarNavigation extends TestBase implements Command {
return 5174;
}
+ @Override
public void menuSelected(MenuItem selectedItem) {
log.log("MenuItem " + getName(selectedItem) + " selected");
}
diff --git a/tests/testbench/com/vaadin/tests/components/menubar/MenuBarRootItemSelectWithKeyboard.java b/tests/testbench/com/vaadin/tests/components/menubar/MenuBarRootItemSelectWithKeyboard.java
index f162386336..c093a61812 100644
--- a/tests/testbench/com/vaadin/tests/components/menubar/MenuBarRootItemSelectWithKeyboard.java
+++ b/tests/testbench/com/vaadin/tests/components/menubar/MenuBarRootItemSelectWithKeyboard.java
@@ -10,6 +10,7 @@ public class MenuBarRootItemSelectWithKeyboard extends TestBase {
@Override
protected void setup() {
Command c = new Command() {
+ @Override
public void menuSelected(MenuItem selectedItem) {
getMainWindow().showNotification(selectedItem.getText());
diff --git a/tests/testbench/com/vaadin/tests/components/menubar/MenuBarTest.java b/tests/testbench/com/vaadin/tests/components/menubar/MenuBarTest.java
index 2dc119bf43..5ab2b2145f 100644
--- a/tests/testbench/com/vaadin/tests/components/menubar/MenuBarTest.java
+++ b/tests/testbench/com/vaadin/tests/components/menubar/MenuBarTest.java
@@ -141,6 +141,7 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
/* COMMANDS */
Command<MenuBar, Integer> createRootMenuItems = new Command<MenuBar, Integer>() {
+ @Override
public void execute(MenuBar c, Integer value, Object data) {
rootItems = value;
createRootItems(c);
@@ -149,6 +150,7 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
Command<MenuBar, Integer> createSubMenuItems = new Command<MenuBar, Integer>() {
+ @Override
public void execute(MenuBar c, Integer value, Object data) {
subItems = value;
createSubItems(c);
@@ -157,6 +159,7 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
Command<MenuBar, Integer> setSubMenuLevels = new Command<MenuBar, Integer>() {
+ @Override
public void execute(MenuBar c, Integer value, Object data) {
subLevels = value;
createSubItems(c);
@@ -164,6 +167,7 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
};
private Command<MenuBar, Integer> setMenuIcons = new Command<MenuBar, Integer>() {
+ @Override
public void execute(MenuBar c, Integer value, Object data) {
iconInterval = value;
updateIcons(c);
@@ -172,6 +176,7 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
private Command<MenuBar, Integer> setSubMenuDensity = new Command<MenuBar, Integer>() {
+ @Override
public void execute(MenuBar c, Integer value, Object data) {
subMenuDensity = value;
createSubItems(c);
@@ -180,6 +185,7 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
private Command<MenuBar, Integer> setMenuItemDisabledDensity = new Command<MenuBar, Integer>() {
+ @Override
public void execute(MenuBar c, Integer value, Object data) {
disabledDensity = value;
createRootItems(c);
@@ -188,6 +194,7 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
private Command<MenuBar, Integer> setMenuItemInvisibleDensity = new Command<MenuBar, Integer>() {
+ @Override
public void execute(MenuBar c, Integer value, Object data) {
invisibleDensity = value;
createRootItems(c);
@@ -196,6 +203,7 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
private Command<MenuBar, Integer> setMenuItemCheckableDensity = new Command<MenuBar, Integer>() {
+ @Override
public void execute(MenuBar c, Integer value, Object data) {
checkableDensity = value;
createRootItems(c);
@@ -204,6 +212,7 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
private Command<MenuBar, Integer> setSubMenuSeparatorDensity = new Command<MenuBar, Integer>() {
+ @Override
public void execute(MenuBar c, Integer value, Object data) {
subMenuSeparatorDensity = value;
createSubItems(c);
@@ -212,6 +221,7 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
private Command<MenuBar, Boolean> setOpenRootOnHover = new Command<MenuBar, Boolean>() {
+ @Override
public void execute(MenuBar c, Boolean value, Object data) {
openRootMenuOnHover = value;
c.setAutoOpen(value);
@@ -221,6 +231,7 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
private Command<MenuBar, Integer> selectIcon = new Command<MenuBar, Integer>() {
+ @Override
public void execute(MenuBar c, Integer value, Object data) {
iconSize = value;
updateIcons(c);
@@ -231,6 +242,7 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
private MenuBar.Command menuCommand = new MenuBar.Command() {
+ @Override
public void menuSelected(MenuItem selectedItem) {
log("Menu item '" + selectedItem.getText() + "' selected");
diff --git a/tests/testbench/com/vaadin/tests/components/nativebutton/NativeButtonHtml.java b/tests/testbench/com/vaadin/tests/components/nativebutton/NativeButtonHtml.java
index 011439f810..94023db2d0 100644
--- a/tests/testbench/com/vaadin/tests/components/nativebutton/NativeButtonHtml.java
+++ b/tests/testbench/com/vaadin/tests/components/nativebutton/NativeButtonHtml.java
@@ -20,6 +20,7 @@ public class NativeButtonHtml extends TestBase {
final NativeButton swapButton = new NativeButton("<i>Swap button<i>");
swapButton.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
swapButton.setHtmlContentAllowed(!swapButton
.isHtmlContentAllowed());
diff --git a/tests/testbench/com/vaadin/tests/components/nativeselect/NativeSelects.java b/tests/testbench/com/vaadin/tests/components/nativeselect/NativeSelects.java
index ec46757106..80b088f03a 100644
--- a/tests/testbench/com/vaadin/tests/components/nativeselect/NativeSelects.java
+++ b/tests/testbench/com/vaadin/tests/components/nativeselect/NativeSelects.java
@@ -35,6 +35,7 @@ public class NativeSelects extends AbstractSelectTestCase<NativeSelect> {
private Command<NativeSelect, Integer> columnsAction = new Command<NativeSelect, Integer>() {
+ @Override
public void execute(NativeSelect c, Integer value, Object data) {
c.setColumns(value);
}
diff --git a/tests/testbench/com/vaadin/tests/components/notification/Notifications.java b/tests/testbench/com/vaadin/tests/components/notification/Notifications.java
index 5a158c8f03..ab632a2a57 100644
--- a/tests/testbench/com/vaadin/tests/components/notification/Notifications.java
+++ b/tests/testbench/com/vaadin/tests/components/notification/Notifications.java
@@ -50,9 +50,11 @@ public class Notifications extends TestBase implements ClickListener {
return null;
}
+ @Override
public void buttonClick(ClickEvent event) {
Notification n = new Notification(tf.getValue(),
(Integer) type.getValue());
+ n.setHtmlContentAllowed(true);
n.show(Page.getCurrent());
}
}
diff --git a/tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.java b/tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.java
index 547ef3077b..25bc05c771 100644
--- a/tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.java
+++ b/tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.java
@@ -17,6 +17,7 @@ public class NotificationsAndModalWindow extends TestBase {
Button b = new Button("Button");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Window w = new Window("This is a window");
w.setModal(true);
diff --git a/tests/testbench/com/vaadin/tests/components/notification/NotificationsHtmlAllowed.java b/tests/testbench/com/vaadin/tests/components/notification/NotificationsHtmlAllowed.java
index 8e42db57f3..767d16b6da 100644
--- a/tests/testbench/com/vaadin/tests/components/notification/NotificationsHtmlAllowed.java
+++ b/tests/testbench/com/vaadin/tests/components/notification/NotificationsHtmlAllowed.java
@@ -44,6 +44,7 @@ public class NotificationsHtmlAllowed extends TestBase implements ClickListener
return 6097;
}
+ @Override
public void buttonClick(ClickEvent event) {
Notification n = makeNotification();
n.show(Page.getCurrent());
diff --git a/tests/testbench/com/vaadin/tests/components/optiongroup/DisabledOptionGroupItems.java b/tests/testbench/com/vaadin/tests/components/optiongroup/DisabledOptionGroupItems.java
index 4668ef5ab8..877f9aa675 100644
--- a/tests/testbench/com/vaadin/tests/components/optiongroup/DisabledOptionGroupItems.java
+++ b/tests/testbench/com/vaadin/tests/components/optiongroup/DisabledOptionGroupItems.java
@@ -52,6 +52,7 @@ public class DisabledOptionGroupItems extends ComponentTestCase<OptionGroup> {
return createButtonAction("Toggle selection mode",
new Command<OptionGroup, Boolean>() {
+ @Override
public void execute(OptionGroup og, Boolean value,
Object data) {
if (og.isMultiSelect()) {
@@ -69,6 +70,7 @@ public class DisabledOptionGroupItems extends ComponentTestCase<OptionGroup> {
return createButtonAction("Invert disabled items",
new Command<OptionGroup, Boolean>() {
+ @Override
public void execute(OptionGroup c, Boolean value,
Object data) {
for (Object itemId : c.getItemIds()) {
diff --git a/tests/testbench/com/vaadin/tests/components/optiongroup/HtmlOptionGroupItems.java b/tests/testbench/com/vaadin/tests/components/optiongroup/HtmlOptionGroupItems.java
index 0f6ae8917a..179d1aa5ff 100644
--- a/tests/testbench/com/vaadin/tests/components/optiongroup/HtmlOptionGroupItems.java
+++ b/tests/testbench/com/vaadin/tests/components/optiongroup/HtmlOptionGroupItems.java
@@ -54,6 +54,7 @@ public class HtmlOptionGroupItems extends ComponentTestCase<OptionGroup> {
private Component createInvertHtmlItemsAction() {
return createButtonAction("Toggle html mode",
new Command<OptionGroup, Boolean>() {
+ @Override
public void execute(OptionGroup og, Boolean value,
Object data) {
og.setHtmlContentAllowed(!og.isHtmlContentAllowed());
@@ -65,6 +66,7 @@ public class HtmlOptionGroupItems extends ComponentTestCase<OptionGroup> {
return createButtonAction("Toggle selection mode",
new Command<OptionGroup, Boolean>() {
+ @Override
public void execute(OptionGroup og, Boolean value,
Object data) {
if (og.isMultiSelect()) {
@@ -82,6 +84,7 @@ public class HtmlOptionGroupItems extends ComponentTestCase<OptionGroup> {
return createButtonAction("Invert disabled items",
new Command<OptionGroup, Boolean>() {
+ @Override
public void execute(OptionGroup c, Boolean value,
Object data) {
for (Object itemId : c.getItemIds()) {
diff --git a/tests/testbench/com/vaadin/tests/components/optiongroup/OptionGroupMultipleValueChange.java b/tests/testbench/com/vaadin/tests/components/optiongroup/OptionGroupMultipleValueChange.java
index ff860f3293..213258ed29 100644
--- a/tests/testbench/com/vaadin/tests/components/optiongroup/OptionGroupMultipleValueChange.java
+++ b/tests/testbench/com/vaadin/tests/components/optiongroup/OptionGroupMultipleValueChange.java
@@ -2,7 +2,7 @@ package com.vaadin.tests.components.optiongroup;
import com.vaadin.data.Property;
import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Label;
import com.vaadin.ui.OptionGroup;
@@ -33,6 +33,7 @@ public class OptionGroupMultipleValueChange extends TestBase {
og.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
String s = "ValueChange: " + event.getProperty().getValue();
events.setValue(events.getValue() + "\n" + s);
diff --git a/tests/testbench/com/vaadin/tests/components/optiongroup/OptionGroups.java b/tests/testbench/com/vaadin/tests/components/optiongroup/OptionGroups.java
index f8af6b07e4..c20de87ec7 100644
--- a/tests/testbench/com/vaadin/tests/components/optiongroup/OptionGroups.java
+++ b/tests/testbench/com/vaadin/tests/components/optiongroup/OptionGroups.java
@@ -21,6 +21,7 @@ public class OptionGroups extends AbstractSelectTestCase<OptionGroup> {
createDisabledItemsMultiToggle("Disabled items");
createBooleanAction("HTML content allowed", CATEGORY_STATE, false,
new Command<OptionGroup, Boolean>() {
+ @Override
public void execute(OptionGroup og, Boolean value,
Object data) {
og.setHtmlContentAllowed(value.booleanValue());
@@ -39,6 +40,7 @@ public class OptionGroups extends AbstractSelectTestCase<OptionGroup> {
createSelectAction(string, CATEGORY_DECORATIONS, options, options
.keySet().iterator().next(),
new Command<OptionGroup, ThemeResource>() {
+ @Override
public void execute(OptionGroup c, ThemeResource icon,
Object data) {
Collection<?> itemIds = c.getItemIds();
@@ -58,6 +60,7 @@ public class OptionGroups extends AbstractSelectTestCase<OptionGroup> {
private Command<OptionGroup, Boolean> enabledItemCommand = new Command<OptionGroup, Boolean>() {
+ @Override
public void execute(OptionGroup c, Boolean value, Object data) {
c.setItemEnabled(data, value);
diff --git a/tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutClickListenerTest.java b/tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutClickListenerTest.java
index 4f4faf15bb..821a5dbb93 100644
--- a/tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutClickListenerTest.java
+++ b/tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutClickListenerTest.java
@@ -59,6 +59,7 @@ public class LayoutClickListenerTest extends TestBase {
// Listen for layout click events
layout.addListener(new LayoutClickListener() {
+ @Override
public void layoutClick(LayoutClickEvent event) {
// Get the deepest nested component which was clicked
diff --git a/tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutResizeTest.java b/tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutResizeTest.java
index b5e83978b7..62c552ee75 100644
--- a/tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutResizeTest.java
+++ b/tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutResizeTest.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.components.orderedlayout;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.ThemeResource;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Button;
@@ -37,6 +37,7 @@ public class LayoutResizeTest extends TestBase {
Button resize = new Button("Resize to 700x400",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
event.getButton()
.getRoot()
@@ -49,6 +50,7 @@ public class LayoutResizeTest extends TestBase {
left.addComponent(resize);
resize = new Button("Resize to 900x600", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
event.getButton()
.getRoot()
diff --git a/tests/testbench/com/vaadin/tests/components/orderedlayout/OrderedLayoutCases.java b/tests/testbench/com/vaadin/tests/components/orderedlayout/OrderedLayoutCases.java
index a4a7098f52..aeae09e7b9 100644
--- a/tests/testbench/com/vaadin/tests/components/orderedlayout/OrderedLayoutCases.java
+++ b/tests/testbench/com/vaadin/tests/components/orderedlayout/OrderedLayoutCases.java
@@ -31,18 +31,21 @@ public class OrderedLayoutCases extends AbstractTestRoot {
setStyleName("sampleChild");
addComponent(createSimpleSelector("Child width",
new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
setWidth(event.getProperty().getValue().toString());
}
}, dimensionValues));
addComponent(createSimpleSelector("Child height",
new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
setHeight(event.getProperty().getValue().toString());
}
}, dimensionValues));
addComponent(createSimpleSelector("Caption",
new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
String value = event.getProperty().getValue()
.toString();
@@ -58,6 +61,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
addComponent(createSimpleSelector("Expand ratio",
new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
AbstractOrderedLayout parent = (AbstractOrderedLayout) getParent();
if (parent == null) {
@@ -81,6 +85,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
}
addComponent(createSimpleSelector("Alignment",
new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
String value = event.getProperty().getValue()
.toString();
@@ -130,6 +135,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
sizeBar.addComponent(createSimpleSelector("Layout width",
new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
currentLayout.setWidth(event.getProperty().getValue()
.toString());
@@ -137,6 +143,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
}, dimensionValues));
sizeBar.addComponent(createSimpleSelector("Layout height",
new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
currentLayout.setHeight(event.getProperty().getValue()
.toString());
@@ -144,6 +151,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
}, dimensionValues));
sizeBar.addComponent(createSimpleSelector("Spacing",
new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
currentLayout.setSpacing(Boolean.parseBoolean(event
.getProperty().getValue().toString()));
@@ -151,6 +159,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
}, "false", "true"));
sizeBar.addComponent(createSimpleSelector("Margin",
new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
currentLayout.setMargin(Boolean.parseBoolean(event
.getProperty().getValue().toString()));
@@ -158,6 +167,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
}, "false", "true"));
sizeBar.addComponent(createSimpleSelector("Direction",
new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Object value = event.getProperty().getValue();
@@ -191,6 +201,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
HorizontalLayout caseBar = new HorizontalLayout();
caseBar.addComponent(new Button("Undefined without relative",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
resetState();
setState(sizeBar, 2, 1);
@@ -204,6 +215,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
}));
caseBar.addComponent(new Button("Undefined with relative",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
resetState();
// width: 100% to middle child
@@ -212,6 +224,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
}));
caseBar.addComponent(new Button("Fixed with overflow",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
resetState();
// layout width: 350px
@@ -222,6 +235,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
}));
caseBar.addComponent(new Button("Fixed with extra space",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
resetState();
// Layout width: 800px
@@ -239,6 +253,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
caseBar.addComponent(new Button("Expand with alignment",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
resetState();
// Layout width: 800px
@@ -256,6 +271,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
caseBar.addComponent(new Button("Multiple expands",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
resetState();
// Layout width: 800px
@@ -278,6 +294,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
caseBar.addComponent(new Button("Fixed + relative height",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
resetState();
// Layout height: 100%
@@ -295,6 +312,7 @@ public class OrderedLayoutCases extends AbstractTestRoot {
caseBar.addComponent(new Button("Undefined + relative height",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
resetState();
// Height: 350px to left child
diff --git a/tests/testbench/com/vaadin/tests/components/orderedlayout/ReplaceComponentNPE.java b/tests/testbench/com/vaadin/tests/components/orderedlayout/ReplaceComponentNPE.java
index 501c377ab7..a18400ce08 100644
--- a/tests/testbench/com/vaadin/tests/components/orderedlayout/ReplaceComponentNPE.java
+++ b/tests/testbench/com/vaadin/tests/components/orderedlayout/ReplaceComponentNPE.java
@@ -26,6 +26,7 @@ public class ReplaceComponentNPE extends TestBase {
Button changer = new Button("ReplaceComponent");
changer.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getLayout().replaceComponent(button, outer);
outer.addComponent(button);
diff --git a/tests/testbench/com/vaadin/tests/components/orderedlayout/VerticalLayoutWidthCalculation.java b/tests/testbench/com/vaadin/tests/components/orderedlayout/VerticalLayoutWidthCalculation.java
index f20f26153f..945ccf0e28 100644
--- a/tests/testbench/com/vaadin/tests/components/orderedlayout/VerticalLayoutWidthCalculation.java
+++ b/tests/testbench/com/vaadin/tests/components/orderedlayout/VerticalLayoutWidthCalculation.java
@@ -43,6 +43,7 @@ public class VerticalLayoutWidthCalculation extends AbstractTestCase {
Button btn = new Button("Show/hide");
btn.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tf2.setVisible(!tf2.isVisible());
}
diff --git a/tests/testbench/com/vaadin/tests/components/panel/BasicPanelTest.java b/tests/testbench/com/vaadin/tests/components/panel/BasicPanelTest.java
index 671b2c3fca..b3eac5c82e 100644
--- a/tests/testbench/com/vaadin/tests/components/panel/BasicPanelTest.java
+++ b/tests/testbench/com/vaadin/tests/components/panel/BasicPanelTest.java
@@ -37,6 +37,7 @@ public class BasicPanelTest extends TestBase {
final CheckBox heightSelection = new CheckBox("Undefined height");
heightSelection.setImmediate(true);
heightSelection.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (heightSelection.getValue() == Boolean.TRUE) {
panel.setHeight(null);
diff --git a/tests/testbench/com/vaadin/tests/components/panel/PanelChangeContents.java b/tests/testbench/com/vaadin/tests/components/panel/PanelChangeContents.java
index 4859b22932..7722e182ff 100644
--- a/tests/testbench/com/vaadin/tests/components/panel/PanelChangeContents.java
+++ b/tests/testbench/com/vaadin/tests/components/panel/PanelChangeContents.java
@@ -48,6 +48,7 @@ public class PanelChangeContents extends AbstractTestRoot implements
setContent(content);
}
+ @Override
public void buttonClick(ClickEvent event) {
if (event.getButton() == statsButton) {
panel.setContent(stats);
diff --git a/tests/testbench/com/vaadin/tests/components/panel/PanelClickListenerRelativeCoordinates.java b/tests/testbench/com/vaadin/tests/components/panel/PanelClickListenerRelativeCoordinates.java
index 65a185b160..40f6d5ea33 100644
--- a/tests/testbench/com/vaadin/tests/components/panel/PanelClickListenerRelativeCoordinates.java
+++ b/tests/testbench/com/vaadin/tests/components/panel/PanelClickListenerRelativeCoordinates.java
@@ -12,6 +12,7 @@ public class PanelClickListenerRelativeCoordinates extends TestBase {
Panel panel = new Panel("Panel's caption");
panel.addListener(new ClickListener() {
+ @Override
public void click(ClickEvent event) {
getMainWindow()
.showNotification(
diff --git a/tests/testbench/com/vaadin/tests/components/panel/PanelShouldNotScroll.java b/tests/testbench/com/vaadin/tests/components/panel/PanelShouldNotScroll.java
index 65754de0f3..a4cba89732 100644
--- a/tests/testbench/com/vaadin/tests/components/panel/PanelShouldNotScroll.java
+++ b/tests/testbench/com/vaadin/tests/components/panel/PanelShouldNotScroll.java
@@ -1,6 +1,6 @@
package com.vaadin.tests.components.panel;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
@@ -23,6 +23,7 @@ public class PanelShouldNotScroll extends TestBase {
p.addComponent(foo());
addMore = new Button("Add");
addMore.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
p.removeComponent(addMore);
p.addComponent(foo());
diff --git a/tests/testbench/com/vaadin/tests/components/panel/PanelShouldRemoveActionHandler.java b/tests/testbench/com/vaadin/tests/components/panel/PanelShouldRemoveActionHandler.java
index eec39359aa..5ca5c5135f 100644
--- a/tests/testbench/com/vaadin/tests/components/panel/PanelShouldRemoveActionHandler.java
+++ b/tests/testbench/com/vaadin/tests/components/panel/PanelShouldRemoveActionHandler.java
@@ -34,6 +34,7 @@ public class PanelShouldRemoveActionHandler extends TestBase {
Button add = new Button("Add an action handler",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
add();
}
@@ -42,6 +43,7 @@ public class PanelShouldRemoveActionHandler extends TestBase {
Button addAnother = new Button("Add another action handler",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
addAnother();
}
@@ -50,6 +52,7 @@ public class PanelShouldRemoveActionHandler extends TestBase {
Button remove = new Button("Remove an action handler",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
remove();
}
@@ -73,12 +76,14 @@ public class PanelShouldRemoveActionHandler extends TestBase {
panel.setCaption(panel.getCaption() + " - Added handler");
Handler actionHandler = new Handler() {
+ @Override
public Action[] getActions(Object target, Object sender) {
return new Action[] { new ShortcutAction("Ctrl+Left",
ShortcutAction.KeyCode.ARROW_LEFT,
new int[] { ModifierKey.CTRL }) };
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
getMainWindow().showNotification(
"Handling action " + action.getCaption());
@@ -92,12 +97,14 @@ public class PanelShouldRemoveActionHandler extends TestBase {
public void addAnother() {
Handler actionHandler = new Handler() {
+ @Override
public Action[] getActions(Object target, Object sender) {
return new Action[] { new ShortcutAction("Ctrl+Right",
ShortcutAction.KeyCode.ARROW_RIGHT,
new int[] { ModifierKey.CTRL }) };
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
getMainWindow().showNotification(
"Handling action " + action.getCaption());
diff --git a/tests/testbench/com/vaadin/tests/components/popupview/PopupViewClickShortcut.java b/tests/testbench/com/vaadin/tests/components/popupview/PopupViewClickShortcut.java
new file mode 100644
index 0000000000..6461d10277
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/popupview/PopupViewClickShortcut.java
@@ -0,0 +1,78 @@
+package com.vaadin.tests.components.popupview;
+
+import com.vaadin.event.ShortcutAction.KeyCode;
+import com.vaadin.event.ShortcutAction.ModifierKey;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.util.Log;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.ComponentContainer;
+import com.vaadin.ui.Layout;
+import com.vaadin.ui.PopupView;
+import com.vaadin.ui.Table;
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.Window;
+
+public class PopupViewClickShortcut extends TestBase {
+
+ private Window sub = new Window("Table", makeTable("Subwindow", KeyCode.S));
+
+ private Log log = new Log(5);
+
+ @Override
+ protected void setup() {
+ sub.center();
+ getMainWindow().addWindow(sub);
+ addComponent(log);
+ addComponent(new PopupView("Show popup table", makeTable("Popup",
+ KeyCode.P)));
+ addComponent(makeTable("Main window", KeyCode.M));
+ sub.addComponent(new PopupView("Show popup table", makeTable(
+ "Subwindow popup", KeyCode.U)));
+ }
+
+ private ComponentContainer makeTable(final String caption, int keyCode) {
+ final Table t = new Table();
+ t.setSelectable(true);
+ t.setHeight("200px");
+ t.setWidth("200px");
+ t.addContainerProperty("foo", String.class, "foo");
+ for (int i = 0; i < 5; i++) {
+ t.addItem(new String[] { "foo " + i }, i);
+ }
+
+ final Layout l = new VerticalLayout();
+ l.setCaption(caption);
+ l.setWidth(null);
+
+ Button b = new Button("Submit " + caption + " (Ctrl+Alt+"
+ + String.valueOf(Character.toChars(keyCode)) + ")",
+ new Button.ClickListener() {
+ private int i = 5;
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ log.log("Submitted from "
+ + event.getButton().getParent().getCaption());
+ t.addItem(new String[] { "added " + i++ }, i);
+ }
+ });
+ b.setClickShortcut(keyCode, ModifierKey.CTRL, ModifierKey.ALT);
+
+ l.addComponent(t);
+ l.addComponent(b);
+
+ return l;
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Enter ClickShortcut does not work with PopupView";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 8193;
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/popupview/PopupViewNullValues.java b/tests/testbench/com/vaadin/tests/components/popupview/PopupViewNullValues.java
index 481c134ee6..75f95977bd 100644
--- a/tests/testbench/com/vaadin/tests/components/popupview/PopupViewNullValues.java
+++ b/tests/testbench/com/vaadin/tests/components/popupview/PopupViewNullValues.java
@@ -20,6 +20,7 @@ public class PopupViewNullValues extends TestBase {
addComponent(pv[0]);
b[0] = new Button("Open popupview 1", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
pv[0].setPopupVisible(true);
}
@@ -38,6 +39,7 @@ public class PopupViewNullValues extends TestBase {
addComponent(pv[1]);
b[1] = new Button("Open popupview 2", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
pv[1].setPopupVisible(true);
}
@@ -55,6 +57,7 @@ public class PopupViewNullValues extends TestBase {
addComponent(pv[2]);
b[2] = new Button("Open popupview 3", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
pv[2].setPopupVisible(true);
}
@@ -72,6 +75,7 @@ public class PopupViewNullValues extends TestBase {
addComponent(pv[3]);
b[3] = new Button("Open popupview 4", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
pv[3].setPopupVisible(true);
}
diff --git a/tests/testbench/com/vaadin/tests/components/popupview/PopupViewOffScreen.java b/tests/testbench/com/vaadin/tests/components/popupview/PopupViewOffScreen.java
index 72183e3570..01ed34a13f 100644
--- a/tests/testbench/com/vaadin/tests/components/popupview/PopupViewOffScreen.java
+++ b/tests/testbench/com/vaadin/tests/components/popupview/PopupViewOffScreen.java
@@ -3,7 +3,7 @@ package com.vaadin.tests.components.popupview;
import java.util.ArrayList;
import java.util.List;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.LoremIpsum;
import com.vaadin.ui.Button;
@@ -42,6 +42,7 @@ public class PopupViewOffScreen extends TestBase {
Button showall = new Button("Popup all", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
for (PopupView pv : popupViews) {
pv.setPopupVisible(true);
diff --git a/tests/testbench/com/vaadin/tests/components/popupview/PopupViewShouldCloseOnTabOut.java b/tests/testbench/com/vaadin/tests/components/popupview/PopupViewShouldCloseOnTabOut.java
index 7e917630c8..271a7eea2a 100644
--- a/tests/testbench/com/vaadin/tests/components/popupview/PopupViewShouldCloseOnTabOut.java
+++ b/tests/testbench/com/vaadin/tests/components/popupview/PopupViewShouldCloseOnTabOut.java
@@ -24,10 +24,12 @@ public class PopupViewShouldCloseOnTabOut extends TestBase {
protected void setup() {
PopupView pv = new PopupView(new Content() {
+ @Override
public String getMinimizedValueAsHTML() {
return "<b>click me</b>";
}
+ @Override
public Component getPopupComponent() {
VerticalLayout vl = new VerticalLayout();
TextField field1 = new TextField();
diff --git a/tests/testbench/com/vaadin/tests/components/popupview/PopupViewWithRTE.java b/tests/testbench/com/vaadin/tests/components/popupview/PopupViewWithRTE.java
index 5ed0a375fe..069ccef2bb 100644
--- a/tests/testbench/com/vaadin/tests/components/popupview/PopupViewWithRTE.java
+++ b/tests/testbench/com/vaadin/tests/components/popupview/PopupViewWithRTE.java
@@ -27,6 +27,7 @@ public class PopupViewWithRTE extends TestBase {
VerticalLayout vl = new VerticalLayout();
+ @Override
public String getMinimizedValueAsHTML() {
String value = rte.getValue();
if (value == null || "".equals(value)) {
@@ -40,6 +41,7 @@ public class PopupViewWithRTE extends TestBase {
return value.toString();
}
+ @Override
public Component getPopupComponent() {
return vl;
}
diff --git a/tests/testbench/com/vaadin/tests/components/popupview/ReopenPopupView.java b/tests/testbench/com/vaadin/tests/components/popupview/ReopenPopupView.java
index 89f6d155f2..bef3cfced8 100644
--- a/tests/testbench/com/vaadin/tests/components/popupview/ReopenPopupView.java
+++ b/tests/testbench/com/vaadin/tests/components/popupview/ReopenPopupView.java
@@ -18,6 +18,7 @@ public class ReopenPopupView extends AbstractTestRoot {
addComponent(log);
addComponent(new PopupView("PopupView", new Button("Button",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log("Button clicked");
}
diff --git a/tests/testbench/com/vaadin/tests/components/progressindicator/ProgressIndicatorInvisible.java b/tests/testbench/com/vaadin/tests/components/progressindicator/ProgressIndicatorInvisible.java
index 62dba61191..9f632ac806 100644
--- a/tests/testbench/com/vaadin/tests/components/progressindicator/ProgressIndicatorInvisible.java
+++ b/tests/testbench/com/vaadin/tests/components/progressindicator/ProgressIndicatorInvisible.java
@@ -22,6 +22,7 @@ public class ProgressIndicatorInvisible extends TestBase {
addComponent(b);
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
// If we skip hiding the layout, hiding the ProgressIndicator
// will stop the polling
diff --git a/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaScrolling.html b/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaScrolling.html
new file mode 100644
index 0000000000..be1c5a2cde
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaScrolling.html
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>RichTextAreaScrolling</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">RichTextAreaScrolling</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.richtextarea.RichTextAreaScrolling?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaScrolling.java b/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaScrolling.java
new file mode 100644
index 0000000000..f88ed0c67c
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaScrolling.java
@@ -0,0 +1,57 @@
+package com.vaadin.tests.components.richtextarea;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.RichTextArea;
+import com.vaadin.ui.VerticalLayout;
+
+public class RichTextAreaScrolling extends TestBase {
+
+ @Override
+ protected String getDescription() {
+ return "A read-only RichTextArea should be (touch) scrollable";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 7036;
+ }
+
+ @Override
+ protected void setup() {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < 50; ++i) {
+ sb.append("A long string with several lines<br/>");
+ }
+
+ HorizontalLayout main = new HorizontalLayout();
+ main.setSpacing(true);
+ addComponent(main);
+
+ RichTextArea first = new RichTextArea("Defined height");
+ RichTextArea second = new RichTextArea("Full height");
+ RichTextArea third = new RichTextArea("Undefined height");
+
+ first.setValue(sb);
+ second.setValue(sb);
+ third.setValue(sb);
+
+ first.setReadOnly(true);
+ second.setReadOnly(true);
+ third.setReadOnly(true);
+
+ first.setWidth("200px");
+ first.setHeight("400px");
+ second.setSizeFull();
+ third.setSizeUndefined();
+
+ VerticalLayout secondLayout = new VerticalLayout();
+ secondLayout.setWidth("200px");
+ secondLayout.setHeight("200px");
+ secondLayout.addComponent(second);
+
+ main.addComponent(first);
+ main.addComponent(secondLayout);
+ main.addComponent(third);
+ }
+}
diff --git a/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaTest.java b/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaTest.java
index cb7b991bda..4155dd8a07 100644
--- a/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaTest.java
+++ b/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaTest.java
@@ -14,6 +14,7 @@ public class RichTextAreaTest extends AbstractFieldTest<RichTextArea> {
private Command<RichTextArea, Boolean> nullSelectionAllowedCommand = new Command<RichTextArea, Boolean>() {
+ @Override
public void execute(RichTextArea c, Boolean value, Object data) {
c.setNullSettingAllowed(value);
@@ -21,6 +22,7 @@ public class RichTextAreaTest extends AbstractFieldTest<RichTextArea> {
};
private Command<RichTextArea, String> nullRepresentationCommand = new Command<RichTextArea, String>() {
+ @Override
public void execute(RichTextArea c, String value, Object data) {
c.setNullRepresentation(value);
}
diff --git a/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaWithKeyboardShortcuts.java b/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaWithKeyboardShortcuts.java
index 98f31cd68c..73d7a95e9f 100644
--- a/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaWithKeyboardShortcuts.java
+++ b/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaWithKeyboardShortcuts.java
@@ -3,6 +3,7 @@ package com.vaadin.tests.components.richtextarea;
import com.vaadin.event.Action;
import com.vaadin.event.Action.Handler;
import com.vaadin.event.ShortcutAction;
+import com.vaadin.terminal.Page;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.AbstractField;
import com.vaadin.ui.Component;
@@ -19,6 +20,7 @@ public class RichTextAreaWithKeyboardShortcuts extends TestBase {
ShortcutAction save = new ShortcutAction("^Save");
private Action[] actions = new Action[] { save };
+ @Override
public void handleAction(Action action, Object sender, Object target) {
String msg = "Action: " + action.getCaption();
msg += " From : " + sender.getClass().getSimpleName() + " '"
@@ -31,10 +33,13 @@ public class RichTextAreaWithKeyboardShortcuts extends TestBase {
String string = f.getValue().toString();
msg += " Value: " + string;
- Notification.show(msg);
+ Notification notification = new Notification(msg);
+ notification.setHtmlContentAllowed(true);
+ notification.show(Page.getCurrent());
}
+ @Override
public Action[] getActions(Object target, Object sender) {
return actions;
}
diff --git a/tests/testbench/com/vaadin/tests/components/root/LazyInitRoots.java b/tests/testbench/com/vaadin/tests/components/root/LazyInitRoots.java
index c4547e56ff..254410a549 100644
--- a/tests/testbench/com/vaadin/tests/components/root/LazyInitRoots.java
+++ b/tests/testbench/com/vaadin/tests/components/root/LazyInitRoots.java
@@ -2,10 +2,10 @@ package com.vaadin.tests.components.root;
import com.vaadin.RootRequiresMoreInformationException;
import com.vaadin.annotations.EagerInit;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.ExternalResource;
import com.vaadin.terminal.WrappedRequest;
import com.vaadin.terminal.WrappedRequest.BrowserDetails;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.tests.components.AbstractTestApplication;
import com.vaadin.ui.Label;
import com.vaadin.ui.Link;
diff --git a/tests/testbench/com/vaadin/tests/components/root/UriFragmentTest.java b/tests/testbench/com/vaadin/tests/components/root/UriFragmentTest.java
index 251672fb9a..d34c7718ce 100644
--- a/tests/testbench/com/vaadin/tests/components/root/UriFragmentTest.java
+++ b/tests/testbench/com/vaadin/tests/components/root/UriFragmentTest.java
@@ -17,12 +17,14 @@ public class UriFragmentTest extends AbstractTestRoot {
addComponent(fragmentLabel);
updateLabel();
getPage().addListener(new Page.FragmentChangedListener() {
+ @Override
public void fragmentChanged(FragmentChangedEvent event) {
updateLabel();
}
});
addComponent(new Button("Navigate to #test",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getPage().setFragment("test");
}
diff --git a/tests/testbench/com/vaadin/tests/components/select/AbstractSelectTestCase.java b/tests/testbench/com/vaadin/tests/components/select/AbstractSelectTestCase.java
index 0565811e15..7c2d8dd243 100644
--- a/tests/testbench/com/vaadin/tests/components/select/AbstractSelectTestCase.java
+++ b/tests/testbench/com/vaadin/tests/components/select/AbstractSelectTestCase.java
@@ -146,6 +146,7 @@ public abstract class AbstractSelectTestCase<T extends AbstractSelect> extends
protected Command<T, Boolean> nullSelectionAllowedCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
(c).setNullSelectionAllowed(value);
}
@@ -153,6 +154,7 @@ public abstract class AbstractSelectTestCase<T extends AbstractSelect> extends
protected Command<T, Boolean> multiselectCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
c.setMultiSelect(value);
}
@@ -160,6 +162,7 @@ public abstract class AbstractSelectTestCase<T extends AbstractSelect> extends
protected Command<T, Object> nullSelectItemIdCommand = new Command<T, Object>() {
+ @Override
public void execute(T c, Object value, Object data) {
c.setNullSelectionItemId(value);
}
@@ -167,6 +170,7 @@ public abstract class AbstractSelectTestCase<T extends AbstractSelect> extends
protected Command<T, Integer> itemsInContainerCommand = new Command<T, Integer>() {
+ @Override
public void execute(T t, Integer value, Object data) {
items = value;
updateContainer();
@@ -175,6 +179,7 @@ public abstract class AbstractSelectTestCase<T extends AbstractSelect> extends
protected Command<T, Integer> propertiesInContainerCommand = new Command<T, Integer>() {
+ @Override
public void execute(T t, Integer value, Object data) {
properties = value;
updateContainer();
@@ -183,6 +188,7 @@ public abstract class AbstractSelectTestCase<T extends AbstractSelect> extends
protected Command<T, Boolean> itemClickListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
((ItemClickNotifier) c)
@@ -206,6 +212,7 @@ public abstract class AbstractSelectTestCase<T extends AbstractSelect> extends
/* COMMANDS END */
+ @Override
public void itemClick(ItemClickEvent event) {
String type = event.getButtonName();
if (event.isDoubleClick()) {
diff --git a/tests/testbench/com/vaadin/tests/components/select/ComboBoxAddWhileFiltering.java b/tests/testbench/com/vaadin/tests/components/select/ComboBoxAddWhileFiltering.java
index 931686003a..470c97442f 100644
--- a/tests/testbench/com/vaadin/tests/components/select/ComboBoxAddWhileFiltering.java
+++ b/tests/testbench/com/vaadin/tests/components/select/ComboBoxAddWhileFiltering.java
@@ -22,6 +22,7 @@ public class ComboBoxAddWhileFiltering extends TestBase {
Button b = new Button("add item (^N)");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
addItem(comboBox);
}
diff --git a/tests/testbench/com/vaadin/tests/components/select/FocusListenerBreaksDropdownMenu.java b/tests/testbench/com/vaadin/tests/components/select/FocusListenerBreaksDropdownMenu.java
index dd2a8bb1a8..6f203bf8c9 100644
--- a/tests/testbench/com/vaadin/tests/components/select/FocusListenerBreaksDropdownMenu.java
+++ b/tests/testbench/com/vaadin/tests/components/select/FocusListenerBreaksDropdownMenu.java
@@ -14,6 +14,7 @@ public class FocusListenerBreaksDropdownMenu extends TestBase {
}
comboBox.addListener(new FieldEvents.FocusListener() {
+ @Override
public void focus(FieldEvents.FocusEvent event) {
comboBox.addItem();
}
diff --git a/tests/testbench/com/vaadin/tests/components/select/NativeSelects.java b/tests/testbench/com/vaadin/tests/components/select/NativeSelects.java
index d5577e213c..75a3f1b751 100644
--- a/tests/testbench/com/vaadin/tests/components/select/NativeSelects.java
+++ b/tests/testbench/com/vaadin/tests/components/select/NativeSelects.java
@@ -108,6 +108,7 @@ public class NativeSelects extends ComponentTestCase<NativeSelect> {
actions.add(createBooleanAction("Null selection allowed", false,
new Command<NativeSelect, Boolean>() {
+ @Override
public void execute(NativeSelect c, Boolean value,
Object data) {
c.setNullSelectionAllowed(value);
diff --git a/tests/testbench/com/vaadin/tests/components/select/NullSelectionItemId.java b/tests/testbench/com/vaadin/tests/components/select/NullSelectionItemId.java
index 74ebb08826..984bab5b34 100644
--- a/tests/testbench/com/vaadin/tests/components/select/NullSelectionItemId.java
+++ b/tests/testbench/com/vaadin/tests/components/select/NullSelectionItemId.java
@@ -36,6 +36,7 @@ public class NullSelectionItemId extends TestBase implements ClickListener {
button = new Button(
"Select null with select(NULL_ITEM_ID) (should make value null)",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
mySelect.select(NULL_ITEM_ID);
}
@@ -46,6 +47,7 @@ public class NullSelectionItemId extends TestBase implements ClickListener {
button = new Button(
"Select null with setValue(null) (should make value null)",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
mySelect.setValue(null);
}
@@ -55,6 +57,7 @@ public class NullSelectionItemId extends TestBase implements ClickListener {
}
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().showNotification(
"mySelect.getValue() returns: " + mySelect.getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/select/SelectDisplaysOldValue.java b/tests/testbench/com/vaadin/tests/components/select/SelectDisplaysOldValue.java
index 743dc071c9..b9ae958a03 100644
--- a/tests/testbench/com/vaadin/tests/components/select/SelectDisplaysOldValue.java
+++ b/tests/testbench/com/vaadin/tests/components/select/SelectDisplaysOldValue.java
@@ -143,6 +143,7 @@ public class SelectDisplaysOldValue extends TestBase {
private class ControllerUpdatedListener implements
Property.ValueChangeListener {
+ @Override
public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
refreshSlaveDropdown((Integer) valueChangeEvent.getProperty()
.getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.java b/tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.java
index b3911f19c7..b97231ae8e 100644
--- a/tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.java
+++ b/tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.java
@@ -19,6 +19,7 @@ public class StylingPopupOpener extends TestBase {
addComponent(select);
addComponent(new Button("Update style", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
select.setStyleName("mystyle");
}
diff --git a/tests/testbench/com/vaadin/tests/components/select/TwinColSelectCaptionStyles.java b/tests/testbench/com/vaadin/tests/components/select/TwinColSelectCaptionStyles.java
index cf33e2c7ff..789174260f 100644
--- a/tests/testbench/com/vaadin/tests/components/select/TwinColSelectCaptionStyles.java
+++ b/tests/testbench/com/vaadin/tests/components/select/TwinColSelectCaptionStyles.java
@@ -20,6 +20,7 @@ public class TwinColSelectCaptionStyles extends TestBase {
Button b = new Button("Set height and width to 500px",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
sel.setHeight("500px");
sel.setWidth("500px");
diff --git a/tests/testbench/com/vaadin/tests/components/select/TwinColSelectTest.java b/tests/testbench/com/vaadin/tests/components/select/TwinColSelectTest.java
index 031a7e9d3d..b27dfa0ec8 100644
--- a/tests/testbench/com/vaadin/tests/components/select/TwinColSelectTest.java
+++ b/tests/testbench/com/vaadin/tests/components/select/TwinColSelectTest.java
@@ -7,12 +7,14 @@ import com.vaadin.ui.TwinColSelect;
public class TwinColSelectTest extends AbstractSelectTestCase<TwinColSelect> {
private Command<TwinColSelect, Integer> rowsCommand = new Command<TwinColSelect, Integer>() {
+ @Override
public void execute(TwinColSelect c, Integer value, Object data) {
c.setRows(value);
}
};
private Command<TwinColSelect, Integer> colsCommand = new Command<TwinColSelect, Integer>() {
+ @Override
public void execute(TwinColSelect c, Integer value, Object data) {
c.setColumns(value);
}
@@ -20,6 +22,7 @@ public class TwinColSelectTest extends AbstractSelectTestCase<TwinColSelect> {
private Command<TwinColSelect, String> leftColumnCaptionCommand = new Command<TwinColSelect, String>() {
+ @Override
public void execute(TwinColSelect c, String value, Object data) {
c.setLeftColumnCaption(value);
}
@@ -27,6 +30,7 @@ public class TwinColSelectTest extends AbstractSelectTestCase<TwinColSelect> {
private Command<TwinColSelect, String> rightColumnCaptionCommand = new Command<TwinColSelect, String>() {
+ @Override
public void execute(TwinColSelect c, String value, Object data) {
c.setRightColumnCaption(value);
}
diff --git a/tests/testbench/com/vaadin/tests/components/slider/SliderTest.java b/tests/testbench/com/vaadin/tests/components/slider/SliderTest.java
index e34a294740..9be1fea987 100644
--- a/tests/testbench/com/vaadin/tests/components/slider/SliderTest.java
+++ b/tests/testbench/com/vaadin/tests/components/slider/SliderTest.java
@@ -8,23 +8,27 @@ import com.vaadin.ui.Slider;
public class SliderTest extends AbstractFieldTest<Slider> {
private Command<Slider, Double> minCommand = new Command<Slider, Double>() {
+ @Override
public void execute(Slider c, Double value, Object data) {
c.setMin(value);
}
};
private Command<Slider, Double> maxCommand = new Command<Slider, Double>() {
+ @Override
public void execute(Slider c, Double value, Object data) {
c.setMax(value);
}
};
private Command<Slider, Integer> orientationCommand = new Command<Slider, Integer>() {
+ @Override
public void execute(Slider c, Integer value, Object data) {
c.setOrientation(value);
}
};
private Command<Slider, Integer> resolutionCommand = new Command<Slider, Integer>() {
+ @Override
public void execute(Slider c, Integer value, Object data) {
c.setResolution(value);
}
diff --git a/tests/testbench/com/vaadin/tests/components/splitpanel/AbstractSplitPanelTest.java b/tests/testbench/com/vaadin/tests/components/splitpanel/AbstractSplitPanelTest.java
index 1f7b6b7cbe..dc361b1b27 100644
--- a/tests/testbench/com/vaadin/tests/components/splitpanel/AbstractSplitPanelTest.java
+++ b/tests/testbench/com/vaadin/tests/components/splitpanel/AbstractSplitPanelTest.java
@@ -13,6 +13,7 @@ public abstract class AbstractSplitPanelTest<T extends AbstractSplitPanel>
private Command<T, Boolean> splitterClickListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
c.addListener((SplitterClickListener) AbstractSplitPanelTest.this);
@@ -23,12 +24,14 @@ public abstract class AbstractSplitPanelTest<T extends AbstractSplitPanel>
}
};
private Command<T, SplitPosition> setSplitPositionCommand = new Command<T, AbstractSplitPanelTest.SplitPosition>() {
+ @Override
public void execute(T c, SplitPosition value, Object data) {
value.apply(c);
}
};
private Command<T, Boolean> splitterLockCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
c.setLocked(value);
}
@@ -122,6 +125,7 @@ public abstract class AbstractSplitPanelTest<T extends AbstractSplitPanel>
}
+ @Override
public void splitterClick(SplitterClickEvent event) {
log(event.getClass().getSimpleName() + ": " + event.getButtonName()
+ " at " + event.getRelativeX() + "," + event.getRelativeY());
diff --git a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java
index d4716433b7..05e10397ac 100644
--- a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java
+++ b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java
@@ -53,6 +53,7 @@ public class SplitPanelExtraScrollbars extends AbstractTestCase implements
return 3458;
}
+ @Override
public void buttonClick(ClickEvent event) {
if (b.getHeight() == 200) {
b.setHeight("1200px");
diff --git a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelReversePosition.java b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelReversePosition.java
index ef17a3c668..a86d209f65 100644
--- a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelReversePosition.java
+++ b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelReversePosition.java
@@ -26,6 +26,7 @@ public class SplitPanelReversePosition extends TestBase {
hsplit.setImmediate(true);
hsplit.setSplitPosition(100, Sizeable.UNITS_PIXELS, hsplitReversed);
hsplit.addListener(new HorizontalSplitPanel.SplitterClickListener() {
+ @Override
public void splitterClick(SplitterClickEvent event) {
getMainWindow().showNotification("Horizontal Splitter Clicked");
}
@@ -40,6 +41,7 @@ public class SplitPanelReversePosition extends TestBase {
vsplit.setImmediate(true);
vsplit.setSplitPosition(10, Sizeable.UNITS_PERCENTAGE, vsplitReversed);
vsplit.addListener(new SplitterClickListener() {
+ @Override
public void splitterClick(SplitterClickEvent event) {
getMainWindow().showNotification("Vertical Splitter Clicked");
}
@@ -61,6 +63,7 @@ public class SplitPanelReversePosition extends TestBase {
buttons.addComponent(new Button("Swap horizontal positioning",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
hsplitReversed = !hsplitReversed;
hsplit.setSplitPosition(100, Sizeable.UNITS_PIXELS,
@@ -71,6 +74,7 @@ public class SplitPanelReversePosition extends TestBase {
buttons.addComponent(new Button("Swap vertical positioning",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
vsplitReversed = !vsplitReversed;
vsplit.setSplitPosition(10, Sizeable.UNITS_PERCENTAGE,
diff --git a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelSplitterWidth.java b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelSplitterWidth.java
index 5fad68fef5..08e602241f 100644
--- a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelSplitterWidth.java
+++ b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelSplitterWidth.java
@@ -47,6 +47,7 @@ public class SplitPanelSplitterWidth extends TestBase {
getLayout().addComponent(
new Button("Unlock", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
split.setLocked(false);
split2.setLocked(false);
diff --git a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelSwapComponents.java b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelSwapComponents.java
index 470a47f160..26abd0a782 100644
--- a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelSwapComponents.java
+++ b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelSwapComponents.java
@@ -19,6 +19,7 @@ public class SplitPanelSwapComponents extends TestBase {
getLayout().addComponent(hsplit);
Button swap = new Button("Swap components", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Component first = hsplit.getFirstComponent();
hsplit.removeComponent(first);
diff --git a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.java b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.java
index f7c3dd84e4..2a730da9be 100644
--- a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.java
+++ b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.java
@@ -276,6 +276,7 @@ public class SplitPanelWithMinimumAndMaximum extends TestBase {
Button disableMinimum = new Button("Disable min limit",
new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
togglableSplitPanel.setMinSplitPosition(0,
Sizeable.UNITS_PERCENTAGE);
@@ -284,6 +285,7 @@ public class SplitPanelWithMinimumAndMaximum extends TestBase {
});
Button enableMinimum = new Button("Enable min limit",
new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
togglableSplitPanel.setMinSplitPosition(10,
Sizeable.UNITS_PERCENTAGE);
@@ -292,6 +294,7 @@ public class SplitPanelWithMinimumAndMaximum extends TestBase {
});
Button disableMaximum = new Button("Disable max limit",
new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
togglableSplitPanel.setMaxSplitPosition(100,
Sizeable.UNITS_PERCENTAGE);
@@ -300,6 +303,7 @@ public class SplitPanelWithMinimumAndMaximum extends TestBase {
});
Button enableMaximum = new Button("Enable max limit",
new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
togglableSplitPanel.setMaxSplitPosition(80,
Sizeable.UNITS_PERCENTAGE);
diff --git a/tests/testbench/com/vaadin/tests/components/table/AddItemToEmptyTable.java b/tests/testbench/com/vaadin/tests/components/table/AddItemToEmptyTable.java
index e8445f8422..bde50af013 100644
--- a/tests/testbench/com/vaadin/tests/components/table/AddItemToEmptyTable.java
+++ b/tests/testbench/com/vaadin/tests/components/table/AddItemToEmptyTable.java
@@ -20,6 +20,7 @@ public class AddItemToEmptyTable extends TestBase {
cb.setImmediate(true);
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if ((Boolean) event.getProperty().getValue()) {
rightTable.setColumnWidth("name", 150);
@@ -36,6 +37,7 @@ public class AddItemToEmptyTable extends TestBase {
cb.setImmediate(true);
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if ((Boolean) event.getProperty().getValue()) {
rightTable.setColumnWidth("info", 20);
@@ -71,6 +73,7 @@ public class AddItemToEmptyTable extends TestBase {
Button b = new Button("Add item", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Object id = rightTable.addItem();
Item item = rightTable.getItem(id);
@@ -83,6 +86,7 @@ public class AddItemToEmptyTable extends TestBase {
b = new Button("Clear", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
rightTable.removeAllItems();
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/AddNonRenderedRow.java b/tests/testbench/com/vaadin/tests/components/table/AddNonRenderedRow.java
index 5486d6248d..80b136d2ab 100644
--- a/tests/testbench/com/vaadin/tests/components/table/AddNonRenderedRow.java
+++ b/tests/testbench/com/vaadin/tests/components/table/AddNonRenderedRow.java
@@ -22,6 +22,7 @@ public class AddNonRenderedRow extends TestBase {
Button addrowButton = new Button("Add row");
addrowButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent pEvent) {
addRow();
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/CellStyleGeneratorTest.java b/tests/testbench/com/vaadin/tests/components/table/CellStyleGeneratorTest.java
index 08bbd0790f..35f35c1407 100644
--- a/tests/testbench/com/vaadin/tests/components/table/CellStyleGeneratorTest.java
+++ b/tests/testbench/com/vaadin/tests/components/table/CellStyleGeneratorTest.java
@@ -16,6 +16,7 @@ public class CellStyleGeneratorTest extends TestBase {
CellStyleGenerator g = new CellStyleGenerator() {
+ @Override
public String getStyle(Object itemId, Object propertyId) {
if (propertyId != null && propertyId.equals("red")) {
return "red";
diff --git a/tests/testbench/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.java b/tests/testbench/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.java
index 95e94bcd47..08b65e2ef5 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.java
@@ -30,10 +30,12 @@ public class ColumnCollapsingAndColumnExpansion extends TestBase {
final Action H = new Action("Toggle Col2");
final Action[] actions = new Action[] { H };
+ @Override
public Action[] getActions(Object target, Object sender) {
return actions;
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
table.setColumnCollapsed("Col2",
!table.isColumnCollapsed("Col2"));
@@ -55,6 +57,7 @@ public class ColumnCollapsingAndColumnExpansion extends TestBase {
final TextField tf = new TextField("Column name (ColX)");
Button hide = new Button("Collapse", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnCollapsed(tf.getValue(), true);
}
@@ -63,6 +66,7 @@ public class ColumnCollapsingAndColumnExpansion extends TestBase {
Button show = new Button("Show", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnCollapsed(tf.getValue(), false);
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/ColumnGeneratorAddingOrder.java b/tests/testbench/com/vaadin/tests/components/table/ColumnGeneratorAddingOrder.java
index d3dfa61ceb..2898750113 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ColumnGeneratorAddingOrder.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ColumnGeneratorAddingOrder.java
@@ -23,6 +23,7 @@ public class ColumnGeneratorAddingOrder extends TestBase {
Table t = new Table();
t.addGeneratedColumn("col2", new Table.ColumnGenerator() {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
return new Button("generated b c2");
@@ -39,6 +40,7 @@ public class ColumnGeneratorAddingOrder extends TestBase {
t.setContainerDataSource(c);
t.addGeneratedColumn("col1", new Table.ColumnGenerator() {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
return new Button("generated b c1");
diff --git a/tests/testbench/com/vaadin/tests/components/table/ColumnHeaderAlignments.java b/tests/testbench/com/vaadin/tests/components/table/ColumnHeaderAlignments.java
index fdcb458a6a..324d1a63cf 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ColumnHeaderAlignments.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ColumnHeaderAlignments.java
@@ -30,6 +30,7 @@ public class ColumnHeaderAlignments extends TestBase {
theme.setNullSelectionAllowed(false);
theme.setImmediate(true);
theme.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
setTheme(String.valueOf(event.getProperty().getValue()));
}
@@ -38,6 +39,7 @@ public class ColumnHeaderAlignments extends TestBase {
CheckBox footers = new CheckBox("Show footers");
footers.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
boolean visible = (Boolean) event.getProperty().getValue();
fooTable.setFooterVisible(visible);
diff --git a/tests/testbench/com/vaadin/tests/components/table/ColumnReorderEvent.java b/tests/testbench/com/vaadin/tests/components/table/ColumnReorderEvent.java
index 4c1fc70e5e..f32633eece 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ColumnReorderEvent.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ColumnReorderEvent.java
@@ -83,6 +83,7 @@ public class ColumnReorderEvent extends TestBase {
table.setColumnHeader("lastname", "LastName");
table.addListener(new Table.ColumnReorderListener() {
+ @Override
public void columnReorder(
com.vaadin.ui.Table.ColumnReorderEvent event) {
order.setValue(aToString(table.getVisibleColumns()));
diff --git a/tests/testbench/com/vaadin/tests/components/table/ColumnResizeEvent.java b/tests/testbench/com/vaadin/tests/components/table/ColumnResizeEvent.java
index 29131b8d7a..f092ba8bca 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ColumnResizeEvent.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ColumnResizeEvent.java
@@ -84,6 +84,7 @@ public class ColumnResizeEvent extends TestBase {
column3Width.setValue(table.getColumnWidth("150pxfixedCol") + "px");
table.addListener(new ColumnResizeListener() {
+ @Override
public void columnResize(com.vaadin.ui.Table.ColumnResizeEvent event) {
if (event.getPropertyId().equals("firstname")) {
diff --git a/tests/testbench/com/vaadin/tests/components/table/ContainerChangeWithPartlySamePropertyIds.java b/tests/testbench/com/vaadin/tests/components/table/ContainerChangeWithPartlySamePropertyIds.java
index b8e9226ad2..c76edca40d 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ContainerChangeWithPartlySamePropertyIds.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ContainerChangeWithPartlySamePropertyIds.java
@@ -68,6 +68,7 @@ public class ContainerChangeWithPartlySamePropertyIds extends TestBase {
Button switchContainerButton = new Button("switch container");
switchContainerButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (testTable.getContainerDataSource() == containerA) {
testTable.setContainerDataSource(containerB);
@@ -80,6 +81,7 @@ public class ContainerChangeWithPartlySamePropertyIds extends TestBase {
Button clearButton = new Button("clear (click twice)");
clearButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
me.removeComponent(testTable);
diff --git a/tests/testbench/com/vaadin/tests/components/table/ContainerSizeChange.java b/tests/testbench/com/vaadin/tests/components/table/ContainerSizeChange.java
index 84e98deffb..c24be6de96 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ContainerSizeChange.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ContainerSizeChange.java
@@ -32,6 +32,7 @@ public class ContainerSizeChange extends TestBase {
Button b = new Button("Decrease size", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
ds.decreaseSize();
}
@@ -42,6 +43,7 @@ public class ContainerSizeChange extends TestBase {
b = new Button("Increase size", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
ds.increaseSize();
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/DisabledTableShouldNotSendPageLengthUpdates.java b/tests/testbench/com/vaadin/tests/components/table/DisabledTableShouldNotSendPageLengthUpdates.java
index 86646f522f..c52f57358c 100644
--- a/tests/testbench/com/vaadin/tests/components/table/DisabledTableShouldNotSendPageLengthUpdates.java
+++ b/tests/testbench/com/vaadin/tests/components/table/DisabledTableShouldNotSendPageLengthUpdates.java
@@ -16,6 +16,7 @@ public class DisabledTableShouldNotSendPageLengthUpdates extends TestBase {
HorizontalSplitPanel split = new HorizontalSplitPanel();
table.addContainerProperty("name", Integer.class, 0);
Button button = new Button("Add items", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
for (int i = 0; i < 5; i++) {
Object id = table.addItem();
diff --git a/tests/testbench/com/vaadin/tests/components/table/DoublesInTable.java b/tests/testbench/com/vaadin/tests/components/table/DoublesInTable.java
index c048c770fa..920ccc2038 100644
--- a/tests/testbench/com/vaadin/tests/components/table/DoublesInTable.java
+++ b/tests/testbench/com/vaadin/tests/components/table/DoublesInTable.java
@@ -40,6 +40,7 @@ public class DoublesInTable extends TestBase {
editMode.setImmediate(true);
editMode.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
table.setEditable(editMode.getValue());
@@ -50,6 +51,7 @@ public class DoublesInTable extends TestBase {
useCustomConverters.setImmediate(true);
useCustomConverters.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
recreateTable();
}
@@ -75,6 +77,7 @@ public class DoublesInTable extends TestBase {
cb.setValue(Locale.US);
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
recreateTable();
}
@@ -134,6 +137,7 @@ public class DoublesInTable extends TestBase {
t.setImmediate(true);
t.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
log.log("Value is now: " + event.getProperty().getValue());
@@ -145,12 +149,14 @@ public class DoublesInTable extends TestBase {
private void addConverters(Table t) {
t.setConverter("sex", new Converter<String, Sex>() {
+ @Override
public Sex convertToModel(String value, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
// not used in this test - Table only converts to presentation
return null;
}
+ @Override
public String convertToPresentation(Sex value, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
if (value == null) {
@@ -159,22 +165,26 @@ public class DoublesInTable extends TestBase {
return value.getStringRepresentation();
}
+ @Override
public Class<Sex> getModelType() {
return Sex.class;
}
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
});
t.setConverter("deceased", new Converter<String, Boolean>() {
+ @Override
public Boolean convertToModel(String value, Locale locale) {
// not used in this test - Table only converts from source to
// target
return null;
}
+ @Override
public String convertToPresentation(Boolean value, Locale locale) {
if (value == null || value) {
return "YES, DEAD!";
@@ -183,16 +193,19 @@ public class DoublesInTable extends TestBase {
}
}
+ @Override
public Class<Boolean> getModelType() {
return Boolean.class;
}
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
});
t.setConverter("age", new Converter<String, Integer>() {
+ @Override
public Integer convertToModel(String value, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
// not used in this test - Table only converts from source to
@@ -200,6 +213,7 @@ public class DoublesInTable extends TestBase {
return null;
}
+ @Override
public String convertToPresentation(Integer value, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
if (value == null) {
@@ -216,32 +230,38 @@ public class DoublesInTable extends TestBase {
}
}
+ @Override
public Class<Integer> getModelType() {
return Integer.class;
}
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
});
t.setConverter("address", new Converter<String, Address>() {
+ @Override
public Address convertToModel(String value, Locale locale)
throws ConversionException {
// not used in this test - Table only converts to presentation
return null;
}
+ @Override
public String convertToPresentation(Address value, Locale locale)
throws ConversionException {
return value.getStreetAddress() + ", " + value.getCity() + " ("
+ value.getCountry() + ")";
}
+ @Override
public Class<Address> getModelType() {
return Address.class;
}
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/EditableModeChange.java b/tests/testbench/com/vaadin/tests/components/table/EditableModeChange.java
index acb866a1da..5db294088a 100644
--- a/tests/testbench/com/vaadin/tests/components/table/EditableModeChange.java
+++ b/tests/testbench/com/vaadin/tests/components/table/EditableModeChange.java
@@ -44,6 +44,7 @@ public class EditableModeChange extends TestBase {
items.addListener(new ItemClickEvent.ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
if (event.isDoubleClick()) {
selectionEvent = event;
diff --git a/tests/testbench/com/vaadin/tests/components/table/EditableTableLeak.java b/tests/testbench/com/vaadin/tests/components/table/EditableTableLeak.java
index 8aa6d1277f..88c7c76889 100644
--- a/tests/testbench/com/vaadin/tests/components/table/EditableTableLeak.java
+++ b/tests/testbench/com/vaadin/tests/components/table/EditableTableLeak.java
@@ -9,7 +9,7 @@ import java.util.HashMap;
import com.vaadin.data.Container;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.TestUtils;
import com.vaadin.ui.Button;
@@ -88,6 +88,7 @@ public class EditableTableLeak extends TestBase {
useFieldFactory.setImmediate(true);
useFieldFactory.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (useFieldFactory.getValue()) {
table.setTableFieldFactory(new CachingFieldFactory());
@@ -111,6 +112,7 @@ public class EditableTableLeak extends TestBase {
addComponent(sizeLabel);
addComponent(new Button("Show size of the table", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.requestRepaintAll();
updateSize();
@@ -119,6 +121,7 @@ public class EditableTableLeak extends TestBase {
}));
addComponent(new Button("Select the second row", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.select("AL");
updateSize();
diff --git a/tests/testbench/com/vaadin/tests/components/table/Footer.java b/tests/testbench/com/vaadin/tests/components/table/Footer.java
index c962ce8468..7fd8d3563f 100644
--- a/tests/testbench/com/vaadin/tests/components/table/Footer.java
+++ b/tests/testbench/com/vaadin/tests/components/table/Footer.java
@@ -50,6 +50,7 @@ public class Footer extends TestBase {
final CheckBox visible = new CheckBox("Footers Visible", true);
visible.setImmediate(true);
visible.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
table.setFooterVisible((Boolean) visible.getValue());
@@ -61,6 +62,7 @@ public class Footer extends TestBase {
final TextField footer1Value = new TextField(null, "Footer1");
footer1Value.setImmediate(true);
Button footer1Btn = new Button("Change", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnFooter("col1",
footer1Value.getValue() == null ? "" : footer1Value
@@ -75,6 +77,7 @@ public class Footer extends TestBase {
final TextField footer2Value = new TextField(null, "Footer2");
footer2Value.setImmediate(true);
Button footer2Btn = new Button("Change", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnFooter("col2",
footer2Value.getValue() == null ? "" : footer2Value
@@ -89,6 +92,7 @@ public class Footer extends TestBase {
final TextField footer3Value = new TextField(null, "Footer3");
footer3Value.setImmediate(true);
Button footer3Btn = new Button("Change", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnFooter("col3",
footer3Value.getValue() == null ? "" : footer3Value
diff --git a/tests/testbench/com/vaadin/tests/components/table/FooterClick.java b/tests/testbench/com/vaadin/tests/components/table/FooterClick.java
index 2ae663986b..08dc47908a 100644
--- a/tests/testbench/com/vaadin/tests/components/table/FooterClick.java
+++ b/tests/testbench/com/vaadin/tests/components/table/FooterClick.java
@@ -42,6 +42,7 @@ public class FooterClick extends TestBase {
// Add a footer click listener
table.addListener(new Table.FooterClickListener() {
+ @Override
public void footerClick(FooterClickEvent event) {
columnField.setValue(String.valueOf(event.getPropertyId()));
log.log("Clicked on footer: " + event.getPropertyId());
@@ -53,6 +54,7 @@ public class FooterClick extends TestBase {
immediateCheckbox.setValue(table.isImmediate());
immediateCheckbox.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
table.setImmediate((Boolean) event.getProperty().getValue());
}
@@ -65,6 +67,7 @@ public class FooterClick extends TestBase {
columnReorderingCheckbox
.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
table.setColumnReorderingAllowed((Boolean) event
.getProperty().getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/table/HeaderClick.java b/tests/testbench/com/vaadin/tests/components/table/HeaderClick.java
index d5debcfe16..b335e34d84 100644
--- a/tests/testbench/com/vaadin/tests/components/table/HeaderClick.java
+++ b/tests/testbench/com/vaadin/tests/components/table/HeaderClick.java
@@ -28,6 +28,7 @@ public class HeaderClick extends TestBase {
// Add a header click listener
table.addListener(new Table.HeaderClickListener() {
+ @Override
public void headerClick(HeaderClickEvent event) {
columnField.setValue(String.valueOf(event.getPropertyId()));
}
@@ -38,6 +39,7 @@ public class HeaderClick extends TestBase {
immediateCheckbox.setValue(table.isImmediate());
immediateCheckbox.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
table.setImmediate((Boolean) event.getProperty().getValue());
}
@@ -48,6 +50,7 @@ public class HeaderClick extends TestBase {
sortEnabledCheckbox.setValue(table.isSortEnabled());
sortEnabledCheckbox.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
table.setSortDisabled(!(Boolean) event.getProperty().getValue());
}
@@ -60,6 +63,7 @@ public class HeaderClick extends TestBase {
columnReorderingCheckbox
.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
table.setColumnReorderingAllowed((Boolean) event
.getProperty().getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/table/HeaderFooterClickLeftRightMiddle.java b/tests/testbench/com/vaadin/tests/components/table/HeaderFooterClickLeftRightMiddle.java
index cd54e21395..ec82b36575 100644
--- a/tests/testbench/com/vaadin/tests/components/table/HeaderFooterClickLeftRightMiddle.java
+++ b/tests/testbench/com/vaadin/tests/components/table/HeaderFooterClickLeftRightMiddle.java
@@ -33,6 +33,7 @@ public class HeaderFooterClickLeftRightMiddle extends TestBase {
immediateCheckbox.setValue(table.isImmediate());
immediateCheckbox.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
table.setImmediate((Boolean) event.getProperty().getValue());
}
@@ -45,6 +46,7 @@ public class HeaderFooterClickLeftRightMiddle extends TestBase {
private HeaderClickListener headerClickListener = new HeaderClickListener() {
+ @Override
public void headerClick(HeaderClickEvent event) {
String type = event.isDoubleClick() ? "Double click"
: "Click";
@@ -55,6 +57,7 @@ public class HeaderFooterClickLeftRightMiddle extends TestBase {
};
+ @Override
public void valueChange(ValueChangeEvent event) {
if (table.getListeners(HeaderClickEvent.class).isEmpty()) {
table.addListener(headerClickListener);
@@ -72,6 +75,7 @@ public class HeaderFooterClickLeftRightMiddle extends TestBase {
private FooterClickListener footerClickListener = new FooterClickListener() {
+ @Override
public void footerClick(FooterClickEvent event) {
String type = event.isDoubleClick() ? "Double click"
: "Click";
@@ -81,6 +85,7 @@ public class HeaderFooterClickLeftRightMiddle extends TestBase {
}
};
+ @Override
public void valueChange(ValueChangeEvent event) {
if (table.getListeners(FooterClickEvent.class).isEmpty()) {
table.addListener(footerClickListener);
@@ -95,6 +100,7 @@ public class HeaderFooterClickLeftRightMiddle extends TestBase {
sortEnabledCheckbox.setImmediate(true);
sortEnabledCheckbox.setValue(table.isSortEnabled());
sortEnabledCheckbox.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
table.setSortEnabled((Boolean) event.getProperty().getValue());
}
@@ -106,6 +112,7 @@ public class HeaderFooterClickLeftRightMiddle extends TestBase {
columnReorderingCheckbox.setValue(table.isColumnReorderingAllowed());
columnReorderingCheckbox.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
table.setColumnReorderingAllowed((Boolean) event.getProperty()
.getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/table/HeaderUpdateWhenNoRows.java b/tests/testbench/com/vaadin/tests/components/table/HeaderUpdateWhenNoRows.java
index f1e4e09d57..6dafdd3dd5 100644
--- a/tests/testbench/com/vaadin/tests/components/table/HeaderUpdateWhenNoRows.java
+++ b/tests/testbench/com/vaadin/tests/components/table/HeaderUpdateWhenNoRows.java
@@ -20,6 +20,7 @@ public class HeaderUpdateWhenNoRows extends TestBase {
final CheckBox showHeaders = new CheckBox("Show headers");
showHeaders.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (showHeaders.getValue()) {
table.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID);
diff --git a/tests/testbench/com/vaadin/tests/components/table/HiddenColumnsExpandRatios.java b/tests/testbench/com/vaadin/tests/components/table/HiddenColumnsExpandRatios.java
index 007c93573f..4a729d221f 100644
--- a/tests/testbench/com/vaadin/tests/components/table/HiddenColumnsExpandRatios.java
+++ b/tests/testbench/com/vaadin/tests/components/table/HiddenColumnsExpandRatios.java
@@ -35,12 +35,14 @@ public class HiddenColumnsExpandRatios extends TestBase {
}
addComponent(new Button("All", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setVisibleColumns(table.getContainerPropertyIds()
.toArray());
}
}));
addComponent(new Button("Some", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setWidth("100px");
table.setWidth("800px");
diff --git a/tests/testbench/com/vaadin/tests/components/table/HugeRowCount.java b/tests/testbench/com/vaadin/tests/components/table/HugeRowCount.java
index 3478750622..434d650d6d 100644
--- a/tests/testbench/com/vaadin/tests/components/table/HugeRowCount.java
+++ b/tests/testbench/com/vaadin/tests/components/table/HugeRowCount.java
@@ -22,6 +22,7 @@ public class HugeRowCount extends TestBase {
final TextField tf = new TextField("Rows");
tf.setValue(String.valueOf(100000));
tf.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
container.setSize(Integer.parseInt(tf.getValue().toString()));
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/ItemClickEvents.java b/tests/testbench/com/vaadin/tests/components/table/ItemClickEvents.java
index 537461ce0f..4bdb20adea 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ItemClickEvents.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ItemClickEvents.java
@@ -27,6 +27,7 @@ public class ItemClickEvents extends TestBase {
HorizontalLayout ol = createHorizontalLayout(tree);
Button b = new Button("icon", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (tree.getItemIconPropertyId() == null) {
tree.setItemIconPropertyId("icon");
@@ -55,6 +56,7 @@ public class ItemClickEvents extends TestBase {
"http://www.itmill.com/res/images/itmill_logo.gif"));
tree.addListener(new ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
logEvent(event, "tree");
}
@@ -73,6 +75,7 @@ public class ItemClickEvents extends TestBase {
}
table.addListener(new ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
logEvent(event, "table");
}
@@ -82,6 +85,7 @@ public class ItemClickEvents extends TestBase {
addComponent(log);
addComponent(new Button("Clear log", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.clear();
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/KeyControl.java b/tests/testbench/com/vaadin/tests/components/table/KeyControl.java
index e662db338c..2998940db1 100644
--- a/tests/testbench/com/vaadin/tests/components/table/KeyControl.java
+++ b/tests/testbench/com/vaadin/tests/components/table/KeyControl.java
@@ -41,6 +41,7 @@ public class KeyControl extends TestBase {
layout1.addComponent(table1);
table1.addListener(new Table.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
@SuppressWarnings("unchecked")
Set<String> value = (Set<String>) table1.getValue();
@@ -63,6 +64,7 @@ public class KeyControl extends TestBase {
layout2.addComponent(table2);
table2.addListener(new Table.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
String value = table2.getValue() == null ? "No selected items"
: table2.getValue().toString();
@@ -86,6 +88,7 @@ public class KeyControl extends TestBase {
layout3.addComponent(table3);
table3.addListener(new Table.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
@SuppressWarnings("unchecked")
Set<String> value = (Set<String>) table3.getValue();
diff --git a/tests/testbench/com/vaadin/tests/components/table/KeyboardNavigationWithChangingContent.java b/tests/testbench/com/vaadin/tests/components/table/KeyboardNavigationWithChangingContent.java
index 44a2dcd9a9..bc0601684f 100644
--- a/tests/testbench/com/vaadin/tests/components/table/KeyboardNavigationWithChangingContent.java
+++ b/tests/testbench/com/vaadin/tests/components/table/KeyboardNavigationWithChangingContent.java
@@ -35,6 +35,7 @@ public class KeyboardNavigationWithChangingContent extends TestBase {
new Button("Change elements and selection",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
bic.removeAllItems();
diff --git a/tests/testbench/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.java b/tests/testbench/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.java
index de0d2b8d56..b9e7fde17a 100644
--- a/tests/testbench/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.java
+++ b/tests/testbench/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.java
@@ -3,8 +3,8 @@ package com.vaadin.tests.components.table;
import com.vaadin.data.Item;
import com.vaadin.event.ItemClickEvent;
import com.vaadin.event.ItemClickEvent.ItemClickListener;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.ThemeResource;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Component;
import com.vaadin.ui.Embedded;
@@ -56,6 +56,7 @@ public class LabelEmbeddedClickThroughForTable extends TestBase {
table.addListener(new ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
System.out.println("Clickevent on item " + event.getItemId()
+ ", column: " + event.getPropertyId());
diff --git a/tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.java b/tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.java
index 2100d3852e..b7379b4f2c 100644
--- a/tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.java
+++ b/tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.java
@@ -16,6 +16,7 @@ public class LastColumnNegative extends TestBase {
Button addButton = new Button("Add a table",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
wrapper.addComponent(table);
}
@@ -24,6 +25,7 @@ public class LastColumnNegative extends TestBase {
Button removeButton = new Button("Remove a table",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
wrapper.removeComponent(table);
}
@@ -31,6 +33,7 @@ public class LastColumnNegative extends TestBase {
Button shrinkWrapper = new Button("Shrink wrapper",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
wrapper.setWidth("400px");
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/LongMultiselect.java b/tests/testbench/com/vaadin/tests/components/table/LongMultiselect.java
index 0196395bf4..43a89e4211 100644
--- a/tests/testbench/com/vaadin/tests/components/table/LongMultiselect.java
+++ b/tests/testbench/com/vaadin/tests/components/table/LongMultiselect.java
@@ -41,6 +41,7 @@ public class LongMultiselect extends TestBase {
// Add action button
layout.addComponent(new Button("Do It", new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
// Set ItemProperty.COLUMN2 for all selected values of table
Collection selectedIds = (Collection) table.getValue();
diff --git a/tests/testbench/com/vaadin/tests/components/table/MissingScrollbar.java b/tests/testbench/com/vaadin/tests/components/table/MissingScrollbar.java
index 5f65b40f2f..e51cec2a6d 100644
--- a/tests/testbench/com/vaadin/tests/components/table/MissingScrollbar.java
+++ b/tests/testbench/com/vaadin/tests/components/table/MissingScrollbar.java
@@ -43,6 +43,7 @@ public class MissingScrollbar extends TestBase {
Button b = new Button("Set items to 2", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setContainerDataSource(container2);
}
@@ -51,6 +52,7 @@ public class MissingScrollbar extends TestBase {
b = new Button("Set items to 50", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setContainerDataSource(container50);
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/ModifyContainerProperty.java b/tests/testbench/com/vaadin/tests/components/table/ModifyContainerProperty.java
index a472b43ce7..00965220db 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ModifyContainerProperty.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ModifyContainerProperty.java
@@ -26,12 +26,14 @@ public class ModifyContainerProperty extends TestBase {
table.setContainerDataSource(ic);
addComponent(new Button("Remove container property",
new Button.ClickListener() {
+ @Override
public void buttonClick(com.vaadin.ui.Button.ClickEvent arg0) {
ic.removeContainerProperty("one");
}
}));
addComponent(new Button("Add container property",
new Button.ClickListener() {
+ @Override
public void buttonClick(com.vaadin.ui.Button.ClickEvent arg0) {
boolean added = ic.addContainerProperty("three",
String.class, "three");
diff --git a/tests/testbench/com/vaadin/tests/components/table/MultiClickingItemThatDetachesTable.java b/tests/testbench/com/vaadin/tests/components/table/MultiClickingItemThatDetachesTable.java
index d437ab7a04..0e440a95d0 100644
--- a/tests/testbench/com/vaadin/tests/components/table/MultiClickingItemThatDetachesTable.java
+++ b/tests/testbench/com/vaadin/tests/components/table/MultiClickingItemThatDetachesTable.java
@@ -21,6 +21,7 @@ public class MultiClickingItemThatDetachesTable extends TestBase {
item.getItemProperty("p1").setValue(i + "");
}
table.addListener(new ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
if (event.isDoubleClick()) {
try {
diff --git a/tests/testbench/com/vaadin/tests/components/table/MultiSelectValueOrder.html b/tests/testbench/com/vaadin/tests/components/table/MultiSelectValueOrder.html
new file mode 100644
index 0000000000..4bac7741da
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/table/MultiSelectValueOrder.html
@@ -0,0 +1,275 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="http://localhost:8888/" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.Tables?restartApplication</td>
+ <td></td>
+</tr>
+<!--Default multi select-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item0</td>
+ <td>6,9</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item4</td>
+ <td>73,0</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[1]/VMenuBar[0]#item1</td>
+ <td>33,13</td>
+</tr>
+<!--ValueChangeListener-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item0</td>
+ <td>14,10</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item3</td>
+ <td>75,5</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[1]/VMenuBar[0]#item0</td>
+ <td>64,6</td>
+</tr>
+<!--Disable sorting value change logging-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item1</td>
+ <td>16,8</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item3</td>
+ <td>22,6</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[1]/VMenuBar[0]#item1</td>
+ <td>16,12</td>
+</tr>
+<!--Clear log to ensure numbers matches with the later case-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item1</td>
+ <td>29,6</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item1</td>
+ <td>40,7</td>
+</tr>
+<!--Start clicking-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[4]/domChild[0]/domChild[0]</td>
+ <td>48,18</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>0. ValueChangeEvent, new value: '[Item 5]'</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[1]/domChild[0]</td>
+ <td>40,12:ctrl</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>1. ValueChangeEvent, new value: '[Item 5, Item 3]'</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[6]/domChild[1]/domChild[0]</td>
+ <td>54,15:ctrl</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>2. ValueChangeEvent, new value: '[Item 5, Item 3, Item 7]'</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[8]/domChild[1]/domChild[0]</td>
+ <td>54,9:shift+ctrl</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>3. ValueChangeEvent, new value: '[Item 5, Item 3, Item 7, Item 8, Item 9]'</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
+ <td>67,8:ctrl</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>4. ValueChangeEvent, new value: '[Item 5, Item 3, Item 7, Item 8, Item 9, Item 1]'</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[3]/domChild[2]/domChild[0]</td>
+ <td>71,8:shift+ctrl</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>5. ValueChangeEvent, new value: '[Item 5, Item 3, Item 7, Item 8, Item 9, Item 1, Item 2, Item 4]'</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[4]/domChild[2]/domChild[0]</td>
+ <td>56,6:ctrl</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>6. ValueChangeEvent, new value: '[Item 3, Item 7, Item 8, Item 9, Item 1, Item 2, Item 4]'</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[4]/domChild[2]/domChild[0]</td>
+ <td>67,11:ctrl</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>7. ValueChangeEvent, new value: '[Item 3, Item 7, Item 8, Item 9, Item 1, Item 2, Item 4, Item 5]'</td>
+</tr>
+<!--Simple multi select-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item0</td>
+ <td>33,9</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item4</td>
+ <td>44,7</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[1]/VMenuBar[0]#item2</td>
+ <td>40,11</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[2]/VMenuBar[0]#item2</td>
+ <td>58,8</td>
+</tr>
+<!--Clear value-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item0</td>
+ <td>38,6</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item4</td>
+ <td>14,8</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[1]/VMenuBar[0]#item3</td>
+ <td>55,3</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[2]/VMenuBar[0]#item0</td>
+ <td>21,3</td>
+</tr>
+<!--Clear log-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item1</td>
+ <td>26,7</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item1</td>
+ <td>30,6</td>
+</tr>
+<!--Start clicking-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[4]/domChild[1]/domChild[0]</td>
+ <td>60,9</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>0. ValueChangeEvent, new value: '[Item 5]'</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[1]/domChild[0]</td>
+ <td>38,9</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>1. ValueChangeEvent, new value: '[Item 5, Item 3]'</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[3]/domChild[1]/domChild[0]</td>
+ <td>46,13</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>2. ValueChangeEvent, new value: '[Item 5, Item 3, Item 4]'</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[1]/domChild[0]</td>
+ <td>65,8</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>3. ValueChangeEvent, new value: '[Item 5, Item 4]'</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[4]/domChild[2]/domChild[0]</td>
+ <td>45,7</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>4. ValueChangeEvent, new value: '[Item 4]'</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[4]/domChild[2]/domChild[0]</td>
+ <td>35,9</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_SLog_row_0</td>
+ <td>5. ValueChangeEvent, new value: '[Item 4, Item 5]'</td>
+</tr>
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithNotIdentityEqualIds.java b/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithNotIdentityEqualIds.java
index 6773f0a96c..06deb98f7f 100644
--- a/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithNotIdentityEqualIds.java
+++ b/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithNotIdentityEqualIds.java
@@ -20,6 +20,7 @@ public class MultiSelectWithNotIdentityEqualIds extends TestBase {
t.setSelectable(true);
t.setImmediate(true);
t.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Notification.show("Selected: " + event.getProperty());
diff --git a/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithRemovedRow.html b/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithRemovedRow.html
new file mode 100644
index 0000000000..c41f3fbfdd
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithRemovedRow.html
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.MultiSelectWithRemovedRow?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>34,9</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::PID_SLog_row_0</td>
+ <td>1. Selection: [Joe]</td>
+</tr>
+<!--Remove selection + shift select-->
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]</td>
+ <td>19,4:shift</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::PID_SLog_row_0</td>
+ <td>2. Selection: [William, Jack, Averell]</td>
+</tr>
+<!--Remove first + shift select-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]</td>
+ <td>23,13</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[3]/domChild[0]/domChild[0]</td>
+ <td>26,10:shift</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::PID_SLog_row_0</td>
+ <td>3. Selection: [Jack, Averell, Bob]</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[3]/domChild[0]/domChild[0]</td>
+ <td>34,14:shift</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::PID_SLog_row_0</td>
+ <td>4. Selection: [William, Averell, Bob, Grat]</td>
+</tr>
+<!--Sort + shift select down-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[3]/domChild[0]/domChild[0]</td>
+ <td>31,15</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VScrollTable[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>36,11</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]</td>
+ <td>30,6:shift</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::PID_SLog_row_0</td>
+ <td>5. Selection: [Bob, Emmett, Grat]</td>
+</tr>
+<!--Sort + shift select up-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]</td>
+ <td>24,8</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VScrollTable[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[1]</td>
+ <td>11,2</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]</td>
+ <td>30,11:shift</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstableMultiSelectWithRemovedRow::PID_SLog_row_0</td>
+ <td>6. Selection: [Grat, Emmett, Bob]</td>
+</tr>
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithRemovedRow.java b/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithRemovedRow.java
new file mode 100644
index 0000000000..12ae4a3c4d
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithRemovedRow.java
@@ -0,0 +1,93 @@
+package com.vaadin.tests.components.table;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import com.vaadin.data.util.BeanItemContainer;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.util.Log;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Table;
+
+@SuppressWarnings("serial")
+public class MultiSelectWithRemovedRow extends TestBase {
+ public static class Person {
+ private final String name;
+
+ public Person(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public String toString() {
+ return name;
+ }
+ }
+
+ @Override
+ protected void setup() {
+ final Log log = new Log(5);
+ addComponent(log);
+
+ final BeanItemContainer<Person> container = new BeanItemContainer<Person>(
+ Person.class, Arrays.asList(new Person("Joe"), new Person(
+ "William"), new Person("Jack"), new Person("Averell"),
+ new Person("Bob"), new Person("Grat"), new Person(
+ "Bill"), new Person("Emmett")));
+ final Table table = new Table("Table", container);
+ table.setSelectable(true);
+ table.setMultiSelect(true);
+ table.setImmediate(true);
+ addComponent(table);
+
+ Button showButton = new Button("Show selection");
+ showButton.addListener(new Button.ClickListener() {
+ @Override
+ public void buttonClick(Button.ClickEvent clickEvent) {
+ Collection<?> selection = (Collection<?>) table.getValue();
+ log.log("Selection: " + selection);
+ }
+ });
+ addComponent(showButton);
+
+ Button removeButton = new Button("Remove selection");
+ removeButton.addListener(new Button.ClickListener() {
+ @Override
+ public void buttonClick(Button.ClickEvent clickEvent) {
+ Collection<?> selection = (Collection<?>) table.getValue();
+ for (Object selected : selection) {
+ container.removeItem(selected);
+ }
+ }
+ });
+ addComponent(removeButton);
+
+ addComponent(new Button("Remove first selected row",
+ new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ Collection<?> selection = (Collection<?>) table
+ .getValue();
+ if (!selection.isEmpty()) {
+ Object firstSelected = selection.iterator().next();
+ container.removeItem(firstSelected);
+ }
+ }
+ }));
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Multi select using shift should work after removing the currently selected row";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return Integer.valueOf(8584);
+ }
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/components/table/ProgrammaticUnselectInRange.java b/tests/testbench/com/vaadin/tests/components/table/ProgrammaticUnselectInRange.java
index 758fa4bf1a..0b5b1d139c 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ProgrammaticUnselectInRange.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ProgrammaticUnselectInRange.java
@@ -29,6 +29,7 @@ public class ProgrammaticUnselectInRange extends TestBase {
table.addItem(new Object[] { value }, value);
}
table.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
updateSelectionLabel();
}
@@ -37,6 +38,7 @@ public class ProgrammaticUnselectInRange extends TestBase {
addComponent(table);
addComponent(selectionLabel);
addComponent(new Button("Deselect item 2", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.unselect(Integer.valueOf(2));
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/PropertyValueChange.java b/tests/testbench/com/vaadin/tests/components/table/PropertyValueChange.java
index 311c3cf3c1..1bc9cf525d 100644
--- a/tests/testbench/com/vaadin/tests/components/table/PropertyValueChange.java
+++ b/tests/testbench/com/vaadin/tests/components/table/PropertyValueChange.java
@@ -44,6 +44,7 @@ public class PropertyValueChange extends TestBase {
return i * 3;
}
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
final Label l = new Label();
@@ -57,6 +58,7 @@ public class PropertyValueChange extends TestBase {
if (integer instanceof Property.ValueChangeNotifier) {
Property.ValueChangeNotifier notifier = (Property.ValueChangeNotifier) integer;
notifier.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
l.setValue(String.valueOf(getMultipliedValue(integer)));
}
@@ -144,6 +146,7 @@ class MyFieldFactory extends DefaultFieldFactory {
cb.setContainerDataSource(texts);
cb.setNewItemsAllowed(true);
cb.setNewItemHandler(new NewItemHandler() {
+ @Override
public void addNewItem(String newItemCaption) {
texts.addItem(newItemCaption);
cb.setValue(newItemCaption);
diff --git a/tests/testbench/com/vaadin/tests/components/table/RowAdditionTest.java b/tests/testbench/com/vaadin/tests/components/table/RowAdditionTest.java
index 82d5508c72..c6d071f34c 100644
--- a/tests/testbench/com/vaadin/tests/components/table/RowAdditionTest.java
+++ b/tests/testbench/com/vaadin/tests/components/table/RowAdditionTest.java
@@ -33,6 +33,7 @@ public class RowAdditionTest extends TestBase {
HorizontalLayout hl = new HorizontalLayout();
hl.addComponent(new Button("Add first", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Item item = container.addItemAt(0, new Object());
item.getItemProperty("column1").setValue("0");
@@ -40,6 +41,7 @@ public class RowAdditionTest extends TestBase {
}));
hl.addComponent(new Button("Add at position 50",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Item item = container.addItemAt(50, new Object());
item.getItemProperty("column1").setValue("50");
@@ -47,6 +49,7 @@ public class RowAdditionTest extends TestBase {
}));
hl.addComponent(new Button("Add at position 100",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Item item = container.addItemAt(100, new Object());
item.getItemProperty("column1").setValue("100");
diff --git a/tests/testbench/com/vaadin/tests/components/table/RowGenerators.java b/tests/testbench/com/vaadin/tests/components/table/RowGenerators.java
index 1ddb03c316..c3bf46c12d 100644
--- a/tests/testbench/com/vaadin/tests/components/table/RowGenerators.java
+++ b/tests/testbench/com/vaadin/tests/components/table/RowGenerators.java
@@ -34,6 +34,7 @@ public class RowGenerators extends TestBase implements RowGenerator {
return c;
}
+ @Override
public GeneratedRow generateRow(Table table, Object itemId) {
if ((Integer) itemId % 5 == 0) {
if ((Integer) itemId % 10 == 0) {
diff --git a/tests/testbench/com/vaadin/tests/components/table/RowUpdateShouldRetainContextMenu.java b/tests/testbench/com/vaadin/tests/components/table/RowUpdateShouldRetainContextMenu.java
index d3ba232f79..a9d5869e5f 100644
--- a/tests/testbench/com/vaadin/tests/components/table/RowUpdateShouldRetainContextMenu.java
+++ b/tests/testbench/com/vaadin/tests/components/table/RowUpdateShouldRetainContextMenu.java
@@ -18,6 +18,7 @@ public class RowUpdateShouldRetainContextMenu extends TestBase {
protected void setup() {
indicator.setWidth("200px");
indicator.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
// Do some changes to the table
table.setColumnHeader("Column", "Column " + ctr);
@@ -49,9 +50,11 @@ public class RowUpdateShouldRetainContextMenu extends TestBase {
table.setHeight("200px");
table.addActionHandler(new Action.Handler() {
+ @Override
public void handleAction(Action action, Object sender, Object target) {
}
+ @Override
public Action[] getActions(Object target, Object sender) {
return new Action[] { new Action("Action 1"),
new Action("Action 2"), };
diff --git a/tests/testbench/com/vaadin/tests/components/table/SafariRenderingBugWhiteSpace.java b/tests/testbench/com/vaadin/tests/components/table/SafariRenderingBugWhiteSpace.java
index 133a5e83a5..dffab6dbad 100644
--- a/tests/testbench/com/vaadin/tests/components/table/SafariRenderingBugWhiteSpace.java
+++ b/tests/testbench/com/vaadin/tests/components/table/SafariRenderingBugWhiteSpace.java
@@ -33,6 +33,7 @@ public class SafariRenderingBugWhiteSpace extends TestBase {
table.setSizeFull();
table.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (table.getValue() == null) {
split.setSplitPosition(100, Sizeable.UNITS_PERCENTAGE);
diff --git a/tests/testbench/com/vaadin/tests/components/table/ScrollDetachSynchronization.java b/tests/testbench/com/vaadin/tests/components/table/ScrollDetachSynchronization.java
index 44367d0fe1..5cc77f23d9 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ScrollDetachSynchronization.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ScrollDetachSynchronization.java
@@ -47,6 +47,7 @@ public class ScrollDetachSynchronization extends TestBase {
first.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (mainLayout.getComponent(1).equals(secondLayout)) {
mainLayout.replaceComponent(secondLayout, firstLayout);
@@ -56,6 +57,7 @@ public class ScrollDetachSynchronization extends TestBase {
});
second.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (mainLayout.getComponent(1).equals(firstLayout)) {
mainLayout.replaceComponent(firstLayout, secondLayout);
diff --git a/tests/testbench/com/vaadin/tests/components/table/SelectableEditable.html b/tests/testbench/com/vaadin/tests/components/table/SelectableEditable.html
new file mode 100644
index 0000000000..8d46523c40
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/table/SelectableEditable.html
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>SelectableEditable</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">SelectableEditable</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.SelectableEditable?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableSelectableEditable::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
+ <td>70,12</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentstableSelectableEditable::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]</td>
+ <td>v-selected</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/table/SelectableEditable.java b/tests/testbench/com/vaadin/tests/components/table/SelectableEditable.java
new file mode 100644
index 0000000000..2b33c71d2a
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/table/SelectableEditable.java
@@ -0,0 +1,37 @@
+package com.vaadin.tests.components.table;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Table;
+
+public class SelectableEditable extends TestBase {
+
+ @Override
+ protected void setup() {
+ // TODO Auto-generated method stub
+
+ final Table table = new Table();
+ table.setWidth("500px");
+ table.setSelectable(true);
+ table.setEditable(true);
+
+ table.addContainerProperty("name", String.class, null);
+ table.addContainerProperty("alive", Boolean.class, false);
+ for (int i = 0; i < 10; ++i) {
+ table.addItem(new Object[] { "Person " + i, false }, i);
+ }
+
+ addComponent(table);
+ }
+
+ @Override
+ protected String getDescription() {
+ // TODO Auto-generated method stub
+ return "It is difficult to select rows of an editable Table, especially columns with checkboxes.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ // TODO Auto-generated method stub
+ return 9064;
+ }
+}
diff --git a/tests/testbench/com/vaadin/tests/components/table/SelectingItemScrollsRight.java b/tests/testbench/com/vaadin/tests/components/table/SelectingItemScrollsRight.java
index cfe0301775..d9401c21b4 100644
--- a/tests/testbench/com/vaadin/tests/components/table/SelectingItemScrollsRight.java
+++ b/tests/testbench/com/vaadin/tests/components/table/SelectingItemScrollsRight.java
@@ -14,6 +14,7 @@ public class SelectingItemScrollsRight extends TestBase {
table.setWidth("300px");
table.setColumnWidth("Column", 500);
table.addGeneratedColumn("Column", new Table.ColumnGenerator() {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
return new Label(
diff --git a/tests/testbench/com/vaadin/tests/components/table/SetCurrentPageFirstItemId.java b/tests/testbench/com/vaadin/tests/components/table/SetCurrentPageFirstItemId.java
index 536348a393..aebb494247 100644
--- a/tests/testbench/com/vaadin/tests/components/table/SetCurrentPageFirstItemId.java
+++ b/tests/testbench/com/vaadin/tests/components/table/SetCurrentPageFirstItemId.java
@@ -30,6 +30,7 @@ public class SetCurrentPageFirstItemId extends TestBase {
Button addrowButton = new Button("Add row");
addrowButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent pEvent) {
Object id = addRow();
table.setCurrentPageFirstItemId(id);
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableAndBrowserContextMenu.java b/tests/testbench/com/vaadin/tests/components/table/TableAndBrowserContextMenu.java
index a616d4dfb3..18eec814bc 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableAndBrowserContextMenu.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableAndBrowserContextMenu.java
@@ -25,6 +25,7 @@ public class TableAndBrowserContextMenu extends TestBase implements
cb.setImmediate(true);
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (((Boolean) event.getProperty().getValue())) {
table.addListener(TableAndBrowserContextMenu.this);
@@ -40,6 +41,7 @@ public class TableAndBrowserContextMenu extends TestBase implements
cbActionHandler.setImmediate(true);
cbActionHandler.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (((Boolean) event.getProperty().getValue())) {
table.addActionHandler(TableAndBrowserContextMenu.this);
@@ -55,6 +57,7 @@ public class TableAndBrowserContextMenu extends TestBase implements
cbActionHasActions.setImmediate(true);
cbActionHasActions.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
actionHandlerHasActions = ((Boolean) event.getProperty()
.getValue());
@@ -80,6 +83,7 @@ public class TableAndBrowserContextMenu extends TestBase implements
// Add a generated column with a link to Google
table.addGeneratedColumn("Search", new Table.ColumnGenerator() {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
Item item = source.getItem(itemId);
@@ -131,11 +135,13 @@ public class TableAndBrowserContextMenu extends TestBase implements
return 5924;
}
+ @Override
public void itemClick(ItemClickEvent event) {
getMainWindow()
.showNotification("Click using " + event.getButtonName());
}
+ @Override
public Action[] getActions(Object target, Object sender) {
if (!actionHandlerHasActions) {
return null;
@@ -144,6 +150,7 @@ public class TableAndBrowserContextMenu extends TestBase implements
return new Action[] { new Action("test") };
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
getMainWindow().showNotification("Action: " + action.getCaption());
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableCacheBuildEfficiency.java b/tests/testbench/com/vaadin/tests/components/table/TableCacheBuildEfficiency.java
index 3c6445349a..75f2679234 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableCacheBuildEfficiency.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableCacheBuildEfficiency.java
@@ -45,6 +45,7 @@ public class TableCacheBuildEfficiency extends TestBase {
Button b = new Button("Click to add row", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.addItem();
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableClickAndDragOnIconAndComponents.java b/tests/testbench/com/vaadin/tests/components/table/TableClickAndDragOnIconAndComponents.java
index ee04813ce6..1a8fc37634 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableClickAndDragOnIconAndComponents.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableClickAndDragOnIconAndComponents.java
@@ -43,6 +43,7 @@ public class TableClickAndDragOnIconAndComponents extends TestBase {
private static final long serialVersionUID = -5042109683675242407L;
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
Item item = source.getItem(itemId);
@@ -53,6 +54,7 @@ public class TableClickAndDragOnIconAndComponents extends TestBase {
private static final long serialVersionUID = -5042109683675242407L;
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
Item item = source.getItem(itemId);
@@ -66,6 +68,7 @@ public class TableClickAndDragOnIconAndComponents extends TestBase {
private static final long serialVersionUID = -5042109683675242407L;
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
Item item = source.getItem(itemId);
@@ -80,6 +83,7 @@ public class TableClickAndDragOnIconAndComponents extends TestBase {
private static final long serialVersionUID = -5042109683675242407L;
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
Embedded embedded = new Embedded(null, new ThemeResource(
@@ -91,10 +95,12 @@ public class TableClickAndDragOnIconAndComponents extends TestBase {
table.setDragMode(TableDragMode.ROW);
table.setDropHandler(new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptAll.get();
}
+ @Override
public void drop(DragAndDropEvent event) {
DataBoundTransferable t = (DataBoundTransferable) event
.getTransferable();
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java b/tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java
index 79a7eca852..00df9fa3c3 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java
@@ -61,6 +61,7 @@ public class TableClickValueChangeInteraction extends TestBase {
if (listenClicks) {
table.addListener(new ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
table.requestRepaint();
clickLabel.setValue("Click " + event.getItemId());
@@ -70,6 +71,7 @@ public class TableClickValueChangeInteraction extends TestBase {
if (listenValueChanges) {
table.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
valueChangeLabel.setValue("Value "
+ event.getProperty().getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableColumnResizeContentsWidth.java b/tests/testbench/com/vaadin/tests/components/table/TableColumnResizeContentsWidth.java
index fbe7ed88ef..1895191cc4 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableColumnResizeContentsWidth.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableColumnResizeContentsWidth.java
@@ -15,6 +15,7 @@ public class TableColumnResizeContentsWidth extends TestBase {
protected void setup() {
final Table table = new Table();
table.addGeneratedColumn(COL1, new ColumnGenerator() {
+ @Override
public Object generateCell(Table source, Object itemId,
Object columnId) {
TextField textField = new TextField();
@@ -30,12 +31,14 @@ public class TableColumnResizeContentsWidth extends TestBase {
addComponent(table);
addComponent(new Button("Increase width", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnWidth(COL1, table.getColumnWidth(COL1) + 20);
table.requestRepaint();
}
}));
addComponent(new Button("Decrease width", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnWidth(COL1, table.getColumnWidth(COL1) - 40);
table.requestRepaint();
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableContextMenu.java b/tests/testbench/com/vaadin/tests/components/table/TableContextMenu.java
index 06afd406ef..9416ffe70c 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableContextMenu.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableContextMenu.java
@@ -16,10 +16,12 @@ public class TableContextMenu extends TestBase {
table.setMultiSelect(true);
table.addActionHandler(new Action.Handler() {
+ @Override
public void handleAction(Action action, Object sender, Object target) {
Notification.show("Done that :-)");
}
+ @Override
public Action[] getActions(Object target, Object sender) {
return new Action[] { ACTION_MYACTION };
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableContextMenuOnField.java b/tests/testbench/com/vaadin/tests/components/table/TableContextMenuOnField.java
index 4c6f658a24..3b639be21f 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableContextMenuOnField.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableContextMenuOnField.java
@@ -22,11 +22,13 @@ public class TableContextMenuOnField extends TestBase {
table.setMultiSelect(true);
table.addActionHandler(new Action.Handler() {
+ @Override
public void handleAction(Action action, Object sender, Object target) {
// TODO Auto-generated method stub
}
+ @Override
public Action[] getActions(Object target, Object sender) {
return new Action[] { ACTION_MYACTION };
}
@@ -34,6 +36,7 @@ public class TableContextMenuOnField extends TestBase {
table.addGeneratedColumn("layout", new Table.ColumnGenerator() {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
@@ -42,6 +45,7 @@ public class TableContextMenuOnField extends TestBase {
layout.addListener(new LayoutClickListener() {
+ @Override
public void layoutClick(LayoutClickEvent event) {
getMainWindow().showNotification("HELLO");
@@ -53,6 +57,7 @@ public class TableContextMenuOnField extends TestBase {
});
table.addGeneratedColumn("textfield", new Table.ColumnGenerator() {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
return new TextField();
@@ -60,6 +65,7 @@ public class TableContextMenuOnField extends TestBase {
});
table.addGeneratedColumn("link", new Table.ColumnGenerator() {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
return new Link("Link", null);
@@ -67,6 +73,7 @@ public class TableContextMenuOnField extends TestBase {
});
table.addGeneratedColumn("button", new Table.ColumnGenerator() {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
return new Button("Button");
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableHeightWhenHidingHeaders.java b/tests/testbench/com/vaadin/tests/components/table/TableHeightWhenHidingHeaders.java
index 27b962cddd..0173f928dd 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableHeightWhenHidingHeaders.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableHeightWhenHidingHeaders.java
@@ -34,6 +34,7 @@ public class TableHeightWhenHidingHeaders extends AbstractTestCase {
CheckBox showHeaders = new CheckBox("Show headers");
showHeaders.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if ((Boolean) event.getProperty().getValue()) {
// table body height is now 77px, which together
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableInTabsheet.java b/tests/testbench/com/vaadin/tests/components/table/TableInTabsheet.java
index 27e624b810..136dcfe9a5 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableInTabsheet.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableInTabsheet.java
@@ -2,8 +2,8 @@ package com.vaadin.tests.components.table;
import java.net.MalformedURLException;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.WrappedRequest;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.tests.components.AbstractTestRoot;
import com.vaadin.ui.AbsoluteLayout;
import com.vaadin.ui.HorizontalLayout;
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableItemDescriptionGeneratorTest.java b/tests/testbench/com/vaadin/tests/components/table/TableItemDescriptionGeneratorTest.java
index 1f15b224dc..0d5d6802d7 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableItemDescriptionGeneratorTest.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableItemDescriptionGeneratorTest.java
@@ -23,6 +23,7 @@ public class TableItemDescriptionGeneratorTest extends TestBase {
addComponent(table);
table.setItemDescriptionGenerator(new ItemDescriptionGenerator() {
+ @Override
public String generateDescription(Component source, Object itemId,
Object propertyId) {
if (propertyId == null) {
@@ -37,6 +38,7 @@ public class TableItemDescriptionGeneratorTest extends TestBase {
table.addGeneratedColumn(COLUMN3_PROPERTY_ID,
new Table.ColumnGenerator() {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
TextField lbl = new TextField();
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableModifcationsWhenScrolledRight.java b/tests/testbench/com/vaadin/tests/components/table/TableModifcationsWhenScrolledRight.java
index 91ca8256c8..74a5089a84 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableModifcationsWhenScrolledRight.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableModifcationsWhenScrolledRight.java
@@ -28,6 +28,7 @@ public class TableModifcationsWhenScrolledRight extends TestBase {
btn.addListener(new ClickListener() {
Integer row = 2;
+ @Override
public void buttonClick(ClickEvent event) {
t.addItem(row).getItemProperty("name").setValue("Row" + row);
row++;
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableMultiSelectSimple.java b/tests/testbench/com/vaadin/tests/components/table/TableMultiSelectSimple.java
index c33ba30193..88d20b9eb0 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableMultiSelectSimple.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableMultiSelectSimple.java
@@ -28,6 +28,7 @@ public class TableMultiSelectSimple extends TestBase {
t.setImmediate(true);
t.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
TreeSet<?> sorted = new TreeSet<Object>((Set<?>) event
.getProperty().getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/table/TablePageLengthUpdate.java b/tests/testbench/com/vaadin/tests/components/table/TablePageLengthUpdate.java
index c7f138ea8f..75b672a277 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TablePageLengthUpdate.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TablePageLengthUpdate.java
@@ -47,6 +47,7 @@ public class TablePageLengthUpdate extends TestBase {
Button updateButton = new Button("Update pageLength",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
updatePageLengthLabel();
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableRepaintWhenMadeVisibile.java b/tests/testbench/com/vaadin/tests/components/table/TableRepaintWhenMadeVisibile.java
index 5354525f1e..2b02e89c80 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableRepaintWhenMadeVisibile.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableRepaintWhenMadeVisibile.java
@@ -17,6 +17,7 @@ public class TableRepaintWhenMadeVisibile extends TestBase {
Button show = new Button("show", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setVisible(true);
}
@@ -24,6 +25,7 @@ public class TableRepaintWhenMadeVisibile extends TestBase {
addComponent(show);
Button hide = new Button("hide", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setVisible(false);
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableRowHeight.java b/tests/testbench/com/vaadin/tests/components/table/TableRowHeight.java
index b3864ae0e4..eb5efbc4f3 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableRowHeight.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableRowHeight.java
@@ -89,6 +89,7 @@ public class TableRowHeight extends TestBase {
public class LabelColumnGenerator implements ColumnGenerator {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
Item item = source.getItem(itemId);
@@ -104,6 +105,7 @@ public class TableRowHeight extends TestBase {
public class LayoutColumnGenerator implements ColumnGenerator {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
Item item = source.getItem(itemId);
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableRowNoHeightNoRows.html b/tests/testbench/com/vaadin/tests/components/table/TableRowNoHeightNoRows.html
new file mode 100644
index 0000000000..35d64c3a0c
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/table/TableRowNoHeightNoRows.html
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.Tables?restartApplication</td>
+ <td></td>
+</tr>
+<!--Remove all rows-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item0</td>
+ <td>29,11</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item5</td>
+ <td>40,5</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[1]/VMenuBar[0]#item1</td>
+ <td>53,9</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[2]/VMenuBar[0]#item0</td>
+ <td>4,6</td>
+</tr>
+<!--Add generated column-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item0</td>
+ <td>34,8</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item8</td>
+ <td>40,6</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[1]/VMenuBar[0]#item4</td>
+ <td>97,5</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[2]/VMenuBar[0]#item0</td>
+ <td>55,6</td>
+</tr>
+<!--Screenshot of initial state-->
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1-no-rows-small</td>
+</tr>
+<!--Add a row to make the row height increase-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item0</td>
+ <td>23,5</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item5</td>
+ <td>26,1</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[1]/VMenuBar[0]#item1</td>
+ <td>68,10</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[2]/VMenuBar[0]#item1</td>
+ <td>18,13</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>2-one-row-big</td>
+</tr>
+<!--Remove the row - height should be retained-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item0</td>
+ <td>28,10</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item5</td>
+ <td>34,6</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[1]/VMenuBar[0]#item1</td>
+ <td>62,4</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[2]/VMenuBar[0]#item0</td>
+ <td>25,4</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>3-no-rows-big</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableScrollOnFocus.java b/tests/testbench/com/vaadin/tests/components/table/TableScrollOnFocus.java
index 4053665898..4782ca94f7 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableScrollOnFocus.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableScrollOnFocus.java
@@ -14,6 +14,7 @@ public class TableScrollOnFocus extends TestBase {
chkSelectable.setImmediate(true);
chkSelectable.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
table.setSelectable((Boolean) chkSelectable.getValue());
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableShouldNotEatValueChanges.java b/tests/testbench/com/vaadin/tests/components/table/TableShouldNotEatValueChanges.java
index d64bc0035d..030a4ee259 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableShouldNotEatValueChanges.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableShouldNotEatValueChanges.java
@@ -26,6 +26,7 @@ public class TableShouldNotEatValueChanges extends TestBase {
tf.setTabIndex(1);
ItemClickListener l = new ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
Notification.show("TF Value on the server:" + tf.getValue(),
Notification.TYPE_WARNING_MESSAGE);
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableSingleSelect.java b/tests/testbench/com/vaadin/tests/components/table/TableSingleSelect.java
index 62d0cce9df..827593cd91 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableSingleSelect.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableSingleSelect.java
@@ -22,6 +22,7 @@ public class TableSingleSelect extends TestBase {
t.setImmediate(true);
t.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
log.log("Selected value: " + event.getProperty().getValue());
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableSorting.java b/tests/testbench/com/vaadin/tests/components/table/TableSorting.java
index a0d9b8e69d..6417e8e853 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableSorting.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableSorting.java
@@ -32,6 +32,7 @@ public class TableSorting extends TestBase {
// Handle selection change.
testTable.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
System.out.println("ValueChanged: "
+ testTable.getValue().toString());
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableToggleVisibility.java b/tests/testbench/com/vaadin/tests/components/table/TableToggleVisibility.java
index 0cc125acaa..0465d2f886 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableToggleVisibility.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableToggleVisibility.java
@@ -140,6 +140,7 @@ public class TableToggleVisibility extends AbstractTestCase {
addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
boolean wasVisible = ToggleButton.this.table.isVisible();
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableUndefinedSize.java b/tests/testbench/com/vaadin/tests/components/table/TableUndefinedSize.java
index 73b80f62f4..544fe9bb67 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableUndefinedSize.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableUndefinedSize.java
@@ -39,6 +39,7 @@ public class TableUndefinedSize extends TestBase {
controls.addComponent(new Button("Fixed size (200x200)",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tbl.setWidth("200px");
tbl.setHeight("200px");
@@ -48,6 +49,7 @@ public class TableUndefinedSize extends TestBase {
controls.addComponent(new Button("Fixed size (600x200)",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tbl.setWidth("600px");
tbl.setHeight("200px");
@@ -57,6 +59,7 @@ public class TableUndefinedSize extends TestBase {
controls.addComponent(new Button("Undefined size",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tbl.setSizeUndefined();
log.log("Size undefined");
@@ -68,6 +71,7 @@ public class TableUndefinedSize extends TestBase {
pageLength.setImmediate(true);
pageLength.setNullSelectionAllowed(false);
pageLength.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
int pageLength = Integer.valueOf(event.getProperty().getValue()
.toString());
@@ -81,6 +85,7 @@ public class TableUndefinedSize extends TestBase {
cb.setValue(true);
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Boolean value = (Boolean) event.getProperty().getValue();
tbl.setColumnCollapsed("Column 1", !value);
@@ -98,6 +103,7 @@ public class TableUndefinedSize extends TestBase {
cb.setValue(true);
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Boolean value = (Boolean) event.getProperty().getValue();
tbl.setColumnCollapsed("Column 2", !value);
@@ -116,6 +122,7 @@ public class TableUndefinedSize extends TestBase {
cb.setValue(true);
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Boolean value = (Boolean) event.getProperty().getValue();
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableUnregisterComponent.java b/tests/testbench/com/vaadin/tests/components/table/TableUnregisterComponent.java
index 6fd4a9db52..11f450baf2 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableUnregisterComponent.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableUnregisterComponent.java
@@ -76,12 +76,14 @@ public class TableUnregisterComponent extends TestBase {
addComponent(table);
addComponent(new Button("Switch column collapse", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnCollapsed(COL_A, !table.isColumnCollapsed(COL_A));
}
}));
addComponent(new Button("Switch editable", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setEditable(!table.isEditable());
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableVisibleColumnsUpdate.java b/tests/testbench/com/vaadin/tests/components/table/TableVisibleColumnsUpdate.java
index ad8eacb4b7..98cd4e0aaa 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableVisibleColumnsUpdate.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableVisibleColumnsUpdate.java
@@ -46,6 +46,7 @@ public class TableVisibleColumnsUpdate extends TestBase {
Button updateButton = new Button("Change columns", new ClickListener() {
private boolean one = true;
+ @Override
public void buttonClick(ClickEvent event) {
table.setVisibleColumns((one ? cols2 : cols1));
one = !one;
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableWithChildComponents.java b/tests/testbench/com/vaadin/tests/components/table/TableWithChildComponents.java
index 1d1c162cae..7eb9c3239c 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableWithChildComponents.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableWithChildComponents.java
@@ -27,6 +27,7 @@ public class TableWithChildComponents extends TestBase implements ClickListener
table.addGeneratedColumn(COL2, new ColumnGenerator() {
+ @Override
public Object generateCell(Table source, Object itemId,
Object columnId) {
return new Button(
@@ -58,6 +59,7 @@ public class TableWithChildComponents extends TestBase implements ClickListener
return null;
}
+ @Override
public void buttonClick(ClickEvent event) {
log.log("Click on " + event.getButton().getCaption());
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableWithContainerRequiringEqualsForItemId.java b/tests/testbench/com/vaadin/tests/components/table/TableWithContainerRequiringEqualsForItemId.java
index 1b0335b673..733f46959a 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableWithContainerRequiringEqualsForItemId.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableWithContainerRequiringEqualsForItemId.java
@@ -23,6 +23,7 @@ public class TableWithContainerRequiringEqualsForItemId extends TestBase {
super(MyEntity.class);
setBeanIdResolver(new BeanIdResolver<Long, TableWithContainerRequiringEqualsForItemId.MyEntity>() {
+ @Override
public Long getIdForBean(MyEntity bean) {
// Return a new instance every time to ensure Table can
// handle it
@@ -46,10 +47,12 @@ public class TableWithContainerRequiringEqualsForItemId extends TestBase {
protected void setup() {
Table t = new Table("Table with 1000 item");
t.addGeneratedColumn("Actions", new Table.ColumnGenerator() {
+ @Override
public Component generateCell(final Table source,
final Object itemId, final Object columnId) {
Button tripFolderLink = new Button("Button" + itemId);
tripFolderLink.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(final ClickEvent event) {
log.log("Button " + event.getButton().getCaption()
+ " clicked");
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.java b/tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.java
index 404ba5d779..226fde3b29 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.java
@@ -30,6 +30,7 @@ public class TableWithNoncollapsibleColumns extends TestBase {
final Button button1 = new Button("Column 1: collapse/show",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnCollapsed(
"Column 1 - noncollapsible",
@@ -38,6 +39,7 @@ public class TableWithNoncollapsibleColumns extends TestBase {
});
final Button button2 = new Button("Column 2: collapse/show",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnCollapsed(
"Column 2 - collapsible",
@@ -47,6 +49,7 @@ public class TableWithNoncollapsibleColumns extends TestBase {
final Button button3 = new Button("Column 3: collapse/show",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnCollapsed(
"Column 3 - toggle collapsing",
@@ -56,6 +59,7 @@ public class TableWithNoncollapsibleColumns extends TestBase {
final Button button4 = new Button(
"Column 3: make noncollapsible/collapsible",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnCollapsible(
"Column 3 - toggle collapsing",
diff --git a/tests/testbench/com/vaadin/tests/components/table/Tables.java b/tests/testbench/com/vaadin/tests/components/table/Tables.java
index 11ffff0655..79a5fb367d 100644
--- a/tests/testbench/com/vaadin/tests/components/table/Tables.java
+++ b/tests/testbench/com/vaadin/tests/components/table/Tables.java
@@ -8,8 +8,8 @@ import java.util.List;
import com.vaadin.event.Action;
import com.vaadin.event.Action.Handler;
import com.vaadin.event.ItemClickEvent.ItemClickListener;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.Resource;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.tests.components.select.AbstractSelectTestCase;
import com.vaadin.ui.AbstractSelect.MultiSelectMode;
import com.vaadin.ui.Button;
@@ -47,6 +47,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
/* COMMANDS */
private Command<T, Align> columnAlignmentCommand = new Command<T, Align>() {
+ @Override
public void execute(T c, Align alignment, Object propertyId) {
c.setColumnAlignment(propertyId, alignment);
}
@@ -54,6 +55,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
};
private Command<T, Boolean> columnVisibleCommand = new Command<T, Boolean>() {
+ @Override
public void execute(Table c, Boolean visible, Object propertyId) {
List<Object> visibleColumns = new ArrayList<Object>(Arrays.asList(c
.getVisibleColumns()));
@@ -72,6 +74,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
private Command<T, Boolean> columnCollapsed = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean collapsed, Object propertyId) {
c.setColumnCollapsed(propertyId, collapsed);
@@ -80,6 +83,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
private Command<T, Boolean> columnCollapsibleCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean collapsible, Object propertyId) {
c.setColumnCollapsible(propertyId, collapsible);
@@ -88,6 +92,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
protected Command<T, Boolean> columnResizeListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(Table c, Boolean value, Object data) {
if (value) {
c.addListener((ColumnResizeListener) Tables.this);
@@ -99,6 +104,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
protected Command<T, Boolean> headerClickListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
c.addListener((HeaderClickListener) Tables.this);
@@ -110,6 +116,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
protected Command<T, Boolean> footerClickListenerCommand = new Command<T, Boolean>() {
+ @Override
public void execute(Table c, Boolean value, Object data) {
if (value) {
c.addListener((FooterClickListener) Tables.this);
@@ -121,6 +128,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
protected Command<T, RowHeaderMode> rowHeaderModeCommand = new Command<T, RowHeaderMode>() {
+ @Override
public void execute(Table c, RowHeaderMode value, Object data) {
if (value == RowHeaderMode.PROPERTY) {
c.setItemCaptionPropertyId("Property 3");
@@ -131,6 +139,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
protected Command<T, String> footerTextCommand = new Command<T, String>() {
+ @Override
public void execute(Table c, String value, Object data) {
for (Object propertyId : c.getContainerPropertyIds()) {
if (value != null) {
@@ -145,6 +154,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
protected Command<T, Object> alignColumnLeftCommand = new Command<T, Object>() {
+ @Override
public void execute(T c, Object propertyId, Object data) {
c.setColumnAlignment(propertyId, (Align) data);
}
@@ -152,17 +162,20 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
private Command<T, ContextMenu> contextMenuCommand = new Command<T, ContextMenu>() {
+ @Override
public void execute(T c, final ContextMenu value, Object data) {
c.removeAllActionHandlers();
if (value != null) {
c.addActionHandler(new Handler() {
+ @Override
public void handleAction(Action action, Object sender,
Object target) {
log("Action " + action.getCaption() + " performed on "
+ target);
}
+ @Override
public Action[] getActions(Object target, Object sender) {
return value.getActions(target, sender);
}
@@ -172,6 +185,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
};
private Command<T, Integer> columnWidthCommand = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer width, Object propertyId) {
c.setColumnWidth(propertyId, width);
@@ -180,6 +194,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
private Command<T, Resource> columnIconCommand = new Command<T, Resource>() {
+ @Override
public void execute(T c, Resource icon, Object propertyId) {
c.setColumnIcon(propertyId, icon);
@@ -187,6 +202,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
};
private Command<T, ColumnHeaderMode> columnHeaderModeCommand = new Command<T, ColumnHeaderMode>() {
+ @Override
public void execute(T c, ColumnHeaderMode columnHeaderMode, Object data) {
c.setColumnHeaderMode(columnHeaderMode);
@@ -194,6 +210,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
};
private Command<T, String> columnHeaderCommand = new Command<T, String>() {
+ @Override
public void execute(T c, String header, Object propertyId) {
c.setColumnHeader(propertyId, header);
@@ -201,6 +218,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
};
private Command<T, Float> columnExpandRatioCommand = new Command<T, Float>() {
+ @Override
public void execute(T c, Float expandRatio, Object propertyId) {
c.setColumnExpandRatio(propertyId, expandRatio);
}
@@ -224,6 +242,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
private Command<T, GeneratedColumn> addGeneratedColumnCommand = new Command<T, GeneratedColumn>() {
+ @Override
public void execute(T c, final GeneratedColumn col, Object data) {
while (c.getColumnGenerator(generatedColumnId
+ generatedColumnNextNr) != null) {
@@ -233,6 +252,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
c.addGeneratedColumn(generatedColumnId + generatedColumnNextNr,
new ColumnGenerator() {
+ @Override
public Object generateCell(Table source, Object itemId,
Object columnId) {
String value = "";
@@ -273,6 +293,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
};
private Command<T, Object> removeGeneratedColumnsCommand = new Command<T, Object>() {
+ @Override
public void execute(T c, Object value, Object data) {
for (int i = 0; i < generatedColumnNextNr; i++) {
String columnId = generatedColumnId + i;
@@ -306,12 +327,14 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
private Command<T, CellStyleInfo> cellStyleCommand = new Command<T, CellStyleInfo>() {
+ @Override
public void execute(T c, final CellStyleInfo cellStyleInfo, Object data) {
if (cellStyleInfo == null) {
c.setCellStyleGenerator(null);
} else {
c.setCellStyleGenerator(new CellStyleGenerator() {
+ @Override
public String getStyle(Object itemId, Object propertyId) {
if (cellStyleInfo.appliesTo(itemId, propertyId)) {
return cellStyleInfo.styleName;
@@ -349,6 +372,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
private Command<T, GeneratedRowInfo> rowGeneratorCommand = new Command<T, GeneratedRowInfo>() {
+ @Override
public void execute(T c, final GeneratedRowInfo generatedRowInfo,
Object data) {
if (generatedRowInfo == null) {
@@ -356,6 +380,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
} else {
c.setRowGenerator(new RowGenerator() {
+ @Override
public GeneratedRow generateRow(Table table, Object itemId) {
if (generatedRowInfo.appliesTo(itemId)) {
GeneratedRow generatedRow = new GeneratedRow(
@@ -373,6 +398,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
private Command<T, Boolean> setSortEnabledCommand = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
c.setSortDisabled(!value);
@@ -546,6 +572,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
private void createColumnReorderingAllowedCheckbox(String category) {
createBooleanAction("Column reordering allowed", category, true,
new Command<T, Boolean>() {
+ @Override
public void execute(Table c, Boolean value, Object data) {
c.setColumnReorderingAllowed(value);
}
@@ -555,6 +582,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
private void createColumnCollapsingAllowedCheckbox(String category) {
createBooleanAction("Column collapsing allowed", category, true,
new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
c.setColumnCollapsingAllowed(value);
}
@@ -697,6 +725,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
createSelectAction("Texts in header", category, options, "None",
new Command<T, String>() {
+ @Override
public void execute(T c, String value, Object data) {
int nr = 0;
for (Object propertyId : c.getContainerPropertyIds()) {
@@ -746,6 +775,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
createBooleanAction("Footer visible", category, true,
new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
c.setFooterVisible(value);
}
@@ -763,6 +793,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
createSelectAction("Header mode", category, options,
"Explicit defaults id", new Command<T, ColumnHeaderMode>() {
+ @Override
public void execute(T c, ColumnHeaderMode value, Object data) {
c.setColumnHeaderMode(value);
@@ -781,6 +812,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
createSelectAction("PageLength", category, options, "10",
new Command<T, Integer>() {
+ @Override
public void execute(Table t, Integer value, Object data) {
t.setPageLength(value);
}
@@ -801,6 +833,7 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
createSelectAction("Selection Mode", category, options,
"Multi - ctrl/shift", new Command<T, SelectMode>() {
+ @Override
public void execute(Table t, SelectMode value, Object data) {
switch (value) {
case NONE:
@@ -825,16 +858,19 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
});
}
+ @Override
public void columnResize(ColumnResizeEvent event) {
log("ColumnResize on " + event.getPropertyId() + " from "
+ event.getPreviousWidth() + " to " + event.getCurrentWidth());
}
+ @Override
public void footerClick(FooterClickEvent event) {
log("FooterClick on " + event.getPropertyId() + " using "
+ event.getButtonName());
}
+ @Override
public void headerClick(HeaderClickEvent event) {
log("HeaderClick on " + event.getPropertyId() + " using "
+ event.getButtonName());
diff --git a/tests/testbench/com/vaadin/tests/components/table/TestCurrentPageFirstItem.java b/tests/testbench/com/vaadin/tests/components/table/TestCurrentPageFirstItem.java
index 7fb096739a..d629c9a917 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TestCurrentPageFirstItem.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TestCurrentPageFirstItem.java
@@ -50,6 +50,7 @@ public class TestCurrentPageFirstItem extends TestBase implements ClickListener
baseLayout.addComponent(buttonItem);
}
+ @Override
public void buttonClick(ClickEvent event) {
Item item = container.addItem(++counter);
item.getItemProperty("row").setValue(counter + "");
diff --git a/tests/testbench/com/vaadin/tests/components/table/TextFieldRelativeWidth.java b/tests/testbench/com/vaadin/tests/components/table/TextFieldRelativeWidth.java
index f3a92d410c..5c7479d060 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TextFieldRelativeWidth.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TextFieldRelativeWidth.java
@@ -54,6 +54,7 @@ public class TextFieldRelativeWidth extends TestBase {
addListener(new Property.ValueChangeListener() {
private static final long serialVersionUID = 448896474865195605L;
+ @Override
public void valueChange(
com.vaadin.data.Property.ValueChangeEvent event) {
// IndexedContainer idc = (IndexedContainer)
@@ -98,6 +99,7 @@ public class TextFieldRelativeWidth extends TestBase {
addButton.setCaption(caption);
}
+ @Override
public void buttonClick(ClickEvent event) {
Button b = event.getButton();
if (b == addButton) {
diff --git a/tests/testbench/com/vaadin/tests/components/table/TextFieldValueGoesMissing.java b/tests/testbench/com/vaadin/tests/components/table/TextFieldValueGoesMissing.java
index f3ff5e983e..9ffad7f1e4 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TextFieldValueGoesMissing.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TextFieldValueGoesMissing.java
@@ -20,6 +20,7 @@ public class TextFieldValueGoesMissing extends TestBase {
Button button = new Button("Replace label");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (verticalLayout.getComponentIndex(label1) > -1) {
verticalLayout.replaceComponent(label1, label2);
diff --git a/tests/testbench/com/vaadin/tests/components/table/UncollapsedCollumnWidth.java b/tests/testbench/com/vaadin/tests/components/table/UncollapsedCollumnWidth.java
index 99b954fa63..8e623499cf 100644
--- a/tests/testbench/com/vaadin/tests/components/table/UncollapsedCollumnWidth.java
+++ b/tests/testbench/com/vaadin/tests/components/table/UncollapsedCollumnWidth.java
@@ -23,6 +23,7 @@ public class UncollapsedCollumnWidth extends TestBase {
addComponent(table);
addComponent(new Button("Uncollapse col2", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
table.setColumnCollapsed("Col2", false);
}
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/AddAndRemoveTabs.java b/tests/testbench/com/vaadin/tests/components/tabsheet/AddAndRemoveTabs.java
index 3b5166a21e..4b5d216906 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/AddAndRemoveTabs.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/AddAndRemoveTabs.java
@@ -20,6 +20,7 @@ public class AddAndRemoveTabs extends TestBase {
Button addTabBtn = new Button("Add new tab",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
addTab();
}
@@ -34,6 +35,7 @@ public class AddAndRemoveTabs extends TestBase {
Button closeTab = new Button("Close tab", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tabSheet.removeComponent(layout);
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/PreventTabChange.java b/tests/testbench/com/vaadin/tests/components/tabsheet/PreventTabChange.java
index f1faecb711..434c73f778 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/PreventTabChange.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/PreventTabChange.java
@@ -46,6 +46,7 @@ public class PreventTabChange extends TestBase implements
addComponent(tabSheet);
}
+ @Override
public void selectedTabChange(SelectedTabChangeEvent event) {
TabSheet tabsheet = event.getTabSheet();
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/RemoveTabs.java b/tests/testbench/com/vaadin/tests/components/tabsheet/RemoveTabs.java
index 1cd96c5c4c..2b37c4358e 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/RemoveTabs.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/RemoveTabs.java
@@ -49,6 +49,7 @@ public class RemoveTabs extends TestBase {
closeCurrent = new Button("Close current tab");
closeCurrent.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
closeCurrentTab();
@@ -57,6 +58,7 @@ public class RemoveTabs extends TestBase {
closeCurrentWithTab = new Button("Close current tab with Tab");
closeCurrentWithTab.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
closeCurrentTabWithTab();
@@ -65,6 +67,7 @@ public class RemoveTabs extends TestBase {
closeFirst = new Button("close first tab");
closeFirst.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
closeFirstTab();
@@ -73,6 +76,7 @@ public class RemoveTabs extends TestBase {
closeLast = new Button("close last tab");
closeLast.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
closeLastTab();
@@ -81,6 +85,7 @@ public class RemoveTabs extends TestBase {
reorderTabs = new Button("reorder");
reorderTabs.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
reorder();
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabGetAndReplaceComponent.java b/tests/testbench/com/vaadin/tests/components/tabsheet/TabGetAndReplaceComponent.java
index c49133dd7c..0d4f1fe562 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/TabGetAndReplaceComponent.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabGetAndReplaceComponent.java
@@ -25,6 +25,7 @@ public class TabGetAndReplaceComponent extends TestBase {
Button replace2 = new Button("Replace Content 2",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Iterator<Component> iter = tabs.getComponentIterator();
iter.next();
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabKeyboardNavigation.java b/tests/testbench/com/vaadin/tests/components/tabsheet/TabKeyboardNavigation.java
index a3886853ff..ba737f1df8 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/TabKeyboardNavigation.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabKeyboardNavigation.java
@@ -32,12 +32,14 @@ public class TabKeyboardNavigation extends TestBase {
ts.setHeight("500px");
ts.addListener(new FocusListener() {
+ @Override
public void focus(FocusEvent event) {
focusblur.log("Tabsheet focused!");
}
});
ts.addListener(new BlurListener() {
+ @Override
public void blur(BlurEvent event) {
focusblur.log("Tabsheet blurred!");
}
@@ -48,11 +50,13 @@ public class TabKeyboardNavigation extends TestBase {
}
Button addTab = new Button("Add a tab", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
addTab();
}
});
Button focus = new Button("Focus tabsheet", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
ts.focus();
}
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetCaptions.java b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetCaptions.java
index 3d8d02b8b6..e3867cff9f 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetCaptions.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetCaptions.java
@@ -42,6 +42,7 @@ public class TabSheetCaptions extends TestBase {
Button button = new Button("Update tab caption");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tabSheet.getTab(panel1).setCaption(
"This is a new tab caption "
@@ -51,6 +52,7 @@ public class TabSheetCaptions extends TestBase {
Button button2 = new Button("Update panel caption");
button2.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
panel1.setCaption("This is a new panel caption "
+ dateFormatter.format(date));
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetDisabling.java b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetDisabling.java
index bdce3e83d0..dfe37f2e27 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetDisabling.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetDisabling.java
@@ -20,6 +20,7 @@ public class TabSheetDisabling extends TestBase {
buttons[i] = new Button("Disable this tab",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Button b = event.getButton();
tabSheet.getTab(b).setEnabled(false);
@@ -30,6 +31,7 @@ public class TabSheetDisabling extends TestBase {
} else {
buttons[i] = new Button("Hide this tab", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Button b = event.getButton();
tabSheet.getTab(b).setVisible(false);
@@ -41,6 +43,7 @@ public class TabSheetDisabling extends TestBase {
}
Button button = new Button("Enable/disable", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tabSheet.setEnabled(!tabSheet.isEnabled());
}
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetDiscardsMovedComponents.java b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetDiscardsMovedComponents.java
index 410172ddb0..8d312f0cd8 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetDiscardsMovedComponents.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetDiscardsMovedComponents.java
@@ -32,6 +32,7 @@ public class TabSheetDiscardsMovedComponents extends TestBase {
private void addTestComponent(final Component component) {
grid.addComponent(component);
grid.addComponent(new Button("Move to tab", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tabSheet.addTab(component);
grid.removeComponent(event.getButton());
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetIndexOperations.java b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetIndexOperations.java
index 5ae9e69975..de637bbed7 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetIndexOperations.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetIndexOperations.java
@@ -24,6 +24,7 @@ public class TabSheetIndexOperations extends TestBase {
Button addTab = new Button("Add tab at index 2",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tabs.addTab(new Label("Content " + tabCounter),
"Added Tab " + tabCounter, null, 2);
@@ -34,6 +35,7 @@ public class TabSheetIndexOperations extends TestBase {
Button setCaption = new Button("Invert tab caption at index 2",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Tab tab = tabs.getTab(2);
tab.setCaption(new StringBuffer(tab.getCaption())
@@ -44,6 +46,7 @@ public class TabSheetIndexOperations extends TestBase {
Button move = new Button("Move selected tab to index 2",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tabs.setTabPosition(tabs.getTab(tabs.getSelectedTab()),
2);
@@ -53,6 +56,7 @@ public class TabSheetIndexOperations extends TestBase {
Button getIndex = new Button("Get selected tab index",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().showNotification(
"Index: "
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetMinimal.java b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetMinimal.java
index 105b4149a1..b6cf27f6bb 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetMinimal.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetMinimal.java
@@ -16,6 +16,7 @@ public class TabSheetMinimal extends TestBase {
ts.setStyleName("minimal");
Button b = new Button("Add a tab", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
ts.addTab(new Label("" + index), "Tab " + index, null);
index++;
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetTabStyleNames.java b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetTabStyleNames.java
index 3c3dec478c..54a5ed4857 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetTabStyleNames.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetTabStyleNames.java
@@ -25,6 +25,7 @@ public class TabSheetTabStyleNames extends TestBase {
new Button.ClickListener() {
int counter = 0;
+ @Override
public void buttonClick(ClickEvent event) {
if (tab1.getStyleName() == null) {
tab1.setStyleName(STYLE_NAME);
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetTest.java b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetTest.java
index 3077c1a97b..fea255a98d 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetTest.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetTest.java
@@ -16,6 +16,7 @@ public class TabSheetTest<T extends TabSheet> extends
private Command<T, Integer> setTabCaption = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer value, Object data) {
c.getTab(value).setCaption((String) data);
@@ -23,6 +24,7 @@ public class TabSheetTest<T extends TabSheet> extends
};
private Command<T, Integer> setTabIcon = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer value, Object data) {
c.getTab(value).setIcon((Resource) data);
@@ -30,15 +32,18 @@ public class TabSheetTest<T extends TabSheet> extends
};
private Command<T, Integer> setTabClosable = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer value, Object data) {
c.getTab(value).setClosable((Boolean) data);
}
};
private Command<T, Boolean> setCloseHandlerListener = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
c.setCloseHandler(new CloseHandler() {
+ @Override
public void onTabClose(TabSheet tabsheet, Component c) {
tabClosed(tabsheet, tabsheet.getTab(c));
tabsheet.removeComponent(c);
@@ -47,6 +52,7 @@ public class TabSheetTest<T extends TabSheet> extends
});
} else {
c.setCloseHandler(new CloseHandler() {
+ @Override
public void onTabClose(TabSheet tabsheet, Component c) {
tabsheet.removeComponent(c);
}
@@ -57,6 +63,7 @@ public class TabSheetTest<T extends TabSheet> extends
};
private Command<T, Boolean> setSelectedTabListener = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
if (value) {
c.addListener((SelectedTabChangeListener) TabSheetTest.this);
@@ -68,12 +75,14 @@ public class TabSheetTest<T extends TabSheet> extends
};
private Command<T, Integer> selectTab = new Command<T, Integer>() {
+ @Override
public void execute(T c, Integer index, Object data) {
c.setSelectedTab(c.getTab(index).getComponent());
}
};
private Command<T, Boolean> hideTabs = new Command<T, Boolean>() {
+ @Override
public void execute(T c, Boolean value, Object data) {
c.hideTabs(value);
@@ -194,6 +203,7 @@ public class TabSheetTest<T extends TabSheet> extends
log("Tab " + tabSheet.getTabPosition(tab) + " closed");
}
+ @Override
public void selectedTabChange(SelectedTabChangeEvent event) {
TabSheet ts = event.getTabSheet();
log("Tab " + ts.getTabPosition(ts.getTab(ts.getSelectedTab()))
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabsheetNPE.java b/tests/testbench/com/vaadin/tests/components/tabsheet/TabsheetNPE.java
index 24077b972c..8e4c4d40fb 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/TabsheetNPE.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabsheetNPE.java
@@ -49,6 +49,7 @@ public class TabsheetNPE extends AbstractTestCase implements ClickListener {
return layout;
}
+ @Override
public void buttonClick(ClickEvent event) {
for (int i = 0; i < TABS_COUNT; i++) {
tab[i].setEnabled(true);
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabsheetScrolling.java b/tests/testbench/com/vaadin/tests/components/tabsheet/TabsheetScrolling.java
index 5321b51f9c..da449a2461 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/TabsheetScrolling.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabsheetScrolling.java
@@ -22,6 +22,7 @@ public class TabsheetScrolling extends TestBase {
Button b = new Button("Hide this tab (" + i + ")",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
fixedSizeTabSheet.getTab(event.getButton())
.setVisible(false);
@@ -44,6 +45,7 @@ public class TabsheetScrolling extends TestBase {
Button b = new Button("Hide this tab (" + i + ")",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
autoWideTabSheet.getTab(event.getButton())
.setVisible(false);
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/WrapTabSheetInTabSheet.java b/tests/testbench/com/vaadin/tests/components/tabsheet/WrapTabSheetInTabSheet.java
index 3872f7a8dd..7a676c63fb 100644
--- a/tests/testbench/com/vaadin/tests/components/tabsheet/WrapTabSheetInTabSheet.java
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/WrapTabSheetInTabSheet.java
@@ -17,6 +17,7 @@ public class WrapTabSheetInTabSheet extends TestBase {
Button b = new Button("Wrap main layout in a TabSheet");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
TabSheet tabsheet = new TabSheet();
ComponentContainer mainParent = (ComponentContainer) mainLayout
diff --git a/tests/testbench/com/vaadin/tests/components/textarea/TextAreaCursorPosition.java b/tests/testbench/com/vaadin/tests/components/textarea/TextAreaCursorPosition.java
index 0fc63860e1..992f20843b 100644
--- a/tests/testbench/com/vaadin/tests/components/textarea/TextAreaCursorPosition.java
+++ b/tests/testbench/com/vaadin/tests/components/textarea/TextAreaCursorPosition.java
@@ -33,6 +33,7 @@ public class TextAreaCursorPosition extends TestBase {
newTextField.setTextChangeEventMode(TextChangeEventMode.EAGER);
newTextField.addListener(new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
AbstractTextField component = (AbstractTextField) event
.getComponent();
diff --git a/tests/testbench/com/vaadin/tests/components/textarea/TextAreaTest.java b/tests/testbench/com/vaadin/tests/components/textarea/TextAreaTest.java
index 278d14e43d..e071bdd8fb 100644
--- a/tests/testbench/com/vaadin/tests/components/textarea/TextAreaTest.java
+++ b/tests/testbench/com/vaadin/tests/components/textarea/TextAreaTest.java
@@ -8,12 +8,14 @@ import com.vaadin.ui.TextArea;
public class TextAreaTest extends AbstractTextFieldTest<TextArea> {
private Command<TextArea, Boolean> wordwrapCommand = new Command<TextArea, Boolean>() {
+ @Override
public void execute(TextArea c, Boolean value, Object data) {
c.setWordwrap(value);
}
};
private Command<TextArea, Integer> rowsCommand = new Command<TextArea, Integer>() {
+ @Override
public void execute(TextArea c, Integer value, Object data) {
c.setRows(value);
}
diff --git a/tests/testbench/com/vaadin/tests/components/textarea/Wordwrap.java b/tests/testbench/com/vaadin/tests/components/textarea/Wordwrap.java
index b33a1a4765..8672d4019e 100644
--- a/tests/testbench/com/vaadin/tests/components/textarea/Wordwrap.java
+++ b/tests/testbench/com/vaadin/tests/components/textarea/Wordwrap.java
@@ -31,6 +31,7 @@ public class Wordwrap extends TestBase {
CheckBox onoff = new CheckBox("Wrap state for the right field");
onoff.setValue(false);
onoff.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
boolean wrap = (Boolean) event.getProperty().getValue();
area2.setWordwrap(wrap);
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/EnterShortcutMaySendInputPromptAsValue.java b/tests/testbench/com/vaadin/tests/components/textfield/EnterShortcutMaySendInputPromptAsValue.java
index bf9924cdbb..938ecf60ce 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/EnterShortcutMaySendInputPromptAsValue.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/EnterShortcutMaySendInputPromptAsValue.java
@@ -31,10 +31,12 @@ public class EnterShortcutMaySendInputPromptAsValue extends TestBase {
final Action enter = new ShortcutAction("enter",
ShortcutAction.KeyCode.ENTER, null);
+ @Override
public Action[] getActions(Object target, Object sender) {
return new Action[] { enter };
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
if (action == enter) {
@@ -43,6 +45,7 @@ public class EnterShortcutMaySendInputPromptAsValue extends TestBase {
});
testField.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
String value = event.getProperty().getValue().toString();
addComponent(new Label("TextField sent value: " + value));
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/MultipleTextChangeEvents.java b/tests/testbench/com/vaadin/tests/components/textfield/MultipleTextChangeEvents.java
index 62d3a1679a..58bc4c5383 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/MultipleTextChangeEvents.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/MultipleTextChangeEvents.java
@@ -20,6 +20,7 @@ public class MultipleTextChangeEvents extends TestBase {
tf.setTextChangeEventMode(TextChangeEventMode.TIMEOUT);
tf.setTextChangeTimeout(500);
tf.addListener(new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
log.log("TextChangeEvent: " + event.getText());
}
@@ -35,10 +36,12 @@ public class MultipleTextChangeEvents extends TestBase {
Action actionenter = new ShortcutAction("Enter",
ShortcutAction.KeyCode.ENTER, null);
+ @Override
public Action[] getActions(Object theTarget, Object theSender) {
return new Action[] { actionenter };
}
+ @Override
public void handleAction(Action theAction, Object theSender,
Object theTarget) {
log.log("Enter");
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/OutOfSyncIssueWithKeyboardShortcut.java b/tests/testbench/com/vaadin/tests/components/textfield/OutOfSyncIssueWithKeyboardShortcut.java
index cf59a9d7f4..89f9ffda40 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/OutOfSyncIssueWithKeyboardShortcut.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/OutOfSyncIssueWithKeyboardShortcut.java
@@ -82,6 +82,7 @@ public class OutOfSyncIssueWithKeyboardShortcut extends TestBase {
saveButton.setClickShortcut(KeyCode.ENTER);
table.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Object value = event.getProperty().getValue();
if (value != null) {
@@ -96,6 +97,7 @@ public class OutOfSyncIssueWithKeyboardShortcut extends TestBase {
});
saveButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
form.commit();
Topping entity = getEntityForItem(form.getItemDataSource());
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/SelectionAndCursorPosition.java b/tests/testbench/com/vaadin/tests/components/textfield/SelectionAndCursorPosition.java
index 962a85ffcb..f6368f0c78 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/SelectionAndCursorPosition.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/SelectionAndCursorPosition.java
@@ -28,6 +28,7 @@ public class SelectionAndCursorPosition extends TestBase {
CheckBox ml = new CheckBox("Multiline");
ml.setImmediate(true);
ml.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (textField.getApplication() == null) {
replaceComponent(textArea, textField);
@@ -42,6 +43,7 @@ public class SelectionAndCursorPosition extends TestBase {
Button b = new Button("Select all ( selectAll() )");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
activeComponent.selectAll();
}
@@ -55,6 +57,7 @@ public class SelectionAndCursorPosition extends TestBase {
final TextField length = new TextField("Selection length:");
b = new Button("select");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
int startPos = Integer.parseInt(start.getValue());
int lenght = Integer.parseInt(length.getValue());
@@ -72,6 +75,7 @@ public class SelectionAndCursorPosition extends TestBase {
final TextField pos = new TextField("Position:");
b = new Button("set");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
int startPos = Integer.parseInt(pos.getValue());
activeComponent.setCursorPosition(startPos);
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/SetTabIndex.java b/tests/testbench/com/vaadin/tests/components/textfield/SetTabIndex.java
index d81d26591a..da4ea9de0b 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/SetTabIndex.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/SetTabIndex.java
@@ -28,6 +28,7 @@ public class SetTabIndex extends TestBase {
final CheckBox readonly = new CheckBox("Readonly");
readonly.setImmediate(true);
readonly.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
boolean readonly = Boolean.valueOf(event.getProperty()
.getValue().toString());
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEvents.java b/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEvents.java
index b3ea5b8186..a12a5a8836 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEvents.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEvents.java
@@ -19,6 +19,7 @@ public class TextChangeEvents extends TestBase {
TextChangeListener inputEventListener = new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
l.log("Text change event for "
+ event.getComponent().getCaption()
@@ -91,6 +92,7 @@ public class TextChangeEvents extends TestBase {
+ ".nomatch {background:red;}");
}
+ @Override
public void textChange(TextChangeEvent event) {
boolean atTheEndOfText = event.getText().length() == getCursorPosition();
String match = findMatch(event.getText());
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEvents2.java b/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEvents2.java
index b40ebb2434..363e9d448d 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEvents2.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEvents2.java
@@ -23,12 +23,14 @@ public class TextChangeEvents2 extends TestBase {
getLayout().addComponent(tf);
tf.addListener(new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
System.err.println(tf.getCaption() + " textChange");
}
});
tf.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
System.err.println(tf.getCaption() + " valueChange");
}
@@ -36,12 +38,14 @@ public class TextChangeEvents2 extends TestBase {
tf.addListener(new BlurListener() {
+ @Override
public void blur(BlurEvent event) {
System.err.println(tf.getCaption() + " blur");
}
});
tf.addListener(new FocusListener() {
+ @Override
public void focus(FocusEvent event) {
System.err.println(tf.getCaption() + " focus");
}
@@ -55,12 +59,14 @@ public class TextChangeEvents2 extends TestBase {
final Label l = new Label();
getLayout().addComponent(l);
tf.addListener(new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
l.setValue(event.getText());
}
});
tf.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
System.err.println(tf.getCaption() + " valueChange");
}
@@ -77,12 +83,14 @@ public class TextChangeEvents2 extends TestBase {
getLayout().addComponent(l);
tf.addListener(new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
l.setValue(event.getText());
}
});
tf.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
System.err.println(tf.getCaption() + " valueChange");
}
@@ -98,12 +106,14 @@ public class TextChangeEvents2 extends TestBase {
getLayout().addComponent(l);
tf.addListener(new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
tf.setValue(event.getText().toUpperCase());
}
});
tf.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
System.err.println(tf.getCaption() + " valueChange");
}
@@ -124,6 +134,7 @@ public class TextChangeEvents2 extends TestBase {
tf.addListener(new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
String txt = event.getText();
int len = txt.length();
@@ -149,6 +160,7 @@ public class TextChangeEvents2 extends TestBase {
});
tf.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
TextField tf = (TextField) event.getProperty();
String val = (String) tf.getValue();
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEventsEternalLoop.java b/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEventsEternalLoop.java
index 22348bb5b5..1a49729b6f 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEventsEternalLoop.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEventsEternalLoop.java
@@ -13,6 +13,7 @@ public class TextChangeEventsEternalLoop extends TestBase {
getLayout().addComponent(tf);
tf.addListener(new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
tf.setValue(event.getText());
}
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEventsWithNonImmediateValueChange.java b/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEventsWithNonImmediateValueChange.java
index ab3fd49cd6..ebb8b88411 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEventsWithNonImmediateValueChange.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/TextChangeEventsWithNonImmediateValueChange.java
@@ -18,6 +18,7 @@ public class TextChangeEventsWithNonImmediateValueChange extends TestBase {
TextChangeListener inputEventListener = new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
l.log("Text change event, text content currently:'"
+ event.getText() + "' Cursor at index:"
@@ -31,6 +32,7 @@ public class TextChangeEventsWithNonImmediateValueChange extends TestBase {
tf.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
l.log("Value change: '" + event.getProperty().getValue() + "'");
}
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/TextChangeListenerChangingNonTextProperties.java b/tests/testbench/com/vaadin/tests/components/textfield/TextChangeListenerChangingNonTextProperties.java
index 8a3678ab62..5b84ff20f2 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/TextChangeListenerChangingNonTextProperties.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/TextChangeListenerChangingNonTextProperties.java
@@ -31,6 +31,7 @@ public class TextChangeListenerChangingNonTextProperties extends TestBase {
};
tf2.setTextChangeEventMode(TextChangeEventMode.EAGER);
tf2.addListener(new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
tf2.setStyleName(getNextStyle());
}
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.java b/tests/testbench/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.java
index 2f0c54ee39..00783e0106 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/TextChangeTimeoutAfterDetach.java
@@ -18,6 +18,7 @@ public class TextChangeTimeoutAfterDetach extends TestBase {
field.setTextChangeTimeout(2000);
field.setTextChangeEventMode(TextChangeEventMode.TIMEOUT);
field.addListener(new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
// Need to add a listener for events to occur
}
@@ -26,6 +27,7 @@ public class TextChangeTimeoutAfterDetach extends TestBase {
Button detachBtn = new Button("detach field",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
removeComponent(field);
getLayout().addComponentAsFirst(
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/TextFieldEagerRepaint.java b/tests/testbench/com/vaadin/tests/components/textfield/TextFieldEagerRepaint.java
index 08751a59fd..e103afbe62 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/TextFieldEagerRepaint.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/TextFieldEagerRepaint.java
@@ -14,6 +14,7 @@ public class TextFieldEagerRepaint extends TestBase {
final TextField tf1 = new TextField("Updates value");
tf1.setTextChangeEventMode(TextChangeEventMode.EAGER);
tf1.addListener(new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
String text = event.getText();
if (!text.matches("[a-z]*")) {
@@ -26,6 +27,7 @@ public class TextFieldEagerRepaint extends TestBase {
final TextField tf2 = new TextField("Updates width");
tf2.setTextChangeEventMode(TextChangeEventMode.EAGER);
tf2.addListener(new TextChangeListener() {
+ @Override
public void textChange(TextChangeEvent event) {
String text = event.getText();
if (!text.matches("[a-z]*")) {
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/TextFieldFocusAndBlurListeners.java b/tests/testbench/com/vaadin/tests/components/textfield/TextFieldFocusAndBlurListeners.java
index e2f5c45b72..21dba6a196 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/TextFieldFocusAndBlurListeners.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/TextFieldFocusAndBlurListeners.java
@@ -40,12 +40,14 @@ public class TextFieldFocusAndBlurListeners extends TestBase implements
tf2.setWidth("300px");
tf2.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
TextFieldFocusAndBlurListeners.this.valueChange(event);
}
});
tf2.addListener(new FocusListener() {
+ @Override
public void focus(FocusEvent event) {
TextFieldFocusAndBlurListeners.this.focus(event);
}
@@ -53,6 +55,7 @@ public class TextFieldFocusAndBlurListeners extends TestBase implements
});
tf2.addListener(new BlurListener() {
+ @Override
public void blur(BlurEvent event) {
TextFieldFocusAndBlurListeners.this.blur(event);
}
@@ -76,11 +79,13 @@ public class TextFieldFocusAndBlurListeners extends TestBase implements
addComponent(tf4);
}
+ @Override
public void focus(FocusEvent event) {
log.log(event.getComponent().getCaption() + ": Focus");
}
+ @Override
public void blur(BlurEvent event) {
TextField tf = (TextField) event.getComponent();
log.log(tf.getCaption() + ": Blur. Value is: "
@@ -88,6 +93,7 @@ public class TextFieldFocusAndBlurListeners extends TestBase implements
}
+ @Override
public void valueChange(ValueChangeEvent event) {
TextField tf = (TextField) event.getProperty();
log.log(tf.getCaption() + ": ValueChange: " + tf.getValue().toString());
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/TextFieldInputPromptAndClickShortcut.java b/tests/testbench/com/vaadin/tests/components/textfield/TextFieldInputPromptAndClickShortcut.java
index c04c9d6c13..d52efa0572 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/TextFieldInputPromptAndClickShortcut.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/TextFieldInputPromptAndClickShortcut.java
@@ -19,6 +19,7 @@ public class TextFieldInputPromptAndClickShortcut extends TestBase {
final TextField textField = new TextField();
Button button = new Button("Show Text", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log("Field value: " + textField.getValue());
}
@@ -28,6 +29,7 @@ public class TextFieldInputPromptAndClickShortcut extends TestBase {
final CheckBox inputPromptSelection = new CheckBox("Input prompt");
inputPromptSelection.setImmediate(true);
inputPromptSelection.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (event.getProperty().getValue() == Boolean.TRUE) {
textField.setInputPrompt("Input prompt");
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/TextFieldWithProperty.java b/tests/testbench/com/vaadin/tests/components/textfield/TextFieldWithProperty.java
index b753978666..747301f4e4 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/TextFieldWithProperty.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/TextFieldWithProperty.java
@@ -24,6 +24,7 @@ public class TextFieldWithProperty extends TestBase {
Button b = new Button(
"Set BAR to underlaying property (should propagate to UI)");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
op.setValue("BAR");
}
diff --git a/tests/testbench/com/vaadin/tests/components/textfield/TextFieldWithPropertyFormatter.java b/tests/testbench/com/vaadin/tests/components/textfield/TextFieldWithPropertyFormatter.java
index ea4b572604..4184892545 100644
--- a/tests/testbench/com/vaadin/tests/components/textfield/TextFieldWithPropertyFormatter.java
+++ b/tests/testbench/com/vaadin/tests/components/textfield/TextFieldWithPropertyFormatter.java
@@ -28,10 +28,12 @@ public class TextFieldWithPropertyFormatter extends TestBase {
property = new Property<BigDecimal>() {
private BigDecimal value;
+ @Override
public BigDecimal getValue() {
return value;
}
+ @Override
public void setValue(Object newValue) throws ReadOnlyException {
if (newValue == null) {
value = null;
@@ -43,14 +45,17 @@ public class TextFieldWithPropertyFormatter extends TestBase {
}
}
+ @Override
public Class<BigDecimal> getType() {
return BigDecimal.class;
}
+ @Override
public boolean isReadOnly() {
return false;
}
+ @Override
public void setReadOnly(boolean newStatus) {
// ignore
}
@@ -98,12 +103,14 @@ public class TextFieldWithPropertyFormatter extends TestBase {
Button b = new Button(
"Sync (typing 12345.6789 and clicking this should format field)");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
}
});
addComponent(b);
b = new Button("Set '12345.6789' to textfield on the server side");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tf1.setValue("12345.6789");
}
diff --git a/tests/testbench/com/vaadin/tests/components/tree/CtrlShiftMultiselect.java b/tests/testbench/com/vaadin/tests/components/tree/CtrlShiftMultiselect.java
index 69956e4d2c..03645557f2 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/CtrlShiftMultiselect.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/CtrlShiftMultiselect.java
@@ -30,6 +30,7 @@ public class CtrlShiftMultiselect extends TestBase {
tree.expandItemsRecursively("Item 4");
tree.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (tree.getValue() instanceof Set) {
@SuppressWarnings("unchecked")
diff --git a/tests/testbench/com/vaadin/tests/components/tree/ExpandCollapseTree.java b/tests/testbench/com/vaadin/tests/components/tree/ExpandCollapseTree.java
index e23213fafc..d5c3654b4e 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/ExpandCollapseTree.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/ExpandCollapseTree.java
@@ -30,6 +30,7 @@ public class ExpandCollapseTree extends TestBase {
tree.expandItemsRecursively("Item 4");
tree.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (tree.getValue() instanceof Set) {
@SuppressWarnings("unchecked")
diff --git a/tests/testbench/com/vaadin/tests/components/tree/ItemStyleGenerator.java b/tests/testbench/com/vaadin/tests/components/tree/ItemStyleGenerator.java
index f2ca2a85bd..33bd4cef65 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/ItemStyleGenerator.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/ItemStyleGenerator.java
@@ -32,6 +32,7 @@ public class ItemStyleGenerator extends TestBase {
Tree tree = new Tree();
tree.setItemStyleGenerator(new Tree.ItemStyleGenerator() {
+ @Override
public String getStyle(Object itemId) {
// simple return itemId as css style name
return itemId.toString();
diff --git a/tests/testbench/com/vaadin/tests/components/tree/TreeConnectors.java b/tests/testbench/com/vaadin/tests/components/tree/TreeConnectors.java
index b37d371b17..4072610996 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/TreeConnectors.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/TreeConnectors.java
@@ -27,6 +27,7 @@ public class TreeConnectors extends TestBase {
cb.setImmediate(true);
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if ((Boolean) event.getProperty().getValue()) {
tree.addStyleName(BaseTheme.TREE_CONNECTORS);
@@ -50,11 +51,13 @@ public class TreeConnectors extends TestBase {
tree.setDragMode(TreeDragMode.NODE);
tree.setDropHandler(new DropHandler() {
+ @Override
public void drop(DragAndDropEvent event) {
// TODO Auto-generated method stub
}
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptAll.get();
}
diff --git a/tests/testbench/com/vaadin/tests/components/tree/TreeContainerChange.java b/tests/testbench/com/vaadin/tests/components/tree/TreeContainerChange.java
index df2682a14c..f4374ca2ee 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/TreeContainerChange.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/TreeContainerChange.java
@@ -57,6 +57,7 @@ public class TreeContainerChange extends TestBase {
Button b = new Button("Use ds1");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tree.setContainerDataSource(ds1);
currentDS.setValue("ds1");
@@ -72,6 +73,7 @@ public class TreeContainerChange extends TestBase {
b = new Button("Use ds2");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tree.setContainerDataSource(ds2);
currentDS.setValue("ds2");
@@ -82,6 +84,7 @@ public class TreeContainerChange extends TestBase {
addComponent(hl);
tree.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
currentValue.setValue(event.getProperty().getValue());
}
diff --git a/tests/testbench/com/vaadin/tests/components/tree/TreeDragAndDropFromTable.java b/tests/testbench/com/vaadin/tests/components/tree/TreeDragAndDropFromTable.java
index dca2d96628..7aa3933752 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/TreeDragAndDropFromTable.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/TreeDragAndDropFromTable.java
@@ -38,10 +38,12 @@ public class TreeDragAndDropFromTable extends TestBase {
final Tree tree = new Tree();
tree.setDropHandler(new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return TargetItemAllowsChildren.get();
}
+ @Override
public void drop(DragAndDropEvent dropEvent) {
// criteria verify that this is safe
DataBoundTransferable t = (DataBoundTransferable) dropEvent
diff --git a/tests/testbench/com/vaadin/tests/components/tree/TreeFiltering.java b/tests/testbench/com/vaadin/tests/components/tree/TreeFiltering.java
index 20d1eacb97..bd7984cdeb 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/TreeFiltering.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/TreeFiltering.java
@@ -47,6 +47,7 @@ public class TreeFiltering extends TestBase {
filterType.setImmediate(true);
filterType.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
cont.setIncludeParentsWhenFiltering((Boolean) ((CheckBox) event
.getProperty()).getValue());
@@ -56,6 +57,7 @@ public class TreeFiltering extends TestBase {
addComponent(filterType);
final Button b = new Button("Add filter 'foo'", new ClickListener() {
+ @Override
public void buttonClick(final ClickEvent event) {
cont.addContainerFilter("caption", "foo", true, false);
@@ -63,6 +65,7 @@ public class TreeFiltering extends TestBase {
});
addComponent(b);
final Button b2 = new Button("Add filter 'Num'", new ClickListener() {
+ @Override
public void buttonClick(final ClickEvent event) {
cont.addContainerFilter("caption", "Num", true, false);
@@ -71,6 +74,7 @@ public class TreeFiltering extends TestBase {
addComponent(b2);
final Button num = new Button("Add filter '0'", new ClickListener() {
+ @Override
public void buttonClick(final ClickEvent event) {
cont.addContainerFilter("caption", "0", true, false);
@@ -79,6 +83,7 @@ public class TreeFiltering extends TestBase {
addComponent(num);
final Button num2 = new Button("Add filter '0-'", new ClickListener() {
+ @Override
public void buttonClick(final ClickEvent event) {
cont.addContainerFilter("caption", "0-", true, false);
@@ -88,6 +93,7 @@ public class TreeFiltering extends TestBase {
addComponent(num2);
final Button num3 = new Button("Add filter 'Number 4'",
new ClickListener() {
+ @Override
public void buttonClick(final ClickEvent event) {
cont.addContainerFilter("caption", "Number 4", true,
false);
@@ -98,6 +104,7 @@ public class TreeFiltering extends TestBase {
addComponent(num3);
final Button p1 = new Button("Set Number 3 parent to Number 0",
new ClickListener() {
+ @Override
public void buttonClick(final ClickEvent event) {
cont.setParent(3, 0);
@@ -105,6 +112,7 @@ public class TreeFiltering extends TestBase {
});
addComponent(p1);
final Button r = new Button("Remove filters", new ClickListener() {
+ @Override
public void buttonClick(final ClickEvent event) {
cont.removeAllContainerFilters();
diff --git a/tests/testbench/com/vaadin/tests/components/tree/TreeFocusGaining.java b/tests/testbench/com/vaadin/tests/components/tree/TreeFocusGaining.java
index 87170214ca..dd407fd62a 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/TreeFocusGaining.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/TreeFocusGaining.java
@@ -20,6 +20,7 @@ public class TreeFocusGaining extends TestBase {
addComponent(textField);
textField.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
log.log("TF value now:" + event.getProperty().getValue());
}
@@ -30,6 +31,7 @@ public class TreeFocusGaining extends TestBase {
addComponent(tree);
tree.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
log.log("Tree value now:" + event.getProperty().getValue());
}
@@ -39,6 +41,7 @@ public class TreeFocusGaining extends TestBase {
tree = new Tree("Simple tree with itemm click listener");
tree.addItem("Item1");
tree.addListener(new ItemClickEvent.ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
log.log("Item click event");
}
diff --git a/tests/testbench/com/vaadin/tests/components/tree/TreeItemClickListening.java b/tests/testbench/com/vaadin/tests/components/tree/TreeItemClickListening.java
index e772be7cde..182bc97c44 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/TreeItemClickListening.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/TreeItemClickListening.java
@@ -28,6 +28,7 @@ public class TreeItemClickListening extends TestBase {
tree.setItemCaptionPropertyId("caption");
tree.addListener(new ItemClickEvent.ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
clickCounter++;
switch (event.getButton()) {
diff --git a/tests/testbench/com/vaadin/tests/components/tree/TreeScrollingOnSelection.java b/tests/testbench/com/vaadin/tests/components/tree/TreeScrollingOnSelection.java
index a6079160ab..b3ab5c2b01 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/TreeScrollingOnSelection.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/TreeScrollingOnSelection.java
@@ -29,6 +29,7 @@ public class TreeScrollingOnSelection extends TestBase {
private static final long serialVersionUID = 5955518276555388126L;
+ @Override
public void itemClick(ItemClickEvent event) {
charLabel.setValue(event.getItemId().toString());
}
diff --git a/tests/testbench/com/vaadin/tests/components/tree/TreeToolTips.java b/tests/testbench/com/vaadin/tests/components/tree/TreeToolTips.java
index c6e29bc3b8..4b892c2150 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/TreeToolTips.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/TreeToolTips.java
@@ -13,6 +13,7 @@ public class TreeToolTips extends TestBase {
protected void setup() {
final Tree tree = new Tree(null, createContainer());
tree.setItemDescriptionGenerator(new AbstractSelect.ItemDescriptionGenerator() {
+ @Override
public String generateDescription(Component source, Object itemId,
Object propertyId) {
return "This is a tooltip for item id '" + itemId + "'";
diff --git a/tests/testbench/com/vaadin/tests/components/tree/TreeWithPreselectedItemNotShown.java b/tests/testbench/com/vaadin/tests/components/tree/TreeWithPreselectedItemNotShown.java
index 92c82a6ccf..8da6759b20 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/TreeWithPreselectedItemNotShown.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/TreeWithPreselectedItemNotShown.java
@@ -11,6 +11,7 @@ public class TreeWithPreselectedItemNotShown extends TestBase {
protected void setup() {
Button open = new Button("Open modal window with tree",
new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
getMainWindow().addWindow(new SubwindowWithTree());
}
diff --git a/tests/testbench/com/vaadin/tests/components/tree/Trees.java b/tests/testbench/com/vaadin/tests/components/tree/Trees.java
index 79de4de412..3ee1d7b0de 100644
--- a/tests/testbench/com/vaadin/tests/components/tree/Trees.java
+++ b/tests/testbench/com/vaadin/tests/components/tree/Trees.java
@@ -26,6 +26,7 @@ public class Trees extends AbstractSelectTestCase<Tree> implements
private ItemStyleGenerator rootGreenSecondLevelRed = new com.vaadin.ui.Tree.ItemStyleGenerator() {
+ @Override
public String getStyle(Object itemId) {
Hierarchical c = (Container.Hierarchical) getComponent()
.getContainerDataSource();
@@ -50,6 +51,7 @@ public class Trees extends AbstractSelectTestCase<Tree> implements
private ItemStyleGenerator evenItemsBold = new com.vaadin.ui.Tree.ItemStyleGenerator() {
+ @Override
public String getStyle(Object itemId) {
Hierarchical c = (Container.Hierarchical) getComponent()
.getContainerDataSource();
@@ -80,17 +82,20 @@ public class Trees extends AbstractSelectTestCase<Tree> implements
private Command<Tree, ContextMenu> contextMenuCommand = new Command<Tree, ContextMenu>() {
+ @Override
public void execute(Tree c, final ContextMenu value, Object data) {
c.removeAllActionHandlers();
if (value != null) {
c.addActionHandler(new Handler() {
+ @Override
public void handleAction(Action action, Object sender,
Object target) {
log("Action " + action.getCaption() + " performed on "
+ target);
}
+ @Override
public Action[] getActions(Object target, Object sender) {
return value.getActions(target, sender);
}
@@ -176,6 +181,7 @@ public class Trees extends AbstractSelectTestCase<Tree> implements
createSelectAction("Selection Mode", category, options,
"Multi - ctrl/shift", new Command<Tree, SelectMode>() {
+ @Override
public void execute(Tree t, SelectMode value, Object data) {
switch (value) {
case NONE:
@@ -318,6 +324,7 @@ public class Trees extends AbstractSelectTestCase<Tree> implements
*/
private Command<Tree, Integer> rootItemIdsCommand = new Command<Tree, Integer>() {
+ @Override
public void execute(Tree c, Integer value, Object data) {
rootItemIds = value;
updateContainer();
@@ -326,12 +333,14 @@ public class Trees extends AbstractSelectTestCase<Tree> implements
private Command<Tree, Object> expandItemCommand = new Command<Tree, Object>() {
+ @Override
public void execute(Tree c, Object itemId, Object data) {
c.expandItem(itemId);
}
};
private Command<Tree, Object> expandItemRecursivelyCommand = new Command<Tree, Object>() {
+ @Override
public void execute(Tree c, Object itemId, Object data) {
c.expandItemsRecursively(itemId);
}
@@ -339,6 +348,7 @@ public class Trees extends AbstractSelectTestCase<Tree> implements
private Command<Tree, Object> collapseItemCommand = new Command<Tree, Object>() {
+ @Override
public void execute(Tree c, Object itemId, Object data) {
c.collapseItem(itemId);
}
@@ -346,12 +356,14 @@ public class Trees extends AbstractSelectTestCase<Tree> implements
private Command<Tree, Boolean> setChildrenAllowedCommand = new Command<Tree, Boolean>() {
+ @Override
public void execute(Tree c, Boolean areChildrenAllowed, Object itemId) {
c.setChildrenAllowed(itemId, areChildrenAllowed);
}
};
private Command<Tree, Boolean> expandListenerCommand = new Command<Tree, Boolean>() {
+ @Override
public void execute(Tree c, Boolean value, Object data) {
if (value) {
c.addListener((ExpandListener) Trees.this);
@@ -362,6 +374,7 @@ public class Trees extends AbstractSelectTestCase<Tree> implements
};
private Command<Tree, Boolean> collapseListenerCommand = new Command<Tree, Boolean>() {
+ @Override
public void execute(Tree c, Boolean value, Object data) {
if (value) {
c.addListener((CollapseListener) Trees.this);
@@ -373,6 +386,7 @@ public class Trees extends AbstractSelectTestCase<Tree> implements
private Command<Tree, com.vaadin.ui.Tree.ItemStyleGenerator> itemStyleGeneratorCommand = new Command<Tree, com.vaadin.ui.Tree.ItemStyleGenerator>() {
+ @Override
public void execute(Tree c,
com.vaadin.ui.Tree.ItemStyleGenerator value, Object data) {
c.setItemStyleGenerator(value);
@@ -380,10 +394,12 @@ public class Trees extends AbstractSelectTestCase<Tree> implements
}
};
+ @Override
public void nodeCollapse(CollapseEvent event) {
log(event.getClass().getSimpleName() + ": " + event.getItemId());
}
+ @Override
public void nodeExpand(ExpandEvent event) {
log(event.getClass().getSimpleName() + ": " + event.getItemId());
}
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/AddNodesOnExpand.java b/tests/testbench/com/vaadin/tests/components/treetable/AddNodesOnExpand.java
index 5bf0370bab..f6b32aa4a9 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/AddNodesOnExpand.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/AddNodesOnExpand.java
@@ -18,11 +18,13 @@ public class AddNodesOnExpand extends TestBase {
treetable.setPageLength(0);
treetable.addContainerProperty("foo", String.class, "");
treetable.addListener(new Tree.ExpandListener() {
+ @Override
public void nodeExpand(ExpandEvent event) {
Object openedItemId = event.getItemId();
if (!treetable.hasChildren(openedItemId)) {
for (int j = 0; j < 3; j++) {
- treetable.addItem(openedItemId + "-" + j);
+ treetable.addItem(new String[] { "Subitem " + j },
+ openedItemId + "-" + j);
treetable.setParent(openedItemId + "-" + j,
openedItemId);
}
@@ -30,6 +32,7 @@ public class AddNodesOnExpand extends TestBase {
}
});
treetable.addListener(new Tree.CollapseListener() {
+ @Override
public void nodeCollapse(CollapseEvent event) {
/* Uncomment this to "fix" the TreeTable */
// orgTree.refreshRowCache();
@@ -37,7 +40,7 @@ public class AddNodesOnExpand extends TestBase {
});
for (int i = 0; i < 3; i++) {
- treetable.addItem(Integer.valueOf(i));
+ treetable.addItem(new String[] { "Item " + i }, Integer.valueOf(i));
}
addComponent(treetable);
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/ChangeDataSourcePageLengthZero.java b/tests/testbench/com/vaadin/tests/components/treetable/ChangeDataSourcePageLengthZero.java
index 9cb60efd74..0fe8a3d1b9 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/ChangeDataSourcePageLengthZero.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/ChangeDataSourcePageLengthZero.java
@@ -21,12 +21,14 @@ public class ChangeDataSourcePageLengthZero extends TestBase {
addComponent(tt);
Button page1 = new Button("Set new data source (20 items)");
page1.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
setupContainer(tt, 20);
}
});
Button page2 = new Button("Set new data source (10 items)");
page2.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
setupContainer(tt, 10);
}
@@ -35,6 +37,7 @@ public class ChangeDataSourcePageLengthZero extends TestBase {
addButton.addListener(new Button.ClickListener() {
private int i = 1;
+ @Override
public void buttonClick(ClickEvent event) {
HierarchicalContainer container = (HierarchicalContainer) tt
.getContainerDataSource();
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.html b/tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.html
new file mode 100644
index 0000000000..05c5986e6b
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.html
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>ComponentsInTreeTable</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">ComponentsInTreeTable</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.treetable.ComponentsInTreeTable?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableComponentsInTreeTable::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>15,7</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.java b/tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.java
index 5b7700bc6e..8ff80204cc 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.java
@@ -7,6 +7,7 @@ import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Layout;
import com.vaadin.ui.TreeTable;
+import com.vaadin.ui.VerticalLayout;
public class ComponentsInTreeTable extends TestBase {
@@ -14,28 +15,28 @@ public class ComponentsInTreeTable extends TestBase {
protected void setup() {
TreeTable tt = new TreeTable();
tt.setWidth("300px");
+ tt.setHeight("300px");
addComponent(tt);
- Object id, id2;
+ tt.addContainerProperty("component", Component.class, "");
+ tt.addContainerProperty("type", String.class, "bar");
- tt.addContainerProperty("foo", Component.class, "");
- tt.addContainerProperty("bar", String.class, "bar");
- tt.addContainerProperty("baz", String.class, "baz");
-
- id = tt.addItem();
Layout l = new HorizontalLayout();
l.addComponent(new Label("bar"));
l.addComponent(new Label("bar"));
- tt.getContainerProperty(id, "foo").setValue(l);
+ tt.addItem(new Object[] { l, "HorizontalLayout" }, 1);
+
+ l = new VerticalLayout();
+ l.addComponent(new Label("baz"));
+ l.addComponent(new Label("baz"));
+ tt.addItem(new Object[] { l, "VerticalLayout" }, 2);
- id = tt.addItem();
Label lbl = new Label("<b>foo</b><br/><i>bar</i>");
lbl.setContentMode(Label.CONTENT_XHTML);
- tt.getContainerProperty(id, "foo").setValue(lbl);
+ tt.addItem(new Object[] { lbl, "Label" }, 3);
- id2 = tt.addItem();
- tt.setParent(id2, id);
- tt.getContainerProperty(id2, "foo").setValue(new Button("Test"));
+ tt.addItem(new Object[] { new Button("Test"), "Button" }, 4);
+ tt.setParent(4, 3);
}
@Override
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/DynamicallyModified.java b/tests/testbench/com/vaadin/tests/components/treetable/DynamicallyModified.java
index 89211dbecc..6dc5417d28 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/DynamicallyModified.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/DynamicallyModified.java
@@ -87,6 +87,7 @@ public class DynamicallyModified extends TestBase implements
private int newChild = 1;
+ @Override
public void nodeExpand(ExpandEvent event) {
Object expandedItemId = event.getItemId();
// 7 == "Customer Project 1"
@@ -100,6 +101,7 @@ public class DynamicallyModified extends TestBase implements
treetable.setChildrenAllowed(newChildId, false);
}
+ @Override
public void nodeCollapse(CollapseEvent event) {
Object collapsedItemId = event.getItemId();
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/KeepAllItemsVisible.java b/tests/testbench/com/vaadin/tests/components/treetable/KeepAllItemsVisible.java
index ad0255a2da..799537f923 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/KeepAllItemsVisible.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/KeepAllItemsVisible.java
@@ -37,6 +37,7 @@ public class KeepAllItemsVisible extends TestBase implements ExpandListener,
tt.addListener((CollapseListener) this);
tt.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
recalculatePageLength(tt);
tt.requestRepaint();
@@ -49,6 +50,7 @@ public class KeepAllItemsVisible extends TestBase implements ExpandListener,
Button b = new Button("Set pagelength to 10",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tt.setPageLength(10);
}
@@ -56,6 +58,7 @@ public class KeepAllItemsVisible extends TestBase implements ExpandListener,
addComponent(b);
b = new Button("Set pagelength to 20", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tt.setPageLength(20);
}
@@ -63,6 +66,7 @@ public class KeepAllItemsVisible extends TestBase implements ExpandListener,
addComponent(b);
b = new Button("Set pagelength to 0", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tt.setPageLength(0);
}
@@ -121,11 +125,13 @@ public class KeepAllItemsVisible extends TestBase implements ExpandListener,
return 7292;
}
+ @Override
public void nodeCollapse(CollapseEvent event) {
recalculatePageLength((TreeTable) event.getSource());
}
+ @Override
public void nodeExpand(ExpandEvent event) {
recalculatePageLength((TreeTable) event.getSource());
}
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticCollapse.java b/tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticCollapse.java
index 447ce6c465..ea76a9639a 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticCollapse.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticCollapse.java
@@ -30,6 +30,7 @@ public class ProgrammaticCollapse extends TestBase {
layout.addComponent(table);
layout.addComponent(new Button("Expand / Collapse",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
boolean collapsed = !table.isCollapsed(1);
Notification.show("set collapsed: " + collapsed);
@@ -38,6 +39,7 @@ public class ProgrammaticCollapse extends TestBase {
}));
layout.addComponent(new Button("Expand / Collapse last",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
boolean collapsed = !table.isCollapsed(100);
Notification.show("set collapsed: " + collapsed);
@@ -48,6 +50,7 @@ public class ProgrammaticCollapse extends TestBase {
new ClickListener() {
private boolean collapsed = true;
+ @Override
public void buttonClick(ClickEvent event) {
collapsed = !collapsed;
Notification.show("set collapsed: " + collapsed);
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticSelect.java b/tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticSelect.java
index fc68d0be15..7088497b4e 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticSelect.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticSelect.java
@@ -23,6 +23,7 @@ public class ProgrammaticSelect extends TestBase {
Button selectItem = new Button("Select first row",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Object id = tt.getItemIds().iterator().next();
tt.select(id);
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/RemoveAllItemsRefresh.java b/tests/testbench/com/vaadin/tests/components/treetable/RemoveAllItemsRefresh.java
index 69198ca006..a92a9e045e 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/RemoveAllItemsRefresh.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/RemoveAllItemsRefresh.java
@@ -39,6 +39,7 @@ public class RemoveAllItemsRefresh extends TestBase {
Button cleanUp = new Button("clear");
cleanUp.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
treeContainer.removeAllItems();
}
@@ -47,6 +48,7 @@ public class RemoveAllItemsRefresh extends TestBase {
Button refresh = new Button("fill");
refresh.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
fill();
}
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdates.java b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdates.java
index ae6a9d0c0b..c2bd3da860 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdates.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdates.java
@@ -68,6 +68,7 @@ public class TreeTableCacheOnPartialUpdates extends TestBase {
}
public class Col3ColumnGenerator implements ColumnGenerator {
+ @Override
public Component generateCell(final com.vaadin.ui.Table source,
final Object itemId, Object columnId) {
TestBean tb = (TestBean) itemId;
@@ -78,6 +79,7 @@ public class TreeTableCacheOnPartialUpdates extends TestBase {
System.out.println("Generating new Button for " + identifier);
Button btnCol3 = new NativeButton(identifier);
btnCol3.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log("Button " + event.getButton().getCaption()
+ " clicked. Row index: "
@@ -117,6 +119,7 @@ public class TreeTableCacheOnPartialUpdates extends TestBase {
addComponent(b);
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log("First visible item id is: "
+ treeTable.getCurrentPageFirstItemId());
@@ -131,6 +134,7 @@ public class TreeTableCacheOnPartialUpdates extends TestBase {
cacheRateSelect.setValue(2);
cacheRateSelect.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
treeTable
.setCacheRate((Integer) event.getProperty().getValue());
@@ -154,6 +158,7 @@ public class TreeTableCacheOnPartialUpdates extends TestBase {
treeTable.addGeneratedColumn("col3", new Col3ColumnGenerator());
treeTable.addListener(new ExpandListener() {
+ @Override
public void nodeExpand(ExpandEvent event) {
logExpandCollapse(event.getItemId(), "expanded");
@@ -161,6 +166,7 @@ public class TreeTableCacheOnPartialUpdates extends TestBase {
});
treeTable.addListener(new CollapseListener() {
+ @Override
public void nodeCollapse(CollapseEvent event) {
logExpandCollapse(event.getItemId(), "collapsed");
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableModifyAndSetCollapsed.java b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableModifyAndSetCollapsed.java
index 336ffb5a52..02ce397a05 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableModifyAndSetCollapsed.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableModifyAndSetCollapsed.java
@@ -26,6 +26,7 @@ public class TreeTableModifyAndSetCollapsed extends TestBase {
addComponent(tt);
Button repopulate = new Button("Repopulate", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
// repopulate the container and expand root item
container.removeAllItems();
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableNegativeArraySize.html b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableNegativeArraySize.html
index 2e69052162..b57c5f978e 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableNegativeArraySize.html
+++ b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableNegativeArraySize.html
@@ -40,6 +40,11 @@
</tr>
<!--collapse root2-->
<tr>
+ <td>pause</td>
+ <td>1000</td>
+ <td></td>
+</tr>
+<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentstreetableTreeTablePartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[42]/domChild[0]/domChild[0]/domChild[0]</td>
<td>11,-182</td>
@@ -49,7 +54,6 @@
<td></td>
<td>root1-expanded-scrolled-to-end</td>
</tr>
-
</tbody></table>
</body>
</html>
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableOutOfSync.java b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableOutOfSync.java
index 0c1fcdbfd8..e688e039eb 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableOutOfSync.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableOutOfSync.java
@@ -16,6 +16,7 @@ public class TreeTableOutOfSync extends TestBase {
TreeTable tt = new TreeTable();
tt.addContainerProperty("i", Integer.class, null);
tt.addGeneratedColumn("text", new Table.ColumnGenerator() {
+ @Override
public Object generateCell(Table source, Object itemId,
Object columnId) {
if ("text".equals(columnId)) {
@@ -23,6 +24,7 @@ public class TreeTableOutOfSync extends TestBase {
+ source.getContainerDataSource().getItem(itemId)
.getItemProperty("i").getValue());
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().showNotification("click");
}
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableSetCollapsed.java b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableSetCollapsed.java
index 2a14c946f3..7159addb5b 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableSetCollapsed.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableSetCollapsed.java
@@ -12,6 +12,7 @@ public class TreeTableSetCollapsed extends TestBase {
createTreeTableAndPopulate();
addComponent(new Button("Create another TreeTable",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
createTreeTableAndPopulate();
}
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableTest.java b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableTest.java
index d7d9c18d7e..f27a47f12b 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableTest.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableTest.java
@@ -27,6 +27,7 @@ public class TreeTableTest extends Tables<TreeTable> implements
private int rootItemIds = 3;
private CellStyleGenerator rootGreenSecondLevelRed = new com.vaadin.ui.Table.CellStyleGenerator() {
+ @Override
public String getStyle(Object itemId, Object propertyId) {
if (propertyId != null) {
return null;
@@ -54,6 +55,7 @@ public class TreeTableTest extends Tables<TreeTable> implements
private CellStyleGenerator evenItemsBold = new CellStyleGenerator() {
+ @Override
public String getStyle(Object itemId, Object propertyId) {
if (propertyId != null) {
return null;
@@ -235,6 +237,7 @@ public class TreeTableTest extends Tables<TreeTable> implements
*/
private Command<TreeTable, Integer> rootItemIdsCommand = new Command<TreeTable, Integer>() {
+ @Override
public void execute(TreeTable c, Integer value, Object data) {
rootItemIds = value;
updateContainer();
@@ -243,6 +246,7 @@ public class TreeTableTest extends Tables<TreeTable> implements
private Command<TreeTable, Object> expandItemCommand = new Command<TreeTable, Object>() {
+ @Override
public void execute(TreeTable c, Object itemId, Object data) {
c.setCollapsed(itemId, false);
}
@@ -250,6 +254,7 @@ public class TreeTableTest extends Tables<TreeTable> implements
private Command<TreeTable, Object> collapseItemCommand = new Command<TreeTable, Object>() {
+ @Override
public void execute(TreeTable c, Object itemId, Object data) {
c.setCollapsed(itemId, true);
}
@@ -257,6 +262,7 @@ public class TreeTableTest extends Tables<TreeTable> implements
private Command<TreeTable, Boolean> setChildrenAllowedCommand = new Command<TreeTable, Boolean>() {
+ @Override
public void execute(TreeTable c, Boolean areChildrenAllowed,
Object itemId) {
c.setChildrenAllowed(itemId, areChildrenAllowed);
@@ -264,6 +270,7 @@ public class TreeTableTest extends Tables<TreeTable> implements
};
private Command<TreeTable, Boolean> expandListenerCommand = new Command<TreeTable, Boolean>() {
+ @Override
public void execute(TreeTable c, Boolean value, Object data) {
if (value) {
c.addListener((ExpandListener) TreeTableTest.this);
@@ -274,6 +281,7 @@ public class TreeTableTest extends Tables<TreeTable> implements
};
private Command<TreeTable, Boolean> collapseListenerCommand = new Command<TreeTable, Boolean>() {
+ @Override
public void execute(TreeTable c, Boolean value, Object data) {
if (value) {
c.addListener((CollapseListener) TreeTableTest.this);
@@ -285,15 +293,18 @@ public class TreeTableTest extends Tables<TreeTable> implements
protected Command<TreeTable, Boolean> animationCommand = new Command<TreeTable, Boolean>() {
+ @Override
public void execute(TreeTable c, Boolean enabled, Object data) {
c.setAnimationsEnabled(enabled);
}
};
+ @Override
public void nodeCollapse(CollapseEvent event) {
log(event.getClass().getSimpleName() + ": " + event.getItemId());
}
+ @Override
public void nodeExpand(ExpandEvent event) {
log(event.getClass().getSimpleName() + ": " + event.getItemId());
}
diff --git a/tests/testbench/com/vaadin/tests/components/twincolselect/TwinColSelects.java b/tests/testbench/com/vaadin/tests/components/twincolselect/TwinColSelects.java
index ddb418dab3..fc1b11bb94 100644
--- a/tests/testbench/com/vaadin/tests/components/twincolselect/TwinColSelects.java
+++ b/tests/testbench/com/vaadin/tests/components/twincolselect/TwinColSelects.java
@@ -51,12 +51,14 @@ public class TwinColSelects extends AbstractSelectTestCase<TwinColSelect> {
private Command<TwinColSelect, Integer> columnsAction = new Command<TwinColSelect, Integer>() {
+ @Override
public void execute(TwinColSelect c, Integer value, Object data) {
c.setColumns(value);
}
};
private Command<TwinColSelect, Integer> rowsAction = new Command<TwinColSelect, Integer>() {
+ @Override
public void execute(TwinColSelect c, Integer value, Object data) {
c.setRows(value);
}
diff --git a/tests/testbench/com/vaadin/tests/components/upload/ForceSubmit.java b/tests/testbench/com/vaadin/tests/components/upload/ForceSubmit.java
index 84e266dea2..47aad46348 100644
--- a/tests/testbench/com/vaadin/tests/components/upload/ForceSubmit.java
+++ b/tests/testbench/com/vaadin/tests/components/upload/ForceSubmit.java
@@ -21,6 +21,7 @@ public class ForceSubmit extends TestBase implements Receiver {
return 6630;
}
+ @Override
public OutputStream receiveUpload(String filename, String MIMEType) {
return new ByteArrayOutputStream();
}
@@ -40,6 +41,7 @@ public class ForceSubmit extends TestBase implements Receiver {
addComponent(u);
u.addListener(new Upload.FinishedListener() {
+ @Override
public void uploadFinished(FinishedEvent event) {
String filename = event.getFilename();
long length = event.getLength();
@@ -49,12 +51,14 @@ public class ForceSubmit extends TestBase implements Receiver {
});
u.addListener(new Upload.FailedListener() {
+ @Override
public void uploadFailed(FailedEvent event) {
getMainWindow().showNotification("Failed. No file selected?");
}
});
u.addListener(new Upload.StartedListener() {
+ @Override
public void uploadStarted(StartedEvent event) {
getMainWindow().showNotification(
"Started upload. TF value :" + textField.getValue());
@@ -64,6 +68,7 @@ public class ForceSubmit extends TestBase implements Receiver {
Button button = new Button(
"I'm an external button (not the uploads builtin), hit me to start upload.");
button.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
u.submitUpload();
}
diff --git a/tests/testbench/com/vaadin/tests/components/upload/TestFileUpload.java b/tests/testbench/com/vaadin/tests/components/upload/TestFileUpload.java
index 4f1e8358f4..529a977ede 100644
--- a/tests/testbench/com/vaadin/tests/components/upload/TestFileUpload.java
+++ b/tests/testbench/com/vaadin/tests/components/upload/TestFileUpload.java
@@ -21,6 +21,7 @@ public class TestFileUpload extends TestBase implements Receiver {
protected void setup() {
Upload u = new Upload("Upload", new Upload.Receiver() {
+ @Override
public OutputStream receiveUpload(String filename, String mimeType) {
return baos;
}
@@ -28,6 +29,7 @@ public class TestFileUpload extends TestBase implements Receiver {
u.setDebugId("UPL");
u.addListener(new Upload.FinishedListener() {
+ @Override
public void uploadFinished(FinishedEvent event) {
String hash = DigestUtils.md5Hex(baos.toByteArray());
log.log("Upload finished. Name: " + event.getFilename()
@@ -40,6 +42,7 @@ public class TestFileUpload extends TestBase implements Receiver {
addComponent(u);
}
+ @Override
public OutputStream receiveUpload(String filename, String MIMEType) {
getMainWindow().showNotification("Receiving upload");
return new ByteArrayOutputStream();
diff --git a/tests/testbench/com/vaadin/tests/components/upload/TestImmediateUploadInFormLayout.java b/tests/testbench/com/vaadin/tests/components/upload/TestImmediateUploadInFormLayout.java
index b6126f41da..7607536357 100644
--- a/tests/testbench/com/vaadin/tests/components/upload/TestImmediateUploadInFormLayout.java
+++ b/tests/testbench/com/vaadin/tests/components/upload/TestImmediateUploadInFormLayout.java
@@ -46,6 +46,7 @@ public class TestImmediateUploadInFormLayout extends
return Collections.emptyList();
}
+ @Override
public OutputStream receiveUpload(String filename, String MIMEType) {
getMainWindow().showNotification("Receiving upload");
return new ByteArrayOutputStream();
diff --git a/tests/testbench/com/vaadin/tests/components/upload/TestUpload.java b/tests/testbench/com/vaadin/tests/components/upload/TestUpload.java
index 535372f710..9ca0cb9c38 100644
--- a/tests/testbench/com/vaadin/tests/components/upload/TestUpload.java
+++ b/tests/testbench/com/vaadin/tests/components/upload/TestUpload.java
@@ -32,6 +32,7 @@ public class TestUpload extends ComponentTestCase<Upload> implements Receiver {
addTestComponent(u);
u.addListener(new Upload.FinishedListener() {
+ @Override
public void uploadFinished(FinishedEvent event) {
getMainWindow().showNotification("Done");
}
@@ -51,6 +52,7 @@ public class TestUpload extends ComponentTestCase<Upload> implements Receiver {
return actions;
}
+ @Override
public OutputStream receiveUpload(String filename, String MIMEType) {
getMainWindow().showNotification("Receiving upload");
return new ByteArrayOutputStream();
diff --git a/tests/testbench/com/vaadin/tests/components/upload/TestUploadAndDisableOnSuccess.java b/tests/testbench/com/vaadin/tests/components/upload/TestUploadAndDisableOnSuccess.java
index 0aa8e809c4..516ca2d7c9 100644
--- a/tests/testbench/com/vaadin/tests/components/upload/TestUploadAndDisableOnSuccess.java
+++ b/tests/testbench/com/vaadin/tests/components/upload/TestUploadAndDisableOnSuccess.java
@@ -51,6 +51,7 @@ public class TestUploadAndDisableOnSuccess extends ComponentTestCase<Upload>
u.addListener(new Upload.StartedListener() {
+ @Override
public void uploadStarted(StartedEvent event) {
/*
* Remove component before upload from the same vertical layout.
@@ -63,6 +64,7 @@ public class TestUploadAndDisableOnSuccess extends ComponentTestCase<Upload>
});
u.addListener(new Upload.FinishedListener() {
+ @Override
public void uploadFinished(FinishedEvent event) {
getMainWindow().showNotification("Done");
l.setValue(getUploadcount());
@@ -81,6 +83,7 @@ public class TestUploadAndDisableOnSuccess extends ComponentTestCase<Upload>
actions.add(createButtonAction("Toggle Enabled",
new Command<Upload, Boolean>() {
+ @Override
public void execute(Upload c, Boolean value, Object data) {
c.setEnabled(!c.isEnabled());
}
@@ -89,6 +92,7 @@ public class TestUploadAndDisableOnSuccess extends ComponentTestCase<Upload>
return actions;
}
+ @Override
public OutputStream receiveUpload(String filename, String MIMEType) {
// sleep to ensure change before upload is complete
try {
diff --git a/tests/testbench/com/vaadin/tests/components/upload/TestUploadFilename.java b/tests/testbench/com/vaadin/tests/components/upload/TestUploadFilename.java
index 12006412f2..de0cca5009 100644
--- a/tests/testbench/com/vaadin/tests/components/upload/TestUploadFilename.java
+++ b/tests/testbench/com/vaadin/tests/components/upload/TestUploadFilename.java
@@ -23,6 +23,7 @@ public class TestUploadFilename extends TestBase {
addComponent(result);
upload.addListener(new Upload.FinishedListener() {
+ @Override
public void uploadFinished(FinishedEvent event) {
result.setValue("Got file (should not contain path): "
+ receiver.getFilename());
@@ -35,6 +36,7 @@ public class TestUploadFilename extends TestBase {
private String filename;
+ @Override
public OutputStream receiveUpload(String filename, String MIMEType) {
this.filename = filename;
return new ByteArrayOutputStream();
diff --git a/tests/testbench/com/vaadin/tests/components/window/AttachShouldBeCalledForSubWindows.java b/tests/testbench/com/vaadin/tests/components/window/AttachShouldBeCalledForSubWindows.java
index ae3d4bc053..52a94daec7 100644
--- a/tests/testbench/com/vaadin/tests/components/window/AttachShouldBeCalledForSubWindows.java
+++ b/tests/testbench/com/vaadin/tests/components/window/AttachShouldBeCalledForSubWindows.java
@@ -84,6 +84,7 @@ public class AttachShouldBeCalledForSubWindows extends AbstractTestCase
};
okButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log("Button clicked");
@@ -114,6 +115,7 @@ public class AttachShouldBeCalledForSubWindows extends AbstractTestCase
return 8170;
}
+ @Override
public void onRequestStart(HttpServletRequest request,
HttpServletResponse response) {
if (request.getParameter("attachMainFirst") != null) {
@@ -122,6 +124,7 @@ public class AttachShouldBeCalledForSubWindows extends AbstractTestCase
}
+ @Override
public void onRequestEnd(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
diff --git a/tests/testbench/com/vaadin/tests/components/window/CloseSubWindow.java b/tests/testbench/com/vaadin/tests/components/window/CloseSubWindow.java
index bcfbc7f55a..e618cd38b5 100644
--- a/tests/testbench/com/vaadin/tests/components/window/CloseSubWindow.java
+++ b/tests/testbench/com/vaadin/tests/components/window/CloseSubWindow.java
@@ -18,6 +18,7 @@ public class CloseSubWindow extends TestBase {
Button openWindowButton = new Button("Open sub-window");
openWindowButton.setDebugId("opensub");
openWindowButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Window sub = createClosableSubWindow("Sub-window");
getMainWindow().addWindow(sub);
@@ -36,6 +37,7 @@ public class CloseSubWindow extends TestBase {
Button closeButton = new Button("Close");
closeButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
event.getButton().findAncestor(Window.class).close();
}
@@ -44,6 +46,7 @@ public class CloseSubWindow extends TestBase {
Button removeButton = new Button("Remove from parent");
removeButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
window.close();
}
@@ -51,6 +54,7 @@ public class CloseSubWindow extends TestBase {
window.addComponent(closeButton);
window.addListener(new CloseListener() {
+ @Override
public void windowClose(CloseEvent e) {
log.log("Window '" + title + "' closed");
}
diff --git a/tests/testbench/com/vaadin/tests/components/window/DownloadAndUpdate.java b/tests/testbench/com/vaadin/tests/components/window/DownloadAndUpdate.java
index ca9c31513f..76b93cae56 100644
--- a/tests/testbench/com/vaadin/tests/components/window/DownloadAndUpdate.java
+++ b/tests/testbench/com/vaadin/tests/components/window/DownloadAndUpdate.java
@@ -12,6 +12,7 @@ public class DownloadAndUpdate extends TestBase {
protected void setup() {
addComponent(new Button("Download and update",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
downloadAndUpdate();
}
diff --git a/tests/testbench/com/vaadin/tests/components/window/ExecuteJavaScript.java b/tests/testbench/com/vaadin/tests/components/window/ExecuteJavaScript.java
index bf979b1aa3..a9744b2c06 100644
--- a/tests/testbench/com/vaadin/tests/components/window/ExecuteJavaScript.java
+++ b/tests/testbench/com/vaadin/tests/components/window/ExecuteJavaScript.java
@@ -26,6 +26,7 @@ public class ExecuteJavaScript extends AbstractTestCase {
Button b = new Button(script);
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().executeJavaScript(script);
}
diff --git a/tests/testbench/com/vaadin/tests/components/window/ExtraWindowShown.java b/tests/testbench/com/vaadin/tests/components/window/ExtraWindowShown.java
index e81e02b22b..fc8d7474af 100644
--- a/tests/testbench/com/vaadin/tests/components/window/ExtraWindowShown.java
+++ b/tests/testbench/com/vaadin/tests/components/window/ExtraWindowShown.java
@@ -13,12 +13,14 @@ public class ExtraWindowShown extends TestBase {
protected void setup() {
Button b = new Button("Open window", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
final Window w = new Window("Sub window");
w.center();
w.addComponent(new Button("Close", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
w.close();
}
diff --git a/tests/testbench/com/vaadin/tests/components/window/LazyWindowResize.java b/tests/testbench/com/vaadin/tests/components/window/LazyWindowResize.java
index 9eaabf7340..eb4803630f 100644
--- a/tests/testbench/com/vaadin/tests/components/window/LazyWindowResize.java
+++ b/tests/testbench/com/vaadin/tests/components/window/LazyWindowResize.java
@@ -2,9 +2,9 @@ package com.vaadin.tests.components.window;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.Page.BrowserWindowResizeEvent;
import com.vaadin.terminal.Page.BrowserWindowResizeListener;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.tests.components.AbstractTestCase;
import com.vaadin.tests.util.Log;
import com.vaadin.tests.util.LoremIpsum;
@@ -25,12 +25,14 @@ public class LazyWindowResize extends AbstractTestCase {
protected ResizeListener resizeListener = new ResizeListener() {
+ @Override
public void windowResized(ResizeEvent e) {
log.log("Sub window resized");
}
};
protected BrowserWindowResizeListener browserWindowResizeListener = new BrowserWindowResizeListener() {
+ @Override
public void browserWindowResized(BrowserWindowResizeEvent event) {
log.log("Main window resized");
}
@@ -63,6 +65,7 @@ public class LazyWindowResize extends AbstractTestCase {
lazyMode.setImmediate(true);
lazyMode.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
setLazy(lazyMode.getValue());
}
@@ -72,6 +75,7 @@ public class LazyWindowResize extends AbstractTestCase {
resizeListenerCheckBox.setImmediate(true);
resizeListenerCheckBox.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (resizeListenerCheckBox.getValue()) {
subWindow.addListener(resizeListener);
@@ -88,6 +92,7 @@ public class LazyWindowResize extends AbstractTestCase {
immediateCheckBox.setImmediate(true);
immediateCheckBox.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
mainWindow.setImmediate(immediateCheckBox.getValue());
subWindow.setImmediate(immediateCheckBox.getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/window/LongNotifications.java b/tests/testbench/com/vaadin/tests/components/window/LongNotifications.java
index c916973713..be67cfe9a0 100644
--- a/tests/testbench/com/vaadin/tests/components/window/LongNotifications.java
+++ b/tests/testbench/com/vaadin/tests/components/window/LongNotifications.java
@@ -25,6 +25,7 @@ public class LongNotifications extends TestBase {
Button b = new Button("Show loooong notification",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().showNotification(
@@ -38,6 +39,7 @@ public class LongNotifications extends TestBase {
b = new Button("Show notifications", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().showNotification("Example failed",
@@ -51,6 +53,7 @@ public class LongNotifications extends TestBase {
b = new Button("Show loooong notification (error)",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow()
@@ -65,6 +68,7 @@ public class LongNotifications extends TestBase {
b = new Button("Show notification (error)", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().showNotification("Example failed",
diff --git a/tests/testbench/com/vaadin/tests/components/window/RepaintWindowContents.java b/tests/testbench/com/vaadin/tests/components/window/RepaintWindowContents.java
index 353eb535ca..59cd35c2cb 100644
--- a/tests/testbench/com/vaadin/tests/components/window/RepaintWindowContents.java
+++ b/tests/testbench/com/vaadin/tests/components/window/RepaintWindowContents.java
@@ -30,6 +30,7 @@ public class RepaintWindowContents extends AbstractTestRoot {
button1.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
window.setContent(layout2);
}
@@ -37,6 +38,7 @@ public class RepaintWindowContents extends AbstractTestRoot {
button2.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
window.setContent(layout1);
}
diff --git a/tests/testbench/com/vaadin/tests/components/window/SubWindowFocus.java b/tests/testbench/com/vaadin/tests/components/window/SubWindowFocus.java
index f0dccda66c..389c926986 100644
--- a/tests/testbench/com/vaadin/tests/components/window/SubWindowFocus.java
+++ b/tests/testbench/com/vaadin/tests/components/window/SubWindowFocus.java
@@ -41,6 +41,7 @@ public class SubWindowFocus extends TestBase {
addComponent(tf);
Button b = new Button("new", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
final Window win = new Window("Subwin");
win.getContent().setWidth(null);
@@ -56,10 +57,12 @@ public class SubWindowFocus extends TestBase {
ShortcutAction spc = new ShortcutAction("Space",
ShortcutAction.KeyCode.SPACEBAR, null);
+ @Override
public Action[] getActions(Object target, Object sender) {
return new Action[] { esc, spc };
}
+ @Override
public void handleAction(Action action, Object sender,
Object target) {
if (action == esc) {
diff --git a/tests/testbench/com/vaadin/tests/components/window/SubWindowFocusAndBlurListeners.java b/tests/testbench/com/vaadin/tests/components/window/SubWindowFocusAndBlurListeners.java
index 1e342abe01..061ee7900f 100644
--- a/tests/testbench/com/vaadin/tests/components/window/SubWindowFocusAndBlurListeners.java
+++ b/tests/testbench/com/vaadin/tests/components/window/SubWindowFocusAndBlurListeners.java
@@ -36,12 +36,14 @@ public class SubWindowFocusAndBlurListeners extends TestBase {
window.addComponent(new TextField());
window.addListener(new FocusListener() {
+ @Override
public void focus(FocusEvent event) {
Notification.show("Focused window");
}
});
window.addListener(new BlurListener() {
+ @Override
public void blur(BlurEvent event) {
Notification.show("Blurred window");
}
@@ -51,10 +53,12 @@ public class SubWindowFocusAndBlurListeners extends TestBase {
private Action[] s = new Action[] { new ShortcutAction("^Save") };
+ @Override
public Action[] getActions(Object target, Object sender) {
return s;
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
Notification.show("Action!");
}
@@ -68,6 +72,7 @@ public class SubWindowFocusAndBlurListeners extends TestBase {
Button button = new Button("Bring to front (should focus too)",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
window.bringToFront();
}
diff --git a/tests/testbench/com/vaadin/tests/components/window/SubWindowOrder.java b/tests/testbench/com/vaadin/tests/components/window/SubWindowOrder.java
index 9b4fcea22b..02241476d5 100644
--- a/tests/testbench/com/vaadin/tests/components/window/SubWindowOrder.java
+++ b/tests/testbench/com/vaadin/tests/components/window/SubWindowOrder.java
@@ -64,6 +64,7 @@ public class SubWindowOrder extends TestBase {
toggleModality.addListener(this);
}
+ @Override
public void buttonClick(ClickEvent event) {
if (event.getButton() == bf) {
getCurWindow().bringToFront();
diff --git a/tests/testbench/com/vaadin/tests/components/window/SubWindowWithUndefinedHeight.java b/tests/testbench/com/vaadin/tests/components/window/SubWindowWithUndefinedHeight.java
index fc99309b50..5bda762d3f 100644
--- a/tests/testbench/com/vaadin/tests/components/window/SubWindowWithUndefinedHeight.java
+++ b/tests/testbench/com/vaadin/tests/components/window/SubWindowWithUndefinedHeight.java
@@ -38,6 +38,7 @@ public class SubWindowWithUndefinedHeight extends TestBase {
tabsheet.addComponent(tabButton);
tabsheet.addComponent(table);
tabsheet.addListener(new TabSheet.SelectedTabChangeListener() {
+ @Override
public void selectedTabChange(TabSheet.SelectedTabChangeEvent event) {
if (tabsheet.getSelectedTab() == tabButton) {
tabsheet.setSizeUndefined();
@@ -54,6 +55,7 @@ public class SubWindowWithUndefinedHeight extends TestBase {
subwindow.addComponent(tabsheet);
Button button = new Button("click me", new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
getMainWindow().addWindow(subwindow);
}
diff --git a/tests/testbench/com/vaadin/tests/components/window/SubWindows.java b/tests/testbench/com/vaadin/tests/components/window/SubWindows.java
index e939f0b9a4..c39bfdb713 100644
--- a/tests/testbench/com/vaadin/tests/components/window/SubWindows.java
+++ b/tests/testbench/com/vaadin/tests/components/window/SubWindows.java
@@ -32,6 +32,7 @@ public class SubWindows extends TestBase {
Button b = new Button("Remove");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Button b = event.getButton();
ComponentContainer cc = (ComponentContainer) b.getParent();
@@ -51,6 +52,7 @@ public class SubWindows extends TestBase {
autoWideWindow.addComponent(new TextField("Field 2"));
autoWideWindow.addComponent(new Button("Add", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
autoWideWindow.addComponent(createRemoveButton());
diff --git a/tests/testbench/com/vaadin/tests/components/window/SubwindowDraggability.java b/tests/testbench/com/vaadin/tests/components/window/SubwindowDraggability.java
index e1927982cd..45fb343b45 100644
--- a/tests/testbench/com/vaadin/tests/components/window/SubwindowDraggability.java
+++ b/tests/testbench/com/vaadin/tests/components/window/SubwindowDraggability.java
@@ -21,6 +21,7 @@ public class SubwindowDraggability extends TestBase {
Button b = new Button("Swap", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
boolean b = draggableSubWindow.isDraggable();
diff --git a/tests/testbench/com/vaadin/tests/components/window/TooltipInWindow.html b/tests/testbench/com/vaadin/tests/components/window/TooltipInWindow.html
new file mode 100644
index 0000000000..d734cab9ea
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/window/TooltipInWindow.html
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>TooltipInWindow</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TooltipInWindow</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.window.TooltipInWindow?restartApplication</td>
+ <td></td>
+</tr>
+<!--Show tooltip in Root-->
+<tr>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentswindowTooltipInWindow::/VVerticalLayout[0]/VVerticalLayout[0]/VTextField[0]</td>
+ <td>5,5</td>
+</tr>
+<tr>
+ <td>pause</td>
+ <td>1000</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentswindowTooltipInWindow::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>My tooltip</td>
+</tr>
+<!--Hide the tooltip-->
+<tr>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentswindowTooltipInWindow::/VVerticalLayout[0]</td>
+ <td>0,0</td>
+</tr>
+<tr>
+ <td>pause</td>
+ <td>1000</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertElementNotPresent</td>
+ <td>vaadin=runcomvaadintestscomponentswindowTooltipInWindow::Root/VTooltip[0]</td>
+ <td></td>
+</tr>
+<!--Show tooltip in Window-->
+<tr>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentswindowTooltipInWindow::/VWindow[0]/FocusableScrollPanel[0]/VVerticalLayout[0]/VTextField[0]</td>
+ <td>5,5</td>
+</tr>
+<tr>
+ <td>pause</td>
+ <td>1000</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentswindowTooltipInWindow::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>My tooltip</td>
+</tr>
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/window/TooltipInWindow.java b/tests/testbench/com/vaadin/tests/components/window/TooltipInWindow.java
new file mode 100644
index 0000000000..184bde9b14
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/window/TooltipInWindow.java
@@ -0,0 +1,41 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.components.window;
+
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.tests.components.AbstractTestRoot;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.Window;
+
+public class TooltipInWindow extends AbstractTestRoot {
+
+ @Override
+ protected void setup(WrappedRequest request) {
+ Window window = new Window("Window");
+ window.getContent().setSizeUndefined();
+ window.center();
+ window.addComponent(createTextField());
+
+ addWindow(window);
+ addComponent(createTextField());
+ }
+
+ private TextField createTextField() {
+ TextField tf = new TextField("TextField with a tooltip");
+ tf.setDescription("My tooltip");
+ return tf;
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Tooltips should also work in a Window (as well as in other overlays)";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return Integer.valueOf(9172);
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.java b/tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.java
index ed259b2f4c..715d089f57 100644
--- a/tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.java
+++ b/tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.java
@@ -28,6 +28,7 @@ public class UndefinedHeightSubWindowAndContent extends TestBase {
field1.setImmediate(true);
field1.addValidator(new Validator() {
+ @Override
public void validate(Object value) throws InvalidValueException {
if (!isValid(value)) {
throw new InvalidValueException("FAIL!");
diff --git a/tests/testbench/com/vaadin/tests/components/window/WindowClickEvents.java b/tests/testbench/com/vaadin/tests/components/window/WindowClickEvents.java
index 041ccaaf30..a4120b7d42 100644
--- a/tests/testbench/com/vaadin/tests/components/window/WindowClickEvents.java
+++ b/tests/testbench/com/vaadin/tests/components/window/WindowClickEvents.java
@@ -29,6 +29,7 @@ public class WindowClickEvents extends TestBase {
protected void setup() {
VerticalLayout layout = new VerticalLayout();
layout.addListener(new LayoutClickListener() {
+ @Override
public void layoutClick(LayoutClickEvent event) {
WindowClickEvents.this.click("Sub window layout", event);
}
@@ -36,6 +37,7 @@ public class WindowClickEvents extends TestBase {
((VerticalLayout) getMainWindow().getContent())
.addListener(new LayoutClickListener() {
+ @Override
public void layoutClick(LayoutClickEvent event) {
WindowClickEvents.this.click("Main window layout",
event);
@@ -45,6 +47,7 @@ public class WindowClickEvents extends TestBase {
Window centered = new Window("A window with a click listener", layout);
centered.addListener(new ClickListener() {
+ @Override
public void click(ClickEvent event) {
WindowClickEvents.this.click("Sub window", event);
}
@@ -60,6 +63,7 @@ public class WindowClickEvents extends TestBase {
"Clicking here should not produce a layout click event");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(com.vaadin.ui.Button.ClickEvent event) {
log.log("Click on button");
}
@@ -73,6 +77,7 @@ public class WindowClickEvents extends TestBase {
addComponent(log);
getMainWindow().addListener(new ClickListener() {
+ @Override
public void click(ClickEvent event) {
WindowClickEvents.this.click("Main window", event);
}
diff --git a/tests/testbench/com/vaadin/tests/components/window/WindowResizeListener.java b/tests/testbench/com/vaadin/tests/components/window/WindowResizeListener.java
index ac6c313d29..74d7b564db 100644
--- a/tests/testbench/com/vaadin/tests/components/window/WindowResizeListener.java
+++ b/tests/testbench/com/vaadin/tests/components/window/WindowResizeListener.java
@@ -34,6 +34,7 @@ public class WindowResizeListener extends TestBase {
getLayout().addComponent(l);
getMainWindow().addListener(new Page.BrowserWindowResizeListener() {
+ @Override
public void browserWindowResized(BrowserWindowResizeEvent event) {
l.setValue("Current browser window size: "
+ getMainWindow().getBrowserWindowWidth() + " x "
@@ -45,6 +46,7 @@ public class WindowResizeListener extends TestBase {
subwindow.setImmediate(true);
subwindow.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if ((Boolean) event.getProperty().getValue()) {
getMainWindow().addWindow(subwin);
@@ -58,6 +60,7 @@ public class WindowResizeListener extends TestBase {
CheckBox immediate = new CheckBox("immediate");
immediate.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
boolean booleanValue = (Boolean) event.getProperty().getValue();
getMainWindow().setImmediate(booleanValue);
@@ -87,6 +90,7 @@ class ResizeListenerWindow extends Window {
hl.addComponent(sizeLabel);
addListener(new ResizeListener() {
+ @Override
public void windowResized(ResizeEvent e) {
updateLabel();
}
diff --git a/tests/testbench/com/vaadin/tests/components/window/WindowScrollingComponentIntoView.java b/tests/testbench/com/vaadin/tests/components/window/WindowScrollingComponentIntoView.java
index 9f3f27cf6a..fdeb21d29c 100644
--- a/tests/testbench/com/vaadin/tests/components/window/WindowScrollingComponentIntoView.java
+++ b/tests/testbench/com/vaadin/tests/components/window/WindowScrollingComponentIntoView.java
@@ -60,6 +60,7 @@ public class WindowScrollingComponentIntoView extends AbstractTestCase {
window.addComponent(new Button("Scroll mainwin to X9",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().scrollIntoView(x9);
@@ -67,6 +68,7 @@ public class WindowScrollingComponentIntoView extends AbstractTestCase {
}));
window.addComponent(new Button("Scroll mainwin to Y9",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().scrollIntoView(y9);
@@ -100,6 +102,7 @@ public class WindowScrollingComponentIntoView extends AbstractTestCase {
((VerticalLayout) getMainWindow().getContent()).addComponent(
new Button("Scroll win to X9", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
throw new RuntimeException("Currently not implemented");
// window.scrollIntoView(x29);
@@ -107,6 +110,7 @@ public class WindowScrollingComponentIntoView extends AbstractTestCase {
}), 0);
((VerticalLayout) getMainWindow().getContent()).addComponent(
new Button("Scroll win to Y9", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
throw new RuntimeException("Currently not implemented");
// window.scrollIntoView(y29);
diff --git a/tests/testbench/com/vaadin/tests/components/window/WindowScrollingUp.java b/tests/testbench/com/vaadin/tests/components/window/WindowScrollingUp.java
index 2054b751ef..43f8297a5d 100644
--- a/tests/testbench/com/vaadin/tests/components/window/WindowScrollingUp.java
+++ b/tests/testbench/com/vaadin/tests/components/window/WindowScrollingUp.java
@@ -26,6 +26,7 @@ public class WindowScrollingUp extends AbstractTestCase {
final Button up = new Button("up");
up.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
up.getRoot().setScrollTop(0);
}
diff --git a/tests/testbench/com/vaadin/tests/components/window/WindowShouldRemoveActionHandler.java b/tests/testbench/com/vaadin/tests/components/window/WindowShouldRemoveActionHandler.java
index 88fb014690..fa01706c56 100644
--- a/tests/testbench/com/vaadin/tests/components/window/WindowShouldRemoveActionHandler.java
+++ b/tests/testbench/com/vaadin/tests/components/window/WindowShouldRemoveActionHandler.java
@@ -30,6 +30,7 @@ public class WindowShouldRemoveActionHandler extends TestBase {
Button add = new Button("Add an action handler",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
add();
}
@@ -38,6 +39,7 @@ public class WindowShouldRemoveActionHandler extends TestBase {
Button addAnother = new Button("Add another action handler",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
addAnother();
}
@@ -46,6 +48,7 @@ public class WindowShouldRemoveActionHandler extends TestBase {
Button remove = new Button("Remove an action handler",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
remove();
}
@@ -71,12 +74,14 @@ public class WindowShouldRemoveActionHandler extends TestBase {
getMainWindow().getCaption() + " - Added handler");
Handler actionHandler = new Handler() {
+ @Override
public Action[] getActions(Object target, Object sender) {
return new Action[] { new ShortcutAction("Ctrl+Left",
ShortcutAction.KeyCode.ARROW_LEFT,
new int[] { ModifierKey.CTRL }) };
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
getMainWindow().showNotification(
"Handling action " + action.getCaption());
@@ -90,12 +95,14 @@ public class WindowShouldRemoveActionHandler extends TestBase {
public void addAnother() {
Handler actionHandler = new Handler() {
+ @Override
public Action[] getActions(Object target, Object sender) {
return new Action[] { new ShortcutAction("Ctrl+Right",
ShortcutAction.KeyCode.ARROW_RIGHT,
new int[] { ModifierKey.CTRL }) };
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
getMainWindow().showNotification(
"Handling action " + action.getCaption());
diff --git a/tests/testbench/com/vaadin/tests/components/window/WindowStyleNames.java b/tests/testbench/com/vaadin/tests/components/window/WindowStyleNames.java
index 3a36926b42..615f391613 100644
--- a/tests/testbench/com/vaadin/tests/components/window/WindowStyleNames.java
+++ b/tests/testbench/com/vaadin/tests/components/window/WindowStyleNames.java
@@ -22,6 +22,7 @@ public class WindowStyleNames extends TestBase {
setWindowStyle("old");
addComponent(new Button("Set style to 'new'", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
setWindowStyle("new");
}
@@ -30,6 +31,7 @@ public class WindowStyleNames extends TestBase {
addComponent(new Button("Set style to 'custom'", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
setWindowStyle("custom");
}
@@ -38,6 +40,7 @@ public class WindowStyleNames extends TestBase {
addComponent(new Button("Add 'foo' style", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().addStyleName("foo");
}
diff --git a/tests/testbench/com/vaadin/tests/containers/BeanItemContainerFilteringTest.java b/tests/testbench/com/vaadin/tests/containers/BeanItemContainerFilteringTest.java
index 77a3efa6ad..4f41410ba3 100644
--- a/tests/testbench/com/vaadin/tests/containers/BeanItemContainerFilteringTest.java
+++ b/tests/testbench/com/vaadin/tests/containers/BeanItemContainerFilteringTest.java
@@ -89,6 +89,7 @@ public class BeanItemContainerFilteringTest extends TestBase {
final CheckBox cb = new CheckBox("Filter on value");
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
container.removeAllContainerFilters();
if (((CheckBox) event.getProperty()).getValue()) {
@@ -108,6 +109,7 @@ public class BeanItemContainerFilteringTest extends TestBase {
final Button addItemButton = new Button("addItem()",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
container.addItem(new TestBean("addItem() "
+ nextToAdd, "value " + nextToAdd));
@@ -120,6 +122,7 @@ public class BeanItemContainerFilteringTest extends TestBase {
final Button addItemAfterButton = new Button("addItemAfter()",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Object selection = table.getValue();
if (selection == null) {
@@ -145,6 +148,7 @@ public class BeanItemContainerFilteringTest extends TestBase {
final Button addItemAtButton = new Button("addItemAt()",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
int index = Integer.parseInt(position.getValue()
.toString());
diff --git a/tests/testbench/com/vaadin/tests/containers/HierarchicalWrapperOrdering.java b/tests/testbench/com/vaadin/tests/containers/HierarchicalWrapperOrdering.java
index f60e0c74e7..eba8ded705 100644
--- a/tests/testbench/com/vaadin/tests/containers/HierarchicalWrapperOrdering.java
+++ b/tests/testbench/com/vaadin/tests/containers/HierarchicalWrapperOrdering.java
@@ -94,6 +94,7 @@ public class HierarchicalWrapperOrdering extends TestBase {
new ClickListener() {
private static final long serialVersionUID = 1L;
+ @Override
public void buttonClick(ClickEvent event) {
// Get first item
Object itemId = indexedContainer.getIdByIndex(0);
diff --git a/tests/testbench/com/vaadin/tests/containers/IndexedContainerFilteringTest.java b/tests/testbench/com/vaadin/tests/containers/IndexedContainerFilteringTest.java
index 2ed5de3bfa..b30ef3e616 100644
--- a/tests/testbench/com/vaadin/tests/containers/IndexedContainerFilteringTest.java
+++ b/tests/testbench/com/vaadin/tests/containers/IndexedContainerFilteringTest.java
@@ -56,6 +56,7 @@ public class IndexedContainerFilteringTest extends TestBase {
final CheckBox cb = new CheckBox("Filter");
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
container.removeAllContainerFilters();
if (((CheckBox) event.getProperty()).getValue()) {
@@ -75,6 +76,7 @@ public class IndexedContainerFilteringTest extends TestBase {
final Button addItemButton = new Button("addItem()",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Item item = container.addItem("addItem() " + nextToAdd);
if (item != null) {
@@ -90,6 +92,7 @@ public class IndexedContainerFilteringTest extends TestBase {
final Button addItemAfterButton = new Button("addItemAfter()",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Object selection = table.getValue();
if (selection == null) {
@@ -117,6 +120,7 @@ public class IndexedContainerFilteringTest extends TestBase {
final Button addItemAtButton = new Button("addItemAt()",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
int index = Integer.parseInt(position.getValue()
.toString());
diff --git a/tests/testbench/com/vaadin/tests/containers/TestItemSorter.java b/tests/testbench/com/vaadin/tests/containers/TestItemSorter.java
index 0a1c592876..46c4e004c1 100644
--- a/tests/testbench/com/vaadin/tests/containers/TestItemSorter.java
+++ b/tests/testbench/com/vaadin/tests/containers/TestItemSorter.java
@@ -27,6 +27,7 @@ public class TestItemSorter extends TestBase {
populateContainer(container);
container.setItemSorter(new DefaultItemSorter(new Comparator<Object>() {
+ @Override
public int compare(Object o1, Object o2) {
if (o1 instanceof CheckBox && o2 instanceof CheckBox) {
Boolean b1 = (Boolean) ((CheckBox) o1).getValue();
diff --git a/tests/testbench/com/vaadin/tests/containers/filesystemcontainer/FileSystemContainerInTreeTable.java b/tests/testbench/com/vaadin/tests/containers/filesystemcontainer/FileSystemContainerInTreeTable.java
index 91403f54d6..0afaf2c15f 100644
--- a/tests/testbench/com/vaadin/tests/containers/filesystemcontainer/FileSystemContainerInTreeTable.java
+++ b/tests/testbench/com/vaadin/tests/containers/filesystemcontainer/FileSystemContainerInTreeTable.java
@@ -51,6 +51,7 @@ public class FileSystemContainerInTreeTable extends TestBase {
treeTable.setColumnWidth("Name", 400);
treeTable.addListener(new ExpandListener() {
+ @Override
public void nodeExpand(ExpandEvent event) {
logExpandCollapse(event.getItemId(), "expanded");
@@ -58,6 +59,7 @@ public class FileSystemContainerInTreeTable extends TestBase {
});
treeTable.addListener(new CollapseListener() {
+ @Override
public void nodeCollapse(CollapseEvent event) {
logExpandCollapse(event.getItemId(), "collapsed");
@@ -71,6 +73,7 @@ public class FileSystemContainerInTreeTable extends TestBase {
buttonLayout.setSpacing(true);
buttonLayout.addComponent(new Button("Create dir11",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
new File(folder, "dir11").mkdir();
log.log("Row dir11 created");
@@ -78,6 +81,7 @@ public class FileSystemContainerInTreeTable extends TestBase {
}));
buttonLayout.addComponent(new Button("Delete dir11",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
new File(folder, "dir11").delete();
log.log("Row dir11 deleted");
@@ -86,6 +90,7 @@ public class FileSystemContainerInTreeTable extends TestBase {
// to clean up explicitly before ending an automated test
buttonLayout.addComponent(new Button("Clean all files",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
folder.delete();
}
diff --git a/tests/testbench/com/vaadin/tests/containers/sqlcontainer/CheckboxUpdateProblem.java b/tests/testbench/com/vaadin/tests/containers/sqlcontainer/CheckboxUpdateProblem.java
index 674f610ed7..f34c12607a 100644
--- a/tests/testbench/com/vaadin/tests/containers/sqlcontainer/CheckboxUpdateProblem.java
+++ b/tests/testbench/com/vaadin/tests/containers/sqlcontainer/CheckboxUpdateProblem.java
@@ -1,8 +1,6 @@
package com.vaadin.tests.containers.sqlcontainer;
-import java.sql.Connection;
import java.sql.SQLException;
-import java.sql.Statement;
import com.vaadin.Application;
import com.vaadin.data.Container.ItemSetChangeEvent;
@@ -10,11 +8,6 @@ import com.vaadin.data.Container.ItemSetChangeListener;
import com.vaadin.data.Item;
import com.vaadin.data.Property;
import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.util.sqlcontainer.AllTests;
-import com.vaadin.data.util.sqlcontainer.SQLContainer;
-import com.vaadin.data.util.sqlcontainer.connection.JDBCConnectionPool;
-import com.vaadin.data.util.sqlcontainer.connection.SimpleJDBCConnectionPool;
-import com.vaadin.data.util.sqlcontainer.query.TableQuery;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Form;
@@ -45,6 +38,7 @@ public class CheckboxUpdateProblem extends Application.LegacyApplication
databaseHelper.getTestContainer().addListener(
new ItemSetChangeListener() {
+ @Override
public void containerItemSetChange(ItemSetChangeEvent event) {
Object selected = testList.getValue();
if (selected != null) {
@@ -62,6 +56,7 @@ public class CheckboxUpdateProblem extends Application.LegacyApplication
getMainWindow().setContent(horizontalSplit);
}
+ @Override
public void valueChange(ValueChangeEvent event) {
Property<?> property = event.getProperty();
@@ -89,6 +84,7 @@ public class CheckboxUpdateProblem extends Application.LegacyApplication
getFooter().setVisible(false);
}
+ @Override
public void buttonClick(ClickEvent event) {
if (event.getSource() == save) {
super.commit();
@@ -115,75 +111,4 @@ public class CheckboxUpdateProblem extends Application.LegacyApplication
}
- private class DatabaseHelper {
-
- private JDBCConnectionPool connectionPool = null;
- private SQLContainer testContainer = null;
- private static final String TABLENAME = "testtable";
-
- public DatabaseHelper() {
- initConnectionPool();
- initDatabase();
- initContainers();
- }
-
- private void initDatabase() {
- try {
- Connection conn = connectionPool.reserveConnection();
- Statement statement = conn.createStatement();
- try {
- statement.execute("drop table " + TABLENAME);
- } catch (SQLException e) {
- // Will fail if table doesn't exist, which is OK.
- conn.rollback();
- }
- switch (AllTests.db) {
- case MYSQL:
- statement
- .execute("create table "
- + TABLENAME
- + " (id integer auto_increment not null, field1 varchar(100), field2 boolean, primary key(id))");
- break;
- case POSTGRESQL:
- statement
- .execute("create table "
- + TABLENAME
- + " (\"id\" serial primary key, \"field1\" varchar(100), \"field2\" boolean)");
- break;
- }
- statement.executeUpdate("insert into " + TABLENAME
- + " values(default, 'Kalle', 'true')");
- statement.close();
- conn.commit();
- connectionPool.releaseConnection(conn);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
-
- private void initContainers() {
- try {
- TableQuery q1 = new TableQuery(TABLENAME, connectionPool);
- q1.setVersionColumn("id");
- testContainer = new SQLContainer(q1);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
-
- private void initConnectionPool() {
- try {
- connectionPool = new SimpleJDBCConnectionPool(
- AllTests.dbDriver, AllTests.dbURL, AllTests.dbUser,
- AllTests.dbPwd, 2, 5);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
-
- public SQLContainer getTestContainer() {
- return testContainer;
- }
- }
-
}
diff --git a/tests/testbench/com/vaadin/tests/containers/sqlcontainer/ComboBoxUpdateProblem.java b/tests/testbench/com/vaadin/tests/containers/sqlcontainer/ComboBoxUpdateProblem.java
new file mode 100644
index 0000000000..b7d1b8c37e
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/containers/sqlcontainer/ComboBoxUpdateProblem.java
@@ -0,0 +1,27 @@
+package com.vaadin.tests.containers.sqlcontainer;
+
+import com.vaadin.Application;
+import com.vaadin.ui.AbstractSelect.Filtering;
+import com.vaadin.ui.ComboBox;
+import com.vaadin.ui.Root;
+
+/**
+ * See http://dev.vaadin.com/ticket/9155 .
+ */
+public class ComboBoxUpdateProblem extends Application.LegacyApplication {
+ private final DatabaseHelper databaseHelper = new DatabaseHelper();
+
+ @Override
+ public void init() {
+ setMainWindow(new Root.LegacyWindow("Test window"));
+
+ ComboBox combo = new ComboBox("Names",
+ databaseHelper.getTestContainer());
+ combo.setItemCaptionPropertyId("FIELD1");
+ combo.setFilteringMode(Filtering.FILTERINGMODE_CONTAINS);
+ combo.setImmediate(true);
+
+ getMainWindow().addComponent(combo);
+ }
+
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/containers/sqlcontainer/DatabaseHelper.java b/tests/testbench/com/vaadin/tests/containers/sqlcontainer/DatabaseHelper.java
new file mode 100644
index 0000000000..b7b1e74eb0
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/containers/sqlcontainer/DatabaseHelper.java
@@ -0,0 +1,91 @@
+package com.vaadin.tests.containers.sqlcontainer;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import com.vaadin.data.util.sqlcontainer.AllTests;
+import com.vaadin.data.util.sqlcontainer.SQLContainer;
+import com.vaadin.data.util.sqlcontainer.connection.JDBCConnectionPool;
+import com.vaadin.data.util.sqlcontainer.connection.SimpleJDBCConnectionPool;
+import com.vaadin.data.util.sqlcontainer.query.TableQuery;
+
+class DatabaseHelper {
+
+ private JDBCConnectionPool connectionPool = null;
+ private SQLContainer testContainer = null;
+ private static final String TABLENAME = "testtable";
+
+ public DatabaseHelper() {
+ initConnectionPool();
+ initDatabase();
+ initContainers();
+ }
+
+ private void initDatabase() {
+ try {
+ Connection conn = connectionPool.reserveConnection();
+ Statement statement = conn.createStatement();
+ try {
+ statement.execute("drop table " + TABLENAME);
+ } catch (SQLException e) {
+ // Will fail if table doesn't exist, which is OK.
+ conn.rollback();
+ }
+ switch (AllTests.db) {
+ case HSQLDB:
+ statement
+ .execute("create table "
+ + TABLENAME
+ + " (id integer GENERATED BY DEFAULT AS IDENTITY, field1 varchar(100), field2 boolean, primary key(id))");
+ break;
+ case MYSQL:
+ statement
+ .execute("create table "
+ + TABLENAME
+ + " (id integer auto_increment not null, field1 varchar(100), field2 boolean, primary key(id))");
+ break;
+ case POSTGRESQL:
+ statement
+ .execute("create table "
+ + TABLENAME
+ + " (\"id\" serial primary key, \"field1\" varchar(100), \"field2\" boolean)");
+ break;
+ }
+ statement.executeUpdate("insert into " + TABLENAME
+ + " values(default, 'Kalle', 'true')");
+ statement.executeUpdate("insert into " + TABLENAME
+ + " values(default, 'Ville', 'true')");
+ statement.executeUpdate("insert into " + TABLENAME
+ + " values(default, 'Jussi', 'true')");
+ statement.close();
+ conn.commit();
+ connectionPool.releaseConnection(conn);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void initContainers() {
+ try {
+ TableQuery q1 = new TableQuery(TABLENAME, connectionPool);
+ q1.setVersionColumn("id");
+ testContainer = new SQLContainer(q1);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void initConnectionPool() {
+ try {
+ connectionPool = new SimpleJDBCConnectionPool(AllTests.dbDriver,
+ AllTests.dbURL, AllTests.dbUser, AllTests.dbPwd, 2, 5);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public SQLContainer getTestContainer() {
+ return testContainer;
+ }
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/containers/sqlcontainer/MassInsertMemoryLeakTestApp.java b/tests/testbench/com/vaadin/tests/containers/sqlcontainer/MassInsertMemoryLeakTestApp.java
index 2b76612c35..dc919fdb12 100644
--- a/tests/testbench/com/vaadin/tests/containers/sqlcontainer/MassInsertMemoryLeakTestApp.java
+++ b/tests/testbench/com/vaadin/tests/containers/sqlcontainer/MassInsertMemoryLeakTestApp.java
@@ -35,6 +35,7 @@ public class MassInsertMemoryLeakTestApp extends Application.LegacyApplication {
setMainWindow(new LegacyWindow("SQLContainer Test", buildLayout()));
process.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
MassInsert mi = new MassInsert();
mi.start();
diff --git a/tests/testbench/com/vaadin/tests/converter/ConverterThatEnforcesAFormat.java b/tests/testbench/com/vaadin/tests/converter/ConverterThatEnforcesAFormat.java
index 8b17cb3f48..59aa45dc36 100644
--- a/tests/testbench/com/vaadin/tests/converter/ConverterThatEnforcesAFormat.java
+++ b/tests/testbench/com/vaadin/tests/converter/ConverterThatEnforcesAFormat.java
@@ -16,6 +16,7 @@ public class ConverterThatEnforcesAFormat extends TestBase {
"This field should always be formatted with 3 digits");
tf.setConverter(new StringToDoubleConverterWithThreeFractionDigits());
tf.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
log.log("Value changed to "
+ event.getProperty().getValue()
diff --git a/tests/testbench/com/vaadin/tests/dd/AcceptAnythingWindow.java b/tests/testbench/com/vaadin/tests/dd/AcceptAnythingWindow.java
index 308f002e4f..5d57de388c 100644
--- a/tests/testbench/com/vaadin/tests/dd/AcceptAnythingWindow.java
+++ b/tests/testbench/com/vaadin/tests/dd/AcceptAnythingWindow.java
@@ -7,7 +7,7 @@ import com.vaadin.event.dd.DragAndDropEvent;
import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.acceptcriteria.AcceptAll;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
+import com.vaadin.shared.MouseEventDetails;
import com.vaadin.ui.AbsoluteLayout;
import com.vaadin.ui.AbsoluteLayout.ComponentPosition;
import com.vaadin.ui.Component;
@@ -28,10 +28,12 @@ public class AcceptAnythingWindow extends Window {
final DragAndDropWrapper wrapper = new DragAndDropWrapper(layout);
wrapper.setDropHandler(new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptAll.get();
}
+ @Override
public void drop(DragAndDropEvent event) {
WrapperTargetDetails ed = (WrapperTargetDetails) event
.getTargetDetails();
diff --git a/tests/testbench/com/vaadin/tests/dd/AcceptFromComponent.java b/tests/testbench/com/vaadin/tests/dd/AcceptFromComponent.java
index 43bdce2ad4..99dd069142 100644
--- a/tests/testbench/com/vaadin/tests/dd/AcceptFromComponent.java
+++ b/tests/testbench/com/vaadin/tests/dd/AcceptFromComponent.java
@@ -7,7 +7,7 @@ import com.vaadin.event.dd.DragAndDropEvent;
import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
import com.vaadin.event.dd.acceptcriteria.ServerSideCriterion;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
+import com.vaadin.shared.MouseEventDetails;
import com.vaadin.ui.AbsoluteLayout;
import com.vaadin.ui.AbsoluteLayout.ComponentPosition;
import com.vaadin.ui.Component;
@@ -37,6 +37,7 @@ public class AcceptFromComponent extends Window {
final ServerSideCriterion serverSideCriterion = new ServerSideCriterion() {
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
Transferable transferable = dragEvent.getTransferable();
if (transferable instanceof TransferableImpl) {
@@ -51,10 +52,12 @@ public class AcceptFromComponent extends Window {
wrapper.setDropHandler(new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return serverSideCriterion;
}
+ @Override
public void drop(DragAndDropEvent event) {
WrapperTargetDetails ed = (WrapperTargetDetails) event
diff --git a/tests/testbench/com/vaadin/tests/dd/ActiveDragSourceClassName.java b/tests/testbench/com/vaadin/tests/dd/ActiveDragSourceClassName.java
index 93e99274bb..9ef1b4029b 100644
--- a/tests/testbench/com/vaadin/tests/dd/ActiveDragSourceClassName.java
+++ b/tests/testbench/com/vaadin/tests/dd/ActiveDragSourceClassName.java
@@ -23,6 +23,7 @@ public class ActiveDragSourceClassName extends TestBase {
private static final String GREENBOXES = ".greenblock {float:left; width:60px;height:60px;background: green !important; padding:0; margin:2px;-webkit-transition: width 0.3s ease-in-out;}";
private static final String HIDEDRAGSOURCE = ".v-active-drag-source { overflow:hidden; width:0px !important;}";
+ @Override
protected void setup() {
TestUtils.injectCSS(getMainWindow(), GREENBOXES + HIDEDRAGSOURCE);
@@ -69,10 +70,12 @@ public class ActiveDragSourceClassName extends TestBase {
private DropHandler dh = new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptAll.get();
}
+ @Override
public void drop(DragAndDropEvent dropEvent) {
Transferable transferable = dropEvent.getTransferable();
if (transferable instanceof TransferableImpl) {
diff --git a/tests/testbench/com/vaadin/tests/dd/CustomDDImplementation.java b/tests/testbench/com/vaadin/tests/dd/CustomDDImplementation.java
index 2b38a3438e..f6e196761e 100644
--- a/tests/testbench/com/vaadin/tests/dd/CustomDDImplementation.java
+++ b/tests/testbench/com/vaadin/tests/dd/CustomDDImplementation.java
@@ -38,14 +38,17 @@ public class CustomDDImplementation extends CustomComponent {
*
*/
class MyDropTarget extends AbstractComponent implements DropTarget {
+ @Override
public DropHandler getDropHandler() {
return new DropHandler() {
+ @Override
public void drop(DragAndDropEvent event) {
// Do something with data
return;
}
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptAll.get();
}
@@ -53,6 +56,7 @@ public class CustomDDImplementation extends CustomComponent {
};
}
+ @Override
public TargetDetails translateDropTargetDetails(
Map<String, Object> clientVariables) {
// If component has some special drop details that it needs to
diff --git a/tests/testbench/com/vaadin/tests/dd/DDTest1.java b/tests/testbench/com/vaadin/tests/dd/DDTest1.java
index 0d709844e9..2067d559d7 100644
--- a/tests/testbench/com/vaadin/tests/dd/DDTest1.java
+++ b/tests/testbench/com/vaadin/tests/dd/DDTest1.java
@@ -10,8 +10,8 @@ import com.vaadin.event.dd.DragAndDropEvent;
import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
import com.vaadin.event.dd.acceptcriteria.ServerSideCriterion;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.terminal.ExternalResource;
-import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.AbstractSelect.AcceptItem;
import com.vaadin.ui.Component;
@@ -62,6 +62,7 @@ public class DDTest1 extends TestBase {
*/
private static final long serialVersionUID = 1L;
+ @Override
public boolean accept(DragAndDropEvent dragEvent) {
Transferable transferable = dragEvent.getTransferable();
// System.out.println("Simulating 500ms processing...");
@@ -188,6 +189,7 @@ public class DDTest1 extends TestBase {
}
+ @Override
public void drop(DragAndDropEvent event) {
TreeTargetDetails details = (TreeTargetDetails) event
.getTargetDetails();
@@ -224,6 +226,7 @@ public class DDTest1 extends TestBase {
return;
}
+ @Override
public AcceptCriterion getAcceptCriterion() {
// TODO should actually check that source is same as target
return AcceptItem.ALL;
diff --git a/tests/testbench/com/vaadin/tests/dd/DDTest2.java b/tests/testbench/com/vaadin/tests/dd/DDTest2.java
index 0dda0d693c..272be53034 100644
--- a/tests/testbench/com/vaadin/tests/dd/DDTest2.java
+++ b/tests/testbench/com/vaadin/tests/dd/DDTest2.java
@@ -88,6 +88,7 @@ public class DDTest2 extends TestBase {
};
tree3.setDropHandler(new DropHandler() {
+ @Override
public void drop(DragAndDropEvent dropEvent) {
Transferable transferable = dropEvent.getTransferable();
@@ -110,6 +111,7 @@ public class DDTest2 extends TestBase {
}
+ @Override
public AcceptCriterion getAcceptCriterion() {
return crit;
}
@@ -136,6 +138,7 @@ public class DDTest2 extends TestBase {
DropHandler dropHandler = new DropHandler() {
+ @Override
public void drop(DragAndDropEvent event) {
/*
* We know transferrable is from table, so it is of type
@@ -177,6 +180,7 @@ public class DDTest2 extends TestBase {
}
+ @Override
public AcceptCriterion getAcceptCriterion() {
return and;
}
@@ -194,6 +198,7 @@ public class DDTest2 extends TestBase {
*/
dropHandler = new DropHandler() {
+ @Override
public void drop(DragAndDropEvent event) {
AbstractSelectTargetDetails details = (AbstractSelectTargetDetails) event
.getTargetDetails();
@@ -233,6 +238,7 @@ public class DDTest2 extends TestBase {
}
}
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptItem.ALL;
}
diff --git a/tests/testbench/com/vaadin/tests/dd/DDTest4.java b/tests/testbench/com/vaadin/tests/dd/DDTest4.java
index 654a30486a..c7f0c6960b 100644
--- a/tests/testbench/com/vaadin/tests/dd/DDTest4.java
+++ b/tests/testbench/com/vaadin/tests/dd/DDTest4.java
@@ -9,7 +9,7 @@ import com.vaadin.event.dd.DragAndDropEvent;
import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
import com.vaadin.event.dd.acceptcriteria.SourceIs;
-import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.Person;
import com.vaadin.tests.util.PersonContainer;
@@ -64,10 +64,12 @@ public class DDTest4 extends TestBase {
// accept only drags from this table
AcceptCriterion crit = new SourceIs(table);
+ @Override
public AcceptCriterion getAcceptCriterion() {
return crit;
}
+ @Override
public void drop(DragAndDropEvent dropEvent) {
AbstractSelectTargetDetails dropTargetData = (AbstractSelectTargetDetails) dropEvent
.getTargetDetails();
diff --git a/tests/testbench/com/vaadin/tests/dd/DDTest5.java b/tests/testbench/com/vaadin/tests/dd/DDTest5.java
index a5d97f4473..63d1e9e3c2 100644
--- a/tests/testbench/com/vaadin/tests/dd/DDTest5.java
+++ b/tests/testbench/com/vaadin/tests/dd/DDTest5.java
@@ -86,10 +86,12 @@ public class DDTest5 extends TestBase {
dh = new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptAll.get();
}
+ @Override
public void drop(DragAndDropEvent dropEvent) {
/*
diff --git a/tests/testbench/com/vaadin/tests/dd/DDTest6.java b/tests/testbench/com/vaadin/tests/dd/DDTest6.java
index c6c6689bcb..c6ac0b1859 100644
--- a/tests/testbench/com/vaadin/tests/dd/DDTest6.java
+++ b/tests/testbench/com/vaadin/tests/dd/DDTest6.java
@@ -25,12 +25,12 @@ import com.vaadin.event.dd.acceptcriteria.AcceptAll;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
import com.vaadin.event.dd.acceptcriteria.Not;
import com.vaadin.event.dd.acceptcriteria.SourceIsTarget;
+import com.vaadin.shared.MouseEventDetails;
import com.vaadin.terminal.Resource;
import com.vaadin.terminal.StreamResource;
import com.vaadin.terminal.StreamResource.StreamSource;
import com.vaadin.terminal.StreamVariable;
import com.vaadin.terminal.ThemeResource;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.TestUtils;
import com.vaadin.ui.AbsoluteLayout;
@@ -97,10 +97,12 @@ public class DDTest6 extends TestBase {
tree1.setDragMode(TreeDragMode.NODE);
DropHandler dropHandler = new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptAll.get();
}
+ @Override
public void drop(DragAndDropEvent dropEvent) {
File file = null;
Folder folder = null;
@@ -127,12 +129,14 @@ public class DDTest6 extends TestBase {
private Action[] actions = new Action[] { new Action("Remove") };
+ @Override
public void handleAction(Action action, Object sender, Object target) {
ContainerHierarchicalWrapper containerDataSource = (ContainerHierarchicalWrapper) tree1
.getContainerDataSource();
containerDataSource.removeItemRecursively(target);
}
+ @Override
public Action[] getActions(Object target, Object sender) {
return actions;
}
@@ -140,6 +144,7 @@ public class DDTest6 extends TestBase {
tree1.addActionHandler(actionHandler);
tree1.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Object value = event.getProperty().getValue();
if (value != null && !(value instanceof Folder)) {
@@ -215,6 +220,7 @@ public class DDTest6 extends TestBase {
public Resource getResource() {
StreamSource streamSource = new StreamSource() {
+ @Override
public InputStream getStream() {
if (bas != null) {
byte[] byteArray = bas.toByteArray();
@@ -355,6 +361,7 @@ public class DDTest6 extends TestBase {
}
+ @Override
@SuppressWarnings("static-access")
public void drop(DragAndDropEvent dropEvent) {
@@ -402,29 +409,36 @@ public class DDTest6 extends TestBase {
StreamVariable streamVariable = new StreamVariable() {
+ @Override
public OutputStream getOutputStream() {
return bas;
}
+ @Override
public boolean listenProgress() {
return false;
}
+ @Override
public void onProgress(StreamingProgressEvent event) {
}
+ @Override
public void streamingStarted(
StreamingStartEvent event) {
}
+ @Override
public void streamingFinished(
StreamingEndEvent event) {
}
+ @Override
public void streamingFailed(
StreamingErrorEvent event) {
}
+ @Override
public boolean isInterrupted() {
return false;
}
@@ -448,6 +462,7 @@ public class DDTest6 extends TestBase {
}
}
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptAll.get();
}
@@ -473,6 +488,7 @@ public class DDTest6 extends TestBase {
l.addComponent(new Label(name));
l.addListener(new LayoutClickListener() {
+ @Override
@SuppressWarnings("static-access")
public void layoutClick(LayoutClickEvent event) {
if (event.isDoubleClick()) {
@@ -506,10 +522,12 @@ public class DDTest6 extends TestBase {
setDropHandler(new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return new Not(SourceIsTarget.get());
}
+ @Override
public void drop(DragAndDropEvent dropEvent) {
File f = null;
diff --git a/tests/testbench/com/vaadin/tests/dd/DDTest7.java b/tests/testbench/com/vaadin/tests/dd/DDTest7.java
index 26521f5a57..f9be935b23 100644
--- a/tests/testbench/com/vaadin/tests/dd/DDTest7.java
+++ b/tests/testbench/com/vaadin/tests/dd/DDTest7.java
@@ -95,10 +95,12 @@ public class DDTest7 extends TestBase {
}
};
+ @Override
public AcceptCriterion getAcceptCriterion() {
return crit;
}
+ @Override
public void drop(DragAndDropEvent dropEvent) {
AbstractSelectTargetDetails dropTargetData = (AbstractSelectTargetDetails) dropEvent
.getTargetDetails();
diff --git a/tests/testbench/com/vaadin/tests/dd/DDTest8.java b/tests/testbench/com/vaadin/tests/dd/DDTest8.java
index fed889b5c1..ee7d8d9dc5 100644
--- a/tests/testbench/com/vaadin/tests/dd/DDTest8.java
+++ b/tests/testbench/com/vaadin/tests/dd/DDTest8.java
@@ -10,7 +10,7 @@ import com.vaadin.event.dd.DragAndDropEvent;
import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
import com.vaadin.event.dd.acceptcriteria.Or;
-import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.AbstractSelect;
import com.vaadin.ui.Tree;
@@ -113,6 +113,7 @@ public class DDTest8 extends TestBase {
}
+ @Override
public void drop(DragAndDropEvent event) {
TreeTargetDetails details = (TreeTargetDetails) event
.getTargetDetails();
@@ -149,6 +150,7 @@ public class DDTest8 extends TestBase {
return;
}
+ @Override
public AcceptCriterion getAcceptCriterion() {
return new Or(new AbstractSelect.TargetItemIs(t, "Foo", "Bar"),
new AbstractSelect.AcceptItem(t, "Foo"),
diff --git a/tests/testbench/com/vaadin/tests/dd/DragAndDropFiles.java b/tests/testbench/com/vaadin/tests/dd/DragAndDropFiles.java
index 4b4ec75f0e..bea00ae0ad 100644
--- a/tests/testbench/com/vaadin/tests/dd/DragAndDropFiles.java
+++ b/tests/testbench/com/vaadin/tests/dd/DragAndDropFiles.java
@@ -35,10 +35,12 @@ public class DragAndDropFiles extends TestBase {
dragAndDropWrapper.setSizeUndefined();
dragAndDropWrapper.setDropHandler(new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptAll.get();
}
+ @Override
public void drop(DragAndDropEvent event) {
WrapperTransferable transferable = (WrapperTransferable) event
.getTransferable();
@@ -59,19 +61,23 @@ public class DragAndDropFiles extends TestBase {
StreamVariable streamVariable = new StreamVariable() {
+ @Override
public OutputStream getOutputStream() {
return new NullOutputStream();
}
+ @Override
public boolean listenProgress() {
return true;
}
+ @Override
public void onProgress(StreamingProgressEvent event) {
System.err.println("Progress"
+ event.getBytesReceived());
}
+ @Override
public void streamingStarted(
StreamingStartEvent event) {
getMainWindow().showNotification(
@@ -79,6 +85,7 @@ public class DragAndDropFiles extends TestBase {
+ event.getFileName());
}
+ @Override
public void streamingFinished(
StreamingEndEvent event) {
getMainWindow().showNotification(
@@ -86,6 +93,7 @@ public class DragAndDropFiles extends TestBase {
+ event.getFileName());
}
+ @Override
public void streamingFailed(
StreamingErrorEvent event) {
getMainWindow().showNotification(
@@ -93,6 +101,7 @@ public class DragAndDropFiles extends TestBase {
+ event.getFileName());
}
+ @Override
public boolean isInterrupted() {
return false;
}
diff --git a/tests/testbench/com/vaadin/tests/dd/DragDropPane.java b/tests/testbench/com/vaadin/tests/dd/DragDropPane.java
index 1b7b7b997b..a94b676f2c 100644
--- a/tests/testbench/com/vaadin/tests/dd/DragDropPane.java
+++ b/tests/testbench/com/vaadin/tests/dd/DragDropPane.java
@@ -9,8 +9,8 @@ import com.vaadin.event.dd.DragAndDropEvent;
import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.acceptcriteria.AcceptAll;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
+import com.vaadin.shared.MouseEventDetails;
import com.vaadin.terminal.StreamVariable;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.ui.AbsoluteLayout;
import com.vaadin.ui.AbsoluteLayout.ComponentPosition;
import com.vaadin.ui.Component;
@@ -51,6 +51,7 @@ public class DragDropPane extends DragAndDropWrapper implements DropHandler {
this.crit = crit;
}
+ @Override
public void drop(DragAndDropEvent event) {
WrapperTargetDetails ed = (WrapperTargetDetails) event
@@ -135,28 +136,35 @@ public class DragDropPane extends DragAndDropWrapper implements DropHandler {
html5File.setStreamVariable(new StreamVariable() {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ @Override
public OutputStream getOutputStream() {
return byteArrayOutputStream;
}
+ @Override
public boolean listenProgress() {
return false;
}
+ @Override
public void onProgress(StreamingProgressEvent event) {
}
+ @Override
public void streamingStarted(StreamingStartEvent event) {
}
+ @Override
public void streamingFinished(StreamingEndEvent event) {
l.setValue((new String(byteArrayOutputStream
.toByteArray()).substring(0, 80) + "..."));
}
+ @Override
public void streamingFailed(StreamingErrorEvent event) {
}
+ @Override
public boolean isInterrupted() {
return false;
}
@@ -172,6 +180,7 @@ public class DragDropPane extends DragAndDropWrapper implements DropHandler {
return;
}
+ @Override
public AcceptCriterion getAcceptCriterion() {
return crit != null ? crit : AcceptAll.get();
}
diff --git a/tests/testbench/com/vaadin/tests/dd/HorizontalLayoutSortableWithWrappers.java b/tests/testbench/com/vaadin/tests/dd/HorizontalLayoutSortableWithWrappers.java
index aa51dd539d..fe33bce76b 100644
--- a/tests/testbench/com/vaadin/tests/dd/HorizontalLayoutSortableWithWrappers.java
+++ b/tests/testbench/com/vaadin/tests/dd/HorizontalLayoutSortableWithWrappers.java
@@ -54,10 +54,12 @@ public class HorizontalLayoutSortableWithWrappers extends Window {
AcceptCriterion crit = new And(new TargetDetailIs("horizontalLocation",
"LEFT"), new Not(SourceIsTarget.get()));
+ @Override
public AcceptCriterion getAcceptCriterion() {
return crit;
}
+ @Override
public void drop(DragAndDropEvent dropEvent) {
Transferable transferable = dropEvent.getTransferable();
if (transferable instanceof TransferableImpl) {
diff --git a/tests/testbench/com/vaadin/tests/dd/HorizontalSortableCssLayoutWithWrappers.java b/tests/testbench/com/vaadin/tests/dd/HorizontalSortableCssLayoutWithWrappers.java
index a77faffd2e..4e9e89add5 100644
--- a/tests/testbench/com/vaadin/tests/dd/HorizontalSortableCssLayoutWithWrappers.java
+++ b/tests/testbench/com/vaadin/tests/dd/HorizontalSortableCssLayoutWithWrappers.java
@@ -48,10 +48,12 @@ public class HorizontalSortableCssLayoutWithWrappers extends Window {
private DropHandler dh = new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptAll.get();
}
+ @Override
public void drop(DragAndDropEvent dropEvent) {
Transferable transferable = dropEvent.getTransferable();
if (transferable instanceof TransferableImpl) {
diff --git a/tests/testbench/com/vaadin/tests/dd/MyDragSourceConnector.java b/tests/testbench/com/vaadin/tests/dd/MyDragSourceConnector.java
index 2b01bad2cf..8a1921cd50 100644
--- a/tests/testbench/com/vaadin/tests/dd/MyDragSourceConnector.java
+++ b/tests/testbench/com/vaadin/tests/dd/MyDragSourceConnector.java
@@ -3,17 +3,18 @@
*/
package com.vaadin.tests.dd;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.tests.dd.CustomDDImplementation.MyDragSource;
@Connect(MyDragSource.class)
public class MyDragSourceConnector extends AbstractComponentConnector implements
Paintable {
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (!isRealUpdate(uidl)) {
return;
diff --git a/tests/testbench/com/vaadin/tests/dd/MyDropTargetConnector.java b/tests/testbench/com/vaadin/tests/dd/MyDropTargetConnector.java
index 5671efa236..6f7dc820ee 100644
--- a/tests/testbench/com/vaadin/tests/dd/MyDropTargetConnector.java
+++ b/tests/testbench/com/vaadin/tests/dd/MyDropTargetConnector.java
@@ -3,17 +3,18 @@
*/
package com.vaadin.tests.dd;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.tests.dd.CustomDDImplementation.MyDropTarget;
@Connect(MyDropTarget.class)
public class MyDropTargetConnector extends AbstractComponentConnector implements
Paintable {
+ @Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (!isRealUpdate(uidl)) {
return;
diff --git a/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSource.java b/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSource.java
index 74774f09ab..abe8553267 100644
--- a/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSource.java
+++ b/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSource.java
@@ -26,10 +26,12 @@ public class NotPaintedAcceptSource extends TestBase {
source2.setDragMode(TableDragMode.ROW);
target.setDropHandler(new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return new SourceIs(source1, source2);
}
+ @Override
public void drop(DragAndDropEvent event) {
TableTransferable transferable = (TableTransferable) event
.getTransferable();
@@ -55,6 +57,7 @@ public class NotPaintedAcceptSource extends TestBase {
addComponent(horizontalLayout);
addComponent(new Button("Swap sources", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (source1.getParent() != null) {
horizontalLayout.replaceComponent(source1, source2);
diff --git a/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSourceInTabSheet.java b/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSourceInTabSheet.java
index ac92193764..e19bbaf2c5 100644
--- a/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSourceInTabSheet.java
+++ b/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSourceInTabSheet.java
@@ -24,10 +24,12 @@ public class NotPaintedAcceptSourceInTabSheet extends TestBase {
source2.setDragMode(TableDragMode.ROW);
target.setDropHandler(new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return new SourceIs(source1, source2);
}
+ @Override
public void drop(DragAndDropEvent event) {
TableTransferable transferable = (TableTransferable) event
.getTransferable();
diff --git a/tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.java b/tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.java
index 093e12f84a..951b9a4a57 100644
--- a/tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.java
+++ b/tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.java
@@ -3,7 +3,7 @@ package com.vaadin.tests.dd;
import com.vaadin.event.dd.DragAndDropEvent;
import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
-import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.Log;
import com.vaadin.ui.AbstractSelect.AbstractSelectTargetDetails;
@@ -28,10 +28,12 @@ public class ScrolledDropTarget extends TestBase {
table.setDragMode(TableDragMode.ROW);
table.setDropHandler(new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return VerticalLocationIs.MIDDLE;
}
+ @Override
public void drop(DragAndDropEvent event) {
AbstractSelectTargetDetails targetDetails = (AbstractSelectTargetDetails) event
.getTargetDetails();
@@ -44,6 +46,7 @@ public class ScrolledDropTarget extends TestBase {
addComponent(table);
addComponent(new Button("Scroll body", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().executeJavaScript(
"document.body.style.overflow = 'auto';"
diff --git a/tests/testbench/com/vaadin/tests/dd/StartHtml5Drag.java b/tests/testbench/com/vaadin/tests/dd/StartHtml5Drag.java
index 2cdef65d31..1a01564220 100644
--- a/tests/testbench/com/vaadin/tests/dd/StartHtml5Drag.java
+++ b/tests/testbench/com/vaadin/tests/dd/StartHtml5Drag.java
@@ -27,10 +27,12 @@ public class StartHtml5Drag extends TestBase {
"over here"));
dropTarget.setDropHandler(new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return AcceptAll.get();
}
+ @Override
public void drop(DragAndDropEvent event) {
getWindows()
.iterator()
diff --git a/tests/testbench/com/vaadin/tests/dd/TreeDragStart.java b/tests/testbench/com/vaadin/tests/dd/TreeDragStart.java
index 4ef7023aa6..27ac8b6586 100644
--- a/tests/testbench/com/vaadin/tests/dd/TreeDragStart.java
+++ b/tests/testbench/com/vaadin/tests/dd/TreeDragStart.java
@@ -17,7 +17,7 @@ import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
import com.vaadin.event.dd.acceptcriteria.Not;
import com.vaadin.event.dd.acceptcriteria.Or;
-import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
+import com.vaadin.shared.ui.dd.VerticalDropLocation;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.AbstractSelect.AbstractSelectTargetDetails;
import com.vaadin.ui.AbstractSelect.VerticalLocationIs;
@@ -38,6 +38,7 @@ public class TreeDragStart extends TestBase {
checkBox.setImmediate(true);
checkBox.setValue(true);
checkBox.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
tree.setEnabled(!tree.isEnabled());
}
@@ -47,6 +48,7 @@ public class TreeDragStart extends TestBase {
checkBox.setImmediate(true);
checkBox.setValue(true);
checkBox.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if ((Boolean) ((CheckBox) event.getProperty()).getValue()) {
tree.setDragMode(TreeDragMode.NODE);
@@ -75,6 +77,7 @@ public class TreeDragStart extends TestBase {
// Allow the tree to receive drag drops and handle them
tree.setDropHandler(new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
// Accept drops in the middle of container items
// and below and above all items.
@@ -82,6 +85,7 @@ public class TreeDragStart extends TestBase {
VerticalLocationIs.MIDDLE));
}
+ @Override
public void drop(DragAndDropEvent event) {
// Wrapper for the object that is dragged
DataBoundTransferable t = (DataBoundTransferable) event
@@ -152,10 +156,12 @@ public class TreeDragStart extends TestBase {
// Allow the table to receive drops and handle them
table.setDropHandler(new DropHandler() {
+ @Override
public AcceptCriterion getAcceptCriterion() {
return new Not(VerticalLocationIs.MIDDLE);
}
+ @Override
public void drop(DragAndDropEvent event) {
// Wrapper for the object that is dragged
DataBoundTransferable t = (DataBoundTransferable) event
diff --git a/tests/testbench/com/vaadin/tests/dd/VMyDragSource.java b/tests/testbench/com/vaadin/tests/dd/VMyDragSource.java
index 7e91d2b9aa..e6c7078e8e 100644
--- a/tests/testbench/com/vaadin/tests/dd/VMyDragSource.java
+++ b/tests/testbench/com/vaadin/tests/dd/VMyDragSource.java
@@ -43,6 +43,7 @@ public class VMyDragSource extends Composite implements MouseDownHandler,
* mouse is moved 5 pixels with left mouse key down.
*/
+ @Override
public void onMouseDown(MouseDownEvent event) {
if (event.getNativeButton() == NativeEvent.BUTTON_LEFT) {
mouseDown = true;
@@ -50,6 +51,7 @@ public class VMyDragSource extends Composite implements MouseDownHandler,
}
}
+ @Override
public void onMouseMove(MouseMoveEvent event) {
if (mouseDown) {
int deltaX = Math.abs(mDownEvent.getClientX() - event.getClientX());
@@ -74,6 +76,7 @@ public class VMyDragSource extends Composite implements MouseDownHandler,
}
+ @Override
public void onMouseOut(MouseOutEvent event) {
mouseDown = false;
mDownEvent = null;
diff --git a/tests/testbench/com/vaadin/tests/dd/VMyDropTarget.java b/tests/testbench/com/vaadin/tests/dd/VMyDropTarget.java
index 582c951251..627f0554f6 100644
--- a/tests/testbench/com/vaadin/tests/dd/VMyDropTarget.java
+++ b/tests/testbench/com/vaadin/tests/dd/VMyDropTarget.java
@@ -12,33 +12,40 @@ public class VMyDropTarget extends Composite implements VHasDropHandler,
ApplicationConnection client;
+ @Override
public void dragEnter(VDragEvent drag) {
}
+ @Override
public void dragLeave(VDragEvent drag) {
// TODO Auto-generated method stub
}
+ @Override
public void dragOver(VDragEvent currentDrag) {
// TODO Auto-generated method stub
}
+ @Override
public boolean drop(VDragEvent drag) {
// TODO Auto-generated method stub
// return true to tell DDManager do server visit
return false;
}
+ @Override
public VDropHandler getDropHandler() {
// Drophandler implemented by widget itself
return this;
}
+ @Override
public ComponentConnector getConnector() {
// TODO Auto-generated method stub
return null;
}
+ @Override
public ApplicationConnection getApplicationConnection() {
return client;
}
diff --git a/tests/testbench/com/vaadin/tests/extensions/BasicExtension.java b/tests/testbench/com/vaadin/tests/extensions/BasicExtension.java
new file mode 100644
index 0000000000..551d24735a
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/extensions/BasicExtension.java
@@ -0,0 +1,15 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.extensions;
+
+import com.vaadin.terminal.AbstractClientConnector;
+import com.vaadin.terminal.AbstractExtension;
+
+public class BasicExtension extends AbstractExtension {
+ @Override
+ public void extend(AbstractClientConnector target) {
+ super.extend(target);
+ }
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/extensions/BasicExtensionTest.html b/tests/testbench/com/vaadin/tests/extensions/BasicExtensionTest.html
new file mode 100644
index 0000000000..6e8a0bf97f
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/extensions/BasicExtensionTest.html
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="http://192.168.2.41:8888/" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.extensions.BasicExtensionTest?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//div[1]</td>
+ <td>BasicExtensionTestConnector extending LabelConnector</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//div[2]</td>
+ <td>BasicExtensionTestConnector extending RootConnector</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/extensions/BasicExtensionTest.java b/tests/testbench/com/vaadin/tests/extensions/BasicExtensionTest.java
new file mode 100644
index 0000000000..02bdadca34
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/extensions/BasicExtensionTest.java
@@ -0,0 +1,34 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.extensions;
+
+import com.vaadin.annotations.Widgetset;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.tests.components.AbstractTestRoot;
+import com.vaadin.ui.Label;
+
+@Widgetset("com.vaadin.tests.widgetset.TestingWidgetSet")
+public class BasicExtensionTest extends AbstractTestRoot {
+
+ @Override
+ protected void setup(WrappedRequest request) {
+ Label label = new Label();
+ addComponent(label);
+
+ new BasicExtension().extend(this);
+ new BasicExtension().extend(label);
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Simple test for extending components";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return Integer.valueOf(6690);
+ }
+
+}
diff --git a/src/com/vaadin/ui/HelloWorldExtension.java b/tests/testbench/com/vaadin/tests/extensions/HelloWorldExtension.java
index e705954f2e..cb26cd7a83 100644
--- a/src/com/vaadin/ui/HelloWorldExtension.java
+++ b/tests/testbench/com/vaadin/tests/extensions/HelloWorldExtension.java
@@ -1,17 +1,19 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.ui;
+package com.vaadin.tests.extensions;
import com.vaadin.terminal.AbstractExtension;
-import com.vaadin.terminal.gwt.client.ui.helloworldfeature.GreetAgainRpc;
-import com.vaadin.terminal.gwt.client.ui.helloworldfeature.HelloWorldRpc;
-import com.vaadin.terminal.gwt.client.ui.helloworldfeature.HelloWorldState;
+import com.vaadin.tests.widgetset.client.helloworldfeature.GreetAgainRpc;
+import com.vaadin.tests.widgetset.client.helloworldfeature.HelloWorldRpc;
+import com.vaadin.tests.widgetset.client.helloworldfeature.HelloWorldState;
+import com.vaadin.ui.Notification;
public class HelloWorldExtension extends AbstractExtension {
public HelloWorldExtension() {
registerRpc(new HelloWorldRpc() {
+ @Override
public void onMessageSent(String message) {
Notification.show(message);
}
diff --git a/tests/testbench/com/vaadin/tests/extensions/HelloWorldExtensionTest.java b/tests/testbench/com/vaadin/tests/extensions/HelloWorldExtensionTest.java
index b56e05b2a0..001e913734 100644
--- a/tests/testbench/com/vaadin/tests/extensions/HelloWorldExtensionTest.java
+++ b/tests/testbench/com/vaadin/tests/extensions/HelloWorldExtensionTest.java
@@ -3,12 +3,13 @@
*/
package com.vaadin.tests.extensions;
+import com.vaadin.annotations.Widgetset;
import com.vaadin.terminal.WrappedRequest;
import com.vaadin.tests.components.AbstractTestRoot;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.HelloWorldExtension;
+@Widgetset("com.vaadin.tests.widgetset.TestingWidgetSet")
public class HelloWorldExtensionTest extends AbstractTestRoot {
@Override
@@ -18,6 +19,7 @@ public class HelloWorldExtensionTest extends AbstractTestRoot {
addExtension(extension);
addComponent(new Button("Greet again", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
extension.greetAgain();
}
diff --git a/tests/testbench/com/vaadin/tests/extensions/JavascriptManagerTest.java b/tests/testbench/com/vaadin/tests/extensions/JavascriptManagerTest.java
index 65f0735ab5..a16f131475 100644
--- a/tests/testbench/com/vaadin/tests/extensions/JavascriptManagerTest.java
+++ b/tests/testbench/com/vaadin/tests/extensions/JavascriptManagerTest.java
@@ -22,6 +22,7 @@ public class JavascriptManagerTest extends AbstractTestRoot {
addComponent(log);
final JavaScript js = JavaScript.getCurrent();
js.addCallback("testing.doTest", new JavaScriptCallback() {
+ @Override
public void call(JSONArray arguments) throws JSONException {
log.log("Got " + arguments.length() + " arguments");
log.log("Argument 1 as a number: " + arguments.getInt(0));
diff --git a/tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java b/tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java
index bbfe3f0f46..cb05bde493 100644
--- a/tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java
+++ b/tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java
@@ -4,21 +4,21 @@
package com.vaadin.tests.extensions;
-import com.vaadin.annotations.LoadScripts;
+import com.vaadin.annotations.JavaScript;
+import com.vaadin.annotations.StyleSheet;
import com.vaadin.external.json.JSONArray;
import com.vaadin.external.json.JSONException;
+import com.vaadin.shared.JavaScriptExtensionState;
+import com.vaadin.shared.communication.ClientRpc;
+import com.vaadin.shared.communication.ServerRpc;
import com.vaadin.terminal.AbstractJavaScriptExtension;
import com.vaadin.terminal.WrappedRequest;
-import com.vaadin.terminal.gwt.client.JavaScriptExtensionState;
-import com.vaadin.terminal.gwt.client.communication.ClientRpc;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
import com.vaadin.tests.components.AbstractTestRoot;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.JavaScriptCallback;
import com.vaadin.ui.Notification;
-@LoadScripts({ "/statictestfiles/jsextension.js" })
public class SimpleJavaScriptExtensionTest extends AbstractTestRoot {
public static class SimpleJavaScriptExtensionState extends
@@ -44,16 +44,20 @@ public class SimpleJavaScriptExtensionTest extends AbstractTestRoot {
public void greet(String message);
}
+ @JavaScript("/statictestfiles/jsextension.js")
+ @StyleSheet("/VAADIN/external1.css")
public static class SimpleJavascriptExtension extends
AbstractJavaScriptExtension {
public SimpleJavascriptExtension() {
registerRpc(new SimpleJavaScriptExtensionServerRpc() {
+ @Override
public void greet(String message) {
Notification.show(getState().getPrefix() + message);
}
});
registerCallback("greetToServer", new JavaScriptCallback() {
+ @Override
public void call(JSONArray arguments) throws JSONException {
Notification.show(getState().getPrefix()
+ arguments.getString(0));
@@ -88,12 +92,14 @@ public class SimpleJavaScriptExtensionTest extends AbstractTestRoot {
addExtension(simpleJavascriptExtension);
addComponent(new Button("Send rpc greeting",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
simpleJavascriptExtension.greetRpc("Rpc greeting");
}
}));
addComponent(new Button("Send callback greeting",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
simpleJavascriptExtension
.greetCallback("Callback greeting");
diff --git a/tests/testbench/com/vaadin/tests/fieldgroup/AbstractBeanFieldGroupTest.java b/tests/testbench/com/vaadin/tests/fieldgroup/AbstractBeanFieldGroupTest.java
index b73a29efea..894944d186 100644
--- a/tests/testbench/com/vaadin/tests/fieldgroup/AbstractBeanFieldGroupTest.java
+++ b/tests/testbench/com/vaadin/tests/fieldgroup/AbstractBeanFieldGroupTest.java
@@ -27,6 +27,7 @@ public abstract class AbstractBeanFieldGroupTest extends TestBase {
if (discardButton == null) {
discardButton = new Button("Discard", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getFieldBinder().discard();
log.log("Discarded changes");
@@ -42,6 +43,7 @@ public abstract class AbstractBeanFieldGroupTest extends TestBase {
showBeanButton = new Button("Show bean values",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log(getFieldBinder().getItemDataSource()
.getBean().toString());
@@ -57,6 +59,7 @@ public abstract class AbstractBeanFieldGroupTest extends TestBase {
commitButton = new Button("Commit");
commitButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
String msg = "Commit succesful";
try {
diff --git a/tests/testbench/com/vaadin/tests/fieldgroup/BasicPersonForm.java b/tests/testbench/com/vaadin/tests/fieldgroup/BasicPersonForm.java
index c86cb6f5e8..b399857b3b 100644
--- a/tests/testbench/com/vaadin/tests/fieldgroup/BasicPersonForm.java
+++ b/tests/testbench/com/vaadin/tests/fieldgroup/BasicPersonForm.java
@@ -84,6 +84,7 @@ public class BasicPersonForm extends TestBase {
final FieldGroup fieldGroup = new BeanFieldGroup<Person>(Person.class);
fieldGroup.addCommitHandler(new CommitHandler() {
+ @Override
public void preCommit(CommitEvent commitEvent)
throws CommitException {
if (configuration.preCommitFails) {
@@ -95,6 +96,7 @@ public class BasicPersonForm extends TestBase {
}
+ @Override
public void postCommit(CommitEvent commitEvent)
throws CommitException {
if (configuration.postCommitFails) {
@@ -118,6 +120,7 @@ public class BasicPersonForm extends TestBase {
Button commitButton = new Button("Commit", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
String msg = "Commit succesful";
try {
@@ -133,6 +136,7 @@ public class BasicPersonForm extends TestBase {
Button discardButton = new Button("Discard",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
fieldGroup.discard();
log.log("Discarded changes");
@@ -142,6 +146,7 @@ public class BasicPersonForm extends TestBase {
Button showBean = new Button("Show bean values",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log(getPerson(fieldGroup).toString());
diff --git a/tests/testbench/com/vaadin/tests/fieldgroup/FieldBinderWithBeanValidation.java b/tests/testbench/com/vaadin/tests/fieldgroup/FieldBinderWithBeanValidation.java
index 6c6cd8024b..4f83f5d0fd 100644
--- a/tests/testbench/com/vaadin/tests/fieldgroup/FieldBinderWithBeanValidation.java
+++ b/tests/testbench/com/vaadin/tests/fieldgroup/FieldBinderWithBeanValidation.java
@@ -45,6 +45,7 @@ public class FieldBinderWithBeanValidation extends TestBase {
Button commitButton = new Button("Commit", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
String msg = "Commit succesful";
try {
@@ -60,6 +61,7 @@ public class FieldBinderWithBeanValidation extends TestBase {
Button discardButton = new Button("Discard",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
fieldGroup.discard();
log.log("Discarded changes");
@@ -69,6 +71,7 @@ public class FieldBinderWithBeanValidation extends TestBase {
Button showBean = new Button("Show bean values",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
log.log(getPerson(fieldGroup).toString());
diff --git a/tests/testbench/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html b/tests/testbench/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html
index 078aede82f..b7c40b4d9e 100644
--- a/tests/testbench/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html
+++ b/tests/testbench/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html
@@ -47,6 +47,12 @@
<td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/VVerticalLayout[0]/domChild[5]/domChild[0]/domChild[1]</td>
<td>v-errorindicator</td>
</tr>
+<!--Hide tooltip-->
+<tr>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/VVerticalLayout[0]</td>
+ <td></td>
+</tr>
<!--10 -> age-->
<tr>
<td>enterCharacter</td>
diff --git a/tests/testbench/com/vaadin/tests/integration/EmbedSizeTest.java b/tests/testbench/com/vaadin/tests/integration/EmbedSizeTest.java
index 1b6d384e70..f1345bca13 100644
--- a/tests/testbench/com/vaadin/tests/integration/EmbedSizeTest.java
+++ b/tests/testbench/com/vaadin/tests/integration/EmbedSizeTest.java
@@ -22,6 +22,7 @@ public class EmbedSizeTest extends TestBase {
CheckBox lazyCheckBox = new CheckBox("Lazy resize");
lazyCheckBox.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
CheckBox cb = (CheckBox) event.getProperty();
Boolean resizeLazy = cb.getValue();
@@ -35,6 +36,7 @@ public class EmbedSizeTest extends TestBase {
addComponent(log);
mainWindow.addListener(new Page.BrowserWindowResizeListener() {
+ @Override
public void browserWindowResized(BrowserWindowResizeEvent event) {
log.log("Resize event: " + event.getWidth() + " x "
+ event.getHeight());
diff --git a/tests/testbench/com/vaadin/tests/integration/IntegrationTestApplication.java b/tests/testbench/com/vaadin/tests/integration/IntegrationTestApplication.java
index b2001bdd7e..c464409153 100644
--- a/tests/testbench/com/vaadin/tests/integration/IntegrationTestApplication.java
+++ b/tests/testbench/com/vaadin/tests/integration/IntegrationTestApplication.java
@@ -37,6 +37,7 @@ public class IntegrationTestApplication extends Application.LegacyApplication {
final Label selectedLabel = new Label();
table.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
selectedLabel.setValue(table.getValue());
}
diff --git a/tests/testbench/com/vaadin/tests/integration/JSR286PortletRoot.java b/tests/testbench/com/vaadin/tests/integration/JSR286PortletApplication.java
index b4de4fd3da..3374342947 100644
--- a/tests/testbench/com/vaadin/tests/integration/JSR286PortletRoot.java
+++ b/tests/testbench/com/vaadin/tests/integration/JSR286PortletApplication.java
@@ -18,9 +18,10 @@ import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;
import javax.portlet.WindowState;
+import com.vaadin.Application;
+import com.vaadin.annotations.StyleSheet;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.ExternalResource;
-import com.vaadin.terminal.WrappedRequest;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.terminal.gwt.server.PortletApplicationContext2;
import com.vaadin.terminal.gwt.server.PortletApplicationContext2.PortletListener;
import com.vaadin.ui.Embedded;
@@ -28,16 +29,22 @@ import com.vaadin.ui.Label;
import com.vaadin.ui.Link;
import com.vaadin.ui.Notification;
import com.vaadin.ui.Root;
+import com.vaadin.ui.Root.LegacyWindow;
import com.vaadin.ui.TextField;
import com.vaadin.ui.Upload;
import com.vaadin.ui.Upload.Receiver;
-import com.vaadin.ui.VerticalLayout;
/**
* Adapted from old PortletDemo to support integration testing.
*/
-public class JSR286PortletRoot extends Root {
+public class JSR286PortletApplication extends Application.LegacyApplication {
+ @StyleSheet("PortletConnectorResource.css")
+ public final class LegacyWindowWithStylesheet extends LegacyWindow {
+
+ }
+
+ LegacyWindow main = new LegacyWindowWithStylesheet();
TextField tf = new TextField("Some value");
Label userInfo = new Label();
Link portletEdit = new Link();
@@ -45,19 +52,17 @@ public class JSR286PortletRoot extends Root {
Link someAction = null;
@Override
- protected void init(WrappedRequest request) {
- VerticalLayout main = new VerticalLayout();
- tf.setDebugId("tf");
- userInfo.setDebugId("userInfo");
- portletEdit.setDebugId("portletEdit");
- portletMax.setDebugId("portletMax");
+ public void init() {
+ setMainWindow(main);
+
Embedded appResourceTest = new Embedded(
"Test of ApplicationResources with full path",
- new FlagSeResource(getApplication()));
+ new FlagSeResource(this));
main.addComponent(appResourceTest);
Embedded specialNameResourceTest = new Embedded(
"Test ApplicationResources with special names",
- new SpecialNameResource(getApplication()));
+ new SpecialNameResource(this));
+ specialNameResourceTest.addStyleName("hugeBorder");
main.addComponent(specialNameResourceTest);
userInfo.setCaption("User info");
@@ -75,18 +80,18 @@ public class JSR286PortletRoot extends Root {
Upload upload = new Upload("Upload a file", new Receiver() {
+ @Override
public OutputStream receiveUpload(String filename, String mimeType) {
return new ByteArrayOutputStream();
}
});
main.addComponent(upload);
- if (getApplication().getContext() instanceof PortletApplicationContext2) {
- PortletApplicationContext2 ctx = (PortletApplicationContext2) getApplication()
- .getContext();
- ctx.addPortletListener(getApplication(), new DemoPortletListener());
+ if (getContext() instanceof PortletApplicationContext2) {
+ PortletApplicationContext2 ctx = (PortletApplicationContext2) getContext();
+ ctx.addPortletListener(this, new DemoPortletListener());
} else {
- Notification.show("Not inited via Portal!",
+ getMainWindow().showNotification("Not inited via Portal!",
Notification.TYPE_ERROR_MESSAGE);
}
@@ -94,11 +99,13 @@ public class JSR286PortletRoot extends Root {
private class DemoPortletListener implements PortletListener {
+ @Override
public void handleActionRequest(ActionRequest request,
ActionResponse response, Root window) {
- getContent().addComponent(new Label("Action received"));
+ main.addComponent(new Label("Action received"));
}
+ @Override
public void handleRenderRequest(RenderRequest request,
RenderResponse response, Root window) {
// Portlet up-and-running, enable stuff
@@ -109,10 +116,11 @@ public class JSR286PortletRoot extends Root {
tf.setEnabled((request.getPortletMode() == PortletMode.EDIT));
// Show notification about current mode and state
- new Notification("Portlet status", "Mode: "
- + request.getPortletMode() + " State: "
- + request.getWindowState(),
- Notification.TYPE_WARNING_MESSAGE).show(getPage());
+ getMainWindow().showNotification(
+ "Portlet status",
+ "Mode: " + request.getPortletMode() + " State: "
+ + request.getWindowState(),
+ Notification.TYPE_WARNING_MESSAGE);
// Display current user info
Map<?, ?> uinfo = (Map<?, ?>) request
@@ -162,9 +170,7 @@ public class JSR286PortletRoot extends Root {
try {
someAction = new Link("An action", new ExternalResource(
url.toString()));
- someAction.setDebugId("someAction");
-
- addComponent(someAction);
+ main.addComponent(someAction);
} catch (Exception e) {
// Oops
System.err.println("Could not create someAction: " + e);
@@ -173,11 +179,13 @@ public class JSR286PortletRoot extends Root {
}
}
+ @Override
public void handleEventRequest(EventRequest request,
EventResponse response, Root window) {
// events not used by this test
}
+ @Override
public void handleResourceRequest(ResourceRequest request,
ResourceResponse response, Root window) {
// nothing special to do here
diff --git a/tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java b/tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java
index 9397206f1e..1ea800821b 100644
--- a/tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java
+++ b/tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java
@@ -8,11 +8,11 @@ import com.vaadin.Application;
import com.vaadin.data.Property;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.event.Action;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.ExternalResource;
import com.vaadin.terminal.Page;
import com.vaadin.terminal.Resource;
import com.vaadin.terminal.ThemeResource;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.AbstractComponent;
import com.vaadin.ui.AbstractSelect;
import com.vaadin.ui.Accordion;
@@ -71,10 +71,12 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
private Action.Handler handler = new Action.Handler() {
+ @Override
public void handleAction(Action action, Object sender, Object target) {
// NOP
}
+ @Override
public Action[] getActions(Object target, Object sender) {
return new Action[] {
new Action("Open"),
@@ -318,6 +320,7 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
closable.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Iterator<Component> it = ts.getComponentIterator();
for (; it.hasNext();) {
@@ -415,6 +418,7 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
ContentMode.XHTML));
tabs.addListener(new TabSheet.SelectedTabChangeListener() {
+ @Override
public void selectedTabChange(SelectedTabChangeEvent event) {
if (event.getTabSheet().getSelectedTab() == l) {
getMainWindow().addWindow(w);
@@ -472,6 +476,7 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
lockCheckBox.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
sp.setLocked((Boolean) event.getProperty().getValue());
sp2.setLocked((Boolean) event.getProperty().getValue());
@@ -595,18 +600,22 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
l.addComponent(new Label("Humanized", ContentMode.XHTML));
Button show = new Button("Humanized Notification",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
- new Notification(title.getValue(), message.getValue())
- .show(Page.getCurrent());
+ Notification notification = new Notification(
+ title.getValue(), message.getValue());
+ notification.setHtmlContentAllowed(true);
+ notification.show(Page.getCurrent());
}
});
l.addComponent(show);
l.addComponent(new Label("Warning", ContentMode.XHTML));
show = new Button("Warning Notification", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
new Notification(title.getValue(), message.getValue(),
- Notification.TYPE_WARNING_MESSAGE).show(Page
+ Notification.TYPE_WARNING_MESSAGE, true).show(Page
.getCurrent());
}
@@ -615,9 +624,11 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
l.addComponent(new Label("Error", ContentMode.XHTML));
show = new Button("Error Notification", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
new Notification(title.getValue(), message.getValue(),
- Notification.TYPE_ERROR_MESSAGE).show(Page.getCurrent());
+ Notification.TYPE_ERROR_MESSAGE, true).show(Page
+ .getCurrent());
}
});
@@ -625,9 +636,10 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
l.addComponent(new Label("Tray", ContentMode.XHTML));
show = new Button("Tray Notification", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
new Notification(title.getValue(), message.getValue(),
- Notification.TYPE_TRAY_NOTIFICATION).show(Page
+ Notification.TYPE_TRAY_NOTIFICATION, true).show(Page
.getCurrent());
}
@@ -691,6 +703,7 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
final MenuBar.MenuItem find = edit.addItem("Find/Replace", null);
find.addItem("Google Search", new Command() {
+ @Override
public void menuSelected(MenuItem selectedItem) {
getMainWindow().open(
new ExternalResource("http://www.google.com"));
diff --git a/tests/testbench/com/vaadin/tests/integration/PortletConnectorResource.css b/tests/testbench/com/vaadin/tests/integration/PortletConnectorResource.css
new file mode 100644
index 0000000000..7338e4708a
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/integration/PortletConnectorResource.css
@@ -0,0 +1,3 @@
+.hugeBorder {
+ border: 10px solid green;
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/layouts/AbsoluteLayoutAddRemove.java b/tests/testbench/com/vaadin/tests/layouts/AbsoluteLayoutAddRemove.java
index 6193fd238e..b2cadebd02 100644
--- a/tests/testbench/com/vaadin/tests/layouts/AbsoluteLayoutAddRemove.java
+++ b/tests/testbench/com/vaadin/tests/layouts/AbsoluteLayoutAddRemove.java
@@ -31,6 +31,7 @@ public class AbsoluteLayoutAddRemove extends TestBase {
final Button b = new Button("Add", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (l.getParent() == null) {
al.addComponent(l);
diff --git a/tests/testbench/com/vaadin/tests/layouts/CaptionsInLayouts.java b/tests/testbench/com/vaadin/tests/layouts/CaptionsInLayouts.java
index 4388639893..77b8e249ba 100644
--- a/tests/testbench/com/vaadin/tests/layouts/CaptionsInLayouts.java
+++ b/tests/testbench/com/vaadin/tests/layouts/CaptionsInLayouts.java
@@ -61,6 +61,7 @@ public class CaptionsInLayouts extends TestBase {
Button b = new Button("Add caption text");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
prependCaptions("a");
}
@@ -81,6 +82,7 @@ public class CaptionsInLayouts extends TestBase {
requiredToggle.setCaption("Required");
requiredToggle.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
setRequired((Boolean) event.getProperty().getValue());
}
@@ -94,6 +96,7 @@ public class CaptionsInLayouts extends TestBase {
iconToggle.setCaption("Icons");
iconToggle.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
setIcon((Boolean) event.getProperty().getValue());
}
@@ -125,6 +128,7 @@ public class CaptionsInLayouts extends TestBase {
errorToggle.setCaption("Error");
errorToggle.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
setError((Boolean) event.getProperty().getValue());
}
@@ -250,6 +254,7 @@ public class CaptionsInLayouts extends TestBase {
layoutSelect.setImmediate(true);
layoutSelect.addListener(new ValueChangeListener() {
+ @Override
@SuppressWarnings("unchecked")
public void valueChange(ValueChangeEvent event) {
Item i = layoutSelect.getItem(event.getProperty().getValue());
diff --git a/tests/testbench/com/vaadin/tests/layouts/ComplexGLColumnExpansionWithColSpan.java b/tests/testbench/com/vaadin/tests/layouts/ComplexGLColumnExpansionWithColSpan.java
index f1e05b6fee..51f9e2d88e 100644
--- a/tests/testbench/com/vaadin/tests/layouts/ComplexGLColumnExpansionWithColSpan.java
+++ b/tests/testbench/com/vaadin/tests/layouts/ComplexGLColumnExpansionWithColSpan.java
@@ -45,6 +45,7 @@ public class ComplexGLColumnExpansionWithColSpan extends AbstractTestCase {
b1.setWidth(270, Sizeable.UNITS_PIXELS);
b2.setWidth(270, Sizeable.UNITS_PIXELS);
b1.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
cols++;
gl.setColumns(cols);
@@ -70,6 +71,7 @@ public class ComplexGLColumnExpansionWithColSpan extends AbstractTestCase {
Button restart = new Button("restart");
mainLayout.addComponent(restart);
restart.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
mainLayout.getRoot().getApplication().close();
}
diff --git a/tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java b/tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java
index 0e2d570101..792bcb1aab 100644
--- a/tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java
+++ b/tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java
@@ -46,6 +46,7 @@ public class CssLayoutCustomCss extends TestBase implements ClickListener {
cb.setImmediate(true);
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
layout.setMargin(cb.getValue());
}
@@ -73,6 +74,7 @@ public class CssLayoutCustomCss extends TestBase implements ClickListener {
return null;
}
+ @Override
public void buttonClick(ClickEvent event) {
Button b = event.getButton();
if (b.getCaption().contains("not ")) {
diff --git a/tests/testbench/com/vaadin/tests/layouts/CssLayoutRemoveComponent.java b/tests/testbench/com/vaadin/tests/layouts/CssLayoutRemoveComponent.java
index ef07b2c5f5..093dc782fb 100644
--- a/tests/testbench/com/vaadin/tests/layouts/CssLayoutRemoveComponent.java
+++ b/tests/testbench/com/vaadin/tests/layouts/CssLayoutRemoveComponent.java
@@ -16,6 +16,7 @@ public class CssLayoutRemoveComponent extends TestBase {
final TextField tf = new TextField("Caption1");
Button b = new Button("Remove field ", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
layout.removeComponent(tf);
}
diff --git a/tests/testbench/com/vaadin/tests/layouts/CssLayoutRemoveComponentWithCaption.java b/tests/testbench/com/vaadin/tests/layouts/CssLayoutRemoveComponentWithCaption.java
index 4f081af347..df4fc8615d 100644
--- a/tests/testbench/com/vaadin/tests/layouts/CssLayoutRemoveComponentWithCaption.java
+++ b/tests/testbench/com/vaadin/tests/layouts/CssLayoutRemoveComponentWithCaption.java
@@ -15,6 +15,7 @@ public class CssLayoutRemoveComponentWithCaption extends TestBase {
final TextField tf = new TextField("Caption");
Button b = new Button("Remove field and add new", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
layout.removeComponent(tf);
addComponent(new TextField("new field"));
diff --git a/tests/testbench/com/vaadin/tests/layouts/CssLayoutSizeChangePropagation.java b/tests/testbench/com/vaadin/tests/layouts/CssLayoutSizeChangePropagation.java
index 0be605c795..ed3c5e66d3 100644
--- a/tests/testbench/com/vaadin/tests/layouts/CssLayoutSizeChangePropagation.java
+++ b/tests/testbench/com/vaadin/tests/layouts/CssLayoutSizeChangePropagation.java
@@ -35,6 +35,7 @@ public class CssLayoutSizeChangePropagation extends TestBase {
button.addListener(new ClickListener() {
boolean bool = true;
+ @Override
public void buttonClick(ClickEvent event) {
sp.setExpandRatio(cssLayout, bool ? 1 : 0);
bool = !bool;
diff --git a/tests/testbench/com/vaadin/tests/layouts/DeepComponentTrees.java b/tests/testbench/com/vaadin/tests/layouts/DeepComponentTrees.java
index 47cb095efa..e119b91b82 100644
--- a/tests/testbench/com/vaadin/tests/layouts/DeepComponentTrees.java
+++ b/tests/testbench/com/vaadin/tests/layouts/DeepComponentTrees.java
@@ -44,6 +44,7 @@ public class DeepComponentTrees extends TestBase {
final Button b = new Button("Go try your luck with " + i + " layouts!");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
FF2KILLER(i++);
b.setCaption("Go try your luck with " + i + " layouts!");
@@ -60,6 +61,7 @@ public class DeepComponentTrees extends TestBase {
s.addItem(GridLayout.class);
s.addListener(new ComboBox.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Object value = s.getValue();
if (!value.equals("-- Choose value --")) {
diff --git a/tests/testbench/com/vaadin/tests/layouts/FormLayoutWithInvisibleComponent.java b/tests/testbench/com/vaadin/tests/layouts/FormLayoutWithInvisibleComponent.java
index 7fc33edfc7..f596fdb77e 100644
--- a/tests/testbench/com/vaadin/tests/layouts/FormLayoutWithInvisibleComponent.java
+++ b/tests/testbench/com/vaadin/tests/layouts/FormLayoutWithInvisibleComponent.java
@@ -27,6 +27,7 @@ public class FormLayoutWithInvisibleComponent extends TestBase {
CheckBox control = new CheckBox("Messages On/Off");
control.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
messages.setVisible((Boolean) event.getProperty().getValue());
messages.setRequired(true);
diff --git a/tests/testbench/com/vaadin/tests/layouts/GridLayoutCaptions.java b/tests/testbench/com/vaadin/tests/layouts/GridLayoutCaptions.java
index 9ad9adb43a..8713208dc6 100644
--- a/tests/testbench/com/vaadin/tests/layouts/GridLayoutCaptions.java
+++ b/tests/testbench/com/vaadin/tests/layouts/GridLayoutCaptions.java
@@ -29,6 +29,7 @@ public class GridLayoutCaptions extends TestBase {
private FormFieldFactory fff = new FormFieldFactory() {
+ @Override
public Field<?> createField(Item item, Object propertyId,
Component uiContext) {
@@ -195,6 +196,7 @@ public class GridLayoutCaptions extends TestBase {
Button b = new Button("Give me an error!", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
aFormWithGl.createErrors();
@@ -205,6 +207,7 @@ public class GridLayoutCaptions extends TestBase {
Button b2 = new Button("Get rid of an error!",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
aFormWithGl.clearErrors();
diff --git a/tests/testbench/com/vaadin/tests/layouts/GridLayoutExpandRatioModification.java b/tests/testbench/com/vaadin/tests/layouts/GridLayoutExpandRatioModification.java
index 314a8d7b03..84f27e5f03 100644
--- a/tests/testbench/com/vaadin/tests/layouts/GridLayoutExpandRatioModification.java
+++ b/tests/testbench/com/vaadin/tests/layouts/GridLayoutExpandRatioModification.java
@@ -59,6 +59,7 @@ public class GridLayoutExpandRatioModification extends TestBase implements
vl2.setSizeFull();
}
+ @Override
public void buttonClick(ClickEvent event) {
if (isVisible) {
mainLayout.setRowExpandRatio(2, 0);
diff --git a/tests/testbench/com/vaadin/tests/layouts/GridLayoutMoveComponent.java b/tests/testbench/com/vaadin/tests/layouts/GridLayoutMoveComponent.java
index 1442dc3421..efd1277653 100644
--- a/tests/testbench/com/vaadin/tests/layouts/GridLayoutMoveComponent.java
+++ b/tests/testbench/com/vaadin/tests/layouts/GridLayoutMoveComponent.java
@@ -29,6 +29,7 @@ public class GridLayoutMoveComponent extends TestBase {
addComponent(new Button("Shift label right",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
// Moving component from 0,0 -> 1,0
grid.removeComponent(l);
@@ -38,6 +39,7 @@ public class GridLayoutMoveComponent extends TestBase {
addComponent(new Button("Shift button right",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
grid.removeComponent(b);
grid.addComponent(b, 1, 1);
@@ -46,6 +48,7 @@ public class GridLayoutMoveComponent extends TestBase {
addComponent(new Button("Shift text field right",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
grid.removeComponent(tf);
grid.addComponent(tf, 1, 2);
diff --git a/tests/testbench/com/vaadin/tests/layouts/GridLayoutNPE.java b/tests/testbench/com/vaadin/tests/layouts/GridLayoutNPE.java
index 6424177fe1..3531a4e13c 100644
--- a/tests/testbench/com/vaadin/tests/layouts/GridLayoutNPE.java
+++ b/tests/testbench/com/vaadin/tests/layouts/GridLayoutNPE.java
@@ -31,6 +31,7 @@ public class GridLayoutNPE extends TestBase {
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
gl.removeComponent(toRemove);
@@ -50,6 +51,7 @@ public class GridLayoutNPE extends TestBase {
b2.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
toEdit.setValue("Second (edited)");
}
diff --git a/tests/testbench/com/vaadin/tests/layouts/GridLayoutRemoveFinalRow.java b/tests/testbench/com/vaadin/tests/layouts/GridLayoutRemoveFinalRow.java
index 8689503332..5d45f72142 100644
--- a/tests/testbench/com/vaadin/tests/layouts/GridLayoutRemoveFinalRow.java
+++ b/tests/testbench/com/vaadin/tests/layouts/GridLayoutRemoveFinalRow.java
@@ -26,6 +26,7 @@ public class GridLayoutRemoveFinalRow extends TestBase {
Button removeRowBtn = new Button("Remove row",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
layout.removeRow(0);
}
diff --git a/tests/testbench/com/vaadin/tests/layouts/GridLayoutWidthChange.java b/tests/testbench/com/vaadin/tests/layouts/GridLayoutWidthChange.java
index 78984d33a2..c0e6b27c7d 100644
--- a/tests/testbench/com/vaadin/tests/layouts/GridLayoutWidthChange.java
+++ b/tests/testbench/com/vaadin/tests/layouts/GridLayoutWidthChange.java
@@ -43,6 +43,7 @@ public class GridLayoutWidthChange extends TestBase {
Button testButton = new Button("Reduce GridLayout parent width",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
cc.setWidth((cc.getWidth() - 10) + "px");
}
diff --git a/tests/testbench/com/vaadin/tests/layouts/HiddenHorizontalLayout.java b/tests/testbench/com/vaadin/tests/layouts/HiddenHorizontalLayout.java
index 8c05df6ca9..dc0c8958ea 100644
--- a/tests/testbench/com/vaadin/tests/layouts/HiddenHorizontalLayout.java
+++ b/tests/testbench/com/vaadin/tests/layouts/HiddenHorizontalLayout.java
@@ -1,6 +1,6 @@
package com.vaadin.tests.layouts;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
@@ -47,6 +47,7 @@ public class HiddenHorizontalLayout extends TestBase {
Button b = new Button("toggle layout visibility",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
hl.setVisible(!hl.isVisible());
}
diff --git a/tests/testbench/com/vaadin/tests/layouts/LayoutPerformanceTests.java b/tests/testbench/com/vaadin/tests/layouts/LayoutPerformanceTests.java
index 23cf868085..57c6173895 100644
--- a/tests/testbench/com/vaadin/tests/layouts/LayoutPerformanceTests.java
+++ b/tests/testbench/com/vaadin/tests/layouts/LayoutPerformanceTests.java
@@ -213,12 +213,14 @@ public class LayoutPerformanceTests extends TestBase {
controls.addComponent(childAmount);
controls.addComponent(new Button("Clear", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
setTestLayout(new Label(""));
}
}));
controls.addComponent(new Button("Apply", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
SampleType leafType = (SampleType) leafSelector.getValue();
if (leafType == null) {
diff --git a/tests/testbench/com/vaadin/tests/layouts/MovingComponentsWhileOldParentInvisible.java b/tests/testbench/com/vaadin/tests/layouts/MovingComponentsWhileOldParentInvisible.java
index bf5de2976f..5f91786571 100644
--- a/tests/testbench/com/vaadin/tests/layouts/MovingComponentsWhileOldParentInvisible.java
+++ b/tests/testbench/com/vaadin/tests/layouts/MovingComponentsWhileOldParentInvisible.java
@@ -53,6 +53,7 @@ public class MovingComponentsWhileOldParentInvisible extends TestBase {
}
componentContainerSelect.addListener(new ValueChangeListener() {
+ @Override
@SuppressWarnings("unchecked")
public void valueChange(ValueChangeEvent event) {
ComponentContainer oldCC = cc;
@@ -69,6 +70,7 @@ public class MovingComponentsWhileOldParentInvisible extends TestBase {
Button but1 = new Button("Move in and out of component container",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
cc.setVisible(!cc.isVisible());
if (!cc.isVisible()) {
diff --git a/tests/testbench/com/vaadin/tests/layouts/MovingInvisibleField.java b/tests/testbench/com/vaadin/tests/layouts/MovingInvisibleField.java
index 23ae31d786..1285e5b52e 100644
--- a/tests/testbench/com/vaadin/tests/layouts/MovingInvisibleField.java
+++ b/tests/testbench/com/vaadin/tests/layouts/MovingInvisibleField.java
@@ -23,6 +23,7 @@ public class MovingInvisibleField extends TestBase {
Button b = new Button("Move hidden textfield to other layout");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (layout1.getComponentIndex(tfHidden) != -1) {
layout2.addComponent(tfVisible);
diff --git a/tests/testbench/com/vaadin/tests/layouts/OrderedLayoutBasics.java b/tests/testbench/com/vaadin/tests/layouts/OrderedLayoutBasics.java
index 9f18ef7887..2ceb6428ed 100644
--- a/tests/testbench/com/vaadin/tests/layouts/OrderedLayoutBasics.java
+++ b/tests/testbench/com/vaadin/tests/layouts/OrderedLayoutBasics.java
@@ -1005,6 +1005,7 @@ public class OrderedLayoutBasics extends TestBase {
private Button createAddButton(AbstractOrderedLayout ol) {
Button b = new Button("Add before", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
addBefore((AbstractOrderedLayout) event.getButton().getData(),
event.getButton().getParent(), "");
@@ -1019,6 +1020,7 @@ public class OrderedLayoutBasics extends TestBase {
private Button createWideAddButton(AbstractOrderedLayout ol) {
Button b = new Button("Add 100% before", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
addBefore((AbstractOrderedLayout) event.getButton().getData(),
event.getButton().getParent(), "100%");
@@ -1033,6 +1035,7 @@ public class OrderedLayoutBasics extends TestBase {
private Button createRemoveButton(AbstractOrderedLayout ol, String suffix) {
Button b = new Button("Remove this " + suffix, new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
remove((AbstractOrderedLayout) event.getButton().getData(),
event.getButton().getParent());
diff --git a/tests/testbench/com/vaadin/tests/layouts/TestAbsoluteLayout.java b/tests/testbench/com/vaadin/tests/layouts/TestAbsoluteLayout.java
index 2f0f16b4a5..d2f14c114e 100644
--- a/tests/testbench/com/vaadin/tests/layouts/TestAbsoluteLayout.java
+++ b/tests/testbench/com/vaadin/tests/layouts/TestAbsoluteLayout.java
@@ -130,6 +130,7 @@ public class TestAbsoluteLayout extends TestBase {
Button componentChooser = new Button("choose component to edit");
componentChooser.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
final Window chooser = new Window("Choose component");
chooser.getContent().setSizeUndefined();
@@ -166,6 +167,7 @@ public class TestAbsoluteLayout extends TestBase {
select.setImmediate(true);
select.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
editcomponent((Component) event.getProperty()
.getValue());
@@ -185,6 +187,7 @@ public class TestAbsoluteLayout extends TestBase {
Button addComp = new Button("add component");
addComp.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
final Window chooser = new Window(
"Choose component type to add");
@@ -235,6 +238,7 @@ public class TestAbsoluteLayout extends TestBase {
select.setImmediate(true);
select.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Class<?> c = (Class<?>) event.getProperty()
.getValue();
@@ -279,6 +283,7 @@ public class TestAbsoluteLayout extends TestBase {
addComponent(positionEditor);
Button b = new Button("Commit changes", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
positionEditor.commit();
componentEditor.commit();
diff --git a/tests/testbench/com/vaadin/tests/layouts/TestLayoutClickListeners.java b/tests/testbench/com/vaadin/tests/layouts/TestLayoutClickListeners.java
index 619e4581fa..b998abeb02 100644
--- a/tests/testbench/com/vaadin/tests/layouts/TestLayoutClickListeners.java
+++ b/tests/testbench/com/vaadin/tests/layouts/TestLayoutClickListeners.java
@@ -60,6 +60,7 @@ public class TestLayoutClickListeners extends AbstractTestCase {
al.addComponent(new Button("A button with its own click listener",
new Button.ClickListener() {
+ @Override
public void buttonClick(
com.vaadin.ui.Button.ClickEvent event) {
log.log("Button " + event.getButton().getCaption()
@@ -69,6 +70,7 @@ public class TestLayoutClickListeners extends AbstractTestCase {
}));
al.addListener(new LayoutClickListener() {
+ @Override
public void layoutClick(LayoutClickEvent event) {
logLayoutClick("AbsoluteLayout", event);
}
@@ -92,6 +94,7 @@ public class TestLayoutClickListeners extends AbstractTestCase {
cl.addComponent(new Button("A button with its own click listener",
new Button.ClickListener() {
+ @Override
public void buttonClick(
com.vaadin.ui.Button.ClickEvent event) {
log.log("Button " + event.getButton().getCaption()
@@ -101,6 +104,7 @@ public class TestLayoutClickListeners extends AbstractTestCase {
}));
cl.addListener(new LayoutClickListener() {
+ @Override
public void layoutClick(LayoutClickEvent event) {
logLayoutClick("CSSLayout", event);
}
@@ -125,6 +129,7 @@ public class TestLayoutClickListeners extends AbstractTestCase {
gl.addListener(new LayoutClickListener() {
+ @Override
public void layoutClick(LayoutClickEvent event) {
logLayoutClick("GridLayout", event);
}
@@ -166,6 +171,7 @@ public class TestLayoutClickListeners extends AbstractTestCase {
gl.addListener(new LayoutClickListener() {
+ @Override
public void layoutClick(LayoutClickEvent event) {
logLayoutClick("VerticalLayout", event);
diff --git a/tests/testbench/com/vaadin/tests/layouts/TestLayoutPerformance.java b/tests/testbench/com/vaadin/tests/layouts/TestLayoutPerformance.java
index 3d496fa446..85ecf2897b 100644
--- a/tests/testbench/com/vaadin/tests/layouts/TestLayoutPerformance.java
+++ b/tests/testbench/com/vaadin/tests/layouts/TestLayoutPerformance.java
@@ -1,6 +1,6 @@
package com.vaadin.tests.layouts;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.AbstractComponent;
import com.vaadin.ui.Button;
@@ -65,6 +65,7 @@ public class TestLayoutPerformance extends TestBase {
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
int components = Integer.parseInt(n.getValue());
Layout layout = getCurrentLayout();
diff --git a/tests/testbench/com/vaadin/tests/layouts/VerticalLayoutExpandRatioModification.java b/tests/testbench/com/vaadin/tests/layouts/VerticalLayoutExpandRatioModification.java
index 44a1e27cb8..916a82bb85 100644
--- a/tests/testbench/com/vaadin/tests/layouts/VerticalLayoutExpandRatioModification.java
+++ b/tests/testbench/com/vaadin/tests/layouts/VerticalLayoutExpandRatioModification.java
@@ -55,6 +55,7 @@ public class VerticalLayoutExpandRatioModification extends TestBase implements
vl2.setSizeFull();
}
+ @Override
public void buttonClick(ClickEvent event) {
if (isVisible) {
mainLayout.setExpandRatio(vl2, 0);
diff --git a/tests/testbench/com/vaadin/tests/layouts/VerticalLayoutWithRelativeSizeComponentsInitiallyHidden.java b/tests/testbench/com/vaadin/tests/layouts/VerticalLayoutWithRelativeSizeComponentsInitiallyHidden.java
index 98c5425bc6..f3d4029663 100644
--- a/tests/testbench/com/vaadin/tests/layouts/VerticalLayoutWithRelativeSizeComponentsInitiallyHidden.java
+++ b/tests/testbench/com/vaadin/tests/layouts/VerticalLayoutWithRelativeSizeComponentsInitiallyHidden.java
@@ -43,6 +43,7 @@ public class VerticalLayoutWithRelativeSizeComponentsInitiallyHidden extends
"Click to set bar visible. Button should stay visible.");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
bar.setVisible(true);
foobar.setVisible(true);
diff --git a/tests/testbench/com/vaadin/tests/layouts/layouttester/GridLayoutTests.java b/tests/testbench/com/vaadin/tests/layouts/layouttester/GridLayoutTests.java
index 467705a103..d53fda1748 100644
--- a/tests/testbench/com/vaadin/tests/layouts/layouttester/GridLayoutTests.java
+++ b/tests/testbench/com/vaadin/tests/layouts/layouttester/GridLayoutTests.java
@@ -150,6 +150,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button1.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.addComponent(cc1);
button1.setEnabled(false);
@@ -159,6 +160,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button2.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.replaceComponent(x22, cc2);
button2.setEnabled(false);
@@ -168,6 +170,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button3.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.moveComponentsFrom(source);
button3.setEnabled(false);
@@ -177,6 +180,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button4.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.removeComponent(1, 1);
button4.setEnabled(false);
@@ -187,6 +191,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button5.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.removeRow(0);
button5.setEnabled(false);
@@ -196,6 +201,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button6.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.removeComponent(row3);
button6.setEnabled(false);
@@ -230,6 +236,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button1.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
x3.setSizeFull();
button1.setEnabled(false);
@@ -239,6 +246,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button2.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
x3.setWidth("200px");
button2.setEnabled(false);
@@ -248,6 +256,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button3.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
x22.setWidth("200px");
button3.setEnabled(false);
@@ -257,6 +266,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button4.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
x22.setSizeUndefined();
((Table) x22).addItem(new Object[] { "NEW ROW1" }, 3);
@@ -292,6 +302,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button1.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.setColumnExpandRatio(3, 1);
button1.setEnabled(false);
@@ -301,6 +312,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button2.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.setColumnExpandRatio(0, 0.25f);
glo.setColumnExpandRatio(1, 0.25f);
@@ -313,6 +325,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button3.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.setRowExpandRatio(0, 0.5f);
button3.setEnabled(false);
@@ -322,6 +335,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button4.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.setRowExpandRatio(3, 0.3f);
button4.setEnabled(false);
@@ -394,6 +408,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button1.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.setHeight("350px");
button1.setEnabled(false);
@@ -403,6 +418,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button2.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.setSizeUndefined();
glo.addComponent(new Label("--- NEW LABEL ---"));
@@ -413,6 +429,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button3.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.setWidth("75%");
glo.setHeight("75%");
@@ -423,6 +440,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button4.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.setSizeFull();
button4.setEnabled(false);
@@ -457,6 +475,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button1.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.setMargin(true);
button1.setEnabled(false);
@@ -466,6 +485,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button2.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.setSpacing(true);
button2.setEnabled(false);
@@ -475,6 +495,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button3.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.setMargin(false);
button3.setEnabled(false);
@@ -484,6 +505,7 @@ public class GridLayoutTests extends AbstractLayoutTests {
button4.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
glo.setSpacing(false);
button4.setEnabled(false);
diff --git a/tests/testbench/com/vaadin/tests/layouts/layouttester/HorizontalLayoutTests.java b/tests/testbench/com/vaadin/tests/layouts/layouttester/HorizontalLayoutTests.java
index bd60e9ff21..ab4bb265c5 100644
--- a/tests/testbench/com/vaadin/tests/layouts/layouttester/HorizontalLayoutTests.java
+++ b/tests/testbench/com/vaadin/tests/layouts/layouttester/HorizontalLayoutTests.java
@@ -1,11 +1,11 @@
package com.vaadin.tests.layouts.layouttester;
import com.vaadin.Application;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.Resource;
import com.vaadin.terminal.SystemError;
import com.vaadin.terminal.ThemeResource;
import com.vaadin.terminal.UserError;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.AbstractComponent;
import com.vaadin.ui.AbstractField;
import com.vaadin.ui.Alignment;
@@ -132,6 +132,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
addButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.addComponent(new TextField());
addButton.setEnabled(false);
@@ -141,6 +142,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
replaceButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.replaceComponent(c1, c3);
replaceButton.setEnabled(false);
@@ -150,6 +152,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
moveButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.moveComponentsFrom(source);
moveButton.setEnabled(false);
@@ -159,6 +162,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
removeButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.removeComponent(c1);
vlo.removeComponent(c2);
@@ -203,6 +207,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
biggerButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
c.setSizeFull();
biggerButton.setEnabled(false);
@@ -212,6 +217,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
smallerButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
c.setWidth("200px");
smallerButton.setEnabled(false);
@@ -221,6 +227,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
originalButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
originalButton.setEnabled(false);
c.setSizeUndefined();
@@ -270,6 +277,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
button1.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.setHeight("350px");
button1.setEnabled(false);
@@ -279,6 +287,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
button2.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.setSizeUndefined();
vlo.addComponent(new Label("--- NEW LABEL ---"));
@@ -289,6 +298,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
button3.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.setWidth("75%");
vlo.setHeight("75%");
@@ -299,6 +309,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
button4.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.setSizeFull();
button4.setEnabled(false);
@@ -335,6 +346,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
button1.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.setExpandRatio(c1, 1.0f);
button1.setEnabled(false);
@@ -344,6 +356,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
button2.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.setExpandRatio(c1, 0.5f);
vlo.setExpandRatio(c2, 0.5f);
@@ -354,6 +367,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
button3.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.setExpandRatio(c1, 0.75f);
vlo.setExpandRatio(c2, 0.25f);
@@ -442,6 +456,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
button1.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.setMargin(true);
button1.setEnabled(false);
@@ -451,6 +466,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
button2.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.setSpacing(true);
button2.setEnabled(false);
@@ -460,6 +476,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
button3.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.setMargin(false);
button3.setEnabled(false);
@@ -469,6 +486,7 @@ public class HorizontalLayoutTests extends AbstractLayoutTests {
button4.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo.setSpacing(false);
button4.setEnabled(false);
diff --git a/tests/testbench/com/vaadin/tests/layouts/layouttester/LayoutTesterApplication.java b/tests/testbench/com/vaadin/tests/layouts/layouttester/LayoutTesterApplication.java
index 6a524cd024..90193be7cc 100644
--- a/tests/testbench/com/vaadin/tests/layouts/layouttester/LayoutTesterApplication.java
+++ b/tests/testbench/com/vaadin/tests/layouts/layouttester/LayoutTesterApplication.java
@@ -35,6 +35,7 @@ public class LayoutTesterApplication extends AbstractTestCase {
nextButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = -1577298910202253538L;
+ @Override
public void buttonClick(ClickEvent event) {
nextLaytout();
}
@@ -106,6 +107,7 @@ public class LayoutTesterApplication extends AbstractTestCase {
layoutSelector.addListener(new Property.ValueChangeListener() {
private static final long serialVersionUID = -605319614765838359L;
+ @Override
public void valueChange(ValueChangeEvent event) {
layoutIndex = -1;
nextLaytout();
diff --git a/tests/testbench/com/vaadin/tests/layouts/layouttester/VerticalLayoutTests.java b/tests/testbench/com/vaadin/tests/layouts/layouttester/VerticalLayoutTests.java
index 2861acabdd..be32ca513b 100644
--- a/tests/testbench/com/vaadin/tests/layouts/layouttester/VerticalLayoutTests.java
+++ b/tests/testbench/com/vaadin/tests/layouts/layouttester/VerticalLayoutTests.java
@@ -1,11 +1,11 @@
package com.vaadin.tests.layouts.layouttester;
import com.vaadin.Application;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.Resource;
import com.vaadin.terminal.SystemError;
import com.vaadin.terminal.ThemeResource;
import com.vaadin.terminal.UserError;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.AbstractComponent;
import com.vaadin.ui.AbstractField;
import com.vaadin.ui.Alignment;
@@ -133,6 +133,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
addButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.addComponent(new TextField());
addButton.setEnabled(false);
@@ -142,6 +143,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
replaceButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.replaceComponent(c1, c3);
replaceButton.setEnabled(false);
@@ -151,6 +153,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
moveButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.moveComponentsFrom(source);
moveButton.setEnabled(false);
@@ -160,6 +163,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
removeButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.removeComponent(c1);
vlo2.removeComponent(c2);
@@ -206,6 +210,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
biggerButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
c.setSizeFull();
biggerButton.setEnabled(false);
@@ -215,6 +220,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
smallerButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
c.setWidth("200px");
smallerButton.setEnabled(false);
@@ -224,6 +230,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
originalButton.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
originalButton.setEnabled(false);
c.setSizeUndefined();
@@ -280,6 +287,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
button1.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.setHeight("350px");
button1.setEnabled(false);
@@ -289,6 +297,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
button2.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.setSizeUndefined();
Label newLabel = new Label("--- NEW LABEL ---");
@@ -301,6 +310,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
button3.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.setWidth("75%");
vlo2.setHeight("75%");
@@ -311,6 +321,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
button4.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.setSizeFull();
button4.setEnabled(false);
@@ -351,6 +362,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
button1.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.setExpandRatio(c1, 1.0f);
button1.setEnabled(false);
@@ -360,6 +372,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
button2.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.setExpandRatio(c1, 0.5f);
vlo2.setExpandRatio(c2, 0.5f);
@@ -370,6 +383,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
button3.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.setExpandRatio(c1, 0.75f);
vlo2.setExpandRatio(c2, 0.25f);
@@ -470,6 +484,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
button1.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.setMargin(true);
button1.setEnabled(false);
@@ -479,6 +494,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
button2.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.setSpacing(true);
button2.setEnabled(false);
@@ -488,6 +504,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
button3.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.setMargin(false);
button3.setEnabled(false);
@@ -497,6 +514,7 @@ public class VerticalLayoutTests extends AbstractLayoutTests {
button4.addListener(new Button.ClickListener() {
private static final long serialVersionUID = 7716267156088629379L;
+ @Override
public void buttonClick(ClickEvent event) {
vlo2.setSpacing(false);
button4.setEnabled(false);
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/DynamicImageRoot.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/DynamicImageRoot.java
index 9ed2bd2c75..81f225bc63 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/DynamicImageRoot.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/DynamicImageRoot.java
@@ -55,6 +55,7 @@ class DynamicImageRequestHandler implements RequestHandler {
public static final String IMAGE_URL = "myimage.png";
+ @Override
public boolean handleRequest(Application application,
WrappedRequest request, WrappedResponse response)
throws IOException {
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/FindCurrentRootAndApplication.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/FindCurrentRootAndApplication.java
index b237666caa..ed0a5ba955 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/FindCurrentRootAndApplication.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/FindCurrentRootAndApplication.java
@@ -27,17 +27,23 @@ public class FindCurrentRootAndApplication extends Root {
protected void init(WrappedRequest request) {
Button helloButton = new Button("Say Hello");
helloButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
String msg = "Running in ";
msg += Application.getCurrent().isProductionMode() ? "production"
: "debug";
- msg += " mode in a Root with the caption "
- + Root.getCurrent().getCaption();
-
Notification.show(msg);
}
});
+ helloButton.addListener(new ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ Notification.show("This Root is "
+ + Root.getCurrent().getClass().getSimpleName());
+ }
+ });
+
addComponent(helloButton);
}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldDataSource.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldDataSource.java
index dd32242062..af60b0e9e3 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldDataSource.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldDataSource.java
@@ -35,14 +35,15 @@ public class IntegerTextFieldDataSource extends AbstractTestRoot {
final TextField textField = new TextField("Text field", integerProperty);
Button submitButton = new Button("Submit value", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
String uiValue = textField.getValue();
Integer propertyValue = integerProperty.getValue();
int dataModelValue = myBean.getValue();
Notification.show("UI value (String): " + uiValue
- + "<br />Property value (Integer): " + propertyValue
- + "<br />Data model value (int): " + dataModelValue);
+ + "\nProperty value (Integer): " + propertyValue
+ + "\nData model value (int): " + dataModelValue);
}
});
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldStandalone.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldStandalone.java
index 9c720e45a5..f733b5df40 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldStandalone.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldStandalone.java
@@ -19,6 +19,7 @@ public class IntegerTextFieldStandalone extends AbstractTestRoot {
textField.setConverter(new StringToIntegerConverter());
Button submitButton = new Button("Submit value", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
String uiValue = textField.getValue();
try {
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/StringMyTypeConverter.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/StringMyTypeConverter.java
index 4ccd73b2b3..c2393300f2 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/StringMyTypeConverter.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/StringMyTypeConverter.java
@@ -24,6 +24,7 @@ public class StringMyTypeConverter extends AbstractTestRoot {
addComponent(textField);
addComponent(new Button("Submit value", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
Name name = (Name) textField.getConvertedValue();
@@ -50,6 +51,7 @@ public class StringMyTypeConverter extends AbstractTestRoot {
}
class StringToNameConverter implements Converter<String, Name> {
+ @Override
public Name convertToModel(String text, Locale locale)
throws ConversionException {
if (text == null) {
@@ -63,6 +65,7 @@ class StringToNameConverter implements Converter<String, Name> {
return new Name(parts[0], parts[1]);
}
+ @Override
public String convertToPresentation(Name name, Locale locale)
throws ConversionException {
if (name == null) {
@@ -72,10 +75,12 @@ class StringToNameConverter implements Converter<String, Name> {
}
}
+ @Override
public Class<Name> getModelType() {
return Name.class;
}
+ @Override
public Class<String> getPresentationType() {
return String.class;
}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingUriFragments.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingUriFragments.java
index e98b698c07..bf497a7b86 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingUriFragments.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingUriFragments.java
@@ -30,6 +30,7 @@ public class UsingUriFragments extends Root {
// React to fragment changes
getPage().addListener(new FragmentChangedListener() {
+ @Override
public void fragmentChanged(FragmentChangedEvent source) {
handleFragment(source.getFragment());
}
@@ -40,6 +41,7 @@ public class UsingUriFragments extends Root {
addComponent(new Button("Show and set fragment",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
handleFragment(getPage().getFragment());
getPage().setFragment("customFragment");
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyComponent.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyComponent.java
index 5c4fa9d10b..b4dab09807 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyComponent.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyComponent.java
@@ -4,7 +4,7 @@
package com.vaadin.tests.minitutorials.v7a2;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
+import com.vaadin.shared.MouseEventDetails;
import com.vaadin.tests.widgetset.client.minitutorials.v7a2.MyComponentClientRpc;
import com.vaadin.tests.widgetset.client.minitutorials.v7a2.MyComponentServerRpc;
import com.vaadin.tests.widgetset.client.minitutorials.v7a2.MyComponentState;
@@ -14,6 +14,7 @@ public class MyComponent extends AbstractComponent {
private int clickCount = 0;
private MyComponentServerRpc rpc = new MyComponentServerRpc() {
+ @Override
public void clicked(MouseEventDetails mouseDetails) {
clickCount++;
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyPickerConnector.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyPickerConnector.java
index ea278da218..98ff0386b3 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyPickerConnector.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyPickerConnector.java
@@ -29,6 +29,7 @@ public class MyPickerConnector extends AbstractComponentConnector implements
}
private final ElementResizeListener listener = new ElementResizeListener() {
+ @Override
public void onElementResize(ElementResizeEvent e) {
int buttonWidth = getLayoutManager().getOuterWidth(e.getElement());
buttonWidth -= getLayoutManager().getMarginRight(e.getElement());
@@ -52,6 +53,7 @@ public class MyPickerConnector extends AbstractComponentConnector implements
getLayoutManager().unregisterDependency(this, button);
}
+ @Override
public void layout() {
Element button = getWidget().getWidget(1).getElement();
int buttonWidth = getLayoutManager().getOuterWidth(button);
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyPickerWidget.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyPickerWidget.java
index 213a1b9e6b..7818ac4f99 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyPickerWidget.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyPickerWidget.java
@@ -27,6 +27,7 @@ public class MyPickerWidget extends ComplexPanel {
add(button, getElement());
button.addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
Window.alert("Calendar picker not yet supported!");
}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/ResourceInStateComponent.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/ResourceInStateComponent.java
index f9d4cb38e6..b47f555640 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/ResourceInStateComponent.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/ResourceInStateComponent.java
@@ -20,11 +20,6 @@ public class ResourceInStateComponent extends AbstractComponent {
}
public Resource getMyIcon() {
- ResourceReference ref = ((ResourceReference) getState().getMyIcon());
- if (ref != null) {
- return ref.getResource();
- } else {
- return null;
- }
+ return ResourceReference.getResource(getState().getMyIcon());
}
}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetContainer.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetContainer.java
index 3c2f9a68b4..40bb7b68b8 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetContainer.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetContainer.java
@@ -25,6 +25,7 @@ public class WidgetContainer extends AbstractComponentContainer {
requestRepaint();
}
+ @Override
public void replaceComponent(Component oldComponent, Component newComponent) {
int index = children.indexOf(oldComponent);
if (index != -1) {
@@ -36,10 +37,12 @@ public class WidgetContainer extends AbstractComponentContainer {
}
}
+ @Override
public int getComponentCount() {
return children.size();
}
+ @Override
public Iterator<Component> getComponentIterator() {
return children.iterator();
}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetcontainerRoot.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetcontainerRoot.java
index 3b24ec400e..fae4265750 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetcontainerRoot.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetcontainerRoot.java
@@ -24,6 +24,7 @@ public class WidgetcontainerRoot extends Root {
"Click the button to add components to the WidgetContainer."));
Button button = new Button("Add more components", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Random randomGenerator = new Random();
int random = randomGenerator.nextInt(3);
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/Analytics.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/Analytics.java
new file mode 100644
index 0000000000..bd4cfd5839
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/Analytics.java
@@ -0,0 +1,37 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a3;
+
+import com.vaadin.annotations.JavaScript;
+import com.vaadin.terminal.AbstractJavaScriptExtension;
+import com.vaadin.terminal.gwt.server.ClientConnector;
+import com.vaadin.ui.Root;
+
+@JavaScript("analytics_connector.js")
+public class Analytics extends AbstractJavaScriptExtension {
+
+ public Analytics(String account) {
+ pushCommand("_setAccount", account);
+ }
+
+ public void trackPageview(String name) {
+ pushCommand("_trackPageview", name);
+ }
+
+ private void pushCommand(Object... commandAndArguments) {
+ // Cast to Object to use Object[] commandAndArguments as the first
+ // varargs argument instead of as the full varargs argument array.
+ invokeCallback("pushCommand", (Object) commandAndArguments);
+ }
+
+ protected void extend(Root root) {
+ super.extend(root);
+ }
+
+ @Override
+ protected Class<? extends ClientConnector> getSupportedParentType() {
+ return Root.class;
+ }
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/AnalyticsRoot.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/AnalyticsRoot.java
new file mode 100644
index 0000000000..6f59aa765e
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/AnalyticsRoot.java
@@ -0,0 +1,27 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a3;
+
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Root;
+
+public class AnalyticsRoot extends Root {
+
+ @Override
+ protected void init(WrappedRequest request) {
+ final Analytics analytics = new Analytics("UA-33036133-12");
+ analytics.extend(this);
+
+ addComponent(new Button("Track pageview", new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ analytics.trackPageview("/fake/url");
+ }
+ }));
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesBean.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesBean.java
new file mode 100644
index 0000000000..2dc6dea432
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesBean.java
@@ -0,0 +1,27 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a3;
+
+public class ComplexTypesBean {
+ private int integer;
+ private ComplexTypesBean bean;
+
+ public int getInteger() {
+ return integer;
+ }
+
+ public void setInteger(int integer) {
+ this.integer = integer;
+ }
+
+ public ComplexTypesBean getBean() {
+ return bean;
+ }
+
+ public void setBean(ComplexTypesBean bean) {
+ this.bean = bean;
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesComponent.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesComponent.java
new file mode 100644
index 0000000000..9f452c61b0
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesComponent.java
@@ -0,0 +1,53 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a3;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.vaadin.annotations.JavaScript;
+import com.vaadin.shared.Connector;
+import com.vaadin.ui.AbstractJavaScriptComponent;
+import com.vaadin.ui.Root;
+
+@JavaScript("complex_types_connector.js")
+public class ComplexTypesComponent extends AbstractJavaScriptComponent {
+ public void sendComplexTypes() {
+ List<String> list = new ArrayList<String>();
+ list.add("First string");
+ list.add(null);
+ list.add("Another string");
+
+ Map<String, Integer> stringMap = new HashMap<String, Integer>();
+ stringMap.put("one", 1);
+ stringMap.put("two", 2);
+
+ Map<Integer, String> otherMap = new HashMap<Integer, String>();
+ otherMap.put(3, "3");
+ otherMap.put(4, "4");
+
+ Map<Connector, String> connectorMap = new HashMap<Connector, String>();
+ connectorMap.put(this, "this");
+ connectorMap.put(Root.getCurrent(), "root");
+
+ boolean[] bits = { true, true, false, true };
+
+ List<List<Double>> matrix = Arrays.asList(Arrays.asList(1d, 2d),
+ Arrays.asList(3d, 4d));
+
+ ComplexTypesBean innerBean = new ComplexTypesBean();
+ innerBean.setInteger(-42);
+
+ ComplexTypesBean bean = new ComplexTypesBean();
+ bean.setInteger(42);
+ bean.setBean(innerBean);
+
+ getRpcProxy(ComplexTypesRpc.class).sendComplexTypes(list, stringMap,
+ otherMap, connectorMap, bits, matrix, bean);
+ }
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesRoot.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesRoot.java
new file mode 100644
index 0000000000..dc46fe0c29
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesRoot.java
@@ -0,0 +1,19 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a3;
+
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Root;
+
+public class ComplexTypesRoot extends Root {
+
+ @Override
+ protected void init(WrappedRequest request) {
+ ComplexTypesComponent complexTypesComponent = new ComplexTypesComponent();
+ complexTypesComponent.sendComplexTypes();
+ addComponent(complexTypesComponent);
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesRpc.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesRpc.java
new file mode 100644
index 0000000000..f763f51118
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/ComplexTypesRpc.java
@@ -0,0 +1,18 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a3;
+
+import java.util.List;
+import java.util.Map;
+
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.communication.ClientRpc;
+
+public interface ComplexTypesRpc extends ClientRpc {
+ public void sendComplexTypes(List<String> list,
+ Map<String, Integer> stringMap, Map<Integer, String> otherMap,
+ Map<Connector, String> connectorMap, boolean[] bits,
+ List<List<Double>> matrix, ComplexTypesBean bean);
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/Flot.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/Flot.java
new file mode 100644
index 0000000000..946a67d7fd
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/Flot.java
@@ -0,0 +1,62 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a3;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import com.vaadin.annotations.JavaScript;
+import com.vaadin.external.json.JSONArray;
+import com.vaadin.external.json.JSONException;
+import com.vaadin.ui.AbstractJavaScriptComponent;
+import com.vaadin.ui.JavaScriptCallback;
+import com.vaadin.ui.Notification;
+
+@JavaScript({
+ "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js",
+ "jquery.flot.js", "flot_connector.js" })
+public class Flot extends AbstractJavaScriptComponent {
+ public Flot() {
+ registerRpc(new FlotClickRpc() {
+ @Override
+ public void onPlotClick(int seriesIndex, int dataIndex) {
+ Notification.show("Clicked on [" + seriesIndex + ", "
+ + dataIndex + "]");
+ }
+ });
+ registerCallback("onPlotClick", new JavaScriptCallback() {
+ @Override
+ public void call(JSONArray arguments) throws JSONException {
+ int seriesIndex = arguments.getInt(0);
+ int dataIndex = arguments.getInt(1);
+ Notification.show("Clicked on [" + seriesIndex + ", "
+ + dataIndex + "]");
+ }
+ });
+ }
+
+ public void addSeries(double... points) {
+ List<List<Double>> pointList = new ArrayList<List<Double>>();
+ for (int i = 0; i < points.length; i++) {
+ pointList.add(Arrays.asList(Double.valueOf(i),
+ Double.valueOf(points[i])));
+ }
+
+ getState().getSeries().add(pointList);
+
+ requestRepaint();
+ }
+
+ public void highlight(int seriesIndex, int dataIndex) {
+ getRpcProxy(FlotHighlightRpc.class).highlight(seriesIndex, dataIndex);
+ invokeCallback("highlight", seriesIndex, dataIndex);
+ }
+
+ @Override
+ public FlotState getState() {
+ return (FlotState) super.getState();
+ }
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotClickRpc.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotClickRpc.java
new file mode 100644
index 0000000000..3802fe6e3f
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotClickRpc.java
@@ -0,0 +1,7 @@
+package com.vaadin.tests.minitutorials.v7a3;
+
+import com.vaadin.shared.communication.ServerRpc;
+
+public interface FlotClickRpc extends ServerRpc {
+ public void onPlotClick(int seriesIndex, int dataIndex);
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotHighlightRpc.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotHighlightRpc.java
new file mode 100644
index 0000000000..93730a8640
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotHighlightRpc.java
@@ -0,0 +1,11 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a3;
+
+import com.vaadin.shared.communication.ClientRpc;
+
+public interface FlotHighlightRpc extends ClientRpc {
+ public void highlight(int seriesIndex, int dataIndex);
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotJavaScriptRoot.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotJavaScriptRoot.java
new file mode 100644
index 0000000000..2b5e7337c8
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotJavaScriptRoot.java
@@ -0,0 +1,31 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a3;
+
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Root;
+
+public class FlotJavaScriptRoot extends Root {
+
+ @Override
+ protected void init(WrappedRequest request) {
+ final Flot flot = new Flot();
+ flot.setHeight("300px");
+ flot.setWidth("400px");
+
+ flot.addSeries(1, 2, 4, 8, 16);
+ addComponent(flot);
+
+ addComponent(new Button("Highlight point", new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ flot.highlight(0, 3);
+ }
+ }));
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotState.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotState.java
new file mode 100644
index 0000000000..eb9e2f64ce
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/FlotState.java
@@ -0,0 +1,18 @@
+package com.vaadin.tests.minitutorials.v7a3;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.vaadin.shared.ui.JavaScriptComponentState;
+
+public class FlotState extends JavaScriptComponentState {
+ public List<List<List<Double>>> series = new ArrayList<List<List<Double>>>();
+
+ public List<List<List<Double>>> getSeries() {
+ return series;
+ }
+
+ public void setSeries(List<List<List<Double>>> series) {
+ this.series = series;
+ }
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/RedButton.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/RedButton.java
new file mode 100644
index 0000000000..003eab7e9c
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/RedButton.java
@@ -0,0 +1,16 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a3;
+
+import com.vaadin.annotations.StyleSheet;
+import com.vaadin.ui.NativeButton;
+
+@StyleSheet("redbutton.css")
+public class RedButton extends NativeButton {
+ public RedButton(String caption) {
+ super(caption);
+ addStyleName("redButton");
+ }
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/RedButtonRoot.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/RedButtonRoot.java
new file mode 100644
index 0000000000..9cffdc9e63
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/RedButtonRoot.java
@@ -0,0 +1,15 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a3;
+
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Root;
+
+public class RedButtonRoot extends Root {
+ @Override
+ protected void init(WrappedRequest request) {
+ addComponent(new RedButton("My red button"));
+ }
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/analytics_connector.js b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/analytics_connector.js
new file mode 100644
index 0000000000..4eadff5803
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/analytics_connector.js
@@ -0,0 +1,13 @@
+window._gaq = window._gaq || [];
+
+(function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+})();
+
+window.com_vaadin_tests_minitutorials_v7a3_Analytics = function() {
+ this.pushCommand = function(command) {
+ _gaq.push(command);
+ }
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/complex_types_connector.js b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/complex_types_connector.js
new file mode 100644
index 0000000000..85dfb1369b
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/complex_types_connector.js
@@ -0,0 +1,17 @@
+window.com_vaadin_tests_minitutorials_v7a3_ComplexTypesComponent = function() {
+ this.registerRpc({
+ sendComplexTypes: function(list, stringMap, otherMap, connectorMap, bits, matrix, bean) {
+ var connectorId = this.getConnectorId();
+
+ var message = 'list[2] = "' + list[2] + '"<br />';
+ message += 'stringMap.two = ' + stringMap.two + '<br />';
+ message += 'otherMap[1][1] = "' + otherMap[1][1] + '"<br />';
+ message += 'connectorMap[connectorId] = "' + connectorMap[connectorId] +'"<br />';
+ message += 'bits[3] = ' + bits[3] + '<br />';
+ message += 'matrix[0][1] = ' + matrix[0][1] + '<br />';
+ message += 'bean.bean.integer = ' + bean.bean.integer + '<br />';
+
+ this.getElement().innerHTML = message;
+ }
+ });
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/flot_connector.js b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/flot_connector.js
new file mode 100644
index 0000000000..5e572a4c72
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/flot_connector.js
@@ -0,0 +1,31 @@
+window.com_vaadin_tests_minitutorials_v7a3_Flot = function() {
+ var element = $(this.getElement());
+ var rpcProxy = this.getRpcProxy();
+ var self = this;
+ var flot;
+
+ this.onStateChange = function() {
+ flot = $.plot(element, this.getState().series, {grid: {clickable: true}});
+ }
+
+ element.bind('plotclick', function(event, point, item) {
+ if (item) {
+ rpcProxy.onPlotClick(item.seriesIndex, item.dataIndex);
+ self.onPlotClick(item.seriesIndex, item.dataIndex);
+ }
+ });
+
+ this.registerRpc({
+ highlight: function(seriesIndex, dataIndex) {
+ if (flot) {
+ flot.highlight(seriesIndex, dataIndex);
+ }
+ }
+ });
+
+ this.highlight = function(seriesIndex, dataIndex) {
+ if (flot) {
+ flot.highlight(seriesIndex, dataIndex);
+ }
+ };
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/jquery.flot.js b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/jquery.flot.js
new file mode 100644
index 0000000000..f38561ba10
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/jquery.flot.js
@@ -0,0 +1,2599 @@
+/*! Javascript plotting library for jQuery, v. 0.7.
+ *
+ * Released under the MIT license by IOLA, December 2007.
+ *
+ */
+
+// first an inline dependency, jquery.colorhelpers.js, we inline it here
+// for convenience
+
+/* Plugin for jQuery for working with colors.
+ *
+ * Version 1.1.
+ *
+ * Inspiration from jQuery color animation plugin by John Resig.
+ *
+ * Released under the MIT license by Ole Laursen, October 2009.
+ *
+ * Examples:
+ *
+ * $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString()
+ * var c = $.color.extract($("#mydiv"), 'background-color');
+ * console.log(c.r, c.g, c.b, c.a);
+ * $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)"
+ *
+ * Note that .scale() and .add() return the same modified object
+ * instead of making a new one.
+ *
+ * V. 1.1: Fix error handling so e.g. parsing an empty string does
+ * produce a color rather than just crashing.
+ */
+(function(B){B.color={};B.color.make=function(F,E,C,D){var G={};G.r=F||0;G.g=E||0;G.b=C||0;G.a=D!=null?D:1;G.add=function(J,I){for(var H=0;H<J.length;++H){G[J.charAt(H)]+=I}return G.normalize()};G.scale=function(J,I){for(var H=0;H<J.length;++H){G[J.charAt(H)]*=I}return G.normalize()};G.toString=function(){if(G.a>=1){return"rgb("+[G.r,G.g,G.b].join(",")+")"}else{return"rgba("+[G.r,G.g,G.b,G.a].join(",")+")"}};G.normalize=function(){function H(J,K,I){return K<J?J:(K>I?I:K)}G.r=H(0,parseInt(G.r),255);G.g=H(0,parseInt(G.g),255);G.b=H(0,parseInt(G.b),255);G.a=H(0,G.a,1);return G};G.clone=function(){return B.color.make(G.r,G.b,G.g,G.a)};return G.normalize()};B.color.extract=function(D,C){var E;do{E=D.css(C).toLowerCase();if(E!=""&&E!="transparent"){break}D=D.parent()}while(!B.nodeName(D.get(0),"body"));if(E=="rgba(0, 0, 0, 0)"){E="transparent"}return B.color.parse(E)};B.color.parse=function(F){var E,C=B.color.make;if(E=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10))}if(E=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10),parseFloat(E[4]))}if(E=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55)}if(E=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55,parseFloat(E[4]))}if(E=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)){return C(parseInt(E[1],16),parseInt(E[2],16),parseInt(E[3],16))}if(E=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)){return C(parseInt(E[1]+E[1],16),parseInt(E[2]+E[2],16),parseInt(E[3]+E[3],16))}var D=B.trim(F).toLowerCase();if(D=="transparent"){return C(255,255,255,0)}else{E=A[D]||[0,0,0];return C(E[0],E[1],E[2])}};var A={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);
+
+// the actual Flot code
+(function($) {
+ function Plot(placeholder, data_, options_, plugins) {
+ // data is on the form:
+ // [ series1, series2 ... ]
+ // where series is either just the data as [ [x1, y1], [x2, y2], ... ]
+ // or { data: [ [x1, y1], [x2, y2], ... ], label: "some label", ... }
+
+ var series = [],
+ options = {
+ // the color theme used for graphs
+ colors: ["#edc240", "#afd8f8", "#cb4b4b", "#4da74d", "#9440ed"],
+ legend: {
+ show: true,
+ noColumns: 1, // number of colums in legend table
+ labelFormatter: null, // fn: string -> string
+ labelBoxBorderColor: "#ccc", // border color for the little label boxes
+ container: null, // container (as jQuery object) to put legend in, null means default on top of graph
+ position: "ne", // position of default legend container within plot
+ margin: 5, // distance from grid edge to default legend container within plot
+ backgroundColor: null, // null means auto-detect
+ backgroundOpacity: 0.85 // set to 0 to avoid background
+ },
+ xaxis: {
+ show: null, // null = auto-detect, true = always, false = never
+ position: "bottom", // or "top"
+ mode: null, // null or "time"
+ color: null, // base color, labels, ticks
+ tickColor: null, // possibly different color of ticks, e.g. "rgba(0,0,0,0.15)"
+ transform: null, // null or f: number -> number to transform axis
+ inverseTransform: null, // if transform is set, this should be the inverse function
+ min: null, // min. value to show, null means set automatically
+ max: null, // max. value to show, null means set automatically
+ autoscaleMargin: null, // margin in % to add if auto-setting min/max
+ ticks: null, // either [1, 3] or [[1, "a"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks
+ tickFormatter: null, // fn: number -> string
+ labelWidth: null, // size of tick labels in pixels
+ labelHeight: null,
+ reserveSpace: null, // whether to reserve space even if axis isn't shown
+ tickLength: null, // size in pixels of ticks, or "full" for whole line
+ alignTicksWithAxis: null, // axis number or null for no sync
+
+ // mode specific options
+ tickDecimals: null, // no. of decimals, null means auto
+ tickSize: null, // number or [number, "unit"]
+ minTickSize: null, // number or [number, "unit"]
+ monthNames: null, // list of names of months
+ timeformat: null, // format string to use
+ twelveHourClock: false // 12 or 24 time in time mode
+ },
+ yaxis: {
+ autoscaleMargin: 0.02,
+ position: "left" // or "right"
+ },
+ xaxes: [],
+ yaxes: [],
+ series: {
+ points: {
+ show: false,
+ radius: 3,
+ lineWidth: 2, // in pixels
+ fill: true,
+ fillColor: "#ffffff",
+ symbol: "circle" // or callback
+ },
+ lines: {
+ // we don't put in show: false so we can see
+ // whether lines were actively disabled
+ lineWidth: 2, // in pixels
+ fill: false,
+ fillColor: null,
+ steps: false
+ },
+ bars: {
+ show: false,
+ lineWidth: 2, // in pixels
+ barWidth: 1, // in units of the x axis
+ fill: true,
+ fillColor: null,
+ align: "left", // or "center"
+ horizontal: false
+ },
+ shadowSize: 3
+ },
+ grid: {
+ show: true,
+ aboveData: false,
+ color: "#545454", // primary color used for outline and labels
+ backgroundColor: null, // null for transparent, else color
+ borderColor: null, // set if different from the grid color
+ tickColor: null, // color for the ticks, e.g. "rgba(0,0,0,0.15)"
+ labelMargin: 5, // in pixels
+ axisMargin: 8, // in pixels
+ borderWidth: 2, // in pixels
+ minBorderMargin: null, // in pixels, null means taken from points radius
+ markings: null, // array of ranges or fn: axes -> array of ranges
+ markingsColor: "#f4f4f4",
+ markingsLineWidth: 2,
+ // interactive stuff
+ clickable: false,
+ hoverable: false,
+ autoHighlight: true, // highlight in case mouse is near
+ mouseActiveRadius: 10 // how far the mouse can be away to activate an item
+ },
+ hooks: {}
+ },
+ canvas = null, // the canvas for the plot itself
+ overlay = null, // canvas for interactive stuff on top of plot
+ eventHolder = null, // jQuery object that events should be bound to
+ ctx = null, octx = null,
+ xaxes = [], yaxes = [],
+ plotOffset = { left: 0, right: 0, top: 0, bottom: 0},
+ canvasWidth = 0, canvasHeight = 0,
+ plotWidth = 0, plotHeight = 0,
+ hooks = {
+ processOptions: [],
+ processRawData: [],
+ processDatapoints: [],
+ drawSeries: [],
+ draw: [],
+ bindEvents: [],
+ drawOverlay: [],
+ shutdown: []
+ },
+ plot = this;
+
+ // public functions
+ plot.setData = setData;
+ plot.setupGrid = setupGrid;
+ plot.draw = draw;
+ plot.getPlaceholder = function() { return placeholder; };
+ plot.getCanvas = function() { return canvas; };
+ plot.getPlotOffset = function() { return plotOffset; };
+ plot.width = function () { return plotWidth; };
+ plot.height = function () { return plotHeight; };
+ plot.offset = function () {
+ var o = eventHolder.offset();
+ o.left += plotOffset.left;
+ o.top += plotOffset.top;
+ return o;
+ };
+ plot.getData = function () { return series; };
+ plot.getAxes = function () {
+ var res = {}, i;
+ $.each(xaxes.concat(yaxes), function (_, axis) {
+ if (axis)
+ res[axis.direction + (axis.n != 1 ? axis.n : "") + "axis"] = axis;
+ });
+ return res;
+ };
+ plot.getXAxes = function () { return xaxes; };
+ plot.getYAxes = function () { return yaxes; };
+ plot.c2p = canvasToAxisCoords;
+ plot.p2c = axisToCanvasCoords;
+ plot.getOptions = function () { return options; };
+ plot.highlight = highlight;
+ plot.unhighlight = unhighlight;
+ plot.triggerRedrawOverlay = triggerRedrawOverlay;
+ plot.pointOffset = function(point) {
+ return {
+ left: parseInt(xaxes[axisNumber(point, "x") - 1].p2c(+point.x) + plotOffset.left),
+ top: parseInt(yaxes[axisNumber(point, "y") - 1].p2c(+point.y) + plotOffset.top)
+ };
+ };
+ plot.shutdown = shutdown;
+ plot.resize = function () {
+ getCanvasDimensions();
+ resizeCanvas(canvas);
+ resizeCanvas(overlay);
+ };
+
+ // public attributes
+ plot.hooks = hooks;
+
+ // initialize
+ initPlugins(plot);
+ parseOptions(options_);
+ setupCanvases();
+ setData(data_);
+ setupGrid();
+ draw();
+ bindEvents();
+
+
+ function executeHooks(hook, args) {
+ args = [plot].concat(args);
+ for (var i = 0; i < hook.length; ++i)
+ hook[i].apply(this, args);
+ }
+
+ function initPlugins() {
+ for (var i = 0; i < plugins.length; ++i) {
+ var p = plugins[i];
+ p.init(plot);
+ if (p.options)
+ $.extend(true, options, p.options);
+ }
+ }
+
+ function parseOptions(opts) {
+ var i;
+
+ $.extend(true, options, opts);
+
+ if (options.xaxis.color == null)
+ options.xaxis.color = options.grid.color;
+ if (options.yaxis.color == null)
+ options.yaxis.color = options.grid.color;
+
+ if (options.xaxis.tickColor == null) // backwards-compatibility
+ options.xaxis.tickColor = options.grid.tickColor;
+ if (options.yaxis.tickColor == null) // backwards-compatibility
+ options.yaxis.tickColor = options.grid.tickColor;
+
+ if (options.grid.borderColor == null)
+ options.grid.borderColor = options.grid.color;
+ if (options.grid.tickColor == null)
+ options.grid.tickColor = $.color.parse(options.grid.color).scale('a', 0.22).toString();
+
+ // fill in defaults in axes, copy at least always the
+ // first as the rest of the code assumes it'll be there
+ for (i = 0; i < Math.max(1, options.xaxes.length); ++i)
+ options.xaxes[i] = $.extend(true, {}, options.xaxis, options.xaxes[i]);
+ for (i = 0; i < Math.max(1, options.yaxes.length); ++i)
+ options.yaxes[i] = $.extend(true, {}, options.yaxis, options.yaxes[i]);
+
+ // backwards compatibility, to be removed in future
+ if (options.xaxis.noTicks && options.xaxis.ticks == null)
+ options.xaxis.ticks = options.xaxis.noTicks;
+ if (options.yaxis.noTicks && options.yaxis.ticks == null)
+ options.yaxis.ticks = options.yaxis.noTicks;
+ if (options.x2axis) {
+ options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis);
+ options.xaxes[1].position = "top";
+ }
+ if (options.y2axis) {
+ options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis);
+ options.yaxes[1].position = "right";
+ }
+ if (options.grid.coloredAreas)
+ options.grid.markings = options.grid.coloredAreas;
+ if (options.grid.coloredAreasColor)
+ options.grid.markingsColor = options.grid.coloredAreasColor;
+ if (options.lines)
+ $.extend(true, options.series.lines, options.lines);
+ if (options.points)
+ $.extend(true, options.series.points, options.points);
+ if (options.bars)
+ $.extend(true, options.series.bars, options.bars);
+ if (options.shadowSize != null)
+ options.series.shadowSize = options.shadowSize;
+
+ // save options on axes for future reference
+ for (i = 0; i < options.xaxes.length; ++i)
+ getOrCreateAxis(xaxes, i + 1).options = options.xaxes[i];
+ for (i = 0; i < options.yaxes.length; ++i)
+ getOrCreateAxis(yaxes, i + 1).options = options.yaxes[i];
+
+ // add hooks from options
+ for (var n in hooks)
+ if (options.hooks[n] && options.hooks[n].length)
+ hooks[n] = hooks[n].concat(options.hooks[n]);
+
+ executeHooks(hooks.processOptions, [options]);
+ }
+
+ function setData(d) {
+ series = parseData(d);
+ fillInSeriesOptions();
+ processData();
+ }
+
+ function parseData(d) {
+ var res = [];
+ for (var i = 0; i < d.length; ++i) {
+ var s = $.extend(true, {}, options.series);
+
+ if (d[i].data != null) {
+ s.data = d[i].data; // move the data instead of deep-copy
+ delete d[i].data;
+
+ $.extend(true, s, d[i]);
+
+ d[i].data = s.data;
+ }
+ else
+ s.data = d[i];
+ res.push(s);
+ }
+
+ return res;
+ }
+
+ function axisNumber(obj, coord) {
+ var a = obj[coord + "axis"];
+ if (typeof a == "object") // if we got a real axis, extract number
+ a = a.n;
+ if (typeof a != "number")
+ a = 1; // default to first axis
+ return a;
+ }
+
+ function allAxes() {
+ // return flat array without annoying null entries
+ return $.grep(xaxes.concat(yaxes), function (a) { return a; });
+ }
+
+ function canvasToAxisCoords(pos) {
+ // return an object with x/y corresponding to all used axes
+ var res = {}, i, axis;
+ for (i = 0; i < xaxes.length; ++i) {
+ axis = xaxes[i];
+ if (axis && axis.used)
+ res["x" + axis.n] = axis.c2p(pos.left);
+ }
+
+ for (i = 0; i < yaxes.length; ++i) {
+ axis = yaxes[i];
+ if (axis && axis.used)
+ res["y" + axis.n] = axis.c2p(pos.top);
+ }
+
+ if (res.x1 !== undefined)
+ res.x = res.x1;
+ if (res.y1 !== undefined)
+ res.y = res.y1;
+
+ return res;
+ }
+
+ function axisToCanvasCoords(pos) {
+ // get canvas coords from the first pair of x/y found in pos
+ var res = {}, i, axis, key;
+
+ for (i = 0; i < xaxes.length; ++i) {
+ axis = xaxes[i];
+ if (axis && axis.used) {
+ key = "x" + axis.n;
+ if (pos[key] == null && axis.n == 1)
+ key = "x";
+
+ if (pos[key] != null) {
+ res.left = axis.p2c(pos[key]);
+ break;
+ }
+ }
+ }
+
+ for (i = 0; i < yaxes.length; ++i) {
+ axis = yaxes[i];
+ if (axis && axis.used) {
+ key = "y" + axis.n;
+ if (pos[key] == null && axis.n == 1)
+ key = "y";
+
+ if (pos[key] != null) {
+ res.top = axis.p2c(pos[key]);
+ break;
+ }
+ }
+ }
+
+ return res;
+ }
+
+ function getOrCreateAxis(axes, number) {
+ if (!axes[number - 1])
+ axes[number - 1] = {
+ n: number, // save the number for future reference
+ direction: axes == xaxes ? "x" : "y",
+ options: $.extend(true, {}, axes == xaxes ? options.xaxis : options.yaxis)
+ };
+
+ return axes[number - 1];
+ }
+
+ function fillInSeriesOptions() {
+ var i;
+
+ // collect what we already got of colors
+ var neededColors = series.length,
+ usedColors = [],
+ assignedColors = [];
+ for (i = 0; i < series.length; ++i) {
+ var sc = series[i].color;
+ if (sc != null) {
+ --neededColors;
+ if (typeof sc == "number")
+ assignedColors.push(sc);
+ else
+ usedColors.push($.color.parse(series[i].color));
+ }
+ }
+
+ // we might need to generate more colors if higher indices
+ // are assigned
+ for (i = 0; i < assignedColors.length; ++i) {
+ neededColors = Math.max(neededColors, assignedColors[i] + 1);
+ }
+
+ // produce colors as needed
+ var colors = [], variation = 0;
+ i = 0;
+ while (colors.length < neededColors) {
+ var c;
+ if (options.colors.length == i) // check degenerate case
+ c = $.color.make(100, 100, 100);
+ else
+ c = $.color.parse(options.colors[i]);
+
+ // vary color if needed
+ var sign = variation % 2 == 1 ? -1 : 1;
+ c.scale('rgb', 1 + sign * Math.ceil(variation / 2) * 0.2)
+
+ // FIXME: if we're getting to close to something else,
+ // we should probably skip this one
+ colors.push(c);
+
+ ++i;
+ if (i >= options.colors.length) {
+ i = 0;
+ ++variation;
+ }
+ }
+
+ // fill in the options
+ var colori = 0, s;
+ for (i = 0; i < series.length; ++i) {
+ s = series[i];
+
+ // assign colors
+ if (s.color == null) {
+ s.color = colors[colori].toString();
+ ++colori;
+ }
+ else if (typeof s.color == "number")
+ s.color = colors[s.color].toString();
+
+ // turn on lines automatically in case nothing is set
+ if (s.lines.show == null) {
+ var v, show = true;
+ for (v in s)
+ if (s[v] && s[v].show) {
+ show = false;
+ break;
+ }
+ if (show)
+ s.lines.show = true;
+ }
+
+ // setup axes
+ s.xaxis = getOrCreateAxis(xaxes, axisNumber(s, "x"));
+ s.yaxis = getOrCreateAxis(yaxes, axisNumber(s, "y"));
+ }
+ }
+
+ function processData() {
+ var topSentry = Number.POSITIVE_INFINITY,
+ bottomSentry = Number.NEGATIVE_INFINITY,
+ fakeInfinity = Number.MAX_VALUE,
+ i, j, k, m, length,
+ s, points, ps, x, y, axis, val, f, p;
+
+ function updateAxis(axis, min, max) {
+ if (min < axis.datamin && min != -fakeInfinity)
+ axis.datamin = min;
+ if (max > axis.datamax && max != fakeInfinity)
+ axis.datamax = max;
+ }
+
+ $.each(allAxes(), function (_, axis) {
+ // init axis
+ axis.datamin = topSentry;
+ axis.datamax = bottomSentry;
+ axis.used = false;
+ });
+
+ for (i = 0; i < series.length; ++i) {
+ s = series[i];
+ s.datapoints = { points: [] };
+
+ executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]);
+ }
+
+ // first pass: clean and copy data
+ for (i = 0; i < series.length; ++i) {
+ s = series[i];
+
+ var data = s.data, format = s.datapoints.format;
+
+ if (!format) {
+ format = [];
+ // find out how to copy
+ format.push({ x: true, number: true, required: true });
+ format.push({ y: true, number: true, required: true });
+
+ if (s.bars.show || (s.lines.show && s.lines.fill)) {
+ format.push({ y: true, number: true, required: false, defaultValue: 0 });
+ if (s.bars.horizontal) {
+ delete format[format.length - 1].y;
+ format[format.length - 1].x = true;
+ }
+ }
+
+ s.datapoints.format = format;
+ }
+
+ if (s.datapoints.pointsize != null)
+ continue; // already filled in
+
+ s.datapoints.pointsize = format.length;
+
+ ps = s.datapoints.pointsize;
+ points = s.datapoints.points;
+
+ insertSteps = s.lines.show && s.lines.steps;
+ s.xaxis.used = s.yaxis.used = true;
+
+ for (j = k = 0; j < data.length; ++j, k += ps) {
+ p = data[j];
+
+ var nullify = p == null;
+ if (!nullify) {
+ for (m = 0; m < ps; ++m) {
+ val = p[m];
+ f = format[m];
+
+ if (f) {
+ if (f.number && val != null) {
+ val = +val; // convert to number
+ if (isNaN(val))
+ val = null;
+ else if (val == Infinity)
+ val = fakeInfinity;
+ else if (val == -Infinity)
+ val = -fakeInfinity;
+ }
+
+ if (val == null) {
+ if (f.required)
+ nullify = true;
+
+ if (f.defaultValue != null)
+ val = f.defaultValue;
+ }
+ }
+
+ points[k + m] = val;
+ }
+ }
+
+ if (nullify) {
+ for (m = 0; m < ps; ++m) {
+ val = points[k + m];
+ if (val != null) {
+ f = format[m];
+ // extract min/max info
+ if (f.x)
+ updateAxis(s.xaxis, val, val);
+ if (f.y)
+ updateAxis(s.yaxis, val, val);
+ }
+ points[k + m] = null;
+ }
+ }
+ else {
+ // a little bit of line specific stuff that
+ // perhaps shouldn't be here, but lacking
+ // better means...
+ if (insertSteps && k > 0
+ && points[k - ps] != null
+ && points[k - ps] != points[k]
+ && points[k - ps + 1] != points[k + 1]) {
+ // copy the point to make room for a middle point
+ for (m = 0; m < ps; ++m)
+ points[k + ps + m] = points[k + m];
+
+ // middle point has same y
+ points[k + 1] = points[k - ps + 1];
+
+ // we've added a point, better reflect that
+ k += ps;
+ }
+ }
+ }
+ }
+
+ // give the hooks a chance to run
+ for (i = 0; i < series.length; ++i) {
+ s = series[i];
+
+ executeHooks(hooks.processDatapoints, [ s, s.datapoints]);
+ }
+
+ // second pass: find datamax/datamin for auto-scaling
+ for (i = 0; i < series.length; ++i) {
+ s = series[i];
+ points = s.datapoints.points,
+ ps = s.datapoints.pointsize;
+
+ var xmin = topSentry, ymin = topSentry,
+ xmax = bottomSentry, ymax = bottomSentry;
+
+ for (j = 0; j < points.length; j += ps) {
+ if (points[j] == null)
+ continue;
+
+ for (m = 0; m < ps; ++m) {
+ val = points[j + m];
+ f = format[m];
+ if (!f || val == fakeInfinity || val == -fakeInfinity)
+ continue;
+
+ if (f.x) {
+ if (val < xmin)
+ xmin = val;
+ if (val > xmax)
+ xmax = val;
+ }
+ if (f.y) {
+ if (val < ymin)
+ ymin = val;
+ if (val > ymax)
+ ymax = val;
+ }
+ }
+ }
+
+ if (s.bars.show) {
+ // make sure we got room for the bar on the dancing floor
+ var delta = s.bars.align == "left" ? 0 : -s.bars.barWidth/2;
+ if (s.bars.horizontal) {
+ ymin += delta;
+ ymax += delta + s.bars.barWidth;
+ }
+ else {
+ xmin += delta;
+ xmax += delta + s.bars.barWidth;
+ }
+ }
+
+ updateAxis(s.xaxis, xmin, xmax);
+ updateAxis(s.yaxis, ymin, ymax);
+ }
+
+ $.each(allAxes(), function (_, axis) {
+ if (axis.datamin == topSentry)
+ axis.datamin = null;
+ if (axis.datamax == bottomSentry)
+ axis.datamax = null;
+ });
+ }
+
+ function makeCanvas(skipPositioning, cls) {
+ var c = document.createElement('canvas');
+ c.className = cls;
+ c.width = canvasWidth;
+ c.height = canvasHeight;
+
+ if (!skipPositioning)
+ $(c).css({ position: 'absolute', left: 0, top: 0 });
+
+ $(c).appendTo(placeholder);
+
+ if (!c.getContext) // excanvas hack
+ c = window.G_vmlCanvasManager.initElement(c);
+
+ // used for resetting in case we get replotted
+ c.getContext("2d").save();
+
+ return c;
+ }
+
+ function getCanvasDimensions() {
+ canvasWidth = placeholder.width();
+ canvasHeight = placeholder.height();
+
+ if (canvasWidth <= 0 || canvasHeight <= 0)
+ throw "Invalid dimensions for plot, width = " + canvasWidth + ", height = " + canvasHeight;
+ }
+
+ function resizeCanvas(c) {
+ // resizing should reset the state (excanvas seems to be
+ // buggy though)
+ if (c.width != canvasWidth)
+ c.width = canvasWidth;
+
+ if (c.height != canvasHeight)
+ c.height = canvasHeight;
+
+ // so try to get back to the initial state (even if it's
+ // gone now, this should be safe according to the spec)
+ var cctx = c.getContext("2d");
+ cctx.restore();
+
+ // and save again
+ cctx.save();
+ }
+
+ function setupCanvases() {
+ var reused,
+ existingCanvas = placeholder.children("canvas.base"),
+ existingOverlay = placeholder.children("canvas.overlay");
+
+ if (existingCanvas.length == 0 || existingOverlay == 0) {
+ // init everything
+
+ placeholder.html(""); // make sure placeholder is clear
+
+ placeholder.css({ padding: 0 }); // padding messes up the positioning
+
+ if (placeholder.css("position") == 'static')
+ placeholder.css("position", "relative"); // for positioning labels and overlay
+
+ getCanvasDimensions();
+
+ canvas = makeCanvas(true, "base");
+ overlay = makeCanvas(false, "overlay"); // overlay canvas for interactive features
+
+ reused = false;
+ }
+ else {
+ // reuse existing elements
+
+ canvas = existingCanvas.get(0);
+ overlay = existingOverlay.get(0);
+
+ reused = true;
+ }
+
+ ctx = canvas.getContext("2d");
+ octx = overlay.getContext("2d");
+
+ // we include the canvas in the event holder too, because IE 7
+ // sometimes has trouble with the stacking order
+ eventHolder = $([overlay, canvas]);
+
+ if (reused) {
+ // run shutdown in the old plot object
+ placeholder.data("plot").shutdown();
+
+ // reset reused canvases
+ plot.resize();
+
+ // make sure overlay pixels are cleared (canvas is cleared when we redraw)
+ octx.clearRect(0, 0, canvasWidth, canvasHeight);
+
+ // then whack any remaining obvious garbage left
+ eventHolder.unbind();
+ placeholder.children().not([canvas, overlay]).remove();
+ }
+
+ // save in case we get replotted
+ placeholder.data("plot", plot);
+ }
+
+ function bindEvents() {
+ // bind events
+ if (options.grid.hoverable) {
+ eventHolder.mousemove(onMouseMove);
+ eventHolder.mouseleave(onMouseLeave);
+ }
+
+ if (options.grid.clickable)
+ eventHolder.click(onClick);
+
+ executeHooks(hooks.bindEvents, [eventHolder]);
+ }
+
+ function shutdown() {
+ if (redrawTimeout)
+ clearTimeout(redrawTimeout);
+
+ eventHolder.unbind("mousemove", onMouseMove);
+ eventHolder.unbind("mouseleave", onMouseLeave);
+ eventHolder.unbind("click", onClick);
+
+ executeHooks(hooks.shutdown, [eventHolder]);
+ }
+
+ function setTransformationHelpers(axis) {
+ // set helper functions on the axis, assumes plot area
+ // has been computed already
+
+ function identity(x) { return x; }
+
+ var s, m, t = axis.options.transform || identity,
+ it = axis.options.inverseTransform;
+
+ // precompute how much the axis is scaling a point
+ // in canvas space
+ if (axis.direction == "x") {
+ s = axis.scale = plotWidth / Math.abs(t(axis.max) - t(axis.min));
+ m = Math.min(t(axis.max), t(axis.min));
+ }
+ else {
+ s = axis.scale = plotHeight / Math.abs(t(axis.max) - t(axis.min));
+ s = -s;
+ m = Math.max(t(axis.max), t(axis.min));
+ }
+
+ // data point to canvas coordinate
+ if (t == identity) // slight optimization
+ axis.p2c = function (p) { return (p - m) * s; };
+ else
+ axis.p2c = function (p) { return (t(p) - m) * s; };
+ // canvas coordinate to data point
+ if (!it)
+ axis.c2p = function (c) { return m + c / s; };
+ else
+ axis.c2p = function (c) { return it(m + c / s); };
+ }
+
+ function measureTickLabels(axis) {
+ var opts = axis.options, i, ticks = axis.ticks || [], labels = [],
+ l, w = opts.labelWidth, h = opts.labelHeight, dummyDiv;
+
+ function makeDummyDiv(labels, width) {
+ return $('<div style="position:absolute;top:-10000px;' + width + 'font-size:smaller">' +
+ '<div class="' + axis.direction + 'Axis ' + axis.direction + axis.n + 'Axis">'
+ + labels.join("") + '</div></div>')
+ .appendTo(placeholder);
+ }
+
+ if (axis.direction == "x") {
+ // to avoid measuring the widths of the labels (it's slow), we
+ // construct fixed-size boxes and put the labels inside
+ // them, we don't need the exact figures and the
+ // fixed-size box content is easy to center
+ if (w == null)
+ w = Math.floor(canvasWidth / (ticks.length > 0 ? ticks.length : 1));
+
+ // measure x label heights
+ if (h == null) {
+ labels = [];
+ for (i = 0; i < ticks.length; ++i) {
+ l = ticks[i].label;
+ if (l)
+ labels.push('<div class="tickLabel" style="float:left;width:' + w + 'px">' + l + '</div>');
+ }
+
+ if (labels.length > 0) {
+ // stick them all in the same div and measure
+ // collective height
+ labels.push('<div style="clear:left"></div>');
+ dummyDiv = makeDummyDiv(labels, "width:10000px;");
+ h = dummyDiv.height();
+ dummyDiv.remove();
+ }
+ }
+ }
+ else if (w == null || h == null) {
+ // calculate y label dimensions
+ for (i = 0; i < ticks.length; ++i) {
+ l = ticks[i].label;
+ if (l)
+ labels.push('<div class="tickLabel">' + l + '</div>');
+ }
+
+ if (labels.length > 0) {
+ dummyDiv = makeDummyDiv(labels, "");
+ if (w == null)
+ w = dummyDiv.children().width();
+ if (h == null)
+ h = dummyDiv.find("div.tickLabel").height();
+ dummyDiv.remove();
+ }
+ }
+
+ if (w == null)
+ w = 0;
+ if (h == null)
+ h = 0;
+
+ axis.labelWidth = w;
+ axis.labelHeight = h;
+ }
+
+ function allocateAxisBoxFirstPhase(axis) {
+ // find the bounding box of the axis by looking at label
+ // widths/heights and ticks, make room by diminishing the
+ // plotOffset
+
+ var lw = axis.labelWidth,
+ lh = axis.labelHeight,
+ pos = axis.options.position,
+ tickLength = axis.options.tickLength,
+ axismargin = options.grid.axisMargin,
+ padding = options.grid.labelMargin,
+ all = axis.direction == "x" ? xaxes : yaxes,
+ index;
+
+ // determine axis margin
+ var samePosition = $.grep(all, function (a) {
+ return a && a.options.position == pos && a.reserveSpace;
+ });
+ if ($.inArray(axis, samePosition) == samePosition.length - 1)
+ axismargin = 0; // outermost
+
+ // determine tick length - if we're innermost, we can use "full"
+ if (tickLength == null)
+ tickLength = "full";
+
+ var sameDirection = $.grep(all, function (a) {
+ return a && a.reserveSpace;
+ });
+
+ var innermost = $.inArray(axis, sameDirection) == 0;
+ if (!innermost && tickLength == "full")
+ tickLength = 5;
+
+ if (!isNaN(+tickLength))
+ padding += +tickLength;
+
+ // compute box
+ if (axis.direction == "x") {
+ lh += padding;
+
+ if (pos == "bottom") {
+ plotOffset.bottom += lh + axismargin;
+ axis.box = { top: canvasHeight - plotOffset.bottom, height: lh };
+ }
+ else {
+ axis.box = { top: plotOffset.top + axismargin, height: lh };
+ plotOffset.top += lh + axismargin;
+ }
+ }
+ else {
+ lw += padding;
+
+ if (pos == "left") {
+ axis.box = { left: plotOffset.left + axismargin, width: lw };
+ plotOffset.left += lw + axismargin;
+ }
+ else {
+ plotOffset.right += lw + axismargin;
+ axis.box = { left: canvasWidth - plotOffset.right, width: lw };
+ }
+ }
+
+ // save for future reference
+ axis.position = pos;
+ axis.tickLength = tickLength;
+ axis.box.padding = padding;
+ axis.innermost = innermost;
+ }
+
+ function allocateAxisBoxSecondPhase(axis) {
+ // set remaining bounding box coordinates
+ if (axis.direction == "x") {
+ axis.box.left = plotOffset.left;
+ axis.box.width = plotWidth;
+ }
+ else {
+ axis.box.top = plotOffset.top;
+ axis.box.height = plotHeight;
+ }
+ }
+
+ function setupGrid() {
+ var i, axes = allAxes();
+
+ // first calculate the plot and axis box dimensions
+
+ $.each(axes, function (_, axis) {
+ axis.show = axis.options.show;
+ if (axis.show == null)
+ axis.show = axis.used; // by default an axis is visible if it's got data
+
+ axis.reserveSpace = axis.show || axis.options.reserveSpace;
+
+ setRange(axis);
+ });
+
+ allocatedAxes = $.grep(axes, function (axis) { return axis.reserveSpace; });
+
+ plotOffset.left = plotOffset.right = plotOffset.top = plotOffset.bottom = 0;
+ if (options.grid.show) {
+ $.each(allocatedAxes, function (_, axis) {
+ // make the ticks
+ setupTickGeneration(axis);
+ setTicks(axis);
+ snapRangeToTicks(axis, axis.ticks);
+
+ // find labelWidth/Height for axis
+ measureTickLabels(axis);
+ });
+
+ // with all dimensions in house, we can compute the
+ // axis boxes, start from the outside (reverse order)
+ for (i = allocatedAxes.length - 1; i >= 0; --i)
+ allocateAxisBoxFirstPhase(allocatedAxes[i]);
+
+ // make sure we've got enough space for things that
+ // might stick out
+ var minMargin = options.grid.minBorderMargin;
+ if (minMargin == null) {
+ minMargin = 0;
+ for (i = 0; i < series.length; ++i)
+ minMargin = Math.max(minMargin, series[i].points.radius + series[i].points.lineWidth/2);
+ }
+
+ for (var a in plotOffset) {
+ plotOffset[a] += options.grid.borderWidth;
+ plotOffset[a] = Math.max(minMargin, plotOffset[a]);
+ }
+ }
+
+ plotWidth = canvasWidth - plotOffset.left - plotOffset.right;
+ plotHeight = canvasHeight - plotOffset.bottom - plotOffset.top;
+
+ // now we got the proper plotWidth/Height, we can compute the scaling
+ $.each(axes, function (_, axis) {
+ setTransformationHelpers(axis);
+ });
+
+ if (options.grid.show) {
+ $.each(allocatedAxes, function (_, axis) {
+ allocateAxisBoxSecondPhase(axis);
+ });
+
+ insertAxisLabels();
+ }
+
+ insertLegend();
+ }
+
+ function setRange(axis) {
+ var opts = axis.options,
+ min = +(opts.min != null ? opts.min : axis.datamin),
+ max = +(opts.max != null ? opts.max : axis.datamax),
+ delta = max - min;
+
+ if (delta == 0.0) {
+ // degenerate case
+ var widen = max == 0 ? 1 : 0.01;
+
+ if (opts.min == null)
+ min -= widen;
+ // always widen max if we couldn't widen min to ensure we
+ // don't fall into min == max which doesn't work
+ if (opts.max == null || opts.min != null)
+ max += widen;
+ }
+ else {
+ // consider autoscaling
+ var margin = opts.autoscaleMargin;
+ if (margin != null) {
+ if (opts.min == null) {
+ min -= delta * margin;
+ // make sure we don't go below zero if all values
+ // are positive
+ if (min < 0 && axis.datamin != null && axis.datamin >= 0)
+ min = 0;
+ }
+ if (opts.max == null) {
+ max += delta * margin;
+ if (max > 0 && axis.datamax != null && axis.datamax <= 0)
+ max = 0;
+ }
+ }
+ }
+ axis.min = min;
+ axis.max = max;
+ }
+
+ function setupTickGeneration(axis) {
+ var opts = axis.options;
+
+ // estimate number of ticks
+ var noTicks;
+ if (typeof opts.ticks == "number" && opts.ticks > 0)
+ noTicks = opts.ticks;
+ else
+ // heuristic based on the model a*sqrt(x) fitted to
+ // some data points that seemed reasonable
+ noTicks = 0.3 * Math.sqrt(axis.direction == "x" ? canvasWidth : canvasHeight);
+
+ var delta = (axis.max - axis.min) / noTicks,
+ size, generator, unit, formatter, i, magn, norm;
+
+ if (opts.mode == "time") {
+ // pretty handling of time
+
+ // map of app. size of time units in milliseconds
+ var timeUnitSize = {
+ "second": 1000,
+ "minute": 60 * 1000,
+ "hour": 60 * 60 * 1000,
+ "day": 24 * 60 * 60 * 1000,
+ "month": 30 * 24 * 60 * 60 * 1000,
+ "year": 365.2425 * 24 * 60 * 60 * 1000
+ };
+
+
+ // the allowed tick sizes, after 1 year we use
+ // an integer algorithm
+ var spec = [
+ [1, "second"], [2, "second"], [5, "second"], [10, "second"],
+ [30, "second"],
+ [1, "minute"], [2, "minute"], [5, "minute"], [10, "minute"],
+ [30, "minute"],
+ [1, "hour"], [2, "hour"], [4, "hour"],
+ [8, "hour"], [12, "hour"],
+ [1, "day"], [2, "day"], [3, "day"],
+ [0.25, "month"], [0.5, "month"], [1, "month"],
+ [2, "month"], [3, "month"], [6, "month"],
+ [1, "year"]
+ ];
+
+ var minSize = 0;
+ if (opts.minTickSize != null) {
+ if (typeof opts.tickSize == "number")
+ minSize = opts.tickSize;
+ else
+ minSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]];
+ }
+
+ for (var i = 0; i < spec.length - 1; ++i)
+ if (delta < (spec[i][0] * timeUnitSize[spec[i][1]]
+ + spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2
+ && spec[i][0] * timeUnitSize[spec[i][1]] >= minSize)
+ break;
+ size = spec[i][0];
+ unit = spec[i][1];
+
+ // special-case the possibility of several years
+ if (unit == "year") {
+ magn = Math.pow(10, Math.floor(Math.log(delta / timeUnitSize.year) / Math.LN10));
+ norm = (delta / timeUnitSize.year) / magn;
+ if (norm < 1.5)
+ size = 1;
+ else if (norm < 3)
+ size = 2;
+ else if (norm < 7.5)
+ size = 5;
+ else
+ size = 10;
+
+ size *= magn;
+ }
+
+ axis.tickSize = opts.tickSize || [size, unit];
+
+ generator = function(axis) {
+ var ticks = [],
+ tickSize = axis.tickSize[0], unit = axis.tickSize[1],
+ d = new Date(axis.min);
+
+ var step = tickSize * timeUnitSize[unit];
+
+ if (unit == "second")
+ d.setUTCSeconds(floorInBase(d.getUTCSeconds(), tickSize));
+ if (unit == "minute")
+ d.setUTCMinutes(floorInBase(d.getUTCMinutes(), tickSize));
+ if (unit == "hour")
+ d.setUTCHours(floorInBase(d.getUTCHours(), tickSize));
+ if (unit == "month")
+ d.setUTCMonth(floorInBase(d.getUTCMonth(), tickSize));
+ if (unit == "year")
+ d.setUTCFullYear(floorInBase(d.getUTCFullYear(), tickSize));
+
+ // reset smaller components
+ d.setUTCMilliseconds(0);
+ if (step >= timeUnitSize.minute)
+ d.setUTCSeconds(0);
+ if (step >= timeUnitSize.hour)
+ d.setUTCMinutes(0);
+ if (step >= timeUnitSize.day)
+ d.setUTCHours(0);
+ if (step >= timeUnitSize.day * 4)
+ d.setUTCDate(1);
+ if (step >= timeUnitSize.year)
+ d.setUTCMonth(0);
+
+
+ var carry = 0, v = Number.NaN, prev;
+ do {
+ prev = v;
+ v = d.getTime();
+ ticks.push(v);
+ if (unit == "month") {
+ if (tickSize < 1) {
+ // a bit complicated - we'll divide the month
+ // up but we need to take care of fractions
+ // so we don't end up in the middle of a day
+ d.setUTCDate(1);
+ var start = d.getTime();
+ d.setUTCMonth(d.getUTCMonth() + 1);
+ var end = d.getTime();
+ d.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize);
+ carry = d.getUTCHours();
+ d.setUTCHours(0);
+ }
+ else
+ d.setUTCMonth(d.getUTCMonth() + tickSize);
+ }
+ else if (unit == "year") {
+ d.setUTCFullYear(d.getUTCFullYear() + tickSize);
+ }
+ else
+ d.setTime(v + step);
+ } while (v < axis.max && v != prev);
+
+ return ticks;
+ };
+
+ formatter = function (v, axis) {
+ var d = new Date(v);
+
+ // first check global format
+ if (opts.timeformat != null)
+ return $.plot.formatDate(d, opts.timeformat, opts.monthNames);
+
+ var t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]];
+ var span = axis.max - axis.min;
+ var suffix = (opts.twelveHourClock) ? " %p" : "";
+
+ if (t < timeUnitSize.minute)
+ fmt = "%h:%M:%S" + suffix;
+ else if (t < timeUnitSize.day) {
+ if (span < 2 * timeUnitSize.day)
+ fmt = "%h:%M" + suffix;
+ else
+ fmt = "%b %d %h:%M" + suffix;
+ }
+ else if (t < timeUnitSize.month)
+ fmt = "%b %d";
+ else if (t < timeUnitSize.year) {
+ if (span < timeUnitSize.year)
+ fmt = "%b";
+ else
+ fmt = "%b %y";
+ }
+ else
+ fmt = "%y";
+
+ return $.plot.formatDate(d, fmt, opts.monthNames);
+ };
+ }
+ else {
+ // pretty rounding of base-10 numbers
+ var maxDec = opts.tickDecimals;
+ var dec = -Math.floor(Math.log(delta) / Math.LN10);
+ if (maxDec != null && dec > maxDec)
+ dec = maxDec;
+
+ magn = Math.pow(10, -dec);
+ norm = delta / magn; // norm is between 1.0 and 10.0
+
+ if (norm < 1.5)
+ size = 1;
+ else if (norm < 3) {
+ size = 2;
+ // special case for 2.5, requires an extra decimal
+ if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) {
+ size = 2.5;
+ ++dec;
+ }
+ }
+ else if (norm < 7.5)
+ size = 5;
+ else
+ size = 10;
+
+ size *= magn;
+
+ if (opts.minTickSize != null && size < opts.minTickSize)
+ size = opts.minTickSize;
+
+ axis.tickDecimals = Math.max(0, maxDec != null ? maxDec : dec);
+ axis.tickSize = opts.tickSize || size;
+
+ generator = function (axis) {
+ var ticks = [];
+
+ // spew out all possible ticks
+ var start = floorInBase(axis.min, axis.tickSize),
+ i = 0, v = Number.NaN, prev;
+ do {
+ prev = v;
+ v = start + i * axis.tickSize;
+ ticks.push(v);
+ ++i;
+ } while (v < axis.max && v != prev);
+ return ticks;
+ };
+
+ formatter = function (v, axis) {
+ return v.toFixed(axis.tickDecimals);
+ };
+ }
+
+ if (opts.alignTicksWithAxis != null) {
+ var otherAxis = (axis.direction == "x" ? xaxes : yaxes)[opts.alignTicksWithAxis - 1];
+ if (otherAxis && otherAxis.used && otherAxis != axis) {
+ // consider snapping min/max to outermost nice ticks
+ var niceTicks = generator(axis);
+ if (niceTicks.length > 0) {
+ if (opts.min == null)
+ axis.min = Math.min(axis.min, niceTicks[0]);
+ if (opts.max == null && niceTicks.length > 1)
+ axis.max = Math.max(axis.max, niceTicks[niceTicks.length - 1]);
+ }
+
+ generator = function (axis) {
+ // copy ticks, scaled to this axis
+ var ticks = [], v, i;
+ for (i = 0; i < otherAxis.ticks.length; ++i) {
+ v = (otherAxis.ticks[i].v - otherAxis.min) / (otherAxis.max - otherAxis.min);
+ v = axis.min + v * (axis.max - axis.min);
+ ticks.push(v);
+ }
+ return ticks;
+ };
+
+ // we might need an extra decimal since forced
+ // ticks don't necessarily fit naturally
+ if (axis.mode != "time" && opts.tickDecimals == null) {
+ var extraDec = Math.max(0, -Math.floor(Math.log(delta) / Math.LN10) + 1),
+ ts = generator(axis);
+
+ // only proceed if the tick interval rounded
+ // with an extra decimal doesn't give us a
+ // zero at end
+ if (!(ts.length > 1 && /\..*0$/.test((ts[1] - ts[0]).toFixed(extraDec))))
+ axis.tickDecimals = extraDec;
+ }
+ }
+ }
+
+ axis.tickGenerator = generator;
+ if ($.isFunction(opts.tickFormatter))
+ axis.tickFormatter = function (v, axis) { return "" + opts.tickFormatter(v, axis); };
+ else
+ axis.tickFormatter = formatter;
+ }
+
+ function setTicks(axis) {
+ var oticks = axis.options.ticks, ticks = [];
+ if (oticks == null || (typeof oticks == "number" && oticks > 0))
+ ticks = axis.tickGenerator(axis);
+ else if (oticks) {
+ if ($.isFunction(oticks))
+ // generate the ticks
+ ticks = oticks({ min: axis.min, max: axis.max });
+ else
+ ticks = oticks;
+ }
+
+ // clean up/labelify the supplied ticks, copy them over
+ var i, v;
+ axis.ticks = [];
+ for (i = 0; i < ticks.length; ++i) {
+ var label = null;
+ var t = ticks[i];
+ if (typeof t == "object") {
+ v = +t[0];
+ if (t.length > 1)
+ label = t[1];
+ }
+ else
+ v = +t;
+ if (label == null)
+ label = axis.tickFormatter(v, axis);
+ if (!isNaN(v))
+ axis.ticks.push({ v: v, label: label });
+ }
+ }
+
+ function snapRangeToTicks(axis, ticks) {
+ if (axis.options.autoscaleMargin && ticks.length > 0) {
+ // snap to ticks
+ if (axis.options.min == null)
+ axis.min = Math.min(axis.min, ticks[0].v);
+ if (axis.options.max == null && ticks.length > 1)
+ axis.max = Math.max(axis.max, ticks[ticks.length - 1].v);
+ }
+ }
+
+ function draw() {
+ ctx.clearRect(0, 0, canvasWidth, canvasHeight);
+
+ var grid = options.grid;
+
+ // draw background, if any
+ if (grid.show && grid.backgroundColor)
+ drawBackground();
+
+ if (grid.show && !grid.aboveData)
+ drawGrid();
+
+ for (var i = 0; i < series.length; ++i) {
+ executeHooks(hooks.drawSeries, [ctx, series[i]]);
+ drawSeries(series[i]);
+ }
+
+ executeHooks(hooks.draw, [ctx]);
+
+ if (grid.show && grid.aboveData)
+ drawGrid();
+ }
+
+ function extractRange(ranges, coord) {
+ var axis, from, to, key, axes = allAxes();
+
+ for (i = 0; i < axes.length; ++i) {
+ axis = axes[i];
+ if (axis.direction == coord) {
+ key = coord + axis.n + "axis";
+ if (!ranges[key] && axis.n == 1)
+ key = coord + "axis"; // support x1axis as xaxis
+ if (ranges[key]) {
+ from = ranges[key].from;
+ to = ranges[key].to;
+ break;
+ }
+ }
+ }
+
+ // backwards-compat stuff - to be removed in future
+ if (!ranges[key]) {
+ axis = coord == "x" ? xaxes[0] : yaxes[0];
+ from = ranges[coord + "1"];
+ to = ranges[coord + "2"];
+ }
+
+ // auto-reverse as an added bonus
+ if (from != null && to != null && from > to) {
+ var tmp = from;
+ from = to;
+ to = tmp;
+ }
+
+ return { from: from, to: to, axis: axis };
+ }
+
+ function drawBackground() {
+ ctx.save();
+ ctx.translate(plotOffset.left, plotOffset.top);
+
+ ctx.fillStyle = getColorOrGradient(options.grid.backgroundColor, plotHeight, 0, "rgba(255, 255, 255, 0)");
+ ctx.fillRect(0, 0, plotWidth, plotHeight);
+ ctx.restore();
+ }
+
+ function drawGrid() {
+ var i;
+
+ ctx.save();
+ ctx.translate(plotOffset.left, plotOffset.top);
+
+ // draw markings
+ var markings = options.grid.markings;
+ if (markings) {
+ if ($.isFunction(markings)) {
+ var axes = plot.getAxes();
+ // xmin etc. is backwards compatibility, to be
+ // removed in the future
+ axes.xmin = axes.xaxis.min;
+ axes.xmax = axes.xaxis.max;
+ axes.ymin = axes.yaxis.min;
+ axes.ymax = axes.yaxis.max;
+
+ markings = markings(axes);
+ }
+
+ for (i = 0; i < markings.length; ++i) {
+ var m = markings[i],
+ xrange = extractRange(m, "x"),
+ yrange = extractRange(m, "y");
+
+ // fill in missing
+ if (xrange.from == null)
+ xrange.from = xrange.axis.min;
+ if (xrange.to == null)
+ xrange.to = xrange.axis.max;
+ if (yrange.from == null)
+ yrange.from = yrange.axis.min;
+ if (yrange.to == null)
+ yrange.to = yrange.axis.max;
+
+ // clip
+ if (xrange.to < xrange.axis.min || xrange.from > xrange.axis.max ||
+ yrange.to < yrange.axis.min || yrange.from > yrange.axis.max)
+ continue;
+
+ xrange.from = Math.max(xrange.from, xrange.axis.min);
+ xrange.to = Math.min(xrange.to, xrange.axis.max);
+ yrange.from = Math.max(yrange.from, yrange.axis.min);
+ yrange.to = Math.min(yrange.to, yrange.axis.max);
+
+ if (xrange.from == xrange.to && yrange.from == yrange.to)
+ continue;
+
+ // then draw
+ xrange.from = xrange.axis.p2c(xrange.from);
+ xrange.to = xrange.axis.p2c(xrange.to);
+ yrange.from = yrange.axis.p2c(yrange.from);
+ yrange.to = yrange.axis.p2c(yrange.to);
+
+ if (xrange.from == xrange.to || yrange.from == yrange.to) {
+ // draw line
+ ctx.beginPath();
+ ctx.strokeStyle = m.color || options.grid.markingsColor;
+ ctx.lineWidth = m.lineWidth || options.grid.markingsLineWidth;
+ ctx.moveTo(xrange.from, yrange.from);
+ ctx.lineTo(xrange.to, yrange.to);
+ ctx.stroke();
+ }
+ else {
+ // fill area
+ ctx.fillStyle = m.color || options.grid.markingsColor;
+ ctx.fillRect(xrange.from, yrange.to,
+ xrange.to - xrange.from,
+ yrange.from - yrange.to);
+ }
+ }
+ }
+
+ // draw the ticks
+ var axes = allAxes(), bw = options.grid.borderWidth;
+
+ for (var j = 0; j < axes.length; ++j) {
+ var axis = axes[j], box = axis.box,
+ t = axis.tickLength, x, y, xoff, yoff;
+ if (!axis.show || axis.ticks.length == 0)
+ continue;
+
+ ctx.strokeStyle = axis.options.tickColor || $.color.parse(axis.options.color).scale('a', 0.22).toString();
+ ctx.lineWidth = 1;
+
+ // find the edges
+ if (axis.direction == "x") {
+ x = 0;
+ if (t == "full")
+ y = (axis.position == "top" ? 0 : plotHeight);
+ else
+ y = box.top - plotOffset.top + (axis.position == "top" ? box.height : 0);
+ }
+ else {
+ y = 0;
+ if (t == "full")
+ x = (axis.position == "left" ? 0 : plotWidth);
+ else
+ x = box.left - plotOffset.left + (axis.position == "left" ? box.width : 0);
+ }
+
+ // draw tick bar
+ if (!axis.innermost) {
+ ctx.beginPath();
+ xoff = yoff = 0;
+ if (axis.direction == "x")
+ xoff = plotWidth;
+ else
+ yoff = plotHeight;
+
+ if (ctx.lineWidth == 1) {
+ x = Math.floor(x) + 0.5;
+ y = Math.floor(y) + 0.5;
+ }
+
+ ctx.moveTo(x, y);
+ ctx.lineTo(x + xoff, y + yoff);
+ ctx.stroke();
+ }
+
+ // draw ticks
+ ctx.beginPath();
+ for (i = 0; i < axis.ticks.length; ++i) {
+ var v = axis.ticks[i].v;
+
+ xoff = yoff = 0;
+
+ if (v < axis.min || v > axis.max
+ // skip those lying on the axes if we got a border
+ || (t == "full" && bw > 0
+ && (v == axis.min || v == axis.max)))
+ continue;
+
+ if (axis.direction == "x") {
+ x = axis.p2c(v);
+ yoff = t == "full" ? -plotHeight : t;
+
+ if (axis.position == "top")
+ yoff = -yoff;
+ }
+ else {
+ y = axis.p2c(v);
+ xoff = t == "full" ? -plotWidth : t;
+
+ if (axis.position == "left")
+ xoff = -xoff;
+ }
+
+ if (ctx.lineWidth == 1) {
+ if (axis.direction == "x")
+ x = Math.floor(x) + 0.5;
+ else
+ y = Math.floor(y) + 0.5;
+ }
+
+ ctx.moveTo(x, y);
+ ctx.lineTo(x + xoff, y + yoff);
+ }
+
+ ctx.stroke();
+ }
+
+
+ // draw border
+ if (bw) {
+ ctx.lineWidth = bw;
+ ctx.strokeStyle = options.grid.borderColor;
+ ctx.strokeRect(-bw/2, -bw/2, plotWidth + bw, plotHeight + bw);
+ }
+
+ ctx.restore();
+ }
+
+ function insertAxisLabels() {
+ placeholder.find(".tickLabels").remove();
+
+ var html = ['<div class="tickLabels" style="font-size:smaller">'];
+
+ var axes = allAxes();
+ for (var j = 0; j < axes.length; ++j) {
+ var axis = axes[j], box = axis.box;
+ if (!axis.show)
+ continue;
+ //debug: html.push('<div style="position:absolute;opacity:0.10;background-color:red;left:' + box.left + 'px;top:' + box.top + 'px;width:' + box.width + 'px;height:' + box.height + 'px"></div>')
+ html.push('<div class="' + axis.direction + 'Axis ' + axis.direction + axis.n + 'Axis" style="color:' + axis.options.color + '">');
+ for (var i = 0; i < axis.ticks.length; ++i) {
+ var tick = axis.ticks[i];
+ if (!tick.label || tick.v < axis.min || tick.v > axis.max)
+ continue;
+
+ var pos = {}, align;
+
+ if (axis.direction == "x") {
+ align = "center";
+ pos.left = Math.round(plotOffset.left + axis.p2c(tick.v) - axis.labelWidth/2);
+ if (axis.position == "bottom")
+ pos.top = box.top + box.padding;
+ else
+ pos.bottom = canvasHeight - (box.top + box.height - box.padding);
+ }
+ else {
+ pos.top = Math.round(plotOffset.top + axis.p2c(tick.v) - axis.labelHeight/2);
+ if (axis.position == "left") {
+ pos.right = canvasWidth - (box.left + box.width - box.padding)
+ align = "right";
+ }
+ else {
+ pos.left = box.left + box.padding;
+ align = "left";
+ }
+ }
+
+ pos.width = axis.labelWidth;
+
+ var style = ["position:absolute", "text-align:" + align ];
+ for (var a in pos)
+ style.push(a + ":" + pos[a] + "px")
+
+ html.push('<div class="tickLabel" style="' + style.join(';') + '">' + tick.label + '</div>');
+ }
+ html.push('</div>');
+ }
+
+ html.push('</div>');
+
+ placeholder.append(html.join(""));
+ }
+
+ function drawSeries(series) {
+ if (series.lines.show)
+ drawSeriesLines(series);
+ if (series.bars.show)
+ drawSeriesBars(series);
+ if (series.points.show)
+ drawSeriesPoints(series);
+ }
+
+ function drawSeriesLines(series) {
+ function plotLine(datapoints, xoffset, yoffset, axisx, axisy) {
+ var points = datapoints.points,
+ ps = datapoints.pointsize,
+ prevx = null, prevy = null;
+
+ ctx.beginPath();
+ for (var i = ps; i < points.length; i += ps) {
+ var x1 = points[i - ps], y1 = points[i - ps + 1],
+ x2 = points[i], y2 = points[i + 1];
+
+ if (x1 == null || x2 == null)
+ continue;
+
+ // clip with ymin
+ if (y1 <= y2 && y1 < axisy.min) {
+ if (y2 < axisy.min)
+ continue; // line segment is outside
+ // compute new intersection point
+ x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
+ y1 = axisy.min;
+ }
+ else if (y2 <= y1 && y2 < axisy.min) {
+ if (y1 < axisy.min)
+ continue;
+ x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
+ y2 = axisy.min;
+ }
+
+ // clip with ymax
+ if (y1 >= y2 && y1 > axisy.max) {
+ if (y2 > axisy.max)
+ continue;
+ x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
+ y1 = axisy.max;
+ }
+ else if (y2 >= y1 && y2 > axisy.max) {
+ if (y1 > axisy.max)
+ continue;
+ x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
+ y2 = axisy.max;
+ }
+
+ // clip with xmin
+ if (x1 <= x2 && x1 < axisx.min) {
+ if (x2 < axisx.min)
+ continue;
+ y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
+ x1 = axisx.min;
+ }
+ else if (x2 <= x1 && x2 < axisx.min) {
+ if (x1 < axisx.min)
+ continue;
+ y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
+ x2 = axisx.min;
+ }
+
+ // clip with xmax
+ if (x1 >= x2 && x1 > axisx.max) {
+ if (x2 > axisx.max)
+ continue;
+ y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
+ x1 = axisx.max;
+ }
+ else if (x2 >= x1 && x2 > axisx.max) {
+ if (x1 > axisx.max)
+ continue;
+ y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
+ x2 = axisx.max;
+ }
+
+ if (x1 != prevx || y1 != prevy)
+ ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset);
+
+ prevx = x2;
+ prevy = y2;
+ ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset);
+ }
+ ctx.stroke();
+ }
+
+ function plotLineArea(datapoints, axisx, axisy) {
+ var points = datapoints.points,
+ ps = datapoints.pointsize,
+ bottom = Math.min(Math.max(0, axisy.min), axisy.max),
+ i = 0, top, areaOpen = false,
+ ypos = 1, segmentStart = 0, segmentEnd = 0;
+
+ // we process each segment in two turns, first forward
+ // direction to sketch out top, then once we hit the
+ // end we go backwards to sketch the bottom
+ while (true) {
+ if (ps > 0 && i > points.length + ps)
+ break;
+
+ i += ps; // ps is negative if going backwards
+
+ var x1 = points[i - ps],
+ y1 = points[i - ps + ypos],
+ x2 = points[i], y2 = points[i + ypos];
+
+ if (areaOpen) {
+ if (ps > 0 && x1 != null && x2 == null) {
+ // at turning point
+ segmentEnd = i;
+ ps = -ps;
+ ypos = 2;
+ continue;
+ }
+
+ if (ps < 0 && i == segmentStart + ps) {
+ // done with the reverse sweep
+ ctx.fill();
+ areaOpen = false;
+ ps = -ps;
+ ypos = 1;
+ i = segmentStart = segmentEnd + ps;
+ continue;
+ }
+ }
+
+ if (x1 == null || x2 == null)
+ continue;
+
+ // clip x values
+
+ // clip with xmin
+ if (x1 <= x2 && x1 < axisx.min) {
+ if (x2 < axisx.min)
+ continue;
+ y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
+ x1 = axisx.min;
+ }
+ else if (x2 <= x1 && x2 < axisx.min) {
+ if (x1 < axisx.min)
+ continue;
+ y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
+ x2 = axisx.min;
+ }
+
+ // clip with xmax
+ if (x1 >= x2 && x1 > axisx.max) {
+ if (x2 > axisx.max)
+ continue;
+ y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
+ x1 = axisx.max;
+ }
+ else if (x2 >= x1 && x2 > axisx.max) {
+ if (x1 > axisx.max)
+ continue;
+ y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
+ x2 = axisx.max;
+ }
+
+ if (!areaOpen) {
+ // open area
+ ctx.beginPath();
+ ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom));
+ areaOpen = true;
+ }
+
+ // now first check the case where both is outside
+ if (y1 >= axisy.max && y2 >= axisy.max) {
+ ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max));
+ ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max));
+ continue;
+ }
+ else if (y1 <= axisy.min && y2 <= axisy.min) {
+ ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min));
+ ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min));
+ continue;
+ }
+
+ // else it's a bit more complicated, there might
+ // be a flat maxed out rectangle first, then a
+ // triangular cutout or reverse; to find these
+ // keep track of the current x values
+ var x1old = x1, x2old = x2;
+
+ // clip the y values, without shortcutting, we
+ // go through all cases in turn
+
+ // clip with ymin
+ if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) {
+ x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
+ y1 = axisy.min;
+ }
+ else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) {
+ x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
+ y2 = axisy.min;
+ }
+
+ // clip with ymax
+ if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) {
+ x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
+ y1 = axisy.max;
+ }
+ else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) {
+ x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
+ y2 = axisy.max;
+ }
+
+ // if the x value was changed we got a rectangle
+ // to fill
+ if (x1 != x1old) {
+ ctx.lineTo(axisx.p2c(x1old), axisy.p2c(y1));
+ // it goes to (x1, y1), but we fill that below
+ }
+
+ // fill triangular section, this sometimes result
+ // in redundant points if (x1, y1) hasn't changed
+ // from previous line to, but we just ignore that
+ ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1));
+ ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2));
+
+ // fill the other rectangle if it's there
+ if (x2 != x2old) {
+ ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2));
+ ctx.lineTo(axisx.p2c(x2old), axisy.p2c(y2));
+ }
+ }
+ }
+
+ ctx.save();
+ ctx.translate(plotOffset.left, plotOffset.top);
+ ctx.lineJoin = "round";
+
+ var lw = series.lines.lineWidth,
+ sw = series.shadowSize;
+ // FIXME: consider another form of shadow when filling is turned on
+ if (lw > 0 && sw > 0) {
+ // draw shadow as a thick and thin line with transparency
+ ctx.lineWidth = sw;
+ ctx.strokeStyle = "rgba(0,0,0,0.1)";
+ // position shadow at angle from the mid of line
+ var angle = Math.PI/18;
+ plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2), series.xaxis, series.yaxis);
+ ctx.lineWidth = sw/2;
+ plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4), series.xaxis, series.yaxis);
+ }
+
+ ctx.lineWidth = lw;
+ ctx.strokeStyle = series.color;
+ var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight);
+ if (fillStyle) {
+ ctx.fillStyle = fillStyle;
+ plotLineArea(series.datapoints, series.xaxis, series.yaxis);
+ }
+
+ if (lw > 0)
+ plotLine(series.datapoints, 0, 0, series.xaxis, series.yaxis);
+ ctx.restore();
+ }
+
+ function drawSeriesPoints(series) {
+ function plotPoints(datapoints, radius, fillStyle, offset, shadow, axisx, axisy, symbol) {
+ var points = datapoints.points, ps = datapoints.pointsize;
+
+ for (var i = 0; i < points.length; i += ps) {
+ var x = points[i], y = points[i + 1];
+ if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max)
+ continue;
+
+ ctx.beginPath();
+ x = axisx.p2c(x);
+ y = axisy.p2c(y) + offset;
+ if (symbol == "circle")
+ ctx.arc(x, y, radius, 0, shadow ? Math.PI : Math.PI * 2, false);
+ else
+ symbol(ctx, x, y, radius, shadow);
+ ctx.closePath();
+
+ if (fillStyle) {
+ ctx.fillStyle = fillStyle;
+ ctx.fill();
+ }
+ ctx.stroke();
+ }
+ }
+
+ ctx.save();
+ ctx.translate(plotOffset.left, plotOffset.top);
+
+ var lw = series.points.lineWidth,
+ sw = series.shadowSize,
+ radius = series.points.radius,
+ symbol = series.points.symbol;
+ if (lw > 0 && sw > 0) {
+ // draw shadow in two steps
+ var w = sw / 2;
+ ctx.lineWidth = w;
+ ctx.strokeStyle = "rgba(0,0,0,0.1)";
+ plotPoints(series.datapoints, radius, null, w + w/2, true,
+ series.xaxis, series.yaxis, symbol);
+
+ ctx.strokeStyle = "rgba(0,0,0,0.2)";
+ plotPoints(series.datapoints, radius, null, w/2, true,
+ series.xaxis, series.yaxis, symbol);
+ }
+
+ ctx.lineWidth = lw;
+ ctx.strokeStyle = series.color;
+ plotPoints(series.datapoints, radius,
+ getFillStyle(series.points, series.color), 0, false,
+ series.xaxis, series.yaxis, symbol);
+ ctx.restore();
+ }
+
+ function drawBar(x, y, b, barLeft, barRight, offset, fillStyleCallback, axisx, axisy, c, horizontal, lineWidth) {
+ var left, right, bottom, top,
+ drawLeft, drawRight, drawTop, drawBottom,
+ tmp;
+
+ // in horizontal mode, we start the bar from the left
+ // instead of from the bottom so it appears to be
+ // horizontal rather than vertical
+ if (horizontal) {
+ drawBottom = drawRight = drawTop = true;
+ drawLeft = false;
+ left = b;
+ right = x;
+ top = y + barLeft;
+ bottom = y + barRight;
+
+ // account for negative bars
+ if (right < left) {
+ tmp = right;
+ right = left;
+ left = tmp;
+ drawLeft = true;
+ drawRight = false;
+ }
+ }
+ else {
+ drawLeft = drawRight = drawTop = true;
+ drawBottom = false;
+ left = x + barLeft;
+ right = x + barRight;
+ bottom = b;
+ top = y;
+
+ // account for negative bars
+ if (top < bottom) {
+ tmp = top;
+ top = bottom;
+ bottom = tmp;
+ drawBottom = true;
+ drawTop = false;
+ }
+ }
+
+ // clip
+ if (right < axisx.min || left > axisx.max ||
+ top < axisy.min || bottom > axisy.max)
+ return;
+
+ if (left < axisx.min) {
+ left = axisx.min;
+ drawLeft = false;
+ }
+
+ if (right > axisx.max) {
+ right = axisx.max;
+ drawRight = false;
+ }
+
+ if (bottom < axisy.min) {
+ bottom = axisy.min;
+ drawBottom = false;
+ }
+
+ if (top > axisy.max) {
+ top = axisy.max;
+ drawTop = false;
+ }
+
+ left = axisx.p2c(left);
+ bottom = axisy.p2c(bottom);
+ right = axisx.p2c(right);
+ top = axisy.p2c(top);
+
+ // fill the bar
+ if (fillStyleCallback) {
+ c.beginPath();
+ c.moveTo(left, bottom);
+ c.lineTo(left, top);
+ c.lineTo(right, top);
+ c.lineTo(right, bottom);
+ c.fillStyle = fillStyleCallback(bottom, top);
+ c.fill();
+ }
+
+ // draw outline
+ if (lineWidth > 0 && (drawLeft || drawRight || drawTop || drawBottom)) {
+ c.beginPath();
+
+ // FIXME: inline moveTo is buggy with excanvas
+ c.moveTo(left, bottom + offset);
+ if (drawLeft)
+ c.lineTo(left, top + offset);
+ else
+ c.moveTo(left, top + offset);
+ if (drawTop)
+ c.lineTo(right, top + offset);
+ else
+ c.moveTo(right, top + offset);
+ if (drawRight)
+ c.lineTo(right, bottom + offset);
+ else
+ c.moveTo(right, bottom + offset);
+ if (drawBottom)
+ c.lineTo(left, bottom + offset);
+ else
+ c.moveTo(left, bottom + offset);
+ c.stroke();
+ }
+ }
+
+ function drawSeriesBars(series) {
+ function plotBars(datapoints, barLeft, barRight, offset, fillStyleCallback, axisx, axisy) {
+ var points = datapoints.points, ps = datapoints.pointsize;
+
+ for (var i = 0; i < points.length; i += ps) {
+ if (points[i] == null)
+ continue;
+ drawBar(points[i], points[i + 1], points[i + 2], barLeft, barRight, offset, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal, series.bars.lineWidth);
+ }
+ }
+
+ ctx.save();
+ ctx.translate(plotOffset.left, plotOffset.top);
+
+ // FIXME: figure out a way to add shadows (for instance along the right edge)
+ ctx.lineWidth = series.bars.lineWidth;
+ ctx.strokeStyle = series.color;
+ var barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth/2;
+ var fillStyleCallback = series.bars.fill ? function (bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null;
+ plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, 0, fillStyleCallback, series.xaxis, series.yaxis);
+ ctx.restore();
+ }
+
+ function getFillStyle(filloptions, seriesColor, bottom, top) {
+ var fill = filloptions.fill;
+ if (!fill)
+ return null;
+
+ if (filloptions.fillColor)
+ return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor);
+
+ var c = $.color.parse(seriesColor);
+ c.a = typeof fill == "number" ? fill : 0.4;
+ c.normalize();
+ return c.toString();
+ }
+
+ function insertLegend() {
+ placeholder.find(".legend").remove();
+
+ if (!options.legend.show)
+ return;
+
+ var fragments = [], rowStarted = false,
+ lf = options.legend.labelFormatter, s, label;
+ for (var i = 0; i < series.length; ++i) {
+ s = series[i];
+ label = s.label;
+ if (!label)
+ continue;
+
+ if (i % options.legend.noColumns == 0) {
+ if (rowStarted)
+ fragments.push('</tr>');
+ fragments.push('<tr>');
+ rowStarted = true;
+ }
+
+ if (lf)
+ label = lf(label, s);
+
+ fragments.push(
+ '<td class="legendColorBox"><div style="border:1px solid ' + options.legend.labelBoxBorderColor + ';padding:1px"><div style="width:4px;height:0;border:5px solid ' + s.color + ';overflow:hidden"></div></div></td>' +
+ '<td class="legendLabel">' + label + '</td>');
+ }
+ if (rowStarted)
+ fragments.push('</tr>');
+
+ if (fragments.length == 0)
+ return;
+
+ var table = '<table style="font-size:smaller;color:' + options.grid.color + '">' + fragments.join("") + '</table>';
+ if (options.legend.container != null)
+ $(options.legend.container).html(table);
+ else {
+ var pos = "",
+ p = options.legend.position,
+ m = options.legend.margin;
+ if (m[0] == null)
+ m = [m, m];
+ if (p.charAt(0) == "n")
+ pos += 'top:' + (m[1] + plotOffset.top) + 'px;';
+ else if (p.charAt(0) == "s")
+ pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;';
+ if (p.charAt(1) == "e")
+ pos += 'right:' + (m[0] + plotOffset.right) + 'px;';
+ else if (p.charAt(1) == "w")
+ pos += 'left:' + (m[0] + plotOffset.left) + 'px;';
+ var legend = $('<div class="legend">' + table.replace('style="', 'style="position:absolute;' + pos +';') + '</div>').appendTo(placeholder);
+ if (options.legend.backgroundOpacity != 0.0) {
+ // put in the transparent background
+ // separately to avoid blended labels and
+ // label boxes
+ var c = options.legend.backgroundColor;
+ if (c == null) {
+ c = options.grid.backgroundColor;
+ if (c && typeof c == "string")
+ c = $.color.parse(c);
+ else
+ c = $.color.extract(legend, 'background-color');
+ c.a = 1;
+ c = c.toString();
+ }
+ var div = legend.children();
+ $('<div style="position:absolute;width:' + div.width() + 'px;height:' + div.height() + 'px;' + pos +'background-color:' + c + ';"> </div>').prependTo(legend).css('opacity', options.legend.backgroundOpacity);
+ }
+ }
+ }
+
+
+ // interactive features
+
+ var highlights = [],
+ redrawTimeout = null;
+
+ // returns the data item the mouse is over, or null if none is found
+ function findNearbyItem(mouseX, mouseY, seriesFilter) {
+ var maxDistance = options.grid.mouseActiveRadius,
+ smallestDistance = maxDistance * maxDistance + 1,
+ item = null, foundPoint = false, i, j;
+
+ for (i = series.length - 1; i >= 0; --i) {
+ if (!seriesFilter(series[i]))
+ continue;
+
+ var s = series[i],
+ axisx = s.xaxis,
+ axisy = s.yaxis,
+ points = s.datapoints.points,
+ ps = s.datapoints.pointsize,
+ mx = axisx.c2p(mouseX), // precompute some stuff to make the loop faster
+ my = axisy.c2p(mouseY),
+ maxx = maxDistance / axisx.scale,
+ maxy = maxDistance / axisy.scale;
+
+ // with inverse transforms, we can't use the maxx/maxy
+ // optimization, sadly
+ if (axisx.options.inverseTransform)
+ maxx = Number.MAX_VALUE;
+ if (axisy.options.inverseTransform)
+ maxy = Number.MAX_VALUE;
+
+ if (s.lines.show || s.points.show) {
+ for (j = 0; j < points.length; j += ps) {
+ var x = points[j], y = points[j + 1];
+ if (x == null)
+ continue;
+
+ // For points and lines, the cursor must be within a
+ // certain distance to the data point
+ if (x - mx > maxx || x - mx < -maxx ||
+ y - my > maxy || y - my < -maxy)
+ continue;
+
+ // We have to calculate distances in pixels, not in
+ // data units, because the scales of the axes may be different
+ var dx = Math.abs(axisx.p2c(x) - mouseX),
+ dy = Math.abs(axisy.p2c(y) - mouseY),
+ dist = dx * dx + dy * dy; // we save the sqrt
+
+ // use <= to ensure last point takes precedence
+ // (last generally means on top of)
+ if (dist < smallestDistance) {
+ smallestDistance = dist;
+ item = [i, j / ps];
+ }
+ }
+ }
+
+ if (s.bars.show && !item) { // no other point can be nearby
+ var barLeft = s.bars.align == "left" ? 0 : -s.bars.barWidth/2,
+ barRight = barLeft + s.bars.barWidth;
+
+ for (j = 0; j < points.length; j += ps) {
+ var x = points[j], y = points[j + 1], b = points[j + 2];
+ if (x == null)
+ continue;
+
+ // for a bar graph, the cursor must be inside the bar
+ if (series[i].bars.horizontal ?
+ (mx <= Math.max(b, x) && mx >= Math.min(b, x) &&
+ my >= y + barLeft && my <= y + barRight) :
+ (mx >= x + barLeft && mx <= x + barRight &&
+ my >= Math.min(b, y) && my <= Math.max(b, y)))
+ item = [i, j / ps];
+ }
+ }
+ }
+
+ if (item) {
+ i = item[0];
+ j = item[1];
+ ps = series[i].datapoints.pointsize;
+
+ return { datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps),
+ dataIndex: j,
+ series: series[i],
+ seriesIndex: i };
+ }
+
+ return null;
+ }
+
+ function onMouseMove(e) {
+ if (options.grid.hoverable)
+ triggerClickHoverEvent("plothover", e,
+ function (s) { return s["hoverable"] != false; });
+ }
+
+ function onMouseLeave(e) {
+ if (options.grid.hoverable)
+ triggerClickHoverEvent("plothover", e,
+ function (s) { return false; });
+ }
+
+ function onClick(e) {
+ triggerClickHoverEvent("plotclick", e,
+ function (s) { return s["clickable"] != false; });
+ }
+
+ // trigger click or hover event (they send the same parameters
+ // so we share their code)
+ function triggerClickHoverEvent(eventname, event, seriesFilter) {
+ var offset = eventHolder.offset(),
+ canvasX = event.pageX - offset.left - plotOffset.left,
+ canvasY = event.pageY - offset.top - plotOffset.top,
+ pos = canvasToAxisCoords({ left: canvasX, top: canvasY });
+
+ pos.pageX = event.pageX;
+ pos.pageY = event.pageY;
+
+ var item = findNearbyItem(canvasX, canvasY, seriesFilter);
+
+ if (item) {
+ // fill in mouse pos for any listeners out there
+ item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left + plotOffset.left);
+ item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top + plotOffset.top);
+ }
+
+ if (options.grid.autoHighlight) {
+ // clear auto-highlights
+ for (var i = 0; i < highlights.length; ++i) {
+ var h = highlights[i];
+ if (h.auto == eventname &&
+ !(item && h.series == item.series &&
+ h.point[0] == item.datapoint[0] &&
+ h.point[1] == item.datapoint[1]))
+ unhighlight(h.series, h.point);
+ }
+
+ if (item)
+ highlight(item.series, item.datapoint, eventname);
+ }
+
+ placeholder.trigger(eventname, [ pos, item ]);
+ }
+
+ function triggerRedrawOverlay() {
+ if (!redrawTimeout)
+ redrawTimeout = setTimeout(drawOverlay, 30);
+ }
+
+ function drawOverlay() {
+ redrawTimeout = null;
+
+ // draw highlights
+ octx.save();
+ octx.clearRect(0, 0, canvasWidth, canvasHeight);
+ octx.translate(plotOffset.left, plotOffset.top);
+
+ var i, hi;
+ for (i = 0; i < highlights.length; ++i) {
+ hi = highlights[i];
+
+ if (hi.series.bars.show)
+ drawBarHighlight(hi.series, hi.point);
+ else
+ drawPointHighlight(hi.series, hi.point);
+ }
+ octx.restore();
+
+ executeHooks(hooks.drawOverlay, [octx]);
+ }
+
+ function highlight(s, point, auto) {
+ if (typeof s == "number")
+ s = series[s];
+
+ if (typeof point == "number") {
+ var ps = s.datapoints.pointsize;
+ point = s.datapoints.points.slice(ps * point, ps * (point + 1));
+ }
+
+ var i = indexOfHighlight(s, point);
+ if (i == -1) {
+ highlights.push({ series: s, point: point, auto: auto });
+
+ triggerRedrawOverlay();
+ }
+ else if (!auto)
+ highlights[i].auto = false;
+ }
+
+ function unhighlight(s, point) {
+ if (s == null && point == null) {
+ highlights = [];
+ triggerRedrawOverlay();
+ }
+
+ if (typeof s == "number")
+ s = series[s];
+
+ if (typeof point == "number")
+ point = s.data[point];
+
+ var i = indexOfHighlight(s, point);
+ if (i != -1) {
+ highlights.splice(i, 1);
+
+ triggerRedrawOverlay();
+ }
+ }
+
+ function indexOfHighlight(s, p) {
+ for (var i = 0; i < highlights.length; ++i) {
+ var h = highlights[i];
+ if (h.series == s && h.point[0] == p[0]
+ && h.point[1] == p[1])
+ return i;
+ }
+ return -1;
+ }
+
+ function drawPointHighlight(series, point) {
+ var x = point[0], y = point[1],
+ axisx = series.xaxis, axisy = series.yaxis;
+
+ if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max)
+ return;
+
+ var pointRadius = series.points.radius + series.points.lineWidth / 2;
+ octx.lineWidth = pointRadius;
+ octx.strokeStyle = $.color.parse(series.color).scale('a', 0.5).toString();
+ var radius = 1.5 * pointRadius,
+ x = axisx.p2c(x),
+ y = axisy.p2c(y);
+
+ octx.beginPath();
+ if (series.points.symbol == "circle")
+ octx.arc(x, y, radius, 0, 2 * Math.PI, false);
+ else
+ series.points.symbol(octx, x, y, radius, false);
+ octx.closePath();
+ octx.stroke();
+ }
+
+ function drawBarHighlight(series, point) {
+ octx.lineWidth = series.bars.lineWidth;
+ octx.strokeStyle = $.color.parse(series.color).scale('a', 0.5).toString();
+ var fillStyle = $.color.parse(series.color).scale('a', 0.5).toString();
+ var barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth/2;
+ drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth,
+ 0, function () { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth);
+ }
+
+ function getColorOrGradient(spec, bottom, top, defaultColor) {
+ if (typeof spec == "string")
+ return spec;
+ else {
+ // assume this is a gradient spec; IE currently only
+ // supports a simple vertical gradient properly, so that's
+ // what we support too
+ var gradient = ctx.createLinearGradient(0, top, 0, bottom);
+
+ for (var i = 0, l = spec.colors.length; i < l; ++i) {
+ var c = spec.colors[i];
+ if (typeof c != "string") {
+ var co = $.color.parse(defaultColor);
+ if (c.brightness != null)
+ co = co.scale('rgb', c.brightness)
+ if (c.opacity != null)
+ co.a *= c.opacity;
+ c = co.toString();
+ }
+ gradient.addColorStop(i / (l - 1), c);
+ }
+
+ return gradient;
+ }
+ }
+ }
+
+ $.plot = function(placeholder, data, options) {
+ //var t0 = new Date();
+ var plot = new Plot($(placeholder), data, options, $.plot.plugins);
+ //(window.console ? console.log : alert)("time used (msecs): " + ((new Date()).getTime() - t0.getTime()));
+ return plot;
+ };
+
+ $.plot.version = "0.7";
+
+ $.plot.plugins = [];
+
+ // returns a string with the date d formatted according to fmt
+ $.plot.formatDate = function(d, fmt, monthNames) {
+ var leftPad = function(n) {
+ n = "" + n;
+ return n.length == 1 ? "0" + n : n;
+ };
+
+ var r = [];
+ var escape = false, padNext = false;
+ var hours = d.getUTCHours();
+ var isAM = hours < 12;
+ if (monthNames == null)
+ monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
+
+ if (fmt.search(/%p|%P/) != -1) {
+ if (hours > 12) {
+ hours = hours - 12;
+ } else if (hours == 0) {
+ hours = 12;
+ }
+ }
+ for (var i = 0; i < fmt.length; ++i) {
+ var c = fmt.charAt(i);
+
+ if (escape) {
+ switch (c) {
+ case 'h': c = "" + hours; break;
+ case 'H': c = leftPad(hours); break;
+ case 'M': c = leftPad(d.getUTCMinutes()); break;
+ case 'S': c = leftPad(d.getUTCSeconds()); break;
+ case 'd': c = "" + d.getUTCDate(); break;
+ case 'm': c = "" + (d.getUTCMonth() + 1); break;
+ case 'y': c = "" + d.getUTCFullYear(); break;
+ case 'b': c = "" + monthNames[d.getUTCMonth()]; break;
+ case 'p': c = (isAM) ? ("" + "am") : ("" + "pm"); break;
+ case 'P': c = (isAM) ? ("" + "AM") : ("" + "PM"); break;
+ case '0': c = ""; padNext = true; break;
+ }
+ if (c && padNext) {
+ c = leftPad(c);
+ padNext = false;
+ }
+ r.push(c);
+ if (!padNext)
+ escape = false;
+ }
+ else {
+ if (c == "%")
+ escape = true;
+ else
+ r.push(c);
+ }
+ }
+ return r.join("");
+ };
+
+ // round to nearby lower multiple of base
+ function floorInBase(n, base) {
+ return base * Math.floor(n / base);
+ }
+
+})(jQuery);
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/redbutton.css b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/redbutton.css
new file mode 100644
index 0000000000..a70cf5e575
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/redbutton.css
@@ -0,0 +1,3 @@
+.redButton {
+ background-color: red;
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/requesthandlers/AppResource404.java b/tests/testbench/com/vaadin/tests/requesthandlers/AppResource404.java
index 1d98e35dd5..2f5c1177fa 100644
--- a/tests/testbench/com/vaadin/tests/requesthandlers/AppResource404.java
+++ b/tests/testbench/com/vaadin/tests/requesthandlers/AppResource404.java
@@ -22,6 +22,7 @@ public class AppResource404 extends TestBase {
addComponent(new Button("Remove existing resrouce",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
removeResource(resource);
}
diff --git a/tests/testbench/com/vaadin/tests/resources/DownloadLargeFileResource.java b/tests/testbench/com/vaadin/tests/resources/DownloadLargeFileResource.java
index 3d7379aafe..cb8963c3d4 100644
--- a/tests/testbench/com/vaadin/tests/resources/DownloadLargeFileResource.java
+++ b/tests/testbench/com/vaadin/tests/resources/DownloadLargeFileResource.java
@@ -22,6 +22,7 @@ public class DownloadLargeFileResource extends TestBase {
+ String.format("%.1f", fileSize / 1024.0 / 1024.0)
+ "MB file", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
download();
}
diff --git a/tests/testbench/com/vaadin/tests/resources/NonExistingFileResource.java b/tests/testbench/com/vaadin/tests/resources/NonExistingFileResource.java
index d3bbeef99a..b6dbcfca97 100644
--- a/tests/testbench/com/vaadin/tests/resources/NonExistingFileResource.java
+++ b/tests/testbench/com/vaadin/tests/resources/NonExistingFileResource.java
@@ -22,6 +22,7 @@ public class NonExistingFileResource extends TestBase {
Button b = new Button("Download " + filename);
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
FileResource res = new FileResource(new File(getContext()
.getBaseDirectory() + "/" + filename),
diff --git a/tests/testbench/com/vaadin/tests/resources/ResourceDownload.java b/tests/testbench/com/vaadin/tests/resources/ResourceDownload.java
index 69fd0b2b81..8ab6ce153d 100644
--- a/tests/testbench/com/vaadin/tests/resources/ResourceDownload.java
+++ b/tests/testbench/com/vaadin/tests/resources/ResourceDownload.java
@@ -17,6 +17,7 @@ public class ResourceDownload extends TestBase {
public void setup() {
Button b = new Button("Download (_new)", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
download("_new");
}
@@ -24,6 +25,7 @@ public class ResourceDownload extends TestBase {
addComponent(b);
b = new Button("Download (_blank)", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
download("_blank");
}
@@ -31,6 +33,7 @@ public class ResourceDownload extends TestBase {
addComponent(b);
b = new Button("Download ()", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
download("");
}
@@ -38,6 +41,7 @@ public class ResourceDownload extends TestBase {
addComponent(b);
b = new Button("Download (_top)", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
download("_top");
}
@@ -45,6 +49,7 @@ public class ResourceDownload extends TestBase {
addComponent(b);
b = new Button("Test", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
ResourceDownload.this.getMainWindow().showNotification(
"Still working");
@@ -59,6 +64,7 @@ public class ResourceDownload extends TestBase {
String filename = "filename";
StreamResource streamResource = new StreamResource(new StreamSource() {
+ @Override
public InputStream getStream() {
try {
return new FileInputStream("FIXME C:/temp/file.xls");
diff --git a/tests/testbench/com/vaadin/tests/serialization/SerializerTest.html b/tests/testbench/com/vaadin/tests/serialization/SerializerTest.html
new file mode 100644
index 0000000000..3d52356cab
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/serialization/SerializerTest.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="http://localhost:8888/" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.serialization.SerializerTest?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[16]</td>
+ <td>1. sendBoolean: false, false, [false, false, true, false, true, true]</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[15]</td>
+ <td>2. sendByte: 5, -12, [3, 1, 2]</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[14]</td>
+ <td>3. sendChar: Å, ∫, [a, b, c, d]</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[13]</td>
+ <td>4. sendInt: 2, 5, [2147483647, 0]</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[12]</td>
+ <td>5. sendLong: -57841235865, 577431841358, [57, 0]</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[11]</td>
+ <td>6. sendFloat: 1.0000001, 3.14159, [-12.0, 0.0, 57.0]</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[10]</td>
+ <td>7. sendDouble: 0.423310825130748, 5.859874482048838, [2.0, 1.7976931348623157E308, 4.9E-324]</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[9]</td>
+ <td>8. sendString: Taegghiiiinnrsssstt‡</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[8]</td>
+ <td>9. sendConnector: com.vaadin.tests.widgetset.server.SerializerTestExtension</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[7]</td>
+ <td>10. sendBean: ComplexTestBean [innerBean1=SimpleTestBean(1), innerBean2=SimpleTestBean(3), innerBeanCollection=[SimpleTestBean(6), SimpleTestBean(0)], privimite=6], SimpleTestBean(0), [SimpleTestBean(7)]</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[6]</td>
+ <td>11. sendNull: null, Not null</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[5]</td>
+ <td>12. sendNestedArray: [[7, 5]], [[SimpleTestBean(2)], [SimpleTestBean(4)]]</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[4]</td>
+ <td>13. sendList: [-234, 5, 8], class com.vaadin.tests.widgetset.server.SerializerTestExtension, class com.vaadin.tests.serialization.SerializerTest, [SimpleTestBean(-568), SimpleTestBean(234)]</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[3]</td>
+ <td>14. sendArrayList: [[2], [2]], [[2, 1], [2, 3]], [[SimpleTestBean(7)]]</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[2]</td>
+ <td>15. sendSet: [-12, -7, -4], class com.vaadin.tests.serialization.SerializerTest, [SimpleTestBean(2), SimpleTestBean(3)]</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[1]</td>
+ <td>16. sendMap: {a=null}, [com.vaadin.tests.widgetset.server.SerializerTestExtension=false], [2=com.vaadin.tests.widgetset.server.SerializerTestExtension], {SimpleTestBean(4)=SimpleTestBean(-4), SimpleTestBean(-5)=SimpleTestBean(5)}</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsserializationSerializerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VVerticalLayout[0]/VLabel[0]</td>
+ <td>17. sendWrappedGenerics: {[SimpleTestBean(1)]={1=[SimpleTestBean(42)]}}</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/serialization/SerializerTest.java b/tests/testbench/com/vaadin/tests/serialization/SerializerTest.java
index d0b672fbf9..7c8aed1992 100644
--- a/tests/testbench/com/vaadin/tests/serialization/SerializerTest.java
+++ b/tests/testbench/com/vaadin/tests/serialization/SerializerTest.java
@@ -15,8 +15,8 @@ import java.util.Map.Entry;
import java.util.Set;
import com.vaadin.annotations.Widgetset;
+import com.vaadin.shared.Connector;
import com.vaadin.terminal.WrappedRequest;
-import com.vaadin.terminal.gwt.client.Connector;
import com.vaadin.tests.components.AbstractTestRoot;
import com.vaadin.tests.util.Log;
import com.vaadin.tests.widgetset.client.ComplexTestBean;
@@ -63,13 +63,12 @@ public class SerializerTest extends AbstractTestRoot {
rpc.sendList(Arrays.asList(5, 8, -234), Arrays.<Connector> asList(this,
testExtension), Arrays.asList(new SimpleTestBean(234),
new SimpleTestBean(-568)));
- // Disabled because of #8861
- // rpc.sendArrayList(
- // Arrays.asList(new int[] { 1, 2 }, new int[] { 3, 4 }),
- // Arrays.asList(new Integer[] { 5, 6 }, new Integer[] { 7, 8 }),
- // Collections
- // .singletonList(new SimpleTestBean[] { new SimpleTestBean(
- // 7) }));
+ rpc.sendArrayList(
+ Arrays.asList(new int[] { 1, 2 }, new int[] { 3, 4 }),
+ Arrays.asList(new Integer[] { 5, 6 }, new Integer[] { 7, 8 }),
+ Collections
+ .singletonList(new SimpleTestBean[] { new SimpleTestBean(
+ 7) }));
// Disabled because of #8861
// rpc.sendListArray(
// new List[] { Arrays.asList(1, 2), Arrays.asList(3, 4) },
@@ -112,61 +111,73 @@ public class SerializerTest extends AbstractTestRoot {
});
testExtension.registerRpc(new SerializerTestRpc() {
+ @Override
public void sendBoolean(boolean value, Boolean boxedValue,
boolean[] array) {
log.log("sendBoolean: " + value + ", " + boxedValue + ", "
+ Arrays.toString(array));
}
+ @Override
public void sendByte(byte value, Byte boxedValue, byte[] array) {
log.log("sendByte: " + value + ", " + boxedValue + ", "
+ Arrays.toString(array));
}
+ @Override
public void sendChar(char value, Character boxedValue, char[] array) {
log.log("sendChar: " + value + ", " + boxedValue + ", "
+ Arrays.toString(array));
}
+ @Override
public void sendInt(int value, Integer boxedValue, int[] array) {
log.log("sendInt: " + value + ", " + boxedValue + ", "
+ Arrays.toString(array));
}
+ @Override
public void sendLong(long value, Long boxedValue, long[] array) {
log.log("sendLong: " + value + ", " + boxedValue + ", "
+ Arrays.toString(array));
}
+ @Override
public void sendFloat(float value, Float boxedValue, float[] array) {
log.log("sendFloat: " + value + ", " + boxedValue + ", "
+ Arrays.toString(array));
}
+ @Override
public void sendDouble(double value, Double boxedValue,
double[] array) {
log.log("sendDouble: " + value + ", " + boxedValue + ", "
+ Arrays.toString(array));
}
+ @Override
public void sendString(String value) {
log.log("sendString: " + value);
}
+ @Override
public void sendConnector(Connector connector) {
log.log("sendConnector: " + connector.getClass().getName());
}
+ @Override
public void sendBean(ComplexTestBean complexBean,
SimpleTestBean simpleBean, SimpleTestBean[] array) {
log.log("sendBean: " + complexBean + ", " + simpleBean + ", "
+ Arrays.toString(array));
}
+ @Override
public void sendNull(String value1, String value2) {
log.log("sendNull: " + value1 + ", " + value2);
}
+ @Override
public void sendNestedArray(int[][] nestedIntArray,
SimpleTestBean[][] nestedBeanArray) {
log.log("sendNestedArray: "
@@ -174,6 +185,7 @@ public class SerializerTest extends AbstractTestRoot {
+ Arrays.deepToString(nestedBeanArray));
}
+ @Override
public void sendList(List<Integer> intList,
List<Connector> connectorList, List<SimpleTestBean> beanList) {
log.log("sendList: " + intList + ", "
@@ -196,19 +208,24 @@ public class SerializerTest extends AbstractTestRoot {
return string;
}
+ @Override
public void sendArrayList(List<int[]> primitiveArrayList,
List<Integer[]> objectArrayList,
List<SimpleTestBean[]> beanArrayList) {
- log.log("sendArrayList: " + primitiveArrayList + ", "
- + objectArrayList + ", " + beanArrayList);
+ log.log("sendArrayList: "
+ + Arrays.deepToString(primitiveArrayList.toArray())
+ + ", " + Arrays.deepToString(objectArrayList.toArray())
+ + ", " + Arrays.deepToString(beanArrayList.toArray()));
}
+ @Override
public void sendListArray(List<Integer>[] objectListArray,
List<SimpleTestBean>[] beanListArray) {
log.log("sendArrayList: " + Arrays.toString(objectListArray)
+ ", " + Arrays.toString(beanListArray));
}
+ @Override
public void sendSet(Set<Integer> intSet,
Set<Connector> connectorSet, Set<SimpleTestBean> beanSet) {
log.log("sendSet: " + intSet + ", "
@@ -216,6 +233,7 @@ public class SerializerTest extends AbstractTestRoot {
+ beanSet);
}
+ @Override
public void sendMap(Map<String, SimpleTestBean> stringMap,
Map<Connector, Boolean> connectorMap,
Map<Integer, Connector> intMap,
@@ -252,6 +270,7 @@ public class SerializerTest extends AbstractTestRoot {
+ ", " + intMapString + ", " + beanMap);
}
+ @Override
public void sendWrappedGenerics(
Map<Set<SimpleTestBean>, Map<Integer, List<SimpleTestBean>>> generics) {
log.log("sendWrappedGenerics: " + generics.toString());
diff --git a/tests/testbench/com/vaadin/tests/themes/ButtonsTest.java b/tests/testbench/com/vaadin/tests/themes/ButtonsTest.java
index cc275c18f4..a2d482dfbf 100644
--- a/tests/testbench/com/vaadin/tests/themes/ButtonsTest.java
+++ b/tests/testbench/com/vaadin/tests/themes/ButtonsTest.java
@@ -35,6 +35,7 @@ public class ButtonsTest extends com.vaadin.Application.LegacyApplication {
themeToggle = new CheckBox("Runo theme");
themeToggle.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (getTheme() == "reindeer") {
setTheme("runo");
@@ -49,6 +50,7 @@ public class ButtonsTest extends com.vaadin.Application.LegacyApplication {
styleToggle = new CheckBox("Black style");
styleToggle.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (!main.getContent().getStyleName().contains("black")) {
main.getContent().setStyleName("black");
@@ -63,6 +65,7 @@ public class ButtonsTest extends com.vaadin.Application.LegacyApplication {
iconToggle = new CheckBox("64x icons");
iconToggle.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
largeIcons = !largeIcons;
recreateAll();
@@ -74,6 +77,7 @@ public class ButtonsTest extends com.vaadin.Application.LegacyApplication {
nativeToggle = new CheckBox("Native buttons");
nativeToggle.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
nativeButtons = !nativeButtons;
recreateAll();
@@ -120,6 +124,7 @@ public class ButtonsTest extends com.vaadin.Application.LegacyApplication {
main.addComponent(b);
Button c = new Button("toggle enabled", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
b.setEnabled(!b.isEnabled());
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1225.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1225.java
index fe9cb6e415..299c939043 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1225.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1225.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.tickets;
import com.vaadin.Application;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.tests.TestForTablesInitialColumnWidthLogicRendering;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Label;
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1230.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1230.java
index 872084d436..b1841b69ba 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1230.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1230.java
@@ -32,6 +32,7 @@ public class Ticket1230 extends Application.LegacyApplication {
layout.addComponent(selectWithoutNullItem);
Button b = new Button("Select NULL_PROPERTY", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
selectWithoutNullItem.select(NULL_ITEM_ID);
printState();
@@ -41,6 +42,7 @@ public class Ticket1230 extends Application.LegacyApplication {
layout.addComponent(b);
b = new Button("Select 1", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
selectWithoutNullItem.select("1");
printState();
@@ -50,6 +52,7 @@ public class Ticket1230 extends Application.LegacyApplication {
layout.addComponent(b);
b = new Button("Select 2", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
selectWithoutNullItem.select("2");
printState();
@@ -60,6 +63,7 @@ public class Ticket1230 extends Application.LegacyApplication {
b = new Button("Select null", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
selectWithoutNullItem.select(null);
printState();
@@ -79,6 +83,7 @@ public class Ticket1230 extends Application.LegacyApplication {
selectWithNullItem.setCaption("Select with null item id");
Button b = new Button("Select NULL_PROPERTY", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
selectWithNullItem.select(NULL_ITEM_ID);
printState();
@@ -89,6 +94,7 @@ public class Ticket1230 extends Application.LegacyApplication {
b = new Button("Select 1", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
selectWithNullItem.select("1");
printState();
@@ -98,6 +104,7 @@ public class Ticket1230 extends Application.LegacyApplication {
layout.addComponent(b);
b = new Button("Select 2", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
selectWithNullItem.select("2");
printState();
@@ -107,6 +114,7 @@ public class Ticket1230 extends Application.LegacyApplication {
b = new Button("Select null", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
selectWithNullItem.select(null);
printState();
@@ -118,6 +126,7 @@ public class Ticket1230 extends Application.LegacyApplication {
w.addComponent(new Button("print select values",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
printState();
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket124.java b/tests/testbench/com/vaadin/tests/tickets/Ticket124.java
index 81a164d22e..8761db1cc3 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket124.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket124.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.tickets;
import com.vaadin.Application;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
@@ -27,6 +27,7 @@ public class Ticket124 extends Application.LegacyApplication {
tf = new TextField("Row nr");
Button insert = new Button("Insert row", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
insertRow();
@@ -34,6 +35,7 @@ public class Ticket124 extends Application.LegacyApplication {
});
Button delete = new Button("Delete row", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
deleteRow();
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1365.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1365.java
index b35d185811..7e9f5dab2c 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1365.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1365.java
@@ -33,10 +33,12 @@ public class Ticket1365 extends com.vaadin.Application.LegacyApplication
new ShortcutAction("CTRL-S", ShortcutAction.KeyCode.S,
new int[] { ShortcutAction.ModifierKey.CTRL }), };
+ @Override
public Action[] getActions(Object target, Object sender) {
return actions;
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
status.setValue("Pressed " + action.getCaption()
+ " to fire shortcut. Texfield value: " + f.getValue());
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1368.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1368.java
index a1a5b449d1..92d3598382 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1368.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1368.java
@@ -26,6 +26,7 @@ public class Ticket1368 extends Application.LegacyApplication {
addColumn.setImmediate(true);
addColumn.setNewItemsAllowed(true);
addColumn.setNewItemHandler(new ComboBox.NewItemHandler() {
+ @Override
public void addNewItem(String newItemCaption) {
t.addContainerProperty(newItemCaption, String.class, "-");
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1397.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1397.java
index dfccf31956..3ba7ae2bfa 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1397.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1397.java
@@ -30,10 +30,12 @@ public class Ticket1397 extends Application.LegacyApplication {
"fooTextField");
PopupView.Content content = new PopupView.Content() {
+ @Override
public String getMinimizedValueAsHTML() {
return String.valueOf(prop.getValue());
}
+ @Override
public Component getPopupComponent() {
return new TextField("Edit foo", prop);
}
@@ -56,6 +58,7 @@ public class Ticket1397 extends Application.LegacyApplication {
public myButton() {
super("Reverse the property");
this.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
StringBuffer getContents = prop2.getValue();
getContents.reverse();
@@ -68,10 +71,12 @@ public class Ticket1397 extends Application.LegacyApplication {
final Panel panel2 = new Panel("Editor with a button");
panel2.addComponent(new myButton());
PopupView.Content content2 = new PopupView.Content() {
+ @Override
public String getMinimizedValueAsHTML() {
return String.valueOf(prop2.getValue());
}
+ @Override
public Component getPopupComponent() {
return panel2;
}
@@ -89,10 +94,12 @@ public class Ticket1397 extends Application.LegacyApplication {
panel3.addComponent(tf2);
PopupView.Content content3 = new PopupView.Content() {
+ @Override
public String getMinimizedValueAsHTML() {
return String.valueOf(op.getValue());
}
+ @Override
public Component getPopupComponent() {
return panel3;
}
@@ -113,10 +120,12 @@ public class Ticket1397 extends Application.LegacyApplication {
final InlineDateField df = new InlineDateField("", new Date());
PopupView pp = new PopupView(new PopupView.Content() {
+ @Override
public String getMinimizedValueAsHTML() {
return String.valueOf(df.getValue());
}
+ @Override
public Component getPopupComponent() {
return df;
}
@@ -130,11 +139,13 @@ public class Ticket1397 extends Application.LegacyApplication {
+ lineNum
+ " and see how the overview-version changes.");
+ @Override
public String getMinimizedValueAsHTML() {
return "" + String.valueOf(tf.getValue()).length()
+ " characters of info";
}
+ @Override
public Component getPopupComponent() {
return tf;
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1435.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1435.java
index c280be4e4a..438f7e2d5f 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1435.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1435.java
@@ -118,6 +118,7 @@ public class Ticket1435 extends Application.LegacyApplication {
collapse.setStyleName("collapse");
collapse.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
if (useWorkaround) {
container.setVisible(false);
@@ -144,6 +145,7 @@ public class Ticket1435 extends Application.LegacyApplication {
if (useWorkaround) {
expand.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
container.setVisible(true);
root.setHeight(lastHeight, lastHeightUnit);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1444.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1444.java
index 1af3b405e2..a597a5b242 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1444.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1444.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.tickets;
import com.vaadin.Application;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Label;
import com.vaadin.ui.Root.LegacyWindow;
import com.vaadin.ui.VerticalLayout;
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1465ModalNotification.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1465ModalNotification.java
index 9a777d655c..4b7d4201e0 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1465ModalNotification.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1465ModalNotification.java
@@ -23,6 +23,7 @@ public class Ticket1465ModalNotification extends Application.LegacyApplication {
Button b = new Button("click to show notification",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Notification.show(
"Try clicking the button in main window!",
@@ -35,6 +36,7 @@ public class Ticket1465ModalNotification extends Application.LegacyApplication {
b = new Button("click to warning notification",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Notification.show(
"Try clicking the button in main window!",
@@ -46,6 +48,7 @@ public class Ticket1465ModalNotification extends Application.LegacyApplication {
b = new Button("click to Humanized notification",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Notification.show(
"Try clicking the button in main window!",
@@ -56,6 +59,7 @@ public class Ticket1465ModalNotification extends Application.LegacyApplication {
b = new Button("click to test modality!", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
mainWin.addComponent(new Label("clicked"));
@@ -68,6 +72,7 @@ public class Ticket1465ModalNotification extends Application.LegacyApplication {
b = new Button("click to test modality!", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
mainWin.addComponent(new Label("clicked"));
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1506_Panel.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1506_Panel.java
index 0c06a24df5..9835e046dc 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1506_Panel.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1506_Panel.java
@@ -26,6 +26,7 @@ public class Ticket1506_Panel extends Panel {
private Component initButton(final ObjectProperty<?> property) {
Button button = new Button("Clear select");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
property.setValue(null);
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1506_TestContainer.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1506_TestContainer.java
index 616e40d917..d6b53db7c7 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1506_TestContainer.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1506_TestContainer.java
@@ -38,6 +38,7 @@ public class Ticket1506_TestContainer implements Container {
items.put(ITEM_2_ID, item2);
}
+ @Override
public Item getItem(Object itemId) {
if (items.isEmpty()) {
loadItems();
@@ -45,6 +46,7 @@ public class Ticket1506_TestContainer implements Container {
return items.get(itemId);
}
+ @Override
public Collection<String> getContainerPropertyIds() {
if (items.isEmpty()) {
loadItems();
@@ -55,6 +57,7 @@ public class Ticket1506_TestContainer implements Container {
return a;
}
+ @Override
public Collection<String> getItemIds() {
if (items.isEmpty()) {
loadItems();
@@ -65,6 +68,7 @@ public class Ticket1506_TestContainer implements Container {
return a;
}
+ @Override
public Property<?> getContainerProperty(Object itemId, Object propertyId) {
if (items.isEmpty()) {
loadItems();
@@ -76,6 +80,7 @@ public class Ticket1506_TestContainer implements Container {
return null;
}
+ @Override
public Class<String> getType(Object propertyId) {
if (items.isEmpty()) {
loadItems();
@@ -83,6 +88,7 @@ public class Ticket1506_TestContainer implements Container {
return String.class;
}
+ @Override
public int size() {
if (items.isEmpty()) {
loadItems();
@@ -90,6 +96,7 @@ public class Ticket1506_TestContainer implements Container {
return items.size();
}
+ @Override
public boolean containsId(Object itemId) {
if (items.isEmpty()) {
loadItems();
@@ -97,29 +104,35 @@ public class Ticket1506_TestContainer implements Container {
return items.containsKey(itemId);
}
+ @Override
public Item addItem(Object itemId) throws UnsupportedOperationException {
throw new UnsupportedOperationException("Not implemented");
}
+ @Override
public Object addItem() throws UnsupportedOperationException {
throw new UnsupportedOperationException("Not implemented");
}
+ @Override
public boolean removeItem(Object itemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException("Not implemented");
}
+ @Override
public boolean addContainerProperty(Object propertyId, Class<?> type,
Object defaultValue) throws UnsupportedOperationException {
throw new UnsupportedOperationException("Not implemented");
}
+ @Override
public boolean removeContainerProperty(Object propertyId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException("Not implemented");
}
+ @Override
public boolean removeAllItems() throws UnsupportedOperationException {
throw new UnsupportedOperationException("Not implemented");
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1506_TestContainer2.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1506_TestContainer2.java
index 863ce907da..7ac34dcd2e 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1506_TestContainer2.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1506_TestContainer2.java
@@ -33,6 +33,7 @@ public class Ticket1506_TestContainer2 implements Container {
}
}
+ @Override
public Item getItem(Object itemId) {
if (items.isEmpty()) {
loadItems();
@@ -40,6 +41,7 @@ public class Ticket1506_TestContainer2 implements Container {
return items.get(itemId);
}
+ @Override
public Collection<String> getContainerPropertyIds() {
if (items.isEmpty()) {
loadItems();
@@ -50,6 +52,7 @@ public class Ticket1506_TestContainer2 implements Container {
return a;
}
+ @Override
public Collection<String> getItemIds() {
if (items.isEmpty()) {
loadItems();
@@ -57,6 +60,7 @@ public class Ticket1506_TestContainer2 implements Container {
return items.keySet();
}
+ @Override
public Property<?> getContainerProperty(Object itemId, Object propertyId) {
if (items.isEmpty()) {
loadItems();
@@ -68,6 +72,7 @@ public class Ticket1506_TestContainer2 implements Container {
return null;
}
+ @Override
public Class<String> getType(Object propertyId) {
if (items.isEmpty()) {
loadItems();
@@ -75,6 +80,7 @@ public class Ticket1506_TestContainer2 implements Container {
return String.class;
}
+ @Override
public int size() {
if (items.isEmpty()) {
loadItems();
@@ -82,6 +88,7 @@ public class Ticket1506_TestContainer2 implements Container {
return items.size();
}
+ @Override
public boolean containsId(Object itemId) {
if (items.isEmpty()) {
loadItems();
@@ -89,29 +96,35 @@ public class Ticket1506_TestContainer2 implements Container {
return items.containsKey(itemId);
}
+ @Override
public Item addItem(Object itemId) throws UnsupportedOperationException {
throw new UnsupportedOperationException("Not implemented");
}
+ @Override
public Object addItem() throws UnsupportedOperationException {
throw new UnsupportedOperationException("Not implemented");
}
+ @Override
public boolean removeItem(Object itemId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException("Not implemented");
}
+ @Override
public boolean addContainerProperty(Object propertyId, Class<?> type,
Object defaultValue) throws UnsupportedOperationException {
throw new UnsupportedOperationException("Not implemented");
}
+ @Override
public boolean removeContainerProperty(Object propertyId)
throws UnsupportedOperationException {
throw new UnsupportedOperationException("Not implemented");
}
+ @Override
public boolean removeAllItems() throws UnsupportedOperationException {
throw new UnsupportedOperationException("Not implemented");
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1572.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1572.java
index 614c471d3e..b9fd2debd5 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1572.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1572.java
@@ -35,6 +35,7 @@ public class Ticket1572 extends com.vaadin.Application.LegacyApplication {
Button b = new Button("next margin state");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
nextMarginState();
}
@@ -48,6 +49,7 @@ public class Ticket1572 extends com.vaadin.Application.LegacyApplication {
Button b2 = new Button("next spacing state");
b2.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
nextSpacingState();
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1581.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1581.java
index 1efea99a0e..6831d4c52d 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1581.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1581.java
@@ -52,6 +52,7 @@ public class Ticket1581 extends com.vaadin.Application.LegacyApplication {
final Button stop = new Button("Stop updating", new ClickListener() {
boolean active = true;
+ @Override
public void buttonClick(ClickEvent event) {
if (active) {
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1589.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1589.java
index 7aba886133..95cc918b6e 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1589.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1589.java
@@ -50,6 +50,7 @@ class MyDynamicResource implements RequestHandler {
* Returns null if the URI does not match. Otherwise returns a download
* stream that contains the response from the server.
*/
+ @Override
public boolean handleRequest(Application application,
WrappedRequest request, WrappedResponse response)
throws IOException {
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1598.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1598.java
index 0faf9b8afb..5cb03e77af 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1598.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1598.java
@@ -32,6 +32,7 @@ public class Ticket1598 extends Application.LegacyApplication {
for (int i = 0; i < 5; i++) {
first.addItem(new String("Submenu item" + i), null, new Command() {
+ @Override
public void menuSelected(MenuItem selected) {
main.showNotification("Action " + selected.getText());
}
@@ -44,6 +45,7 @@ public class Ticket1598 extends Application.LegacyApplication {
firstSubItem1.addItem(new String("Subsubmenu item" + i), null,
new Command() {
+ @Override
public void menuSelected(MenuItem selected) {
main.showNotification("Action "
+ selected.getText());
@@ -56,6 +58,7 @@ public class Ticket1598 extends Application.LegacyApplication {
firstSubItem2.addItem(new String("Subsubmenu item" + i), null,
new Command() {
+ @Override
public void menuSelected(MenuItem selected) {
main.showNotification("Action "
+ selected.getText());
@@ -69,6 +72,7 @@ public class Ticket1598 extends Application.LegacyApplication {
second.addItem(new String("Second submenu item" + i), null,
new Command() {
+ @Override
public void menuSelected(MenuItem selected) {
main.showNotification("Action "
+ selected.getText());
@@ -82,6 +86,7 @@ public class Ticket1598 extends Application.LegacyApplication {
for (int i = 2; i <= 3; i++) {
(menuBar.getItems().get(i)).setCommand(new Command() {
+ @Override
public void menuSelected(MenuItem selectedItem) {
main.showNotification("Action " + selectedItem.getText());
}
@@ -92,6 +97,7 @@ public class Ticket1598 extends Application.LegacyApplication {
fourth.setText("Add new item");
fourth.setCommand(new Command() {
+ @Override
public void menuSelected(MenuItem selected) {
menuBar.addItem("Newborn", null, null);
}
@@ -108,6 +114,7 @@ public class Ticket1598 extends Application.LegacyApplication {
// A command for removing the selected menuitem
Command removeCommand = new Command() {
+ @Override
public void menuSelected(MenuItem selected) {
MenuItem parent = selected.getParent();
if (parent != null) {
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket161.java b/tests/testbench/com/vaadin/tests/tickets/Ticket161.java
index 1819076b32..b8bf8deb20 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket161.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket161.java
@@ -27,6 +27,7 @@ public class Ticket161 extends Application.LegacyApplication {
Button b = new Button("Truncate to 20 rows");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Container containerDataSource = t.getContainerDataSource();
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1632.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1632.java
index 1774000355..43feab5ab7 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1632.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1632.java
@@ -45,6 +45,7 @@ public class Ticket1632 extends Application.LegacyApplication {
b.addListener(new Button.ClickListener() {
boolean visible = false;
+ @Override
public void buttonClick(ClickEvent event) {
visible = !visible;
if (visible) {
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1659.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1659.java
index d78a1d78af..3c64a49316 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1659.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1659.java
@@ -16,6 +16,7 @@ public class Ticket1659 extends Application.LegacyApplication {
"Change URI using Application.getURL()",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
mainWin.open(new ExternalResource(getURL() + "#"
+ System.currentTimeMillis()));
@@ -24,6 +25,7 @@ public class Ticket1659 extends Application.LegacyApplication {
mainWin.addComponent(new Button("Change URI uring Window.getURL()",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
mainWin.open(new ExternalResource(mainWin.getURL()
+ "#" + System.currentTimeMillis()));
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1673.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1673.java
index 891cdf9f21..277096598e 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1673.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1673.java
@@ -14,6 +14,7 @@ public class Ticket1673 extends com.vaadin.Application.LegacyApplication {
setMainWindow(main);
main.addComponent(new Button("close", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
close();
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1710.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1710.java
index 827879d3c6..01792aeb89 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1710.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1710.java
@@ -279,6 +279,7 @@ public class Ticket1710 extends com.vaadin.Application.LegacyApplication {
}
Property.ValueChangeListener marginSpacingListener = new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
updateMarginsAndSpacing();
}
@@ -343,6 +344,7 @@ public class Ticket1710 extends com.vaadin.Application.LegacyApplication {
Layout.AlignmentHandler.ALIGNMENT_RIGHT), "right");
Property.ValueChangeListener alignmentChangeListener = new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
updateAlignments(((Integer) hAlign.getValue()).intValue(),
((Integer) vAlign.getValue()).intValue());
@@ -372,6 +374,7 @@ public class Ticket1710 extends com.vaadin.Application.LegacyApplication {
Layout.AlignmentHandler.ALIGNMENT_RIGHT), "right");
lAlign.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
testPanelLayout.setComponentAlignment(testedLayout,
((Integer) lAlign.getValue()).intValue(),
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1772.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1772.java
index 7ca90904f8..2cbb648227 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1772.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1772.java
@@ -24,6 +24,7 @@ public class Ticket1772 extends com.vaadin.Application.LegacyApplication {
b.addListener(new Button.ClickListener() {
int counter = 0;
+ @Override
public void buttonClick(ClickEvent event) {
gridLayout
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1775.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1775.java
index aed69056aa..63af96b1a2 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1775.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1775.java
@@ -27,6 +27,7 @@ public class Ticket1775 extends com.vaadin.Application.LegacyApplication {
button2.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Label mainComponent = new Label("Main");
Label header = new Label("Header");
@@ -34,6 +35,7 @@ public class Ticket1775 extends com.vaadin.Application.LegacyApplication {
layout.addComponent(mainComponent, "body");
layout.addComponent(header, "loginUser");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
layout.addComponent(anotherComponent, "body");
layout.removeComponent("loginUser");
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1804.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1804.java
index d627d11e18..0a89675fc0 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1804.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1804.java
@@ -5,8 +5,8 @@ import java.util.LinkedList;
import com.vaadin.data.Validator;
import com.vaadin.data.util.MethodProperty;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.SystemError;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.AbstractField;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
@@ -91,6 +91,7 @@ public class Ticket1804 extends com.vaadin.Application.LegacyApplication {
main.addComponent(checkValidity);
checkValidity.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
StringBuffer msg = new StringBuffer();
for (Iterator<Select> i = listOfAllFields.iterator(); i
@@ -136,6 +137,7 @@ public class Ticket1804 extends com.vaadin.Application.LegacyApplication {
this.msg = msg;
}
+ @Override
public void validate(Object value) throws InvalidValueException {
if (value == null || value.toString().length() == 0) {
throw new InvalidValueException(msg);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1805.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1805.java
index d7eac667f0..a40f5b25b9 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1805.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1805.java
@@ -30,6 +30,7 @@ public class Ticket1805 extends com.vaadin.Application.LegacyApplication {
final TextField size = new TextField("Grid width in css unit");
size.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
String width = size.getValue().toString();
if (width == null || width.equals("")) {
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1806.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1806.java
index c47ea49697..2c979f4600 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1806.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1806.java
@@ -25,18 +25,21 @@ public class Ticket1806 extends com.vaadin.Application.LegacyApplication {
"This button does nothing (but flushes queued variable changes)"));
main.addComponent(new Button("Commit the field to property",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
tf1.commit();
}
}));
main.addComponent(new Button("Show property value",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
main.showNotification("'" + prop.getValue() + "'");
}
}));
main.addComponent(new Button("Show field value",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
main.showNotification("'" + tf1.getValue() + "'");
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1811.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1811.java
index d530c949e8..695be19300 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1811.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1811.java
@@ -5,7 +5,7 @@ import java.util.LinkedList;
import com.vaadin.data.Validator;
import com.vaadin.data.validator.StringLengthValidator;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Label;
@@ -56,6 +56,7 @@ public class Ticket1811 extends com.vaadin.Application.LegacyApplication {
main.addComponent(checkValidity);
checkValidity.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
StringBuffer msg = new StringBuffer();
for (Iterator<TextField> i = listOfAllFields.iterator(); i
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1819.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1819.java
index 8e5f107b17..42474d748d 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1819.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1819.java
@@ -3,7 +3,7 @@ package com.vaadin.tests.tickets;
import java.util.Iterator;
import java.util.LinkedList;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.AbstractField;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
@@ -47,6 +47,7 @@ public class Ticket1819 extends com.vaadin.Application.LegacyApplication {
main.addComponent(checkValidity);
checkValidity.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
StringBuffer msg = new StringBuffer();
for (Iterator<Select> i = listOfAllFields.iterator(); i
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1834PanelScrolling.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1834PanelScrolling.java
index 912f5ba02d..de91b04c1c 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1834PanelScrolling.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1834PanelScrolling.java
@@ -29,6 +29,7 @@ public class Ticket1834PanelScrolling extends
Button b = new Button("update");
currentState.addComponent(b);
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
state.setValue("ScrollTop: " + p.getScrollTop()
+ " ScrollLeft: " + p.getScrollLeft());
@@ -38,6 +39,7 @@ public class Ticket1834PanelScrolling extends
b = new Button("ScrollBy 50px");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
p.setScrollLeft(p.getScrollLeft() + 50);
p.setScrollTop(p.getScrollTop() + 50);
@@ -52,6 +54,7 @@ public class Ticket1834PanelScrolling extends
b.addListener(new ClickListener() {
int i = 0;
+ @Override
public void buttonClick(ClickEvent event) {
p.addComponent(new Label("new Row" + ++i));
}
@@ -61,6 +64,7 @@ public class Ticket1834PanelScrolling extends
b = new Button("Repaint Panel");
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
p.requestRepaint();
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1857.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1857.java
index 2af5bf9c85..4b546de0f6 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1857.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1857.java
@@ -41,6 +41,7 @@ public class Ticket1857 extends Application.LegacyApplication implements
footer.addComponent(actionHandlerEnabler);
actionHandlerEnabler.setImmediate(true);
actionHandlerEnabler.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (actionHandlerEnabler.getValue().booleanValue()) {
t.addActionHandler(Ticket1857.this);
@@ -54,9 +55,11 @@ public class Ticket1857 extends Application.LegacyApplication implements
footer.addComponent(cellStylesEnabler);
cellStylesEnabler.setImmediate(true);
cellStylesEnabler.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (cellStylesEnabler.getValue().booleanValue()) {
t.setCellStyleGenerator(new Table.CellStyleGenerator() {
+ @Override
public String getStyle(Object itemId, Object propertyId) {
Object cell = t.getContainerProperty(itemId,
propertyId).getValue();
@@ -99,10 +102,12 @@ public class Ticket1857 extends Application.LegacyApplication implements
private final Action removeAction = new Action("Remove");
+ @Override
public Action[] getActions(Object target, Object sender) {
return new Action[] { removeAction };
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
getMainWindow().showNotification("Removing row number:" + target);
((Table) sender).removeItem(target);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1878.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1878.java
index 6072782dc3..0a8992c17f 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1878.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1878.java
@@ -52,6 +52,7 @@ public class Ticket1878 extends Application.LegacyApplication {
switchToGridButton = new Button("Switch to GridLayout",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
changeLayout(switchToGridButton, gridLayout);
}
@@ -60,6 +61,7 @@ public class Ticket1878 extends Application.LegacyApplication {
switchToOrderedButton = new Button("Switch to OrderedLayout",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
changeLayout(switchToOrderedButton, orderedLayout);
}
@@ -69,6 +71,7 @@ public class Ticket1878 extends Application.LegacyApplication {
switchToFormsButton = new Button("Switch to Form", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
changeLayout(switchToFormsButton, formLayout);
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1900.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1900.java
index fdbecf8eae..9fe8ccd801 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1900.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1900.java
@@ -24,6 +24,7 @@ public class Ticket1900 extends Application.LegacyApplication {
f[i].setRequired(true);
main.addComponent(f[i]);
f[i].addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
main.showNotification("Validity test", "Testcase " + j
+ " is " + (f[j].isValid() ? "valid" : "invalid"));
@@ -60,6 +61,7 @@ public class Ticket1900 extends Application.LegacyApplication {
this.c = c;
}
+ @Override
public void validate(Object value) throws InvalidValueException {
if (value == null || !value.toString().contains(c)) {
throw new InvalidValueException("Value does not contain " + c);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1919.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1919.java
index 68a2eaa2bc..75a2aafb96 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1919.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1919.java
@@ -48,6 +48,7 @@ public class Ticket1919 extends com.vaadin.Application.LegacyApplication {
p.setSizeFull();
Button b = new Button("toggle Values", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
toggleStyleName();
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1921.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1921.java
index c0a1c7d2c9..416bb80875 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1921.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1921.java
@@ -30,6 +30,7 @@ public class Ticket1921 extends Application.LegacyApplication implements
inner = new VerticalLayout();
outer.addComponent(inner);
button = new Button("foo", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
newState();
}
@@ -92,6 +93,7 @@ public class Ticket1921 extends Application.LegacyApplication implements
}
}
+ @Override
public boolean handleRequest(Application application,
WrappedRequest request, WrappedResponse response)
throws IOException {
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1939.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1939.java
index d24cace2c9..48d8ff458c 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1939.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1939.java
@@ -26,6 +26,7 @@ public class Ticket1939 extends Application.LegacyApplication {
w.addComponent(new Button("show me the bug",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
l.setWidth(null);
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1969.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1969.java
index aed322ca4d..2a29113829 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1969.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1969.java
@@ -46,6 +46,7 @@ public class Ticket1969 extends com.vaadin.Application.LegacyApplication {
b = new Button(
"change introduction caption (should add * to tab name)",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
testContent.setCaption(testContent.getCaption() + "*");
}
@@ -54,6 +55,7 @@ public class Ticket1969 extends com.vaadin.Application.LegacyApplication {
b = new Button("change tab caption (should add * to tab name)",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
actions.setCaption(actions.getCaption() + "*");
}
@@ -64,6 +66,7 @@ public class Ticket1969 extends com.vaadin.Application.LegacyApplication {
final UserError e = new UserError("Test error");
b = new Button("Toggle error", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (testContent.getComponentError() == null) {
testContent.setComponentError(e);
@@ -75,6 +78,7 @@ public class Ticket1969 extends com.vaadin.Application.LegacyApplication {
actions.addComponent(b);
b = new Button("Change table caption", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
t.setCaption(t.getCaption() + "*");
}
@@ -82,6 +86,7 @@ public class Ticket1969 extends com.vaadin.Application.LegacyApplication {
actions.addComponent(b);
b = new Button("Toggle Table error", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (t.getComponentError() == null) {
t.setComponentError(e);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1970.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1970.java
index 3c5822fbda..f9f098a05a 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1970.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1970.java
@@ -3,7 +3,7 @@ package com.vaadin.tests.tickets;
import java.util.Iterator;
import com.vaadin.Application;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Label;
@@ -38,6 +38,7 @@ public class Ticket1970 extends Application.LegacyApplication {
w.addComponent(new Button("Show open windows",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
String openWindows = "";
for (Iterator<LegacyWindow> i = getWindows().iterator(); i
@@ -57,6 +58,7 @@ public class Ticket1970 extends Application.LegacyApplication {
final LegacyWindow w = new LegacyWindow();
w.addComponent(new Button("Show the name of the application",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
w.showNotification("Name of this window = "
+ w.getName());
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1973.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1973.java
index d4b1345eb1..24d11e6569 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1973.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1973.java
@@ -30,6 +30,7 @@ public class Ticket1973 extends com.vaadin.Application.LegacyApplication {
Button refreshTable = new Button("Change table container");
refreshTable.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent e) {
table.setContainerDataSource(container2);
table.setContainerDataSource(container1);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1973_2.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1973_2.java
index d43aac9da0..68307f7f99 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1973_2.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1973_2.java
@@ -31,6 +31,7 @@ public class Ticket1973_2 extends Application.LegacyApplication {
Button refreshTable = new Button("Change table container");
refreshTable.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent e) {
table.setContainerDataSource(container2);
table.setContainerDataSource(container1);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1975.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1975.java
index d908cc567c..e959098765 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1975.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1975.java
@@ -38,6 +38,7 @@ public class Ticket1975 extends Application.LegacyApplication {
layout.addComponent(new Button("Disable/Enable",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
boolean e = cl1.isEnabled();
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1982.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1982.java
index 431c3a6b99..fe0b636c56 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1982.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1982.java
@@ -62,6 +62,7 @@ public class Ticket1982 extends Application.LegacyApplication {
min.setVisible(false);
max.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
min.setVisible(true);
max.setVisible(false);
@@ -71,6 +72,7 @@ public class Ticket1982 extends Application.LegacyApplication {
}
});
min.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
min.setVisible(false);
max.setVisible(true);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1983.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1983.java
index 5bd0cd2ae6..4deb5020ab 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1983.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1983.java
@@ -83,6 +83,7 @@ public class Ticket1983 extends Application.LegacyApplication {
Button button = new Button("Change col value to short");
button.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
// Change the column value to a short one --> Should remove
// the scrollbar
@@ -117,6 +118,7 @@ public class Ticket1983 extends Application.LegacyApplication {
CheckBox checkBox = new CheckBox("Two col");
checkBox.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if ((Boolean) event.getProperty().getValue()) {
table.setVisibleColumns(new Object[] { propId, propId2 });
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1995.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1995.java
index 23f377e89e..2aaacef448 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1995.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1995.java
@@ -40,6 +40,7 @@ public class Ticket1995 extends Application.LegacyApplication {
mainWin.addComponent(new Button("Add item",
new com.vaadin.ui.Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
addItem();
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket20.java b/tests/testbench/com/vaadin/tests/tickets/Ticket20.java
index 5c4779e69e..061fc0cf16 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket20.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket20.java
@@ -38,6 +38,7 @@ public class Ticket20 extends Application.LegacyApplication {
}
}
+ @Override
public void validate(Object value) throws InvalidValueException {
if (!isValid(value)) {
throw new InvalidValueException(value
@@ -49,6 +50,7 @@ public class Ticket20 extends Application.LegacyApplication {
v2.addValidator(v);
v2.addValidator(new Validator() {
+ @Override
public void validate(Object value) throws InvalidValueException {
if (!"".equals("" + value)) {
throw new InvalidValueException("Value is not empty string");
@@ -69,6 +71,7 @@ public class Ticket20 extends Application.LegacyApplication {
mainWin.addComponent(new Button("Validate integer",
new Button.ClickListener() {
+ @Override
public void buttonClick(
com.vaadin.ui.Button.ClickEvent event) {
mainWin.showNotification("The field is "
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2001.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2001.java
index a14c881b85..8c7a7ba659 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2001.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2001.java
@@ -22,6 +22,7 @@ public class Ticket2001 extends Application.LegacyApplication {
final CheckBox b = new CheckBox("fixed width: 30px", false);
b.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if ((Boolean) b.getValue()) {
l.setWidth("30px");
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2007.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2007.java
index 6700267a25..e0b8635f32 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2007.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2007.java
@@ -17,6 +17,7 @@ public class Ticket2007 extends Application.LegacyApplication {
setMainWindow(main);
main.addComponent(new Button("Open another (non-main) window",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
LegacyWindow c = new LegacyWindow(
"Non-main browser window " + (++childs));
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2009.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2009.java
index 7667d6190b..68cf5ef6d4 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2009.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2009.java
@@ -40,6 +40,7 @@ public class Ticket2009 extends com.vaadin.Application.LegacyApplication {
final VerticalLayout events = new VerticalLayout();
t.addListener(new ItemClickEvent.ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
events.addComponent(new Label(new Label("Click:"
+ (event.isDoubleClick() ? "double" : "single")
@@ -62,6 +63,7 @@ public class Ticket2009 extends com.vaadin.Application.LegacyApplication {
.getTestTable(5, 100);
table.setRowHeaderMode(Table.ROW_HEADER_MODE_ID);
table.addListener(new ItemClickEvent.ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
events2.addComponent(new Label("Click:"
+ (event.isDoubleClick() ? "double" : "single")
@@ -115,6 +117,7 @@ public class Ticket2009 extends com.vaadin.Application.LegacyApplication {
getMainWindow().addWindow(this);
done.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().removeWindow(PropertyEditor.this);
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2014.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2014.java
index 538ebc4ccd..8d9a5e67d4 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2014.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2014.java
@@ -33,6 +33,7 @@ public class Ticket2014 extends Application.LegacyApplication {
layout.addComponent(new Button("Change class name",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
b1.setStyleName(UUID.randomUUID().toString());
}
@@ -51,6 +52,7 @@ public class Ticket2014 extends Application.LegacyApplication {
b1 = new Button("Button inside orderedLayout", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
System.out.println("Clicked " + event.getButton().getCaption());
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2021.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2021.java
index cab8fc261c..c36bb5c25e 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2021.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2021.java
@@ -111,6 +111,7 @@ public class Ticket2021 extends Application.LegacyApplication {
Button b = new Button("Enable/disable caption and watch button move",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
System.out.println("Enable/disable caption");
for (AbstractComponent l : new AbstractComponent[] {
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2023.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2023.java
index 238561ef47..427a55391b 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2023.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2023.java
@@ -31,6 +31,7 @@ public class Ticket2023 extends com.vaadin.Application.LegacyApplication
gl.addComponent(new Button("null", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
c.setWidth(null);
c.setHeight(null);
@@ -43,6 +44,7 @@ public class Ticket2023 extends com.vaadin.Application.LegacyApplication
}
+ @Override
public void buttonClick(ClickEvent event) {
c.setWidth(event.getButton().getCaption());
c.setHeight(event.getButton().getCaption());
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2029.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2029.java
index 1eadd3d7bd..8acf4f1d16 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2029.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2029.java
@@ -81,6 +81,7 @@ public class Ticket2029 extends Application.LegacyApplication {
tf.setImmediate(true);
tf.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
Component c = ((Component) event.getProperty());
c.setCaption("askfdj");
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2037.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2037.java
index 86d9cf6d40..c979898299 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2037.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2037.java
@@ -25,6 +25,7 @@ public class Ticket2037 extends com.vaadin.Application.LegacyApplication {
main.addComponent(lo);
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
repopupate(lo);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2038.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2038.java
index a5c102b988..fa4cd76f47 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2038.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2038.java
@@ -21,6 +21,7 @@ public class Ticket2038 extends Application.LegacyApplication {
tf.setImmediate(true);
tf.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
w.showNotification("TextField is " + (tf.isValid() ? "" : "in")
+ "valid, with error: " + tf.getErrorMessage(),
@@ -35,6 +36,7 @@ public class Ticket2038 extends Application.LegacyApplication {
w.addComponent(b);
b.setImmediate(true);
b.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
tf.setRequiredError((Boolean) b.getValue() ? "Field must not be empty"
: null);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2042.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2042.java
index c4eded63d7..d79f4a1bd6 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2042.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2042.java
@@ -26,6 +26,7 @@ public class Ticket2042 extends Application.LegacyApplication {
layout.addComponent(new Label("abc"));
layout.addComponent(new Button("B", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Notification n = new Notification("Test");
getMainWindow().showNotification(n);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2048.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2048.java
index 84978a42e1..0b5a537b4d 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2048.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2048.java
@@ -71,6 +71,7 @@ public class Ticket2048 extends Application.LegacyApplication {
"Replace image with new embedded component (flashes)",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Embedded newEmbedded = new Embedded(null,
new ThemeResource("icons/64/folder-add.png"));
@@ -85,6 +86,7 @@ public class Ticket2048 extends Application.LegacyApplication {
b = new Button("Change image source (is fine)", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
String img = "folder-add";
if (((ThemeResource) embedded.getSource()).getResourceId()
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2053.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2053.java
index 751dbbae01..fd64d6e35a 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2053.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2053.java
@@ -25,6 +25,7 @@ public class Ticket2053 extends Application.LegacyApplication {
+ "draw changes not originating from this window. Such changes include changes "
+ "made by other browser-windows.");
Button add = new Button("Add a window", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
final String name = "Child " + (++childs);
LegacyWindow c = new LegacyWindow(name);
@@ -35,6 +36,7 @@ public class Ticket2053 extends Application.LegacyApplication {
final TextField tf = new TextField("Non immediate textfield");
c.addComponent(tf);
tf.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
main.addComponent(new Label(name + " send text:"
+ tf.getValue()));
@@ -44,6 +46,7 @@ public class Ticket2053 extends Application.LegacyApplication {
final String caption = "Slow button " + i;
c.addComponent(new Button(caption,
new Button.ClickListener() {
+ @Override
public synchronized void buttonClick(
ClickEvent event) {
try {
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2060.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2060.java
index b47fbc8818..1d7d8bb006 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2060.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2060.java
@@ -31,6 +31,7 @@ public class Ticket2060 extends Application.LegacyApplication {
button2 = new Button("Button without width");
button3 = new Button("Click to repaint buttons", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
button1.requestRepaint();
button2.requestRepaint();
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2061.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2061.java
index 0881d141cb..1f633d7337 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2061.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2061.java
@@ -95,6 +95,7 @@ public class Ticket2061 extends Application.LegacyApplication {
return columns;
}
+ @Override
public void valueChange(ValueChangeEvent event) {
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2061b.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2061b.java
index 98badf36e8..e3cd09926e 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2061b.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2061b.java
@@ -148,6 +148,7 @@ public class Ticket2061b extends Application.LegacyApplication implements
return columns;
}
+ @Override
public void valueChange(ValueChangeEvent event) {
}
@@ -192,6 +193,7 @@ public class Ticket2061b extends Application.LegacyApplication implements
}
}
+ @Override
public void selectedTabChange(SelectedTabChangeEvent event) {
p.setScrollTop(10);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2061c.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2061c.java
index a8188a4913..082b956fe0 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2061c.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2061c.java
@@ -111,6 +111,7 @@ public class Ticket2061c extends Application.LegacyApplication implements
return columns;
}
+ @Override
public void valueChange(ValueChangeEvent event) {
}
@@ -140,6 +141,7 @@ public class Ticket2061c extends Application.LegacyApplication implements
}
}
+ @Override
public void selectedTabChange(SelectedTabChangeEvent event) {
p.setScrollTop(10);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2090.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2090.java
index b4171b9bac..2042cf7cad 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2090.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2090.java
@@ -27,6 +27,7 @@ public class Ticket2090 extends Application.LegacyApplication {
w.addComponent(label);
w.addComponent(target);
height.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
try {
target.setHeight(height.getValue());
@@ -38,6 +39,7 @@ public class Ticket2090 extends Application.LegacyApplication {
}
});
width.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
try {
target.setWidth(width.getValue());
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2099.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2099.java
index 6278f7d4df..0f0c00b05c 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2099.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2099.java
@@ -30,6 +30,7 @@ public class Ticket2099 extends Application.LegacyApplication {
private void createUI(GridLayout layout) {
Button b = new Button("Show popup", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().addWindow(popup);
// popup.setVisible(true);
@@ -42,6 +43,7 @@ public class Ticket2099 extends Application.LegacyApplication {
layout.addComponent(b);
layout.addComponent(new Button("Hide label '222'", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
l2.setVisible(!l2.isVisible());
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2104.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2104.java
index b40035a189..b8a6724a41 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2104.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2104.java
@@ -6,8 +6,8 @@ import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.data.util.MethodProperty;
import com.vaadin.event.ItemClickEvent;
import com.vaadin.event.ItemClickEvent.ItemClickListener;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.ExternalResource;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
@@ -52,6 +52,7 @@ public class Ticket2104 extends Application.LegacyApplication {
cb = new CheckBox("icon");
cb.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if (tree.getItemIconPropertyId() == null) {
tree.setItemIconPropertyId("icon");
@@ -82,6 +83,7 @@ public class Ticket2104 extends Application.LegacyApplication {
"http://www.itmill.com/res/images/itmill_logo.gif"));
tree.addListener(new ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
getMainWindow().addComponent(
new Label(event.toString() + " // " + event.getItemId()
@@ -117,6 +119,7 @@ public class Ticket2104 extends Application.LegacyApplication {
table.addItem("Item " + i);
}
table.addListener(new ItemClickListener() {
+ @Override
public void itemClick(ItemClickEvent event) {
getMainWindow().addComponent(
new Label(event.toString() + " // " + event.getItemId()
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2106.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2106.java
index 0776f6c4a6..6edc625b39 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2106.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2106.java
@@ -27,6 +27,7 @@ public class Ticket2106 extends Application.LegacyApplication {
setMainWindow(new LegacyWindow("#2106"));
getMainWindow().addComponent(
new Button("Do nothing", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
getMainWindow().addComponent(
new Label("Last time did nothing: "
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2107.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2107.java
index 57926143eb..09ba9fac0b 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2107.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2107.java
@@ -23,6 +23,7 @@ public class Ticket2107 extends Application.LegacyApplication {
tf.setImmediate(true);
tf.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
w.showNotification("TextField is " + (tf.isValid() ? "" : "in")
+ "valid, with error: " + tf.getErrorMessage(),
@@ -31,6 +32,7 @@ public class Ticket2107 extends Application.LegacyApplication {
});
tf.addValidator(new Validator() {
+ @Override
public void validate(Object value) throws InvalidValueException {
if (value == null || value.toString().length() <= 3) {
throw new InvalidValueException(
@@ -46,6 +48,7 @@ public class Ticket2107 extends Application.LegacyApplication {
w.addComponent(b);
b.setImmediate(true);
b.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
tf.setRequiredError(b.getValue() ? "Field must not be empty"
: null);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2117.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2117.java
index 933494f78a..8bbfe0cd07 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2117.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2117.java
@@ -1,8 +1,8 @@
package com.vaadin.tests.tickets;
import com.vaadin.Application;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.ExternalResource;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
@@ -39,6 +39,7 @@ public class Ticket2117 extends Application.LegacyApplication {
w.addComponent(new Label("It has also been redirected to " + w.getURL()
+ " to support reloading"));
w.addComponent(new Button("button", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
w.showNotification("Button clicked");
w.addComponent(new Label("clicked"));
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2119.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2119.java
index 34054e09d1..b563ec90ef 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2119.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2119.java
@@ -3,8 +3,8 @@ package com.vaadin.tests.tickets;
import com.vaadin.Application;
import com.vaadin.data.Property;
import com.vaadin.data.util.ObjectProperty;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.ExternalResource;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.Label;
import com.vaadin.ui.Layout;
@@ -74,6 +74,7 @@ public class Ticket2119 extends Application.LegacyApplication {
layout.addComponent(select);
globalValue.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(Property.ValueChangeEvent event) {
Object value = event.getProperty().getValue();
valueProperty.setValue((null != value) ? value.toString()
@@ -83,6 +84,7 @@ public class Ticket2119 extends Application.LegacyApplication {
final Button changeValueButton = new Button("Change Value to 2");
changeValueButton.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
globalValue.setValue("2");
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2125.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2125.java
index cc81c787b2..b12a865e80 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2125.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2125.java
@@ -34,12 +34,14 @@ public class Ticket2125 extends Application.LegacyApplication {
table.addContainerProperty("String", String.class, "a string");
table.addContainerProperty("Boolean", Boolean.class, Boolean.TRUE);
table.addGeneratedColumn("Generated", new ColumnGenerator() {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
return new Label("Item " + itemId);
}
});
table.setCellStyleGenerator(new CellStyleGenerator() {
+ @Override
public String getStyle(Object itemId, Object propertyId) {
if (new Integer(4).equals(itemId)) {
if (propertyId == null) {
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2126.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2126.java
index abcca6d59c..c9e070bef4 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2126.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2126.java
@@ -46,6 +46,7 @@ public class Ticket2126 extends com.vaadin.Application.LegacyApplication {
refreshTable.addListener(new Button.ClickListener() {
boolean full = true;
+ @Override
public void buttonClick(Button.ClickEvent e) {
if (full) {
table.setContainerDataSource(container2);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2179.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2179.java
index ba4dd2ee46..31e1a9a0d6 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2179.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2179.java
@@ -25,6 +25,7 @@ public class Ticket2179 extends Application.LegacyApplication {
f.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
main.showNotification("Test field is "
+ (f.isValid() ? "valid" : "invalid"));
@@ -40,6 +41,7 @@ public class Ticket2179 extends Application.LegacyApplication {
this.c = c;
}
+ @Override
public void validate(Object value) throws InvalidValueException {
if (value == null || !value.toString().contains(c)) {
throw new InvalidValueException("Value does not contain " + c);
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2181.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2181.java
index c3219102f6..44893eb531 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2181.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2181.java
@@ -70,6 +70,7 @@ public class Ticket2181 extends Application.LegacyApplication implements
return options;
}
+ @Override
public void buttonClick(ClickEvent event) {
if (event.getButton() == setButton) {
set();
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2204.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2204.java
index eef13ca06c..4caba62df2 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2204.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2204.java
@@ -71,6 +71,7 @@ public class Ticket2204 extends Application.LegacyApplication {
Button b = new Button("Show area", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
showHide();
}
@@ -80,6 +81,7 @@ public class Ticket2204 extends Application.LegacyApplication {
b = new Button("Show tab", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
showTab();
}
@@ -128,6 +130,7 @@ public class Ticket2204 extends Application.LegacyApplication {
Form f = (Form) cc;
f.setFormFieldFactory(new FormFieldFactory() {
+ @Override
public Field<?> createField(Item item, Object propertyId,
Component uiContext) {
formTextArea = new RichTextArea();
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2208.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2208.java
index ada9471f18..3f0f35bb84 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2208.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2208.java
@@ -25,6 +25,7 @@ public class Ticket2208 extends Application.LegacyApplication {
t.setHeight("150px");
t.addGeneratedColumn("col 3 (green)", new ColumnGenerator() {
+ @Override
public Component generateCell(Table source, Object itemId,
Object columnId) {
Item item = source.getItem(itemId);
@@ -38,6 +39,7 @@ public class Ticket2208 extends Application.LegacyApplication {
t.addContainerProperty("col 4", String.class, "");
t.setCellStyleGenerator(new CellStyleGenerator() {
+ @Override
public String getStyle(Object itemId, Object propertyId) {
if ("col 1 (red)".equals(propertyId)) {
return "red";
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2209.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2209.java
index 5ba69895b6..a387781ae3 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2209.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2209.java
@@ -31,6 +31,7 @@ public class Ticket2209 extends Application.LegacyApplication {
Button b = new Button("Add label text", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
labelLong.setValue(labelLong.getValue() + "-12345");
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2209OL.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2209OL.java
index 4a45709ef6..226df8b5e7 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2209OL.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2209OL.java
@@ -38,6 +38,7 @@ public class Ticket2209OL extends Application.LegacyApplication {
Button b = new Button("Add label text", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
labelLong.setValue(labelLong.getValue() + "-12345");
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2209OL2.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2209OL2.java
index e2e51d8101..921f3b190b 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2209OL2.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2209OL2.java
@@ -44,6 +44,7 @@ public class Ticket2209OL2 extends Application.LegacyApplication {
Button b = new Button("Add label text", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
labelLong.setValue(labelLong.getValue() + "-12345");
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2221.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2221.java
index 2b7d5ef6d1..886aa376c3 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2221.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2221.java
@@ -46,6 +46,7 @@ public class Ticket2221 extends Application.LegacyApplication {
Button b = new Button("Switch textfield/panel",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Component visible = tf;
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2240.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2240.java
index f33d2f7ea8..c777d0772f 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2240.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2240.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.tickets;
import com.vaadin.Application;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.AbstractOrderedLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Root.LegacyWindow;
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2242.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2242.java
index 15b2b630a5..4b44ed1a87 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2242.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2242.java
@@ -33,6 +33,7 @@ public class Ticket2242 extends Application.LegacyApplication implements
Button b = new Button("Change container datasource",
new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
for (int i = 0; i < 5; i++) {
t.setContainerDataSource(createContainer());
@@ -71,6 +72,7 @@ public class Ticket2242 extends Application.LegacyApplication implements
return ic;
}
+ @Override
public void valueChange(ValueChangeEvent event) {
System.out.println("Value change from " + tableValue + " to "
+ t.getValue());
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2244.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2244.java
index 8540960b30..a360760039 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2244.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2244.java
@@ -33,6 +33,7 @@ public class Ticket2244 extends Application.LegacyApplication {
w.addComponent(new Button("new item", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
form.setItemDataSource(new BeanItem<MyBean>(new MyBean()));
@@ -42,6 +43,7 @@ public class Ticket2244 extends Application.LegacyApplication {
w.addComponent(new Button("new bigger item",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
form.setItemDataSource(new BeanItem<MyBean>(
new MyBiggerBean()));
@@ -52,6 +54,7 @@ public class Ticket2244 extends Application.LegacyApplication {
w.addComponent(new Button("new grid layout",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
form.setLayout(new GridLayout());
@@ -61,6 +64,7 @@ public class Ticket2244 extends Application.LegacyApplication {
w.addComponent(new Button("new form layout",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
form.setLayout(new FormLayout());
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2267.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2267.java
index cf1d2f64d2..b5d6772e7f 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2267.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2267.java
@@ -21,6 +21,7 @@ public class Ticket2267 extends Application.LegacyApplication {
Button button = new Button("1", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
Button b = event.getButton();
l.setValue(l.getValue() + b.getCaption());
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2282.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2282.java
index 67fe3f9846..c72b4e15ff 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2282.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2282.java
@@ -38,6 +38,7 @@ public class Ticket2282 extends Application.LegacyApplication {
Button b = new Button("Swap", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (layout1.getWidth() < 0.0) {
layout1.setWidth("500px");
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2287.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2287.java
index a4664989ec..716c8af0db 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2287.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2287.java
@@ -2,7 +2,7 @@ package com.vaadin.tests.tickets;
import java.net.URL;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Label;
import com.vaadin.ui.Root.LegacyWindow;
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2289.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2289.java
index 4cd421e30d..0ad023450c 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2289.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2289.java
@@ -25,6 +25,7 @@ public class Ticket2289 extends Application.LegacyApplication {
w.setContent(ol);
Button b = new Button("close current tab");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
closeCurrentTab();
@@ -34,6 +35,7 @@ public class Ticket2289 extends Application.LegacyApplication {
b = new Button("close first tab");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
closeFirstTab();
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2292.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2292.java
index a413e87110..35e9b8f2c5 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2292.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2292.java
@@ -47,6 +47,7 @@ public class Ticket2292 extends com.vaadin.Application.LegacyApplication
addRequestHandler(this);
}
+ @Override
public boolean handleRequest(Application application,
WrappedRequest request, WrappedResponse response)
throws IOException {
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2304.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2304.java
index 264ce9b5fc..b767b3661f 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2304.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2304.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.tickets;
import com.vaadin.Application;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.Root.LegacyWindow;
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2310.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2310.java
index 36bda7095c..1cad5bde4f 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2310.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2310.java
@@ -34,6 +34,7 @@ public class Ticket2310 extends Application.LegacyApplication {
b.addListener(new Button.ClickListener() {
int i = 0;
+ @Override
public void buttonClick(ClickEvent event) {
l.setValue("foobar " + i++);
@@ -43,6 +44,7 @@ public class Ticket2310 extends Application.LegacyApplication {
Button b2 = new Button("toggle panel visibility");
b2.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
p.setVisible(!p.isVisible());
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2329.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2329.java
index f1906d1492..f583a4af4b 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2329.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2329.java
@@ -34,6 +34,7 @@ public class Ticket2329 extends Application.LegacyApplication {
}
class TestColumnGenerator implements ColumnGenerator {
+ @Override
public Component generateCell(Table source, Object rowId,
Object columnId) {
return new Button("1");
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2337.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2337.java
index f71492a96b..f0cae1a59f 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2337.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2337.java
@@ -17,6 +17,7 @@ public class Ticket2337 extends Application.LegacyApplication {
setMainWindow(w);
Button b = new Button("add", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
gl.addComponent(new Label("asd"), 0, gl.getCursorY(), 2,
gl.getCursorY());
@@ -28,6 +29,7 @@ public class Ticket2337 extends Application.LegacyApplication {
b = new Button("empty", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
gl.removeAllComponents();
;
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2347.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2347.java
index 207d6ee413..5528dfebd6 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2347.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2347.java
@@ -25,6 +25,7 @@ public class Ticket2347 extends Application.LegacyApplication {
b1 = new Button("200px button");
b1.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (b1.getWidth() == 200.0) {
b1.setWidth("300px");
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2365.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2365.java
index 19d473f970..252406cc2d 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2365.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2365.java
@@ -25,6 +25,7 @@ public class Ticket2365 extends Application.LegacyApplication {
Button b = new Button("Toggle parent level size");
lo.addComponent(b);
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
if (p.getWidth() > 0) {
p.setSizeUndefined();
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2406.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2406.java
index a121d93099..0036bdc7b2 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2406.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2406.java
@@ -33,6 +33,7 @@ public class Ticket2406 extends Application.LegacyApplication {
b.setSizeFull();
b.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
w.setHeight("200px");
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2415.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2415.java
index 0514e9bb39..509f4cf437 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2415.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2415.java
@@ -19,6 +19,7 @@ public class Ticket2415 extends Application.LegacyApplication {
tf.setImmediate(true);
tf.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
main.showNotification("New value = " + tf);
}
@@ -30,6 +31,7 @@ public class Ticket2415 extends Application.LegacyApplication {
tf2.setImmediate(true);
tf2.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
main.showNotification("New value = " + tf2);
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2426.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2426.java
index 7866d031ed..40862e3ccd 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2426.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2426.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.tickets;
import com.vaadin.Application;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Label;
import com.vaadin.ui.Root.LegacyWindow;
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2431.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2431.java
index b751488bae..f6e6c1e7b5 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2431.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2431.java
@@ -30,10 +30,12 @@ public class Ticket2431 extends Application.LegacyApplication {
Action[] actions = new Action[] { a1, a2 };
+ @Override
public Action[] getActions(Object target, Object sender) {
return actions;
}
+ @Override
public void handleAction(Action action, Object sender, Object target) {
if (action == a1) {
getMainWindow().addComponent(new Label("CTRL X hit"));
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2436.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2436.java
index fc6445d62f..f48cf7a79a 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2436.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2436.java
@@ -15,16 +15,19 @@ public class Ticket2436 extends Application.LegacyApplication {
final Button remover = new Button("Remove PopupView");
final PopupView pv = new PopupView(new PopupView.Content() {
+ @Override
public String getMinimizedValueAsHTML() {
return "PopupView";
}
+ @Override
public Component getPopupComponent() {
return remover;
}
});
remover.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(Button.ClickEvent event) {
main.removeComponent(pv);
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2526.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2526.java
index 8123fe1182..97d096405e 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2526.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2526.java
@@ -14,6 +14,7 @@ public class Ticket2526 extends Application.LegacyApplication {
setMainWindow(main);
Button b = new Button("Add windows");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
main.addWindow(new Window());
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2998.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2998.java
index a3ff6808dc..ee60c0ce7e 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2998.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2998.java
@@ -174,6 +174,7 @@ public class Ticket2998 extends Application.LegacyApplication {
if (propertyId.equals("kilometers")) {
f.setWidth("4em");
f.addValidator(new Validator() {
+ @Override
public void validate(Object value)
throws InvalidValueException {
// FIXME this does not follow the standard pattern
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket3146.java b/tests/testbench/com/vaadin/tests/tickets/Ticket3146.java
index 924b1318ab..b6e01d912f 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket3146.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket3146.java
@@ -36,6 +36,7 @@ public class Ticket3146 extends Application.LegacyApplication {
Button clearButton = new Button("Clear selection",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
clearSelection();
}
@@ -43,6 +44,7 @@ public class Ticket3146 extends Application.LegacyApplication {
mainWindow.addComponent(clearButton);
Button clearButton2 = new Button("Clear selection 2",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
clearSelection2();
}
@@ -50,6 +52,7 @@ public class Ticket3146 extends Application.LegacyApplication {
mainWindow.addComponent(clearButton2);
Button clearButton3 = new Button("Clear selection 3",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
clearSelection3();
}
@@ -57,6 +60,7 @@ public class Ticket3146 extends Application.LegacyApplication {
mainWindow.addComponent(clearButton3);
Button printButton = new Button("Print selection",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
printSelection();
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket34.java b/tests/testbench/com/vaadin/tests/tickets/Ticket34.java
index f6fbe05e38..e3b90c94b0 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket34.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket34.java
@@ -34,6 +34,7 @@ public class Ticket34 extends Application.LegacyApplication {
mainWin.getPage().addListener(new Page.FragmentChangedListener() {
+ @Override
public void fragmentChanged(FragmentChangedEvent event) {
getMainWindow().showNotification(
"Fragment now: " + event.getFragment());
@@ -90,6 +91,7 @@ public class Ticket34 extends Application.LegacyApplication {
p.addComponent(b);
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
String viewName = tf.getValue().toString();
// fragmentChangedListener will change the view if possible
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket5952.java b/tests/testbench/com/vaadin/tests/tickets/Ticket5952.java
index a608f736ca..b7caa08b82 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket5952.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket5952.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.tickets;
import com.vaadin.Application;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Label;
import com.vaadin.ui.Root.LegacyWindow;
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket6002.java b/tests/testbench/com/vaadin/tests/tickets/Ticket6002.java
index c68dc9d534..fef7061516 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket6002.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket6002.java
@@ -32,6 +32,7 @@ public class Ticket6002 extends TestBase {
"Changing this field modifies only the textfield", property1);
tf1.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
// This value change event is called twice if the new
// input value is an integer. The second time is during
@@ -57,6 +58,7 @@ public class Ticket6002 extends TestBase {
property2);
tf2.addListener(new Property.ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
// This value change event is called twice if the new
// input value is an integer. The second time is during
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket677.java b/tests/testbench/com/vaadin/tests/tickets/Ticket677.java
index 473ec79342..ca55b8648c 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket677.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket677.java
@@ -5,7 +5,7 @@ import com.vaadin.data.Container;
import com.vaadin.data.Item;
import com.vaadin.data.Property;
import com.vaadin.data.util.BeanItem;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Component;
@@ -51,28 +51,33 @@ public class Ticket677 extends Application.LegacyApplication {
l.addComponent(new Button("Toggle root panel",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
toggle(root);
}
}));
l.addComponent(new Button("Toggle panel one",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
toggle(one);
}
}));
l.addComponent(new Button("Toggle panel two",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
toggle(two);
}
}));
l.addComponent(new Button("Toggle form", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
toggle(form);
}
}));
l.addComponent(new Button("Toggle table", new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
toggle(table);
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket695.java b/tests/testbench/com/vaadin/tests/tickets/Ticket695.java
index 11d643cd52..c62cee038c 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket695.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket695.java
@@ -20,6 +20,7 @@ public class Ticket695 extends Application.LegacyApplication {
w.addComponent(b);
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
try {
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket736.java b/tests/testbench/com/vaadin/tests/tickets/Ticket736.java
index 091e0c97af..d871c8adc4 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket736.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket736.java
@@ -42,12 +42,14 @@ public class Ticket736 extends Application.LegacyApplication {
f.setBuffered(true);
Button commit = new Button("Commit", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
f.commit();
}
});
Button discard = new Button("Discard", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
f.discard();
}
@@ -90,6 +92,7 @@ public class Ticket736 extends Application.LegacyApplication {
mainWin.addComponent(new Button("Show state of the address object",
new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
mainWin.showNotification(address.toString());
}
@@ -164,6 +167,7 @@ public class Ticket736 extends Application.LegacyApplication {
/** Simple state validator */
static class IsValidState implements Validator {
+ @Override
public void validate(Object value) throws InvalidValueException {
// Empty and null are accepted values
if (value == null || "".equals("" + value)) {
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket8291.java b/tests/testbench/com/vaadin/tests/tickets/Ticket8291.java
new file mode 100644
index 0000000000..2f094f0bf8
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket8291.java
@@ -0,0 +1,125 @@
+package com.vaadin.tests.tickets;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import com.vaadin.data.Container.Filter;
+import com.vaadin.data.Item;
+import com.vaadin.data.util.BeanItemContainer;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Root;
+import com.vaadin.ui.Table;
+
+/**
+ * Test for #8291 and #7666: NegativeArraySizeException when Table scrolled to
+ * the end and its size reduced.
+ */
+public class Ticket8291 extends Root {
+
+ @Override
+ public void init(WrappedRequest request) {
+ setContent(new TestView());
+ }
+
+ private static class DecimateFilter implements Filter {
+ @Override
+ public boolean passesFilter(Object itemId, Item item)
+ throws UnsupportedOperationException {
+ return ((((TestObject) itemId).property3 % 10) == 0);
+ }
+
+ @Override
+ public boolean appliesToProperty(Object propertyId) {
+ return true;
+ }
+ }
+
+ private static class TestView extends HorizontalLayout {
+
+ private Filter filter = null;
+
+ private boolean reduceData;
+
+ private TestView() {
+ final Table table = new Table();
+ List<TestObject> data = createData(1000);
+ final BeanItemContainer<TestObject> container = new BeanItemContainer<TestObject>(
+ TestObject.class, data) {
+
+ @Override
+ public int size() {
+ if (reduceData) {
+ return 100;
+ } else {
+ return super.size();
+ }
+ }
+ };
+ table.setContainerDataSource(container);
+ addComponent(table);
+ Button button = new Button("Click");
+ button.addListener(new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ reduceData = !reduceData;
+ table.refreshRowCache();
+ }
+ });
+ addComponent(button);
+ Button button2 = new Button("Filter");
+ button2.addListener(new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ if (filter != null) {
+ container.removeAllContainerFilters();
+ filter = null;
+ } else {
+ filter = new DecimateFilter();
+ container.addContainerFilter(filter);
+ }
+ table.refreshRowCache();
+ }
+ });
+ addComponent(button2);
+ }
+ }
+
+ private static List<TestObject> createData(int count) {
+ ArrayList<TestObject> data = new ArrayList<TestObject>(count);
+ for (int i = 0; i < count; i++) {
+ data.add(new TestObject("string-" + i, new Date(), i));
+ }
+ return data;
+ }
+
+ public static class TestObject {
+
+ private String property1;
+ private Date property2;
+ private Integer property3;
+
+ public TestObject(String property1, Date property2, Integer property3) {
+ this.property1 = property1;
+ this.property2 = property2;
+ this.property3 = property3;
+ }
+
+ public String getProperty1() {
+ return property1;
+ }
+
+ public Date getProperty2() {
+ return property2;
+ }
+
+ public Integer getProperty3() {
+ return property3;
+ }
+
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket846.java b/tests/testbench/com/vaadin/tests/tickets/Ticket846.java
index 714b3c21ca..413d823d2d 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket846.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket846.java
@@ -35,6 +35,7 @@ public class Ticket846 extends Application.LegacyApplication {
mainWin.addComponent(new Button("Validate integer",
new Button.ClickListener() {
+ @Override
public void buttonClick(
com.vaadin.ui.Button.ClickEvent event) {
mainWin.showNotification("The field is "
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket932.java b/tests/testbench/com/vaadin/tests/tickets/Ticket932.java
index bf6f6d1879..f72ff8beec 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket932.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket932.java
@@ -27,6 +27,7 @@ public class Ticket932 extends Application.LegacyApplication {
Button b = new Button("Check value");
b.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
l.setValue("Length: " + tx.getValue().toString().length()
+ " Content: " + tx.getValue());
@@ -46,6 +47,7 @@ public class Ticket932 extends Application.LegacyApplication {
Button b2 = new Button("Check value");
b2.addListener(new Button.ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
l.setValue("Length: " + tx2.getValue().toString().length()
+ " Content: " + tx2.getValue());
diff --git a/tests/testbench/com/vaadin/tests/util/Log.java b/tests/testbench/com/vaadin/tests/util/Log.java
index 1404db0dee..9111ff3968 100644
--- a/tests/testbench/com/vaadin/tests/util/Log.java
+++ b/tests/testbench/com/vaadin/tests/util/Log.java
@@ -3,7 +3,7 @@ package com.vaadin.tests.util;
import java.util.ArrayList;
import java.util.List;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Label;
import com.vaadin.ui.VerticalLayout;
diff --git a/tests/testbench/com/vaadin/tests/util/SampleDirectory.java b/tests/testbench/com/vaadin/tests/util/SampleDirectory.java
index 2c8ac675f8..c22eac9a6e 100644
--- a/tests/testbench/com/vaadin/tests/util/SampleDirectory.java
+++ b/tests/testbench/com/vaadin/tests/util/SampleDirectory.java
@@ -7,8 +7,8 @@ package com.vaadin.tests.util;
import java.io.File;
import com.vaadin.Application;
+import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.terminal.SystemError;
-import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.Root;
diff --git a/tests/testbench/com/vaadin/tests/util/TestClickListener.java b/tests/testbench/com/vaadin/tests/util/TestClickListener.java
index 95b9cf2d40..b9f6d66b3e 100644
--- a/tests/testbench/com/vaadin/tests/util/TestClickListener.java
+++ b/tests/testbench/com/vaadin/tests/util/TestClickListener.java
@@ -29,6 +29,7 @@ public class TestClickListener implements Button.ClickListener {
System.out.println("Created listener " + name + ", id=" + count);
}
+ @Override
public void buttonClick(ClickEvent event) {
System.out
.println("ClickEvent from listener " + name + ", id=" + count);
diff --git a/tests/testbench/com/vaadin/tests/validation/EmptyFieldErrorIndicators.java b/tests/testbench/com/vaadin/tests/validation/EmptyFieldErrorIndicators.java
index 8fb0c3585d..d6627a7d94 100644
--- a/tests/testbench/com/vaadin/tests/validation/EmptyFieldErrorIndicators.java
+++ b/tests/testbench/com/vaadin/tests/validation/EmptyFieldErrorIndicators.java
@@ -58,6 +58,7 @@ public class EmptyFieldErrorIndicators extends TestBase {
Button validate = new Button("Validate fields");
validate.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
form.validate();
@@ -96,6 +97,7 @@ public class EmptyFieldErrorIndicators extends TestBase {
form.getLayout().addComponent(setDateButton);
// form.addField("Set Date", setDateButton);
setDateButton.addListener(new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
form.getField("Date").setValue(new Date(0));
}
diff --git a/tests/testbench/com/vaadin/tests/validation/TestValidators.java b/tests/testbench/com/vaadin/tests/validation/TestValidators.java
index a530dee852..746a460da8 100644
--- a/tests/testbench/com/vaadin/tests/validation/TestValidators.java
+++ b/tests/testbench/com/vaadin/tests/validation/TestValidators.java
@@ -137,6 +137,7 @@ public class TestValidators extends TestBase {
Button b = new Button("Commit", new ClickListener() {
+ @Override
public void buttonClick(ClickEvent event) {
try {
form.commit();
diff --git a/tests/testbench/com/vaadin/tests/validation/ValidationOfRequiredEmptyFields.html b/tests/testbench/com/vaadin/tests/validation/ValidationOfRequiredEmptyFields.html
index cc594882dd..62d972e89f 100644
--- a/tests/testbench/com/vaadin/tests/validation/ValidationOfRequiredEmptyFields.html
+++ b/tests/testbench/com/vaadin/tests/validation/ValidationOfRequiredEmptyFields.html
@@ -88,11 +88,21 @@
<td>0,0</td>
</tr>
<tr>
+ <td>waitForVisible</td>
+ <td>vaadin=runcomvaadintestsvalidationValidationOfRequiredEmptyFields::Root/VTooltip[0]/FlowPanel[0]/VErrorMessage[0]/HTML[0]/domChild[0]/domChild[1]</td>
+ <td></td>
+</tr>
+<tr>
<td>screenCapture</td>
<td></td>
<td>error-must-be-int-and-5-to-10-chars</td>
</tr>
<tr>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestsvalidationValidationOfRequiredEmptyFields::/VVerticalLayout[0]</td>
+ <td>0,0</td>
+</tr>
+<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestsvalidationValidationOfRequiredEmptyFields::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VCheckBox[0]/domChild[0]</td>
<td>12,7</td>
@@ -123,11 +133,15 @@
<td>0,0</td>
</tr>
<tr>
+ <td>waitForVisible</td>
+ <td>vaadin=runcomvaadintestsvalidationValidationOfRequiredEmptyFields::Root/VTooltip[0]/FlowPanel[0]/VErrorMessage[0]/HTML[0]/domChild[0]/domChild[1]</td>
+ <td></td>
+</tr>
+<tr>
<td>screenCapture</td>
<td></td>
<td>empty-invalid-not-required</td>
</tr>
-
</tbody></table>
</body>
</html>
diff --git a/tests/testbench/com/vaadin/tests/validation/ValidationOfRequiredEmptyFields.java b/tests/testbench/com/vaadin/tests/validation/ValidationOfRequiredEmptyFields.java
index 51c4f5ecc8..dd1732023b 100644
--- a/tests/testbench/com/vaadin/tests/validation/ValidationOfRequiredEmptyFields.java
+++ b/tests/testbench/com/vaadin/tests/validation/ValidationOfRequiredEmptyFields.java
@@ -27,6 +27,7 @@ public class ValidationOfRequiredEmptyFields extends TestBase {
requiredInput = new CheckBox("Field required");
requiredInput.setImmediate(true);
requiredInput.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
tf.setRequired((Boolean) requiredInput.getValue());
}
@@ -35,6 +36,7 @@ public class ValidationOfRequiredEmptyFields extends TestBase {
requiredErrorInput = new TextField("Required error message");
requiredErrorInput.setImmediate(true);
requiredErrorInput.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
tf.setRequiredError((String) requiredErrorInput.getValue());
}
@@ -44,6 +46,7 @@ public class ValidationOfRequiredEmptyFields extends TestBase {
integerValidatorInput.setImmediate(true);
integerValidatorInput.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if ((Boolean) integerValidatorInput.getValue()) {
tf.addValidator(integerValidator);
@@ -57,6 +60,7 @@ public class ValidationOfRequiredEmptyFields extends TestBase {
stringLengthValidatorInput.setImmediate(true);
stringLengthValidatorInput.addListener(new ValueChangeListener() {
+ @Override
public void valueChange(ValueChangeEvent event) {
if ((Boolean) stringLengthValidatorInput.getValue()) {
tf.addValidator(stringLengthValidator);
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/BasicExtensionTestConnector.java b/tests/testbench/com/vaadin/tests/widgetset/client/BasicExtensionTestConnector.java
new file mode 100644
index 0000000000..db3e097a6e
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/BasicExtensionTestConnector.java
@@ -0,0 +1,27 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.widgetset.client;
+
+import com.google.gwt.dom.client.DivElement;
+import com.google.gwt.dom.client.Document;
+import com.vaadin.shared.ui.Connect;
+import com.vaadin.terminal.gwt.client.ServerConnector;
+import com.vaadin.terminal.gwt.client.Util;
+import com.vaadin.terminal.gwt.client.extensions.AbstractExtensionConnector;
+import com.vaadin.tests.extensions.BasicExtension;
+
+@Connect(BasicExtension.class)
+public class BasicExtensionTestConnector extends AbstractExtensionConnector {
+ @Override
+ protected void extend(ServerConnector target) {
+ String message = Util.getSimpleName(this) + " extending "
+ + Util.getSimpleName(target);
+
+ DivElement element = Document.get().createDivElement();
+ element.setInnerText(message);
+
+ Document.get().getBody().insertFirst(element);
+ }
+}
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/ComplexTestBean.java b/tests/testbench/com/vaadin/tests/widgetset/client/ComplexTestBean.java
index e465ee2624..47f8bedab1 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/ComplexTestBean.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/ComplexTestBean.java
@@ -6,7 +6,7 @@ package com.vaadin.tests.widgetset.client;
import java.util.List;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
+import com.vaadin.shared.communication.SharedState;
@SuppressWarnings("javadoc")
public class ComplexTestBean extends SharedState {
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/MissingFromDefaultWidgetsetConnector.java b/tests/testbench/com/vaadin/tests/widgetset/client/MissingFromDefaultWidgetsetConnector.java
index 5b7c6d8712..11d01c552e 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/MissingFromDefaultWidgetsetConnector.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/MissingFromDefaultWidgetsetConnector.java
@@ -3,8 +3,8 @@
*/
package com.vaadin.tests.widgetset.client;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.terminal.gwt.client.ui.label.VLabel;
import com.vaadin.tests.widgetset.server.MissingFromDefaultWidgetsetComponent;
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestConnector.java b/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestConnector.java
index 72bfbe285a..32e87ce6a4 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestConnector.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestConnector.java
@@ -14,11 +14,11 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import com.vaadin.terminal.gwt.client.Connector;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.extensions.AbstractExtensionConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.tests.widgetset.server.SerializerTestExtension;
@Connect(SerializerTestExtension.class)
@@ -29,6 +29,7 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
public SerializerTestConnector() {
registerRpc(SerializerTestRpc.class, new SerializerTestRpc() {
+ @Override
public void sendWrappedGenerics(
Map<Set<SimpleTestBean>, Map<Integer, List<SimpleTestBean>>> generics) {
Map<Set<SimpleTestBean>, Map<Integer, List<SimpleTestBean>>> updated = new HashMap<Set<SimpleTestBean>, Map<Integer, List<SimpleTestBean>>>();
@@ -49,12 +50,14 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
rpc.sendWrappedGenerics(updated);
}
+ @Override
public void sendString(String value) {
char[] chars = value.toCharArray();
Arrays.sort(chars);
rpc.sendString(new String(chars));
}
+ @Override
public void sendSet(Set<Integer> intSet,
Set<Connector> connectorSet, Set<SimpleTestBean> beanSet) {
@@ -68,6 +71,7 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
Collections.singleton(getRootConnector()), beanSet);
}
+ @Override
public void sendNestedArray(int[][] nestedIntArray,
SimpleTestBean[][] nestedBeanArray) {
rpc.sendNestedArray(new int[][] { { nestedIntArray[1][0],
@@ -75,6 +79,7 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
{ nestedBeanArray[0][1] }, { nestedBeanArray[0][0] } });
}
+ @Override
public void sendMap(Map<String, SimpleTestBean> stringMap,
Map<Connector, Boolean> connectorMap,
Map<Integer, Connector> intMap,
@@ -93,11 +98,13 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
getThisConnector()), updatedBeanMap);
}
+ @Override
public void sendLong(long value, Long boxedValue, long[] array) {
rpc.sendLong(array[0], Long.valueOf(value), new long[] {
array[1], boxedValue.longValue() });
}
+ @Override
public void sendList(List<Integer> intList,
List<Connector> connectorList, List<SimpleTestBean> beanList) {
Collections.sort(intList);
@@ -107,17 +114,20 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
beanList);
}
+ @Override
public void sendInt(int value, Integer boxedValue, int[] array) {
rpc.sendInt(array.length, Integer.valueOf(array[0]), new int[] {
value, boxedValue.intValue() });
}
+ @Override
public void sendFloat(float value, Float boxedValue, float[] array) {
Arrays.sort(array);
rpc.sendFloat(boxedValue.floatValue(), Float.valueOf(value),
array);
}
+ @Override
public void sendDouble(double value, Double boxedValue,
double[] array) {
rpc.sendDouble(value + boxedValue.doubleValue(),
@@ -125,16 +135,19 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
new double[] { array.length, array[0], array[1] });
}
+ @Override
public void sendConnector(Connector connector) {
rpc.sendConnector(getThisConnector());
}
+ @Override
public void sendChar(char value, Character boxedValue, char[] array) {
rpc.sendChar(Character.toUpperCase(boxedValue.charValue()),
Character.valueOf(value), new String(array)
.toLowerCase().toCharArray());
}
+ @Override
public void sendByte(byte value, Byte boxedValue, byte[] array) {
// There will most certainly be a bug that is not discovered
// because this particular method doesn't do anything with it's
@@ -142,6 +155,7 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
rpc.sendByte(value, boxedValue, array);
}
+ @Override
public void sendBoolean(boolean value, Boolean boxedValue,
boolean[] array) {
boolean[] inverseArray = new boolean[array.length];
@@ -152,6 +166,7 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
Boolean.valueOf(!value), inverseArray);
}
+ @Override
public void sendBean(ComplexTestBean complexBean,
SimpleTestBean simpleBean, SimpleTestBean[] array) {
SimpleTestBean updatedSimpleBean = new SimpleTestBean();
@@ -174,6 +189,7 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
arrayList.toArray(new SimpleTestBean[array.length]));
}
+ @Override
public void sendArrayList(List<int[]> primitiveArrayList,
List<Integer[]> objectArrayList,
List<SimpleTestBean[]> beanArrayList) {
@@ -191,10 +207,12 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
updatedObjectArrayList, beanArrayList);
}
+ @Override
public void sendNull(String value1, String value2) {
rpc.sendNull(value2, value1);
}
+ @Override
public void sendListArray(List<Integer>[] objectListArray,
List<SimpleTestBean>[] beanListArray) {
rpc.sendListArray(new List[] { objectListArray[1],
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestRpc.java b/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestRpc.java
index 5b73e1d34d..eedbda0fb8 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestRpc.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestRpc.java
@@ -8,9 +8,9 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import com.vaadin.terminal.gwt.client.Connector;
-import com.vaadin.terminal.gwt.client.communication.ClientRpc;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.communication.ClientRpc;
+import com.vaadin.shared.communication.ServerRpc;
@SuppressWarnings("javadoc")
public interface SerializerTestRpc extends ServerRpc, ClientRpc {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/helloworldfeature/GreetAgainRpc.java b/tests/testbench/com/vaadin/tests/widgetset/client/helloworldfeature/GreetAgainRpc.java
index 0bfb8f3c32..a5b89e9c1e 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/helloworldfeature/GreetAgainRpc.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/helloworldfeature/GreetAgainRpc.java
@@ -1,9 +1,9 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.helloworldfeature;
+package com.vaadin.tests.widgetset.client.helloworldfeature;
-import com.vaadin.terminal.gwt.client.communication.ClientRpc;
+import com.vaadin.shared.communication.ClientRpc;
public interface GreetAgainRpc extends ClientRpc {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/helloworldfeature/HelloWorldExtensionConnector.java b/tests/testbench/com/vaadin/tests/widgetset/client/helloworldfeature/HelloWorldExtensionConnector.java
index ff444fece5..3848ad169a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/helloworldfeature/HelloWorldExtensionConnector.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/helloworldfeature/HelloWorldExtensionConnector.java
@@ -1,19 +1,19 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.helloworldfeature;
+package com.vaadin.tests.widgetset.client.helloworldfeature;
import com.google.gwt.user.client.Window;
+import com.vaadin.shared.ui.Connect;
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.RpcProxy;
-import com.vaadin.terminal.gwt.client.ui.AbstractConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
-import com.vaadin.ui.HelloWorldExtension;
+import com.vaadin.terminal.gwt.client.extensions.AbstractExtensionConnector;
+import com.vaadin.tests.extensions.HelloWorldExtension;
@Connect(HelloWorldExtension.class)
-public class HelloWorldExtensionConnector extends AbstractConnector {
+public class HelloWorldExtensionConnector extends AbstractExtensionConnector {
HelloWorldRpc rpc = RpcProxy.create(HelloWorldRpc.class, this);
@Override
@@ -24,6 +24,7 @@ public class HelloWorldExtensionConnector extends AbstractConnector {
@Override
protected void init() {
registerRpc(GreetAgainRpc.class, new GreetAgainRpc() {
+ @Override
public void greetAgain() {
greet();
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/helloworldfeature/HelloWorldRpc.java b/tests/testbench/com/vaadin/tests/widgetset/client/helloworldfeature/HelloWorldRpc.java
index 0289713390..980d76043a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/helloworldfeature/HelloWorldRpc.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/helloworldfeature/HelloWorldRpc.java
@@ -1,9 +1,9 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.helloworldfeature;
+package com.vaadin.tests.widgetset.client.helloworldfeature;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.shared.communication.ServerRpc;
public interface HelloWorldRpc extends ServerRpc {
public void onMessageSent(String message);
diff --git a/src/com/vaadin/terminal/gwt/client/ui/helloworldfeature/HelloWorldState.java b/tests/testbench/com/vaadin/tests/widgetset/client/helloworldfeature/HelloWorldState.java
index 9524a5e9aa..913c8bdd1c 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/helloworldfeature/HelloWorldState.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/helloworldfeature/HelloWorldState.java
@@ -1,9 +1,9 @@
/*
@VaadinApache2LicenseForJavaFiles@
*/
-package com.vaadin.terminal.gwt.client.ui.helloworldfeature;
+package com.vaadin.tests.widgetset.client.helloworldfeature;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
+import com.vaadin.shared.communication.SharedState;
public class HelloWorldState extends SharedState {
private String greeting = "Hello world";
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ComponentInStateState.java b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ComponentInStateState.java
index a5a5f504ab..838eff1e5c 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ComponentInStateState.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ComponentInStateState.java
@@ -4,8 +4,8 @@
package com.vaadin.tests.widgetset.client.minitutorials.v7a2;
-import com.vaadin.terminal.gwt.client.ComponentState;
-import com.vaadin.terminal.gwt.client.Connector;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.Connector;
public class ComponentInStateState extends ComponentState {
private Connector otherComponent;
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ComponentInStateStateConnector.java b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ComponentInStateStateConnector.java
index 6e855f7c04..952e4b83c5 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ComponentInStateStateConnector.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ComponentInStateStateConnector.java
@@ -5,10 +5,10 @@
package com.vaadin.tests.widgetset.client.minitutorials.v7a2;
import com.google.gwt.user.client.ui.Label;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.tests.minitutorials.v7a2.ComponentInStateComponent;
@Connect(ComponentInStateComponent.class)
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentClientRpc.java b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentClientRpc.java
index 68e2df533c..f85d67da4b 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentClientRpc.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentClientRpc.java
@@ -1,6 +1,6 @@
package com.vaadin.tests.widgetset.client.minitutorials.v7a2;
-import com.vaadin.terminal.gwt.client.communication.ClientRpc;
+import com.vaadin.shared.communication.ClientRpc;
public interface MyComponentClientRpc extends ClientRpc {
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentConnector.java b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentConnector.java
index 2a131c07c8..3a6aab617a 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentConnector.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentConnector.java
@@ -3,12 +3,12 @@ package com.vaadin.tests.widgetset.client.minitutorials.v7a2;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
import com.vaadin.terminal.gwt.client.communication.RpcProxy;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.tests.minitutorials.v7a2.MyComponent;
@Connect(MyComponent.class)
@@ -19,6 +19,7 @@ public class MyComponentConnector extends AbstractComponentConnector {
public MyComponentConnector() {
getWidget().addClickHandler(new ClickHandler() {
+ @Override
public void onClick(ClickEvent event) {
final MouseEventDetails mouseDetails = MouseEventDetailsBuilder
@@ -29,6 +30,7 @@ public class MyComponentConnector extends AbstractComponentConnector {
}
});
registerRpc(MyComponentClientRpc.class, new MyComponentClientRpc() {
+ @Override
public void alert(String message) {
Window.alert(message);
}
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentServerRpc.java b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentServerRpc.java
index 7f273c28d2..5571ffb701 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentServerRpc.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentServerRpc.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.widgetset.client.minitutorials.v7a2;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.shared.MouseEventDetails;
+import com.vaadin.shared.communication.ServerRpc;
public interface MyComponentServerRpc extends ServerRpc {
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentState.java b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentState.java
index a80aa7bca8..8b68331f30 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentState.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/MyComponentState.java
@@ -1,6 +1,6 @@
package com.vaadin.tests.widgetset.client.minitutorials.v7a2;
-import com.vaadin.terminal.gwt.client.ComponentState;
+import com.vaadin.shared.ComponentState;
public class MyComponentState extends ComponentState {
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ResourceInStateConnector.java b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ResourceInStateConnector.java
index f05d4a0eb9..bad782e462 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ResourceInStateConnector.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ResourceInStateConnector.java
@@ -5,10 +5,10 @@
package com.vaadin.tests.widgetset.client.minitutorials.v7a2;
import com.google.gwt.user.client.ui.Image;
+import com.vaadin.shared.communication.URLReference;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.communication.StateChangeEvent;
-import com.vaadin.terminal.gwt.client.communication.URLReference;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.tests.minitutorials.v7a2.ResourceInStateComponent;
@Connect(ResourceInStateComponent.class)
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ResourceInStateState.java b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ResourceInStateState.java
index 7c124e7bf8..69b415625c 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ResourceInStateState.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/ResourceInStateState.java
@@ -1,7 +1,7 @@
package com.vaadin.tests.widgetset.client.minitutorials.v7a2;
-import com.vaadin.terminal.gwt.client.ComponentState;
-import com.vaadin.terminal.gwt.client.communication.URLReference;
+import com.vaadin.shared.ComponentState;
+import com.vaadin.shared.communication.URLReference;
public class ResourceInStateState extends ComponentState {
diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/WidgetContainerConnector.java b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/WidgetContainerConnector.java
index 012060f437..7905de89f2 100644
--- a/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/WidgetContainerConnector.java
+++ b/tests/testbench/com/vaadin/tests/widgetset/client/minitutorials/v7a2/WidgetContainerConnector.java
@@ -4,10 +4,10 @@ import java.util.List;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.shared.ui.Connect;
import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent;
import com.vaadin.terminal.gwt.client.ui.AbstractComponentContainerConnector;
-import com.vaadin.terminal.gwt.client.ui.Connect;
import com.vaadin.tests.minitutorials.v7a2.WidgetContainer;
@Connect(WidgetContainer.class)
@@ -30,6 +30,7 @@ public class WidgetContainerConnector extends
return GWT.create(VWidgetContainer.class);
}
+ @Override
public void updateCaption(ComponentConnector connector) {
}
} \ No newline at end of file