From 72d9cc9ec098952dfdb03708f808da555307e78d Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Mon, 20 Aug 2012 19:19:47 +0300 Subject: Add RootProvider for Root selection without custom Application (#8159) --- server/src/com/vaadin/Application.java | 70 ++++++++-------------- .../com/vaadin/terminal/AbstractRootProvider.java | 35 +++++++++++ .../com/vaadin/terminal/DefaultRootProvider.java | 51 ++++++++++++++++ server/src/com/vaadin/terminal/RootProvider.java | 29 +++++++++ .../terminal/gwt/server/ApplicationServlet.java | 2 + 5 files changed, 141 insertions(+), 46 deletions(-) create mode 100644 server/src/com/vaadin/terminal/AbstractRootProvider.java create mode 100644 server/src/com/vaadin/terminal/DefaultRootProvider.java create mode 100644 server/src/com/vaadin/terminal/RootProvider.java (limited to 'server/src/com/vaadin') diff --git a/server/src/com/vaadin/Application.java b/server/src/com/vaadin/Application.java index b120c8455a..d2924eb716 100644 --- a/server/src/com/vaadin/Application.java +++ b/server/src/com/vaadin/Application.java @@ -32,6 +32,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Hashtable; import java.util.LinkedList; +import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Map.Entry; @@ -56,6 +57,7 @@ import com.vaadin.terminal.ApplicationResource; import com.vaadin.terminal.CombinedRequest; import com.vaadin.terminal.DeploymentConfiguration; import com.vaadin.terminal.RequestHandler; +import com.vaadin.terminal.RootProvider; import com.vaadin.terminal.Terminal; import com.vaadin.terminal.VariableOwner; import com.vaadin.terminal.WrappedRequest; @@ -503,6 +505,8 @@ public class Application implements Terminal.ErrorListener, Serializable { */ private Set initedRoots = new HashSet(); + private List rootProviders = new LinkedList(); + /** * Gets the user of the application. * @@ -1873,55 +1877,21 @@ public class Application implements Terminal.ErrorListener, Serializable { */ protected Root getRoot(WrappedRequest request) throws RootRequiresMoreInformationException { - String rootClassName = getRootClassName(request); - try { - ClassLoader classLoader = request.getDeploymentConfiguration() - .getClassLoader(); - if (classLoader == null) { - classLoader = getClass().getClassLoader(); - } - Class rootClass = Class.forName(rootClassName, - true, classLoader).asSubclass(Root.class); - try { - Root root = rootClass.newInstance(); - return root; - } catch (Exception e) { - throw new RuntimeException("Could not instantiate root class " - + rootClassName, e); + + // Iterate in reverse order - test check newest provider first + for (int i = rootProviders.size() - 1; i >= 0; i--) { + RootProvider provider = rootProviders.get(i); + + Class rootClass = provider.getRootClass(this, + request); + + if (rootClass != null) { + return provider.instantiateRoot(this, rootClass, request); } - } catch (ClassNotFoundException e) { - throw new RuntimeException("Could not load root class " - + rootClassName, e); } - } - /** - * Provides the name of the Root class that should be used for - * a request. The class must have an accessible no-args constructor. - *

- * The default implementation uses the {@value #ROOT_PARAMETER} parameter - * from web.xml. - *

- *

- * This method is mainly used by the default implementation of - * {@link #getRoot(WrappedRequest)}. If you override that method with your - * own functionality, the results of this method might not be used. - *

- * - * @param request - * the request for which a new root is required - * @return the name of the root class to use - * - * @since 7.0 - */ - protected String getRootClassName(WrappedRequest request) { - Object rootClassNameObj = getProperties().get(ROOT_PARAMETER); - if (rootClassNameObj instanceof String) { - return (String) rootClassNameObj; - } else { - throw new RuntimeException("No " + ROOT_PARAMETER - + " defined in web.xml"); - } + throw new RuntimeException( + "No root providers available or providers are not able to find root instance"); } /** @@ -2169,6 +2139,14 @@ public class Application implements Terminal.ErrorListener, Serializable { return configuration.isProductionMode(); } + public void addRootProvider(RootProvider rootProvider) { + rootProviders.add(rootProvider); + } + + public void removeRootProvider(RootProvider rootProvider) { + rootProviders.remove(rootProvider); + } + /** * Finds the {@link Root} to which a particular request belongs. If the * request originates from an existing Root, that root is returned. In other diff --git a/server/src/com/vaadin/terminal/AbstractRootProvider.java b/server/src/com/vaadin/terminal/AbstractRootProvider.java new file mode 100644 index 0000000000..0b63003440 --- /dev/null +++ b/server/src/com/vaadin/terminal/AbstractRootProvider.java @@ -0,0 +1,35 @@ +/* + * Copyright 2011 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.terminal; + +import com.vaadin.Application; +import com.vaadin.ui.Root; + +public abstract class AbstractRootProvider implements RootProvider { + + @Override + public Root instantiateRoot(Application application, + Class type, WrappedRequest request) { + try { + return type.newInstance(); + } catch (InstantiationException e) { + throw new RuntimeException("Could not instantiate root class", e); + } catch (IllegalAccessException e) { + throw new RuntimeException("Could not access root class", e); + } + } +} diff --git a/server/src/com/vaadin/terminal/DefaultRootProvider.java b/server/src/com/vaadin/terminal/DefaultRootProvider.java new file mode 100644 index 0000000000..cbf8c98828 --- /dev/null +++ b/server/src/com/vaadin/terminal/DefaultRootProvider.java @@ -0,0 +1,51 @@ +/* + * Copyright 2011 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.terminal; + +import com.vaadin.Application; +import com.vaadin.RootRequiresMoreInformationException; +import com.vaadin.ui.Root; + +public class DefaultRootProvider extends AbstractRootProvider { + + @Override + public Class getRootClass(Application application, + WrappedRequest request) throws RootRequiresMoreInformationException { + Object rootClassNameObj = application + .getProperty(Application.ROOT_PARAMETER); + + if (rootClassNameObj instanceof String) { + String rootClassName = rootClassNameObj.toString(); + + ClassLoader classLoader = request.getDeploymentConfiguration() + .getClassLoader(); + if (classLoader == null) { + classLoader = getClass().getClassLoader(); + } + try { + Class rootClass = Class.forName(rootClassName, + true, classLoader).asSubclass(Root.class); + + return rootClass; + } catch (ClassNotFoundException e) { + throw new RuntimeException("Could not find root class", e); + } + } + + return null; + } +} diff --git a/server/src/com/vaadin/terminal/RootProvider.java b/server/src/com/vaadin/terminal/RootProvider.java new file mode 100644 index 0000000000..476cf1bd78 --- /dev/null +++ b/server/src/com/vaadin/terminal/RootProvider.java @@ -0,0 +1,29 @@ +/* + * Copyright 2011 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.terminal; + +import com.vaadin.Application; +import com.vaadin.RootRequiresMoreInformationException; +import com.vaadin.ui.Root; + +public interface RootProvider { + public Class getRootClass(Application application, + WrappedRequest request) throws RootRequiresMoreInformationException; + + public Root instantiateRoot(Application application, + Class type, WrappedRequest request); +} diff --git a/server/src/com/vaadin/terminal/gwt/server/ApplicationServlet.java b/server/src/com/vaadin/terminal/gwt/server/ApplicationServlet.java index 06bc70872d..52885f3fbb 100644 --- a/server/src/com/vaadin/terminal/gwt/server/ApplicationServlet.java +++ b/server/src/com/vaadin/terminal/gwt/server/ApplicationServlet.java @@ -20,6 +20,7 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import com.vaadin.Application; +import com.vaadin.terminal.DefaultRootProvider; import com.vaadin.terminal.gwt.server.ServletPortletHelper.ApplicationClassException; /** @@ -69,6 +70,7 @@ public class ApplicationServlet extends AbstractApplicationServlet { // Creates a new application instance try { final Application application = getApplicationClass().newInstance(); + application.addRootProvider(new DefaultRootProvider()); return application; } catch (final IllegalAccessException e) { -- cgit v1.2.3 From 7bfa8f43d14d1823b27cfd84f925e23853fbf4c7 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Tue, 21 Aug 2012 13:12:17 +0300 Subject: Don't pass JSONObject.Null as diffstate value (#9026) --- server/src/com/vaadin/terminal/gwt/server/JsonCodec.java | 3 +++ 1 file changed, 3 insertions(+) (limited to 'server/src/com/vaadin') diff --git a/server/src/com/vaadin/terminal/gwt/server/JsonCodec.java b/server/src/com/vaadin/terminal/gwt/server/JsonCodec.java index 884e01f9a5..cb0a604b89 100644 --- a/server/src/com/vaadin/terminal/gwt/server/JsonCodec.java +++ b/server/src/com/vaadin/terminal/gwt/server/JsonCodec.java @@ -624,6 +624,9 @@ public class JsonCodec implements Serializable { diffStateValue = diffState.get(fieldName); Object referenceFieldValue = decodeInternalOrCustomType( fieldType, diffStateValue, connectorTracker); + if (JSONObject.NULL.equals(diffStateValue)) { + diffStateValue = null; + } equals = equals(fieldValue, referenceFieldValue); } if (!equals) { -- cgit v1.2.3 From b02028c90b9143ad16864ad371b4b9429e20573a Mon Sep 17 00:00:00 2001 From: Johannes Dahlström Date: Tue, 21 Aug 2012 17:57:51 +0300 Subject: Add "As of 7.0" to relevant @deprecated tags --- server/src/com/vaadin/data/Buffered.java | 16 ++++++++-------- server/src/com/vaadin/ui/AbstractField.java | 8 ++++---- server/src/com/vaadin/ui/DateField.java | 12 ++++++------ server/src/com/vaadin/ui/Table.java | 4 ++-- 4 files changed, 20 insertions(+), 20 deletions(-) (limited to 'server/src/com/vaadin') diff --git a/server/src/com/vaadin/data/Buffered.java b/server/src/com/vaadin/data/Buffered.java index 5461d34fbd..2472524bbc 100644 --- a/server/src/com/vaadin/data/Buffered.java +++ b/server/src/com/vaadin/data/Buffered.java @@ -83,8 +83,8 @@ public interface Buffered extends Serializable { * * @return true if the object is in write-through mode, * false if it's not. - * @deprecated Use {@link #setBuffered(boolean)} instead. Note that - * setReadThrough(true), setWriteThrough(true) equals + * @deprecated As of 7.0, use {@link #setBuffered(boolean)} instead. Note + * that setReadThrough(true), setWriteThrough(true) equals * setBuffered(false) */ @Deprecated @@ -105,8 +105,8 @@ public interface Buffered extends Serializable { * If the implicit commit operation fails because of a * validation error. * - * @deprecated Use {@link #setBuffered(boolean)} instead. Note that - * setReadThrough(true), setWriteThrough(true) equals + * @deprecated As of 7.0, use {@link #setBuffered(boolean)} instead. Note + * that setReadThrough(true), setWriteThrough(true) equals * setBuffered(false) */ @Deprecated @@ -126,8 +126,8 @@ public interface Buffered extends Serializable { * * @return true if the object is in read-through mode, * false if it's not. - * @deprecated Use {@link #isBuffered(boolean)} instead. Note that - * setReadThrough(true), setWriteThrough(true) equals + * @deprecated As of 7.0, use {@link #isBuffered(boolean)} instead. Note + * that setReadThrough(true), setWriteThrough(true) equals * setBuffered(false) */ @Deprecated @@ -145,8 +145,8 @@ public interface Buffered extends Serializable { * @throws SourceException * If the operation fails because of an exception is thrown by * the data source. The cause is included in the exception. - * @deprecated Use {@link #setBuffered(boolean)} instead. Note that - * setReadThrough(true), setWriteThrough(true) equals + * @deprecated As of 7.0, use {@link #setBuffered(boolean)} instead. Note + * that setReadThrough(true), setWriteThrough(true) equals * setBuffered(false) */ @Deprecated diff --git a/server/src/com/vaadin/ui/AbstractField.java b/server/src/com/vaadin/ui/AbstractField.java index 67a1826100..b914fb4c46 100644 --- a/server/src/com/vaadin/ui/AbstractField.java +++ b/server/src/com/vaadin/ui/AbstractField.java @@ -394,8 +394,8 @@ public abstract class AbstractField extends AbstractComponent implements * @throws InvalidValueException * If the implicit commit operation fails because of a * validation error. - * @deprecated Use {@link #setBuffered(boolean)} instead. Note that - * setReadThrough(true), setWriteThrough(true) equals + * @deprecated As of 7.0, use {@link #setBuffered(boolean)} instead. Note + * that setReadThrough(true), setWriteThrough(true) equals * setBuffered(false) */ @Override @@ -435,8 +435,8 @@ public abstract class AbstractField extends AbstractComponent implements * @throws SourceException * If the operation fails because of an exception is thrown by * the data source. The cause is included in the exception. - * @deprecated Use {@link #setBuffered(boolean)} instead. Note that - * setReadThrough(true), setWriteThrough(true) equals + * @deprecated As of 7.0, use {@link #setBuffered(boolean)} instead. Note + * that setReadThrough(true), setWriteThrough(true) equals * setBuffered(false) */ @Override diff --git a/server/src/com/vaadin/ui/DateField.java b/server/src/com/vaadin/ui/DateField.java index 5130d665eb..790f3568d5 100644 --- a/server/src/com/vaadin/ui/DateField.java +++ b/server/src/com/vaadin/ui/DateField.java @@ -131,7 +131,7 @@ public class DateField extends AbstractField implements /** * Resolution identifier: seconds. * - * @deprecated Use {@link Resolution#SECOND} + * @deprecated As of 7.0, use {@link Resolution#SECOND} */ @Deprecated public static final Resolution RESOLUTION_SEC = Resolution.SECOND; @@ -139,7 +139,7 @@ public class DateField extends AbstractField implements /** * Resolution identifier: minutes. * - * @deprecated Use {@link Resolution#MINUTE} + * @deprecated As of 7.0, use {@link Resolution#MINUTE} */ @Deprecated public static final Resolution RESOLUTION_MIN = Resolution.MINUTE; @@ -147,7 +147,7 @@ public class DateField extends AbstractField implements /** * Resolution identifier: hours. * - * @deprecated Use {@link Resolution#HOUR} + * @deprecated As of 7.0, use {@link Resolution#HOUR} */ @Deprecated public static final Resolution RESOLUTION_HOUR = Resolution.HOUR; @@ -155,7 +155,7 @@ public class DateField extends AbstractField implements /** * Resolution identifier: days. * - * @deprecated Use {@link Resolution#DAY} + * @deprecated As of 7.0, use {@link Resolution#DAY} */ @Deprecated public static final Resolution RESOLUTION_DAY = Resolution.DAY; @@ -163,7 +163,7 @@ public class DateField extends AbstractField implements /** * Resolution identifier: months. * - * @deprecated Use {@link Resolution#MONTH} + * @deprecated As of 7.0, use {@link Resolution#MONTH} */ @Deprecated public static final Resolution RESOLUTION_MONTH = Resolution.MONTH; @@ -171,7 +171,7 @@ public class DateField extends AbstractField implements /** * Resolution identifier: years. * - * @deprecated Use {@link Resolution#YEAR} + * @deprecated As of 7.0, use {@link Resolution#YEAR} */ @Deprecated public static final Resolution RESOLUTION_YEAR = Resolution.YEAR; diff --git a/server/src/com/vaadin/ui/Table.java b/server/src/com/vaadin/ui/Table.java index 6f7f88f883..2bbb69beaf 100644 --- a/server/src/com/vaadin/ui/Table.java +++ b/server/src/com/vaadin/ui/Table.java @@ -4470,7 +4470,7 @@ public class Table extends AbstractSelect implements Action.Container, * would support this. * * @return True iff sorting is disabled. - * @deprecated Use {@link #isSortEnabled()} instead + * @deprecated As of 7.0, use {@link #isSortEnabled()} instead */ @Deprecated public boolean isSortDisabled() { @@ -4491,7 +4491,7 @@ public class Table extends AbstractSelect implements Action.Container, * * @param sortDisabled * True iff sorting is disabled. - * @deprecated Use {@link #setSortEnabled(boolean)} instead + * @deprecated As of 7.0, use {@link #setSortEnabled(boolean)} instead */ @Deprecated public void setSortDisabled(boolean sortDisabled) { -- cgit v1.2.3 From c680e97bc0a879041f3c24a5c6acdfa1829a8506 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Tue, 21 Aug 2012 18:45:27 +0300 Subject: Don't use diffstate value if it isn't there (#9026) --- server/src/com/vaadin/terminal/gwt/server/JsonCodec.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'server/src/com/vaadin') diff --git a/server/src/com/vaadin/terminal/gwt/server/JsonCodec.java b/server/src/com/vaadin/terminal/gwt/server/JsonCodec.java index cb0a604b89..892f7ec526 100644 --- a/server/src/com/vaadin/terminal/gwt/server/JsonCodec.java +++ b/server/src/com/vaadin/terminal/gwt/server/JsonCodec.java @@ -620,7 +620,7 @@ public class JsonCodec implements Serializable { Object fieldValue = getterMethod.invoke(value, (Object[]) null); boolean equals = false; Object diffStateValue = null; - if (diffState != null) { + if (diffState != null && diffState.has(fieldName)) { diffStateValue = diffState.get(fieldName); Object referenceFieldValue = decodeInternalOrCustomType( fieldType, diffStateValue, connectorTracker); -- cgit v1.2.3 From 514bffe7a6aa2c599ab9f4ba239295d63f229125 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 20 Aug 2012 16:03:21 +0300 Subject: Removed remaining methods from Terminal (#4355, #8027) --- server/src/com/vaadin/terminal/Terminal.java | 36 ++-------------------- .../com/vaadin/terminal/gwt/server/WebBrowser.java | 30 +++++------------- 2 files changed, 10 insertions(+), 56 deletions(-) (limited to 'server/src/com/vaadin') diff --git a/server/src/com/vaadin/terminal/Terminal.java b/server/src/com/vaadin/terminal/Terminal.java index 29cb649d54..a02bcb50bb 100644 --- a/server/src/com/vaadin/terminal/Terminal.java +++ b/server/src/com/vaadin/terminal/Terminal.java @@ -25,43 +25,11 @@ import java.io.Serializable; * * @author Vaadin Ltd. * @since 3.0 + * @deprecated Currently only a container for ErrorEvent and ErrorListener */ +@Deprecated public interface Terminal extends Serializable { - /** - * Gets the name of the default theme for this terminal. - * - * @return the name of the theme that is used by default by this terminal. - */ - public String getDefaultTheme(); - - /** - * Gets the width of the terminal screen in pixels. This is the width of the - * screen and not the width available for the application. - *

- * Note that the screen width is typically not available in the - * {@link com.vaadin.Application#init()} method as this is called before the - * browser has a chance to report the screen size to the server. - *

- * - * @return the width of the terminal screen. - */ - public int getScreenWidth(); - - /** - * Gets the height of the terminal screen in pixels. This is the height of - * the screen and not the height available for the application. - * - *

- * Note that the screen height is typically not available in the - * {@link com.vaadin.Application#init()} method as this is called before the - * browser has a chance to report the screen size to the server. - *

- * - * @return the height of the terminal screen. - */ - public int getScreenHeight(); - /** * An error event implementation for Terminal. */ diff --git a/server/src/com/vaadin/terminal/gwt/server/WebBrowser.java b/server/src/com/vaadin/terminal/gwt/server/WebBrowser.java index 90aef4283d..37bc81cfcf 100644 --- a/server/src/com/vaadin/terminal/gwt/server/WebBrowser.java +++ b/server/src/com/vaadin/terminal/gwt/server/WebBrowser.java @@ -20,7 +20,6 @@ import java.util.Date; import java.util.Locale; import com.vaadin.shared.VBrowserDetails; -import com.vaadin.terminal.Terminal; import com.vaadin.terminal.WrappedRequest; /** @@ -30,7 +29,7 @@ import com.vaadin.terminal.WrappedRequest; * * @author Vaadin Ltd. */ -public class WebBrowser implements Terminal { +public class WebBrowser { private int screenHeight = 0; private int screenWidth = 0; @@ -48,34 +47,21 @@ public class WebBrowser implements Terminal { private long clientServerTimeDelta; /** - * There is no default-theme for this terminal type. + * Gets the height of the screen in pixels. This is the full screen + * resolution and not the height available for the application. * - * @return Always returns null. + * @return the height of the screen in pixels. */ - - @Override - public String getDefaultTheme() { - return null; - } - - /* - * (non-Javadoc) - * - * @see com.vaadin.terminal.Terminal#getScreenHeight() - */ - - @Override public int getScreenHeight() { return screenHeight; } - /* - * (non-Javadoc) + /** + * Gets the width of the screen in pixels. This is the full screen + * resolution and not the width available for the application. * - * @see com.vaadin.terminal.Terminal#getScreenWidth() + * @return the width of the screen in pixels. */ - - @Override public int getScreenWidth() { return screenWidth; } -- cgit v1.2.3 From 667ef9c144bf3522100e5c8eac4d76a3c4faf65b Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 20 Aug 2012 19:29:04 +0300 Subject: Refactored margin handlers (#8292) Only layouts actually supporting margins now implement MarginHandler CssLayout should be simplified before 7.0.0 so margin support was removed. GridLayout, VerticalLayout and HorizontalLayout were the only other layouts which actually supported margin. MarginInfo is now passed directly in the state. --- .../client/ui/csslayout/CssLayoutConnector.java | 4 - .../gwt/client/ui/csslayout/VCssLayout.java | 19 ----- .../client/ui/formlayout/FormLayoutConnector.java | 4 +- .../gwt/client/ui/formlayout/VFormLayout.java | 4 +- .../client/ui/gridlayout/GridLayoutConnector.java | 4 +- .../gwt/client/ui/gridlayout/VGridLayout.java | 4 +- .../AbstractOrderedLayoutConnector.java | 5 +- .../ui/orderedlayout/VMeasuringOrderedLayout.java | 4 +- server/src/com/vaadin/ui/AbstractLayout.java | 53 +----------- .../src/com/vaadin/ui/AbstractOrderedLayout.java | 26 +++++- server/src/com/vaadin/ui/CustomLayout.java | 27 ------ server/src/com/vaadin/ui/FormLayout.java | 4 +- server/src/com/vaadin/ui/GridLayout.java | 38 ++++++++- server/src/com/vaadin/ui/Layout.java | 51 ++++-------- .../com/vaadin/shared/ui/AbstractLayoutState.java | 9 -- shared/src/com/vaadin/shared/ui/MarginInfo.java | 96 ++++++++++++++++++++++ shared/src/com/vaadin/shared/ui/VMarginInfo.java | 93 --------------------- .../shared/ui/gridlayout/GridLayoutState.java | 9 ++ .../orderedlayout/AbstractOrderedLayoutState.java | 10 +++ tests/testbench/com/vaadin/tests/Parameters.java | 4 +- .../tests/components/AbstractLayoutTest.java | 9 +- .../components/customfield/NestedPersonForm.java | 5 +- .../vaadin/tests/integration/LiferayThemeDemo.java | 6 +- .../vaadin/tests/layouts/CssLayoutCustomCss.java | 3 +- .../tests/layouts/GridLayoutInsidePanel.java | 6 +- .../com/vaadin/tests/tickets/Ticket1435.java | 3 +- .../com/vaadin/tests/tickets/Ticket1572.java | 9 +- .../com/vaadin/tests/tickets/Ticket1710.java | 12 ++- .../com/vaadin/tests/tickets/Ticket1805.java | 4 +- .../com/vaadin/tests/tickets/Ticket2021.java | 3 +- .../com/vaadin/tests/tickets/Ticket2040.java | 4 +- .../com/vaadin/tests/tickets/Ticket2405.java | 4 +- .../com/vaadin/tests/tickets/Ticket2998.java | 3 +- 33 files changed, 251 insertions(+), 288 deletions(-) create mode 100644 shared/src/com/vaadin/shared/ui/MarginInfo.java delete mode 100644 shared/src/com/vaadin/shared/ui/VMarginInfo.java (limited to 'server/src/com/vaadin') diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutConnector.java b/client/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutConnector.java index 47c2049a67..2e51d717a4 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutConnector.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/csslayout/CssLayoutConnector.java @@ -23,7 +23,6 @@ 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; @@ -75,9 +74,6 @@ public class CssLayoutConnector extends AbstractLayoutConnector { public void onStateChanged(StateChangeEvent stateChangeEvent) { super.onStateChanged(stateChangeEvent); - getWidget().setMarginStyles( - new VMarginInfo(getState().getMarginsBitmask())); - for (ComponentConnector child : getChildComponents()) { if (!getState().getChildCss().containsKey(child)) { continue; diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/csslayout/VCssLayout.java b/client/src/com/vaadin/terminal/gwt/client/ui/csslayout/VCssLayout.java index 813e95e3ed..e66b1c4208 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/csslayout/VCssLayout.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/csslayout/VCssLayout.java @@ -21,8 +21,6 @@ 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; public class VCssLayout extends SimplePanel { public static final String TAGNAME = "csslayout"; @@ -64,21 +62,4 @@ public class VCssLayout extends SimplePanel { } - /** - * Sets CSS classes for margin based on the given parameters. - * - * @param margins - * A {@link VMarginInfo} object that provides info on - * top/left/bottom/right margins - */ - protected void setMarginStyles(VMarginInfo margins) { - setStyleName(margin, VCssLayout.CLASSNAME + "-" - + StyleConstants.MARGIN_TOP, margins.hasTop()); - setStyleName(margin, VCssLayout.CLASSNAME + "-" - + StyleConstants.MARGIN_RIGHT, margins.hasRight()); - setStyleName(margin, VCssLayout.CLASSNAME + "-" - + StyleConstants.MARGIN_BOTTOM, margins.hasBottom()); - setStyleName(margin, VCssLayout.CLASSNAME + "-" - + StyleConstants.MARGIN_LEFT, margins.hasLeft()); - } } diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/formlayout/FormLayoutConnector.java b/client/src/com/vaadin/terminal/gwt/client/ui/formlayout/FormLayoutConnector.java index 7d5edfadf5..cbe06244af 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/formlayout/FormLayoutConnector.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/formlayout/FormLayoutConnector.java @@ -18,7 +18,7 @@ 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.MarginInfo; import com.vaadin.shared.ui.orderedlayout.AbstractOrderedLayoutState; import com.vaadin.terminal.gwt.client.ComponentConnector; import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent; @@ -46,7 +46,7 @@ public class FormLayoutConnector extends AbstractLayoutConnector { VFormLayoutTable formLayoutTable = getWidget().table; - formLayoutTable.setMargins(new VMarginInfo(getState() + formLayoutTable.setMargins(new MarginInfo(getState() .getMarginsBitmask())); formLayoutTable.setSpacing(getState().isSpacing()); diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/formlayout/VFormLayout.java b/client/src/com/vaadin/terminal/gwt/client/ui/formlayout/VFormLayout.java index d3ce6f3d3f..7f211aaf9c 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/formlayout/VFormLayout.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/formlayout/VFormLayout.java @@ -29,7 +29,7 @@ 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.shared.ui.MarginInfo; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.BrowserInfo; import com.vaadin.terminal.gwt.client.ComponentConnector; @@ -112,7 +112,7 @@ public class VFormLayout extends SimplePanel { } } - public void setMargins(VMarginInfo margins) { + public void setMargins(MarginInfo margins) { Element margin = getElement(); setStyleName(margin, CLASSNAME + "-" + StyleConstants.MARGIN_TOP, margins.hasTop()); diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutConnector.java b/client/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutConnector.java index 520afb778d..9a2732e408 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutConnector.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/gridlayout/GridLayoutConnector.java @@ -22,7 +22,7 @@ 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.MarginInfo; import com.vaadin.shared.ui.gridlayout.GridLayoutServerRpc; import com.vaadin.shared.ui.gridlayout.GridLayoutState; import com.vaadin.terminal.gwt.client.ApplicationConnection; @@ -163,7 +163,7 @@ public class GridLayoutConnector extends AbstractComponentContainerConnector layout.colExpandRatioArray = uidl.getIntArrayAttribute("colExpand"); layout.rowExpandRatioArray = uidl.getIntArrayAttribute("rowExpand"); - layout.updateMarginStyleNames(new VMarginInfo(getState() + layout.updateMarginStyleNames(new MarginInfo(getState() .getMarginsBitmask())); layout.updateSpacingStyleName(getState().isSpacing()); diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/gridlayout/VGridLayout.java b/client/src/com/vaadin/terminal/gwt/client/ui/gridlayout/VGridLayout.java index 25d7de6ee6..ef44964da7 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/gridlayout/VGridLayout.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/gridlayout/VGridLayout.java @@ -29,7 +29,7 @@ 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.shared.ui.MarginInfo; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.ComponentConnector; import com.vaadin.terminal.gwt.client.ConnectorMap; @@ -677,7 +677,7 @@ public class VGridLayout extends ComplexPanel { } } - void updateMarginStyleNames(VMarginInfo marginInfo) { + void updateMarginStyleNames(MarginInfo marginInfo) { togglePrefixedStyleName("margin-top", marginInfo.hasTop()); togglePrefixedStyleName("margin-right", marginInfo.hasRight()); togglePrefixedStyleName("margin-bottom", marginInfo.hasBottom()); diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java b/client/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java index 5da01bf127..122547ddb4 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java @@ -23,7 +23,7 @@ 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.MarginInfo; import com.vaadin.shared.ui.orderedlayout.AbstractOrderedLayoutServerRpc; import com.vaadin.shared.ui.orderedlayout.AbstractOrderedLayoutState; import com.vaadin.terminal.gwt.client.ComponentConnector; @@ -133,9 +133,8 @@ public abstract class AbstractOrderedLayoutConnector extends slot.setExpandRatio(expandRatio); } - layout.updateMarginStyleNames(new VMarginInfo(getState() + layout.updateMarginStyleNames(new MarginInfo(getState() .getMarginsBitmask())); - layout.updateSpacingStyleName(getState().isSpacing()); getLayoutManager().setNeedsLayout(this); diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VMeasuringOrderedLayout.java b/client/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VMeasuringOrderedLayout.java index ec2c4afa97..ee55bc07ba 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VMeasuringOrderedLayout.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/orderedlayout/VMeasuringOrderedLayout.java @@ -27,7 +27,7 @@ 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.shared.ui.MarginInfo; import com.vaadin.terminal.gwt.client.VCaption; import com.vaadin.terminal.gwt.client.ui.layout.VLayoutSlot; @@ -75,7 +75,7 @@ public class VMeasuringOrderedLayout extends ComplexPanel { } } - void updateMarginStyleNames(VMarginInfo marginInfo) { + void updateMarginStyleNames(MarginInfo marginInfo) { togglePrefixedStyleName("margin-top", marginInfo.hasTop()); togglePrefixedStyleName("margin-right", marginInfo.hasRight()); togglePrefixedStyleName("margin-bottom", marginInfo.hasBottom()); diff --git a/server/src/com/vaadin/ui/AbstractLayout.java b/server/src/com/vaadin/ui/AbstractLayout.java index c26812f3fc..dd1d5eab12 100644 --- a/server/src/com/vaadin/ui/AbstractLayout.java +++ b/server/src/com/vaadin/ui/AbstractLayout.java @@ -17,7 +17,6 @@ package com.vaadin.ui; import com.vaadin.shared.ui.AbstractLayoutState; -import com.vaadin.ui.Layout.MarginHandler; /** * An abstract class that defines default implementation for the {@link Layout} @@ -26,62 +25,12 @@ import com.vaadin.ui.Layout.MarginHandler; * @author Vaadin Ltd. * @since 5.0 */ -@SuppressWarnings("serial") public abstract class AbstractLayout extends AbstractComponentContainer - implements Layout, MarginHandler { - - protected MarginInfo margins = new MarginInfo(false); + implements Layout { @Override public AbstractLayoutState getState() { return (AbstractLayoutState) super.getState(); } - /* - * (non-Javadoc) - * - * @see com.vaadin.ui.Layout#setMargin(boolean) - */ - @Override - public void setMargin(boolean enabled) { - margins.setMargins(enabled); - getState().setMarginsBitmask(margins.getBitMask()); - requestRepaint(); - } - - /* - * (non-Javadoc) - * - * @see com.vaadin.ui.Layout.MarginHandler#getMargin() - */ - @Override - public MarginInfo getMargin() { - return margins; - } - - /* - * (non-Javadoc) - * - * @see com.vaadin.ui.Layout.MarginHandler#setMargin(MarginInfo) - */ - @Override - public void setMargin(MarginInfo marginInfo) { - margins.setMargins(marginInfo); - getState().setMarginsBitmask(margins.getBitMask()); - requestRepaint(); - } - - /* - * (non-Javadoc) - * - * @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); - getState().setMarginsBitmask(margins.getBitMask()); - requestRepaint(); - } - } diff --git a/server/src/com/vaadin/ui/AbstractOrderedLayout.java b/server/src/com/vaadin/ui/AbstractOrderedLayout.java index a7cc780414..3ac4e76bdb 100644 --- a/server/src/com/vaadin/ui/AbstractOrderedLayout.java +++ b/server/src/com/vaadin/ui/AbstractOrderedLayout.java @@ -25,6 +25,7 @@ import com.vaadin.event.LayoutEvents.LayoutClickNotifier; import com.vaadin.shared.Connector; import com.vaadin.shared.EventId; import com.vaadin.shared.MouseEventDetails; +import com.vaadin.shared.ui.MarginInfo; import com.vaadin.shared.ui.orderedlayout.AbstractOrderedLayoutServerRpc; import com.vaadin.shared.ui.orderedlayout.AbstractOrderedLayoutState; import com.vaadin.shared.ui.orderedlayout.AbstractOrderedLayoutState.ChildComponentData; @@ -32,7 +33,8 @@ import com.vaadin.terminal.Sizeable; @SuppressWarnings("serial") public abstract class AbstractOrderedLayout extends AbstractLayout implements - Layout.AlignmentHandler, Layout.SpacingHandler, LayoutClickNotifier { + Layout.AlignmentHandler, Layout.SpacingHandler, LayoutClickNotifier, + Layout.MarginHandler { private AbstractOrderedLayoutServerRpc rpc = new AbstractOrderedLayoutServerRpc() { @@ -392,4 +394,26 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements return components.get(index); } + public void setMargin(boolean enabled) { + setMargin(new MarginInfo(enabled)); + } + + /* + * (non-Javadoc) + * + * @see com.vaadin.ui.Layout.MarginHandler#getMargin() + */ + public MarginInfo getMargin() { + return new MarginInfo(getState().getMarginsBitmask()); + } + + /* + * (non-Javadoc) + * + * @see com.vaadin.ui.Layout.MarginHandler#setMargin(MarginInfo) + */ + public void setMargin(MarginInfo marginInfo) { + getState().setMarginsBitmask(marginInfo.getBitMask()); + requestRepaint(); + } } diff --git a/server/src/com/vaadin/ui/CustomLayout.java b/server/src/com/vaadin/ui/CustomLayout.java index 2da443bfa5..d47b2f92b3 100644 --- a/server/src/com/vaadin/ui/CustomLayout.java +++ b/server/src/com/vaadin/ui/CustomLayout.java @@ -291,33 +291,6 @@ public class CustomLayout extends AbstractLayout implements Vaadin6Component { requestRepaint(); } - /** - * Although most layouts support margins, CustomLayout does not. The - * behaviour of this layout is determined almost completely by the actual - * template. - * - * @throws UnsupportedOperationException - */ - @Override - public void setMargin(boolean enabled) { - throw new UnsupportedOperationException( - "CustomLayout does not support margins."); - } - - /** - * Although most layouts support margins, CustomLayout does not. The - * behaviour of this layout is determined almost completely by the actual - * template. - * - * @throws UnsupportedOperationException - */ - @Override - public void setMargin(boolean topEnabled, boolean rightEnabled, - boolean bottomEnabled, boolean leftEnabled) { - throw new UnsupportedOperationException( - "CustomLayout does not support margins."); - } - @Override public void changeVariables(Object source, Map variables) { // Nothing to see here diff --git a/server/src/com/vaadin/ui/FormLayout.java b/server/src/com/vaadin/ui/FormLayout.java index c4ba4665ea..15ea478597 100644 --- a/server/src/com/vaadin/ui/FormLayout.java +++ b/server/src/com/vaadin/ui/FormLayout.java @@ -16,6 +16,8 @@ package com.vaadin.ui; +import com.vaadin.shared.ui.MarginInfo; + /** * FormLayout is used by {@link Form} to layout fields. It may also be used * separately without {@link Form}. @@ -36,7 +38,7 @@ public class FormLayout extends AbstractOrderedLayout { public FormLayout() { super(); setSpacing(true); - setMargin(true, false, true, false); + setMargin(new MarginInfo(true, false, true, false)); setWidth(100, UNITS_PERCENTAGE); } diff --git a/server/src/com/vaadin/ui/GridLayout.java b/server/src/com/vaadin/ui/GridLayout.java index 5a748c04f6..b31ab82741 100644 --- a/server/src/com/vaadin/ui/GridLayout.java +++ b/server/src/com/vaadin/ui/GridLayout.java @@ -30,6 +30,7 @@ import com.vaadin.event.LayoutEvents.LayoutClickNotifier; import com.vaadin.shared.Connector; import com.vaadin.shared.EventId; import com.vaadin.shared.MouseEventDetails; +import com.vaadin.shared.ui.MarginInfo; import com.vaadin.shared.ui.gridlayout.GridLayoutServerRpc; import com.vaadin.shared.ui.gridlayout.GridLayoutState; import com.vaadin.terminal.LegacyPaint; @@ -63,8 +64,8 @@ import com.vaadin.terminal.Vaadin6Component; */ @SuppressWarnings("serial") public class GridLayout extends AbstractLayout implements - Layout.AlignmentHandler, Layout.SpacingHandler, LayoutClickNotifier, - Vaadin6Component { + Layout.AlignmentHandler, Layout.SpacingHandler, Layout.MarginHandler, + LayoutClickNotifier, Vaadin6Component { private GridLayoutServerRpc rpc = new GridLayoutServerRpc() { @@ -1416,4 +1417,37 @@ public class GridLayout extends AbstractLayout implements LayoutClickEvent.class, listener); } + /* + * (non-Javadoc) + * + * @see com.vaadin.ui.Layout.MarginHandler#setMargin(boolean) + */ + @Override + public void setMargin(boolean enabled) { + setMargin(new MarginInfo(enabled)); + } + + /* + * (non-Javadoc) + * + * @see + * com.vaadin.ui.Layout.MarginHandler#setMargin(com.vaadin.shared.ui.MarginInfo + * ) + */ + @Override + public void setMargin(MarginInfo marginInfo) { + getState().setMarginsBitmask(marginInfo.getBitMask()); + requestRepaint(); + } + + /* + * (non-Javadoc) + * + * @see com.vaadin.ui.Layout.MarginHandler#getMargin() + */ + @Override + public MarginInfo getMargin() { + return new MarginInfo(getState().getMarginsBitmask()); + } + } diff --git a/server/src/com/vaadin/ui/Layout.java b/server/src/com/vaadin/ui/Layout.java index 6a95d23f8c..9c7cd2b477 100644 --- a/server/src/com/vaadin/ui/Layout.java +++ b/server/src/com/vaadin/ui/Layout.java @@ -18,8 +18,8 @@ package com.vaadin.ui; import java.io.Serializable; -import com.vaadin.shared.ui.VMarginInfo; import com.vaadin.shared.ui.AlignmentInfo.Bits; +import com.vaadin.shared.ui.MarginInfo; /** * Extension to the {@link ComponentContainer} interface which adds the @@ -32,30 +32,6 @@ import com.vaadin.shared.ui.AlignmentInfo.Bits; */ public interface Layout extends ComponentContainer, Serializable { - /** - * Enable layout margins. Affects all four sides of the layout. This will - * tell the client-side implementation to leave extra space around the - * layout. The client-side implementation decides the actual amount, and it - * can vary between themes. - * - * @param enabled - */ - public void setMargin(boolean enabled); - - /** - * Enable specific layout margins. This will tell the client-side - * implementation to leave extra space around the layout in specified edges, - * clockwise from top (top, right, bottom, left). The client-side - * implementation decides the actual amount, and it can vary between themes. - * - * @param top - * @param right - * @param bottom - * @param left - */ - public void setMargin(boolean top, boolean right, boolean bottom, - boolean left); - /** * AlignmentHandler is most commonly an advanced {@link Layout} that can * align its components. @@ -197,6 +173,19 @@ public interface Layout extends ComponentContainer, Serializable { * its components). */ public interface MarginHandler extends Serializable { + + /** + * Enable layout margins. Affects all four sides of the layout. This + * will tell the client-side implementation to leave extra space around + * the layout. The client-side implementation decides the actual amount, + * and it can vary between themes. + * + * @param enabled + * true if margins should be enabled on all sides, false to + * disable all margins + */ + public void setMargin(boolean enabled); + /** * Enable margins for this layout. * @@ -224,16 +213,4 @@ public interface Layout extends ComponentContainer, Serializable { public MarginInfo getMargin(); } - @SuppressWarnings("serial") - public static class MarginInfo extends VMarginInfo implements Serializable { - - public MarginInfo(boolean enabled) { - super(enabled, enabled, enabled, enabled); - } - - public MarginInfo(boolean top, boolean right, boolean bottom, - boolean left) { - super(top, right, bottom, left); - } - } } diff --git a/shared/src/com/vaadin/shared/ui/AbstractLayoutState.java b/shared/src/com/vaadin/shared/ui/AbstractLayoutState.java index 675d11d0b7..4fc865626c 100644 --- a/shared/src/com/vaadin/shared/ui/AbstractLayoutState.java +++ b/shared/src/com/vaadin/shared/ui/AbstractLayoutState.java @@ -18,14 +18,5 @@ package com.vaadin.shared.ui; import com.vaadin.shared.ComponentState; public class AbstractLayoutState extends ComponentState { - private int marginsBitmask; - - public int getMarginsBitmask() { - return marginsBitmask; - } - - public void setMarginsBitmask(int marginsBitmask) { - this.marginsBitmask = marginsBitmask; - } } \ No newline at end of file diff --git a/shared/src/com/vaadin/shared/ui/MarginInfo.java b/shared/src/com/vaadin/shared/ui/MarginInfo.java new file mode 100644 index 0000000000..21e52f258a --- /dev/null +++ b/shared/src/com/vaadin/shared/ui/MarginInfo.java @@ -0,0 +1,96 @@ +/* + * Copyright 2011 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.shared.ui; + +import java.io.Serializable; + +public class MarginInfo implements Serializable { + + private static final int TOP = 1; + private static final int RIGHT = 2; + private static final int BOTTOM = 4; + private static final int LEFT = 8; + + private int bitMask; + + public MarginInfo(boolean enabled) { + this(enabled, enabled, enabled, enabled); + } + + public MarginInfo(int bitMask) { + this.bitMask = bitMask; + } + + public MarginInfo(boolean top, boolean right, boolean bottom, boolean left) { + setMargins(top, right, bottom, left); + } + + public void setMargins(boolean top, boolean right, boolean bottom, + boolean left) { + bitMask = top ? TOP : 0; + bitMask += right ? RIGHT : 0; + bitMask += bottom ? BOTTOM : 0; + bitMask += left ? LEFT : 0; + } + + public void setMargins(MarginInfo marginInfo) { + bitMask = marginInfo.bitMask; + } + + public boolean hasLeft() { + return (bitMask & LEFT) == LEFT; + } + + public boolean hasRight() { + return (bitMask & RIGHT) == RIGHT; + } + + public boolean hasTop() { + return (bitMask & TOP) == TOP; + } + + public boolean hasBottom() { + return (bitMask & BOTTOM) == BOTTOM; + } + + public int getBitMask() { + return bitMask; + } + + public void setMargins(boolean enabled) { + if (enabled) { + bitMask = TOP + RIGHT + BOTTOM + LEFT; + } else { + bitMask = 0; + } + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof MarginInfo)) { + return false; + } + + return ((MarginInfo) obj).bitMask == bitMask; + } + + @Override + public int hashCode() { + return bitMask; + } + +} diff --git a/shared/src/com/vaadin/shared/ui/VMarginInfo.java b/shared/src/com/vaadin/shared/ui/VMarginInfo.java deleted file mode 100644 index 9e9e0a4bb4..0000000000 --- a/shared/src/com/vaadin/shared/ui/VMarginInfo.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2011 Vaadin Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.vaadin.shared.ui; - -import java.io.Serializable; - -@SuppressWarnings("serial") -public class VMarginInfo implements Serializable { - - private static final int TOP = 1; - private static final int RIGHT = 2; - private static final int BOTTOM = 4; - private static final int LEFT = 8; - - private int bitMask; - - public VMarginInfo(int bitMask) { - this.bitMask = bitMask; - } - - public VMarginInfo(boolean top, boolean right, boolean bottom, boolean left) { - setMargins(top, right, bottom, left); - } - - public void setMargins(boolean top, boolean right, boolean bottom, - boolean left) { - bitMask = top ? TOP : 0; - bitMask += right ? RIGHT : 0; - bitMask += bottom ? BOTTOM : 0; - bitMask += left ? LEFT : 0; - } - - public void setMargins(VMarginInfo marginInfo) { - bitMask = marginInfo.bitMask; - } - - public boolean hasLeft() { - return (bitMask & LEFT) == LEFT; - } - - public boolean hasRight() { - return (bitMask & RIGHT) == RIGHT; - } - - public boolean hasTop() { - return (bitMask & TOP) == TOP; - } - - public boolean hasBottom() { - return (bitMask & BOTTOM) == BOTTOM; - } - - public int getBitMask() { - return bitMask; - } - - public void setMargins(boolean enabled) { - if (enabled) { - bitMask = TOP + RIGHT + BOTTOM + LEFT; - } else { - bitMask = 0; - } - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof VMarginInfo)) { - return false; - } - - return ((VMarginInfo) obj).bitMask == bitMask; - } - - @Override - public int hashCode() { - return bitMask; - } - -} diff --git a/shared/src/com/vaadin/shared/ui/gridlayout/GridLayoutState.java b/shared/src/com/vaadin/shared/ui/gridlayout/GridLayoutState.java index d2e685d8cb..381a6a7f85 100644 --- a/shared/src/com/vaadin/shared/ui/gridlayout/GridLayoutState.java +++ b/shared/src/com/vaadin/shared/ui/gridlayout/GridLayoutState.java @@ -21,6 +21,7 @@ public class GridLayoutState extends AbstractLayoutState { private boolean spacing = false; private int rows = 0; private int columns = 0; + private int marginsBitmask = 0; public boolean isSpacing() { return spacing; @@ -30,6 +31,14 @@ public class GridLayoutState extends AbstractLayoutState { this.spacing = spacing; } + public int getMarginsBitmask() { + return marginsBitmask; + } + + public void setMarginsBitmask(int marginsBitmask) { + this.marginsBitmask = marginsBitmask; + } + public int getRows() { return rows; } diff --git a/shared/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutState.java b/shared/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutState.java index 235c9eab13..3fa2ad771c 100644 --- a/shared/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutState.java +++ b/shared/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutState.java @@ -27,6 +27,8 @@ public class AbstractOrderedLayoutState extends AbstractLayoutState { public HashMap childData = new HashMap(); + private int marginsBitmask = 0; + public static class ChildComponentData implements Serializable { private int alignmentBitmask = AlignmentInfo.TOP_LEFT.getBitMask(); private float expandRatio = 0.0f; @@ -65,4 +67,12 @@ public class AbstractOrderedLayoutState extends AbstractLayoutState { this.spacing = spacing; } + public int getMarginsBitmask() { + return marginsBitmask; + } + + public void setMarginsBitmask(int marginsBitmask) { + this.marginsBitmask = marginsBitmask; + } + } \ No newline at end of file diff --git a/tests/testbench/com/vaadin/tests/Parameters.java b/tests/testbench/com/vaadin/tests/Parameters.java index 4fb224eb19..e9824d9c40 100644 --- a/tests/testbench/com/vaadin/tests/Parameters.java +++ b/tests/testbench/com/vaadin/tests/Parameters.java @@ -27,7 +27,7 @@ import com.vaadin.terminal.RequestHandler; import com.vaadin.terminal.WrappedRequest; import com.vaadin.terminal.WrappedResponse; import com.vaadin.ui.Label; -import com.vaadin.ui.Layout; +import com.vaadin.ui.Layout.MarginHandler; import com.vaadin.ui.Link; import com.vaadin.ui.Panel; import com.vaadin.ui.Root.LegacyWindow; @@ -90,7 +90,7 @@ public class Parameters extends com.vaadin.Application.LegacyApplication final Panel panel2 = new Panel("Parameter Handler"); params.setSizeFull(); panel2.setContent(new VerticalLayout()); - ((Layout) panel2.getContent()).setMargin(true); + ((MarginHandler) panel2.getContent()).setMargin(true); params.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_ID); panel2.addComponent(params); diff --git a/tests/testbench/com/vaadin/tests/components/AbstractLayoutTest.java b/tests/testbench/com/vaadin/tests/components/AbstractLayoutTest.java index af62e5e4a4..c04be3d724 100644 --- a/tests/testbench/com/vaadin/tests/components/AbstractLayoutTest.java +++ b/tests/testbench/com/vaadin/tests/components/AbstractLayoutTest.java @@ -2,11 +2,12 @@ package com.vaadin.tests.components; import java.util.LinkedHashMap; +import com.vaadin.shared.ui.MarginInfo; import com.vaadin.ui.AbstractLayout; import com.vaadin.ui.Alignment; import com.vaadin.ui.Component; import com.vaadin.ui.Layout.AlignmentHandler; -import com.vaadin.ui.Layout.MarginInfo; +import com.vaadin.ui.Layout.MarginHandler; import com.vaadin.ui.Layout.SpacingHandler; public abstract class AbstractLayoutTest extends @@ -17,7 +18,7 @@ public abstract class AbstractLayoutTest extends @Override public void execute(T c, MarginInfo value, Object data) { - c.setMargin(value); + ((MarginHandler) c).setMargin(value); } }; @@ -42,7 +43,9 @@ public abstract class AbstractLayoutTest extends @Override protected void createActions() { super.createActions(); - createMarginsSelect(CATEGORY_LAYOUT_FEATURES); + if (MarginHandler.class.isAssignableFrom(getTestClass())) { + createMarginsSelect(CATEGORY_LAYOUT_FEATURES); + } if (SpacingHandler.class.isAssignableFrom(getTestClass())) { createSpacingSelect(CATEGORY_LAYOUT_FEATURES); } diff --git a/tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java b/tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java index 0bc4f45545..0655c09102 100644 --- a/tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java +++ b/tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java @@ -4,6 +4,7 @@ import java.util.Arrays; import com.vaadin.data.Item; import com.vaadin.data.util.BeanItem; +import com.vaadin.shared.ui.MarginInfo; import com.vaadin.tests.util.Person; import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; @@ -13,6 +14,7 @@ import com.vaadin.ui.DefaultFieldFactory; import com.vaadin.ui.Field; import com.vaadin.ui.Form; import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.Layout.MarginHandler; /** * Example of nested forms @@ -37,7 +39,8 @@ public class NestedPersonForm extends Form { setItemDataSource(beanItem, Arrays.asList("firstName", "lastName", "address", "email", "phoneNumber")); getFooter().addComponent(getButtonsLayout()); - getFooter().setMargin(false, false, true, true); + ((MarginHandler) getFooter()).setMargin(new MarginInfo(false, false, + true, true)); } /** diff --git a/tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java b/tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java index 1ea800821b..a35b78c219 100644 --- a/tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java +++ b/tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java @@ -8,6 +8,7 @@ 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.MarginInfo; import com.vaadin.shared.ui.label.ContentMode; import com.vaadin.terminal.ExternalResource; import com.vaadin.terminal.Page; @@ -103,7 +104,6 @@ public class LiferayThemeDemo extends Application.LegacyApplication { mainLayout.addComponent(getTopMenu()); CssLayout margin = new CssLayout(); - margin.setMargin(false, true, true, true); margin.setSizeFull(); tabs = new TabSheet(); tabs.setSizeFull(); @@ -239,7 +239,7 @@ public class LiferayThemeDemo extends Application.LegacyApplication { HorizontalLayout hl = new HorizontalLayout(); hl.setSpacing(true); - hl.setMargin(true, false, false, false); + hl.setMargin(new MarginInfo(true, false, false, false)); l.addComponent(hl); AbstractSelect cb = new ComboBox(); @@ -270,7 +270,7 @@ public class LiferayThemeDemo extends Application.LegacyApplication { HorizontalLayout hl = new HorizontalLayout(); hl.setSpacing(true); - hl.setMargin(true, false, false, false); + hl.setMargin(new MarginInfo(true, false, false, false)); l.addComponent(hl); DateField df = new DateField(); diff --git a/tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java b/tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java index 792bcb1aab..ed35d39ef7 100644 --- a/tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java +++ b/tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java @@ -12,6 +12,7 @@ import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.CheckBox; import com.vaadin.ui.Component; import com.vaadin.ui.CssLayout; +import com.vaadin.ui.Layout.MarginHandler; import com.vaadin.ui.NativeButton; public class CssLayoutCustomCss extends TestBase implements ClickListener { @@ -48,7 +49,7 @@ public class CssLayoutCustomCss extends TestBase implements ClickListener { @Override public void valueChange(ValueChangeEvent event) { - layout.setMargin(cb.getValue()); + ((MarginHandler) layout).setMargin(cb.getValue()); } }); diff --git a/tests/testbench/com/vaadin/tests/layouts/GridLayoutInsidePanel.java b/tests/testbench/com/vaadin/tests/layouts/GridLayoutInsidePanel.java index 1c864fdb47..e200c40744 100644 --- a/tests/testbench/com/vaadin/tests/layouts/GridLayoutInsidePanel.java +++ b/tests/testbench/com/vaadin/tests/layouts/GridLayoutInsidePanel.java @@ -3,7 +3,7 @@ package com.vaadin.tests.layouts; import com.vaadin.tests.components.TestBase; import com.vaadin.ui.GridLayout; import com.vaadin.ui.Label; -import com.vaadin.ui.Layout; +import com.vaadin.ui.Layout.MarginHandler; import com.vaadin.ui.Panel; public class GridLayoutInsidePanel extends TestBase { @@ -27,7 +27,7 @@ public class GridLayoutInsidePanel extends TestBase { "A label which defines the size of the GL")); Panel p = new Panel("Panel 1"); - ((Layout) p.getContent()).setMargin(false); + ((MarginHandler) p.getContent()).setMargin(false); p.setSizeUndefined(); p.getContent().setSizeUndefined(); @@ -41,7 +41,7 @@ public class GridLayoutInsidePanel extends TestBase { "A label which defines the size of the GL")); Panel p = new Panel("Panel 2", gl); - ((Layout) p.getContent()).setMargin(false); + ((MarginHandler) p.getContent()).setMargin(false); p.setSizeUndefined(); p.getContent().setSizeUndefined(); diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1435.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1435.java index 438f7e2d5f..d6d3b132c3 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket1435.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1435.java @@ -10,6 +10,7 @@ import com.vaadin.ui.CustomComponent; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; import com.vaadin.ui.Layout; +import com.vaadin.ui.Layout.MarginHandler; import com.vaadin.ui.Panel; import com.vaadin.ui.Root.LegacyWindow; import com.vaadin.ui.Table; @@ -159,7 +160,7 @@ public class Ticket1435 extends Application.LegacyApplication { private void initContainer() { container.setStyleName("custompanel"); container.setSizeFull(); - ((Layout) container.getContent()).setMargin(false); + ((MarginHandler) container.getContent()).setMargin(false); container.getContent().setSizeFull(); root.addComponent(container); root.setExpandRatio(container, 1); diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1572.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1572.java index b9fd2debd5..87ea7e86a8 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket1572.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1572.java @@ -1,5 +1,6 @@ package com.vaadin.tests.tickets; +import com.vaadin.shared.ui.MarginInfo; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.GridLayout; @@ -82,19 +83,19 @@ public class Ticket1572 extends com.vaadin.Application.LegacyApplication { state.setValue("Margin on"); break; case 2: - gl.setMargin(true, false, false, false); + gl.setMargin(new MarginInfo(true, false, false, false)); state.setValue("Margin top"); break; case 3: - gl.setMargin(false, true, false, false); + gl.setMargin(new MarginInfo(false, true, false, false)); state.setValue("Margin right"); break; case 4: - gl.setMargin(false, false, true, false); + gl.setMargin(new MarginInfo(false, false, true, false)); state.setValue("Margin bottom"); break; case 5: - gl.setMargin(false, false, false, true); + gl.setMargin(new MarginInfo(false, false, false, true)); state.setValue("Margin left"); break; default: diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1710.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1710.java index 01792aeb89..1f2c9624c3 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket1710.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1710.java @@ -5,6 +5,7 @@ import java.util.Iterator; import com.vaadin.data.Property; import com.vaadin.data.Property.ValueChangeEvent; import com.vaadin.data.util.MethodProperty; +import com.vaadin.shared.ui.MarginInfo; import com.vaadin.terminal.SystemError; import com.vaadin.terminal.ThemeResource; import com.vaadin.ui.AbstractComponent; @@ -393,10 +394,13 @@ public class Ticket1710 extends com.vaadin.Application.LegacyApplication { } private void updateMarginsAndSpacing() { - testedLayout.setMargin(marginTop.getValue().booleanValue(), - marginRight.getValue().booleanValue(), marginBottom - .getValue().booleanValue(), marginLeft.getValue() - .booleanValue()); + if (testedLayout instanceof Layout.MarginHandler) { + ((Layout.MarginHandler) testedLayout).setMargin(new MarginInfo( + marginTop.getValue().booleanValue(), marginRight + .getValue().booleanValue(), marginBottom + .getValue().booleanValue(), marginLeft + .getValue().booleanValue())); + } if (testedLayout instanceof Layout.SpacingHandler) { ((Layout.SpacingHandler) testedLayout).setSpacing(spacing .getValue().booleanValue()); diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1805.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1805.java index a40f5b25b9..e5fcf59db8 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket1805.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1805.java @@ -6,7 +6,7 @@ import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; import com.vaadin.ui.GridLayout; import com.vaadin.ui.Label; -import com.vaadin.ui.Layout; +import com.vaadin.ui.Layout.MarginHandler; import com.vaadin.ui.Root.LegacyWindow; import com.vaadin.ui.TextField; @@ -17,7 +17,7 @@ public class Ticket1805 extends com.vaadin.Application.LegacyApplication { final LegacyWindow main = new LegacyWindow(getClass().getName() .substring(getClass().getName().lastIndexOf(".") + 1)); setMainWindow(main); - ((Layout) main.getContent()).setMargin(false); + ((MarginHandler) main.getContent()).setMargin(false); Label description = new Label( "GridLayout with 100% (no height), is wanted to " diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2021.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2021.java index c36bb5c25e..f6d8ce5e01 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket2021.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2021.java @@ -9,6 +9,7 @@ import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.GridLayout; import com.vaadin.ui.Label; import com.vaadin.ui.Layout; +import com.vaadin.ui.Layout.MarginHandler; import com.vaadin.ui.Panel; import com.vaadin.ui.Root.LegacyWindow; import com.vaadin.ui.TextArea; @@ -78,7 +79,7 @@ public class Ticket2021 extends Application.LegacyApplication { p3.setHeight("500px"); // p3.setContent(new GridLayout()); p3.getContent().setSizeFull(); - ((Layout) p3.getContent()).setMargin(false); + ((MarginHandler) p3.getContent()).setMargin(false); GridLayout gl = new GridLayout(); gl.setSizeFull(); diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2040.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2040.java index ac8928d110..d98656b9ca 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket2040.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2040.java @@ -2,7 +2,7 @@ package com.vaadin.tests.tickets; import com.vaadin.ui.Accordion; import com.vaadin.ui.Label; -import com.vaadin.ui.Layout; +import com.vaadin.ui.Layout.MarginHandler; import com.vaadin.ui.Root.LegacyWindow; import com.vaadin.ui.TextArea; import com.vaadin.ui.TextField; @@ -17,7 +17,7 @@ public class Ticket2040 extends com.vaadin.Application.LegacyApplication { setMainWindow(main); main.getContent().setSizeFull(); - ((Layout) main.getContent()).setMargin(true); + ((MarginHandler) main.getContent()).setMargin(true); setTheme("tests-tickets"); diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2405.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2405.java index 16a552e37a..c5ef9ec0b0 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket2405.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2405.java @@ -8,7 +8,7 @@ import com.vaadin.ui.Embedded; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.HorizontalSplitPanel; import com.vaadin.ui.Label; -import com.vaadin.ui.Layout; +import com.vaadin.ui.Layout.MarginHandler; import com.vaadin.ui.Root.LegacyWindow; import com.vaadin.ui.TextField; import com.vaadin.ui.VerticalLayout; @@ -31,7 +31,7 @@ public class Ticket2405 extends Application.LegacyApplication { setMainWindow(root); root.getContent().setSizeFull(); - ((Layout) root.getContent()).setMargin(false); + ((MarginHandler) root.getContent()).setMargin(false); // Top area, containing playback and volume controls, play status, view // modes and search diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2998.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2998.java index ee60c0ce7e..2d2970d36e 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket2998.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2998.java @@ -19,6 +19,7 @@ import com.vaadin.ui.DefaultFieldFactory; import com.vaadin.ui.Field; import com.vaadin.ui.FormLayout; import com.vaadin.ui.Layout; +import com.vaadin.ui.Layout.MarginHandler; import com.vaadin.ui.ListSelect; import com.vaadin.ui.Notification; import com.vaadin.ui.Panel; @@ -252,7 +253,7 @@ public class Ticket2998 extends Application.LegacyApplication { // set theme and some layout stuff setMainWindow(w); w.getContent().setSizeFull(); - ((Layout) w.getContent()).setMargin(false); + ((MarginHandler) w.getContent()).setMargin(false); Panel p = new Panel("Workout Log"); p.setStyleName(Reindeer.PANEL_LIGHT); -- cgit v1.2.3 From 88776600733901f3f9891aa90a11a5aeb2b97ef4 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Wed, 22 Aug 2012 08:53:23 +0300 Subject: Changed border style to enum (#9072) --- .../terminal/gwt/client/ui/link/LinkConnector.java | 7 ++--- .../vaadin/terminal/gwt/client/ui/link/VLink.java | 18 ++++++++----- server/src/com/vaadin/terminal/Page.java | 21 ++++++++------- server/src/com/vaadin/ui/Link.java | 31 +++++++++++----------- server/src/com/vaadin/ui/Root.java | 6 ++--- shared/src/com/vaadin/shared/ui/BorderStyle.java | 20 ++++++++++++++ 6 files changed, 65 insertions(+), 38 deletions(-) create mode 100755 shared/src/com/vaadin/shared/ui/BorderStyle.java (limited to 'server/src/com/vaadin') diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/link/LinkConnector.java b/client/src/com/vaadin/terminal/gwt/client/ui/link/LinkConnector.java index c4bbcd34f7..f2b8361f2b 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/link/LinkConnector.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/link/LinkConnector.java @@ -17,6 +17,7 @@ package com.vaadin.terminal.gwt.client.ui.link; import com.google.gwt.user.client.DOM; +import com.vaadin.shared.ui.BorderStyle; import com.vaadin.shared.ui.Connect; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.Paintable; @@ -57,12 +58,12 @@ public class LinkConnector extends AbstractComponentConnector implements if (uidl.hasAttribute("border")) { if ("none".equals(uidl.getStringAttribute("border"))) { - getWidget().borderStyle = VLink.BORDER_STYLE_NONE; + getWidget().borderStyle = BorderStyle.NONE; } else { - getWidget().borderStyle = VLink.BORDER_STYLE_MINIMAL; + getWidget().borderStyle = BorderStyle.MINIMAL; } } else { - getWidget().borderStyle = VLink.BORDER_STYLE_DEFAULT; + getWidget().borderStyle = BorderStyle.DEFAULT; } getWidget().targetHeight = uidl.hasAttribute("targetHeight") ? uidl diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/link/VLink.java b/client/src/com/vaadin/terminal/gwt/client/ui/link/VLink.java index e312d4d489..b0e44c9d13 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/link/VLink.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/link/VLink.java @@ -23,6 +23,7 @@ import com.google.gwt.user.client.Element; import com.google.gwt.user.client.Event; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.HTML; +import com.vaadin.shared.ui.BorderStyle; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.Util; import com.vaadin.terminal.gwt.client.ui.Icon; @@ -31,15 +32,20 @@ public class VLink extends HTML implements ClickHandler { public static final String CLASSNAME = "v-link"; - protected static final int BORDER_STYLE_DEFAULT = 0; - protected static final int BORDER_STYLE_MINIMAL = 1; - protected static final int BORDER_STYLE_NONE = 2; + @Deprecated + protected static final BorderStyle BORDER_STYLE_DEFAULT = BorderStyle.DEFAULT; + + @Deprecated + protected static final BorderStyle BORDER_STYLE_MINIMAL = BorderStyle.MINIMAL; + + @Deprecated + protected static final BorderStyle BORDER_STYLE_NONE = BorderStyle.NONE; protected String src; protected String target; - protected int borderStyle = BORDER_STYLE_DEFAULT; + protected BorderStyle borderStyle = BorderStyle.DEFAULT; protected boolean enabled; @@ -73,10 +79,10 @@ public class VLink extends HTML implements ClickHandler { } String features; switch (borderStyle) { - case BORDER_STYLE_NONE: + case NONE: features = "menubar=no,location=no,status=no"; break; - case BORDER_STYLE_MINIMAL: + case MINIMAL: features = "menubar=yes,location=no,status=no"; break; default: diff --git a/server/src/com/vaadin/terminal/Page.java b/server/src/com/vaadin/terminal/Page.java index 933f9b39e6..8eb77b7d0d 100644 --- a/server/src/com/vaadin/terminal/Page.java +++ b/server/src/com/vaadin/terminal/Page.java @@ -24,6 +24,7 @@ import java.util.LinkedList; import java.util.List; import com.vaadin.event.EventRouter; +import com.vaadin.shared.ui.BorderStyle; import com.vaadin.shared.ui.root.PageClientRpc; import com.vaadin.shared.ui.root.RootConstants; import com.vaadin.terminal.WrappedRequest.BrowserDetails; @@ -128,7 +129,7 @@ public class Page implements Serializable { /** * The border style of the target window */ - private final int border; + private final BorderStyle border; /** * Creates a new open resource. @@ -145,7 +146,7 @@ public class Page implements Serializable { * The border style of the target window */ private OpenResource(Resource resource, String name, int width, - int height, int border) { + int height, BorderStyle border) { this.resource = resource; this.name = name; this.width = width; @@ -174,10 +175,10 @@ public class Page implements Serializable { target.addAttribute("height", height); } switch (border) { - case BORDER_MINIMAL: + case MINIMAL: target.addAttribute("border", "minimal"); break; - case BORDER_NONE: + case NONE: target.addAttribute("border", "none"); break; } @@ -193,19 +194,20 @@ public class Page implements Serializable { /** * A border style used for opening resources in a window without a border. */ - public static final int BORDER_NONE = 0; + @Deprecated + public static final BorderStyle BORDER_NONE = BorderStyle.NONE; /** * A border style used for opening resources in a window with a minimal * border. */ - public static final int BORDER_MINIMAL = 1; + public static final BorderStyle BORDER_MINIMAL = BorderStyle.MINIMAL; /** * A border style that indicates that the default border style should be * used when opening resources. */ - public static final int BORDER_DEFAULT = 2; + public static final BorderStyle BORDER_DEFAULT = BorderStyle.DEFAULT; /** * Listener that listens changes in URI fragment. @@ -581,11 +583,10 @@ public class Page implements Serializable { * @param height * the height of the window in pixels * @param border - * the border style of the window. See {@link #BORDER_NONE - * Window.BORDER_* constants} + * the border style of the window. */ public void open(Resource resource, String windowName, int width, - int height, int border) { + int height, BorderStyle border) { openList.add(new OpenResource(resource, windowName, width, height, border)); root.requestRepaint(); diff --git a/server/src/com/vaadin/ui/Link.java b/server/src/com/vaadin/ui/Link.java index 57f2088054..ae2934f878 100644 --- a/server/src/com/vaadin/ui/Link.java +++ b/server/src/com/vaadin/ui/Link.java @@ -18,7 +18,7 @@ package com.vaadin.ui; import java.util.Map; -import com.vaadin.terminal.Page; +import com.vaadin.shared.ui.BorderStyle; import com.vaadin.terminal.PaintException; import com.vaadin.terminal.PaintTarget; import com.vaadin.terminal.Resource; @@ -34,19 +34,22 @@ import com.vaadin.terminal.Vaadin6Component; public class Link extends AbstractComponent implements Vaadin6Component { /* Target window border type constant: No window border */ - public static final int TARGET_BORDER_NONE = Page.BORDER_NONE; + @Deprecated + public static final BorderStyle TARGET_BORDER_NONE = BorderStyle.NONE; /* Target window border type constant: Minimal window border */ - public static final int TARGET_BORDER_MINIMAL = Page.BORDER_MINIMAL; + @Deprecated + public static final BorderStyle TARGET_BORDER_MINIMAL = BorderStyle.MINIMAL; /* Target window border type constant: Default window border */ - public static final int TARGET_BORDER_DEFAULT = Page.BORDER_DEFAULT; + @Deprecated + public static final BorderStyle TARGET_BORDER_DEFAULT = BorderStyle.DEFAULT; private Resource resource = null; private String targetName; - private int targetBorder = TARGET_BORDER_DEFAULT; + private BorderStyle targetBorder = BorderStyle.DEFAULT; private int targetWidth = -1; @@ -89,7 +92,7 @@ public class Link extends AbstractComponent implements Vaadin6Component { * */ public Link(String caption, Resource resource, String targetName, - int width, int height, int border) { + int width, int height, BorderStyle border) { setCaption(caption); this.resource = resource; setTargetName(targetName); @@ -131,10 +134,10 @@ public class Link extends AbstractComponent implements Vaadin6Component { // Target window border switch (getTargetBorder()) { - case TARGET_BORDER_MINIMAL: + case MINIMAL: target.addAttribute("border", "minimal"); break; - case TARGET_BORDER_NONE: + case NONE: target.addAttribute("border", "none"); break; } @@ -145,7 +148,7 @@ public class Link extends AbstractComponent implements Vaadin6Component { * * @return the target window border. */ - public int getTargetBorder() { + public BorderStyle getTargetBorder() { return targetBorder; } @@ -183,13 +186,9 @@ public class Link extends AbstractComponent implements Vaadin6Component { * @param targetBorder * the targetBorder to set. */ - public void setTargetBorder(int targetBorder) { - if (targetBorder == TARGET_BORDER_DEFAULT - || targetBorder == TARGET_BORDER_MINIMAL - || targetBorder == TARGET_BORDER_NONE) { - this.targetBorder = targetBorder; - requestRepaint(); - } + public void setTargetBorder(BorderStyle targetBorder) { + this.targetBorder = targetBorder; + requestRepaint(); } /** diff --git a/server/src/com/vaadin/ui/Root.java b/server/src/com/vaadin/ui/Root.java index b37005a16e..020ff869fa 100644 --- a/server/src/com/vaadin/ui/Root.java +++ b/server/src/com/vaadin/ui/Root.java @@ -34,6 +34,7 @@ import com.vaadin.event.MouseEvents.ClickEvent; import com.vaadin.event.MouseEvents.ClickListener; import com.vaadin.shared.EventId; import com.vaadin.shared.MouseEventDetails; +import com.vaadin.shared.ui.BorderStyle; import com.vaadin.shared.ui.root.RootConstants; import com.vaadin.shared.ui.root.RootServerRpc; import com.vaadin.shared.ui.root.RootState; @@ -283,13 +284,12 @@ public abstract class Root extends AbstractComponentContainer implements * @param height * the height of the window in pixels * @param border - * the border style of the window. See {@link #BORDER_NONE - * Window.BORDER_* constants} + * the border style of the window. * @deprecated As of 7.0, use getPage().open instead */ @Deprecated public void open(Resource resource, String windowName, int width, - int height, int border) { + int height, BorderStyle border) { getPage().open(resource, windowName, width, height, border); } diff --git a/shared/src/com/vaadin/shared/ui/BorderStyle.java b/shared/src/com/vaadin/shared/ui/BorderStyle.java new file mode 100755 index 0000000000..786d340f1c --- /dev/null +++ b/shared/src/com/vaadin/shared/ui/BorderStyle.java @@ -0,0 +1,20 @@ +/* + * Copyright 2011 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.shared.ui; + +public enum BorderStyle { + NONE, MINIMAL, DEFAULT; +} -- cgit v1.2.3 From 38358ae25543433f8cc381101bc340adc7e5c67f Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Wed, 22 Aug 2012 20:14:30 +0300 Subject: Support using public fields in state classes (#9324) --- .../ConnectorBundleLoaderFactory.java | 2 +- .../widgetsetutils/metadata/ConnectorBundle.java | 1 + .../gwt/widgetsetutils/metadata/FieldProperty.java | 77 ++++++++++ .../gwt/client/ui/label/LabelConnector.java | 8 +- .../com/vaadin/terminal/gwt/server/JsonCodec.java | 170 +++++++++++++++------ server/src/com/vaadin/ui/Label.java | 10 +- .../src/com/vaadin/shared/ui/label/LabelState.java | 21 +-- .../orderedlayout/AbstractOrderedLayoutState.java | 2 +- .../terminal/gwt/server/JSONSerializerTest.java | 18 +-- 9 files changed, 218 insertions(+), 91 deletions(-) create mode 100644 client-compiler/src/com/vaadin/terminal/gwt/widgetsetutils/metadata/FieldProperty.java (limited to 'server/src/com/vaadin') diff --git a/client-compiler/src/com/vaadin/terminal/gwt/widgetsetutils/ConnectorBundleLoaderFactory.java b/client-compiler/src/com/vaadin/terminal/gwt/widgetsetutils/ConnectorBundleLoaderFactory.java index 9a5b83f460..a2e61947e8 100644 --- a/client-compiler/src/com/vaadin/terminal/gwt/widgetsetutils/ConnectorBundleLoaderFactory.java +++ b/client-compiler/src/com/vaadin/terminal/gwt/widgetsetutils/ConnectorBundleLoaderFactory.java @@ -219,7 +219,7 @@ public class ConnectorBundleLoaderFactory extends Generator { writeClassLiteral(w, property.getBeanType()); w.print(", \""); w.print(escape(property.getName())); - w.print("\", new Invoker() {"); + w.println("\", new Invoker() {"); w.indent(); w.println("public Object invoke(Object bean, Object[] params) {"); diff --git a/client-compiler/src/com/vaadin/terminal/gwt/widgetsetutils/metadata/ConnectorBundle.java b/client-compiler/src/com/vaadin/terminal/gwt/widgetsetutils/metadata/ConnectorBundle.java index ad6b1eb102..7515124a5a 100644 --- a/client-compiler/src/com/vaadin/terminal/gwt/widgetsetutils/metadata/ConnectorBundle.java +++ b/client-compiler/src/com/vaadin/terminal/gwt/widgetsetutils/metadata/ConnectorBundle.java @@ -372,6 +372,7 @@ public class ConnectorBundle { HashSet properties = new HashSet(); properties.addAll(MethodProperty.findProperties(type)); + properties.addAll(FieldProperty.findProperties(type)); return properties; } diff --git a/client-compiler/src/com/vaadin/terminal/gwt/widgetsetutils/metadata/FieldProperty.java b/client-compiler/src/com/vaadin/terminal/gwt/widgetsetutils/metadata/FieldProperty.java new file mode 100644 index 0000000000..31555cc30b --- /dev/null +++ b/client-compiler/src/com/vaadin/terminal/gwt/widgetsetutils/metadata/FieldProperty.java @@ -0,0 +1,77 @@ +/* + * Copyright 2011 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.terminal.gwt.widgetsetutils.metadata; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import com.google.gwt.core.ext.TreeLogger; +import com.google.gwt.core.ext.typeinfo.JClassType; +import com.google.gwt.core.ext.typeinfo.JField; +import com.google.gwt.user.rebind.SourceWriter; + +public class FieldProperty extends Property { + + private FieldProperty(JClassType beanType, JField field) { + super(field.getName(), beanType, field.getType()); + } + + @Override + public void writeSetterBody(TreeLogger logger, SourceWriter w, + String beanVariable, String valueVariable) { + w.print("((%s) %s).%s = (%s)%s;", getBeanType() + .getQualifiedSourceName(), beanVariable, getName(), + getUnboxedPropertyTypeName(), valueVariable); + } + + @Override + public void writeGetterBody(TreeLogger logger, SourceWriter w, + String beanVariable) { + w.print("return ((%s) %s).%s;", getBeanType().getQualifiedSourceName(), + beanVariable, getName()); + } + + public static Collection findProperties(JClassType type) { + Collection properties = new ArrayList(); + + List fields = getPublicFields(type); + for (JField field : fields) { + properties.add(new FieldProperty(type, field)); + } + + return properties; + } + + private static List getPublicFields(JClassType type) { + Set names = new HashSet(); + ArrayList fields = new ArrayList(); + for (JClassType subType : type.getFlattenedSupertypeHierarchy()) { + JField[] subFields = subType.getFields(); + for (JField field : subFields) { + if (field.isPublic() && !field.isStatic() + && names.add(field.getName())) { + fields.add(field); + } + } + } + return fields; + } + +} diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/label/LabelConnector.java b/client/src/com/vaadin/terminal/gwt/client/ui/label/LabelConnector.java index 4280db8bc9..57f8c16952 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/label/LabelConnector.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/label/LabelConnector.java @@ -43,10 +43,10 @@ public class LabelConnector extends AbstractComponentConnector { public void onStateChanged(StateChangeEvent stateChangeEvent) { super.onStateChanged(stateChangeEvent); boolean sinkOnloads = false; - switch (getState().getContentMode()) { + switch (getState().contentMode) { case PREFORMATTED: PreElement preElement = Document.get().createPreElement(); - preElement.setInnerText(getState().getText()); + preElement.setInnerText(getState().text); // clear existing content getWidget().setHTML(""); // add preformatted text to dom @@ -54,14 +54,14 @@ public class LabelConnector extends AbstractComponentConnector { break; case TEXT: - getWidget().setText(getState().getText()); + getWidget().setText(getState().text); break; case XHTML: case RAW: sinkOnloads = true; case XML: - getWidget().setHTML(getState().getText()); + getWidget().setHTML(getState().text); break; default: getWidget().setText(""); diff --git a/server/src/com/vaadin/terminal/gwt/server/JsonCodec.java b/server/src/com/vaadin/terminal/gwt/server/JsonCodec.java index 892f7ec526..1eee9c4f52 100644 --- a/server/src/com/vaadin/terminal/gwt/server/JsonCodec.java +++ b/server/src/com/vaadin/terminal/gwt/server/JsonCodec.java @@ -21,9 +21,10 @@ import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.io.Serializable; import java.lang.reflect.Array; +import java.lang.reflect.Field; import java.lang.reflect.GenericArrayType; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.lang.reflect.WildcardType; @@ -55,6 +56,107 @@ import com.vaadin.ui.ConnectorTracker; */ public class JsonCodec implements Serializable { + public static interface BeanProperty { + public Object getValue(Object bean) throws Exception; + + public void setValue(Object bean, Object value) throws Exception; + + public String getName(); + + public Type getType(); + } + + private static class FieldProperty implements BeanProperty { + private final Field field; + + public FieldProperty(Field field) { + this.field = field; + } + + @Override + public Object getValue(Object bean) throws Exception { + return field.get(bean); + } + + @Override + public void setValue(Object bean, Object value) throws Exception { + field.set(bean, value); + } + + @Override + public String getName() { + return field.getName(); + } + + @Override + public Type getType() { + return field.getGenericType(); + } + + public static Collection find(Class type) + throws IntrospectionException { + Collection properties = new ArrayList(); + + Field[] fields = type.getFields(); + for (Field field : fields) { + if (!Modifier.isStatic(field.getModifiers())) { + properties.add(new FieldProperty(field)); + } + } + + return properties; + } + + } + + private static class MethodProperty implements BeanProperty { + private final PropertyDescriptor pd; + + public MethodProperty(PropertyDescriptor pd) { + this.pd = pd; + } + + @Override + public Object getValue(Object bean) throws Exception { + Method readMethod = pd.getReadMethod(); + return readMethod.invoke(bean); + } + + @Override + public void setValue(Object bean, Object value) throws Exception { + pd.getWriteMethod().invoke(bean, value); + } + + @Override + public String getName() { + String fieldName = pd.getWriteMethod().getName().substring(3); + fieldName = Character.toLowerCase(fieldName.charAt(0)) + + fieldName.substring(1); + return fieldName; + } + + public static Collection find(Class type) + throws IntrospectionException { + Collection properties = new ArrayList(); + + for (PropertyDescriptor pd : Introspector.getBeanInfo(type) + .getPropertyDescriptors()) { + if (pd.getReadMethod() == null || pd.getWriteMethod() == null) { + continue; + } + + properties.add(new MethodProperty(pd)); + } + return properties; + } + + @Override + public Type getType() { + return pd.getReadMethod().getGenericReturnType(); + } + + } + private static Map, String> typeToTransportType = new HashMap, String>(); /** @@ -468,27 +570,6 @@ public class JsonCodec implements Serializable { return set; } - /** - * Returns the name that should be used as field name in the JSON. We strip - * "set" from the setter, keeping the result - this is easy to do on both - * server and client, avoiding some issues with cASE. E.g setZIndex() - * becomes "zIndex". Also ensures that both getter and setter are present, - * returning null otherwise. - * - * @param pd - * @return the name to be used or null if both getter and setter are not - * found. - */ - static String getTransportFieldName(PropertyDescriptor pd) { - if (pd.getReadMethod() == null || pd.getWriteMethod() == null) { - return null; - } - String fieldName = pd.getWriteMethod().getName().substring(3); - fieldName = Character.toLowerCase(fieldName.charAt(0)) - + fieldName.substring(1); - return fieldName; - } - private static Object decodeObject(Type targetType, JSONObject serializedObject, ConnectorTracker connectorTracker) throws JSONException { @@ -497,31 +578,19 @@ public class JsonCodec implements Serializable { try { Object decodedObject = targetClass.newInstance(); - for (PropertyDescriptor pd : Introspector.getBeanInfo(targetClass) - .getPropertyDescriptors()) { + for (BeanProperty property : getProperties(targetClass)) { - String fieldName = getTransportFieldName(pd); - if (fieldName == null) { - continue; - } + String fieldName = property.getName(); Object encodedFieldValue = serializedObject.get(fieldName); - Type fieldType = pd.getReadMethod().getGenericReturnType(); + Type fieldType = property.getType(); Object decodedFieldValue = decodeInternalOrCustomType( fieldType, encodedFieldValue, connectorTracker); - pd.getWriteMethod().invoke(decodedObject, decodedFieldValue); + property.setValue(decodedObject, decodedFieldValue); } return decodedObject; - } catch (IllegalArgumentException e) { - throw new JSONException(e); - } catch (IllegalAccessException e) { - throw new JSONException(e); - } catch (InvocationTargetException e) { - throw new JSONException(e); - } catch (InstantiationException e) { - throw new JSONException(e); - } catch (IntrospectionException e) { + } catch (Exception e) { throw new JSONException(e); } } @@ -602,22 +671,27 @@ public class JsonCodec implements Serializable { return JSONObject.NULL; } + public static Collection getProperties(Class type) + throws IntrospectionException { + Collection properties = new ArrayList(); + + properties.addAll(MethodProperty.find(type)); + properties.addAll(FieldProperty.find(type)); + + return properties; + } + private static Object encodeObject(Object value, JSONObject diffState, ConnectorTracker connectorTracker) throws JSONException { JSONObject jsonMap = new JSONObject(); try { - for (PropertyDescriptor pd : Introspector.getBeanInfo( - value.getClass()).getPropertyDescriptors()) { - String fieldName = getTransportFieldName(pd); - if (fieldName == null) { - continue; - } - Method getterMethod = pd.getReadMethod(); + for (BeanProperty property : getProperties(value.getClass())) { + String fieldName = property.getName(); // We can't use PropertyDescriptor.getPropertyType() as it does // not support generics - Type fieldType = getterMethod.getGenericReturnType(); - Object fieldValue = getterMethod.invoke(value, (Object[]) null); + Type fieldType = property.getType(); + Object fieldValue = property.getValue(value); boolean equals = false; Object diffStateValue = null; if (diffState != null && diffState.has(fieldName)) { diff --git a/server/src/com/vaadin/ui/Label.java b/server/src/com/vaadin/ui/Label.java index 668b99a74c..10fa741058 100644 --- a/server/src/com/vaadin/ui/Label.java +++ b/server/src/com/vaadin/ui/Label.java @@ -168,7 +168,7 @@ public class Label extends AbstractComponent implements Property, public String getValue() { if (getPropertyDataSource() == null) { // Use internal value if we are running without a data source - return getState().getText(); + return getState().text; } return ConverterUtil.convertFromModel(getPropertyDataSource() .getValue(), String.class, getConverter(), getLocale()); @@ -189,7 +189,7 @@ public class Label extends AbstractComponent implements Property, + String.class.getName()); } if (getPropertyDataSource() == null) { - getState().setText((String) newStringValue); + getState().text = (String) newStringValue; requestRepaint(); } else { throw new IllegalStateException( @@ -277,7 +277,7 @@ public class Label extends AbstractComponent implements Property, * @see ContentMode */ public ContentMode getContentMode() { - return getState().getContentMode(); + return getState().contentMode; } /** @@ -293,7 +293,7 @@ public class Label extends AbstractComponent implements Property, throw new IllegalArgumentException("Content mode can not be null"); } - getState().setContentMode(contentMode); + getState().contentMode = contentMode; requestRepaint(); } @@ -384,7 +384,7 @@ public class Label extends AbstractComponent implements Property, @Override public void valueChange(Property.ValueChangeEvent event) { // Update the internal value from the data source - getState().setText(getValue()); + getState().text = getValue(); requestRepaint(); fireValueChange(); diff --git a/shared/src/com/vaadin/shared/ui/label/LabelState.java b/shared/src/com/vaadin/shared/ui/label/LabelState.java index 35e27bc63d..a91aeb0aa1 100644 --- a/shared/src/com/vaadin/shared/ui/label/LabelState.java +++ b/shared/src/com/vaadin/shared/ui/label/LabelState.java @@ -18,23 +18,6 @@ package com.vaadin.shared.ui.label; import com.vaadin.shared.ComponentState; public class LabelState extends ComponentState { - private ContentMode contentMode = ContentMode.TEXT; - private String text = ""; - - public ContentMode getContentMode() { - return contentMode; - } - - public void setContentMode(ContentMode contentMode) { - this.contentMode = contentMode; - } - - public String getText() { - return text; - } - - public void setText(String text) { - this.text = text; - } - + public ContentMode contentMode = ContentMode.TEXT; + public String text = ""; } diff --git a/shared/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutState.java b/shared/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutState.java index 3fa2ad771c..35456ab9ac 100644 --- a/shared/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutState.java +++ b/shared/src/com/vaadin/shared/ui/orderedlayout/AbstractOrderedLayoutState.java @@ -25,7 +25,7 @@ import com.vaadin.shared.ui.AlignmentInfo; public class AbstractOrderedLayoutState extends AbstractLayoutState { private boolean spacing = false; - public HashMap childData = new HashMap(); + private HashMap childData = new HashMap(); private int marginsBitmask = 0; 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 16cc0ede98..7775b667a1 100644 --- a/tests/client-side/com/vaadin/terminal/gwt/server/JSONSerializerTest.java +++ b/tests/client-side/com/vaadin/terminal/gwt/server/JSONSerializerTest.java @@ -1,7 +1,7 @@ package com.vaadin.terminal.gwt.server; /* - * Copyright 2011 Vaadin Ltd. + * Copyright 2011 Vaadin Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -15,9 +15,6 @@ package com.vaadin.terminal.gwt.server; * License for the specific language governing permissions and limitations under * the License. */ -import java.beans.BeanInfo; -import java.beans.Introspector; -import java.beans.PropertyDescriptor; import java.lang.reflect.Type; import java.util.Collection; import java.util.HashMap; @@ -28,6 +25,7 @@ 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.server.JsonCodec.BeanProperty; /** * Tests for {@link JsonCodec}, {@link JsonEncoder}, {@link JsonDecoder} @@ -118,15 +116,9 @@ public class JSONSerializerTest extends TestCase { } private boolean equalsBean(Object o1, Object o2) throws Exception { - BeanInfo beanInfo = Introspector.getBeanInfo(o1.getClass()); - for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) { - String fieldName = JsonCodec.getTransportFieldName(pd); - if (fieldName == null) { - continue; - } - - Object c1 = pd.getReadMethod().invoke(o1); - Object c2 = pd.getReadMethod().invoke(o2); + for (BeanProperty property : JsonCodec.getProperties(o1.getClass())) { + Object c1 = property.getValue(o1); + Object c2 = property.getValue(o2); if (!equals(c1, c2)) { return false; } -- cgit v1.2.3 From 050bec8a443b916e45adf4bf7ea91241690d37e2 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Wed, 22 Aug 2012 21:12:47 +0300 Subject: Make the (server-side) getState method protected (#9315) --- .../terminal/gwt/client/ServerConnector.java | 10 +++ .../vaadin/terminal/AbstractClientConnector.java | 11 ++- .../terminal/AbstractJavaScriptExtension.java | 2 +- .../gwt/server/AbstractCommunicationManager.java | 83 +++++++++++----------- .../terminal/gwt/server/ClientConnector.java | 14 ++++ .../terminal/gwt/server/DragAndDropService.java | 14 ++-- server/src/com/vaadin/ui/AbsoluteLayout.java | 2 +- server/src/com/vaadin/ui/AbstractComponent.java | 2 +- server/src/com/vaadin/ui/AbstractField.java | 2 +- .../com/vaadin/ui/AbstractJavaScriptComponent.java | 9 +-- server/src/com/vaadin/ui/AbstractLayout.java | 2 +- server/src/com/vaadin/ui/AbstractMedia.java | 2 +- .../src/com/vaadin/ui/AbstractOrderedLayout.java | 5 +- server/src/com/vaadin/ui/AbstractSplitPanel.java | 2 +- server/src/com/vaadin/ui/AbstractTextField.java | 2 +- server/src/com/vaadin/ui/Button.java | 2 +- server/src/com/vaadin/ui/CheckBox.java | 2 +- server/src/com/vaadin/ui/Component.java | 14 ---- server/src/com/vaadin/ui/CssLayout.java | 2 +- server/src/com/vaadin/ui/CustomLayout.java | 2 +- server/src/com/vaadin/ui/Form.java | 2 +- server/src/com/vaadin/ui/GridLayout.java | 2 +- server/src/com/vaadin/ui/JavaScript.java | 2 +- server/src/com/vaadin/ui/Label.java | 2 +- server/src/com/vaadin/ui/Panel.java | 2 +- server/src/com/vaadin/ui/Root.java | 2 +- server/src/com/vaadin/ui/TextArea.java | 2 +- server/src/com/vaadin/ui/Video.java | 2 +- server/src/com/vaadin/ui/Window.java | 2 +- shared/src/com/vaadin/shared/Connector.java | 11 --- 30 files changed, 113 insertions(+), 100 deletions(-) (limited to 'server/src/com/vaadin') diff --git a/client/src/com/vaadin/terminal/gwt/client/ServerConnector.java b/client/src/com/vaadin/terminal/gwt/client/ServerConnector.java index 8788de74bf..d988c5f4a2 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ServerConnector.java +++ b/client/src/com/vaadin/terminal/gwt/client/ServerConnector.java @@ -22,6 +22,7 @@ import com.google.gwt.event.shared.GwtEvent; import com.google.web.bindery.event.shared.HandlerRegistration; import com.vaadin.shared.Connector; import com.vaadin.shared.communication.ClientRpc; +import com.vaadin.shared.communication.SharedState; import com.vaadin.terminal.gwt.client.communication.StateChangeEvent.StateChangeHandler; /** @@ -142,4 +143,13 @@ public interface ServerConnector extends Connector { public void setChildren(List children); public List getChildren(); + + /** + * Gets the current shared state of the connector. + * + * @since 7.0. + * @return state The shared state object. Can be any sub type of + * {@link SharedState}. Never null. + */ + public SharedState getState(); } diff --git a/server/src/com/vaadin/terminal/AbstractClientConnector.java b/server/src/com/vaadin/terminal/AbstractClientConnector.java index bc1cd2af1a..a8da553a62 100644 --- a/server/src/com/vaadin/terminal/AbstractClientConnector.java +++ b/server/src/com/vaadin/terminal/AbstractClientConnector.java @@ -31,9 +31,12 @@ import java.util.NoSuchElementException; import java.util.logging.Logger; import com.vaadin.Application; +import com.vaadin.external.json.JSONException; +import com.vaadin.external.json.JSONObject; import com.vaadin.shared.communication.ClientRpc; import com.vaadin.shared.communication.ServerRpc; import com.vaadin.shared.communication.SharedState; +import com.vaadin.terminal.gwt.server.AbstractCommunicationManager; import com.vaadin.terminal.gwt.server.ClientConnector; import com.vaadin.terminal.gwt.server.ClientMethodInvocation; import com.vaadin.terminal.gwt.server.RpcManager; @@ -137,14 +140,18 @@ public abstract class AbstractClientConnector implements ClientConnector { registerRpc(implementation, type); } - @Override - public SharedState getState() { + protected SharedState getState() { if (null == sharedState) { sharedState = createState(); } return sharedState; } + @Override + public JSONObject encodeState() throws JSONException { + return AbstractCommunicationManager.encodeState(this, getState()); + } + /** * Creates the shared state bean to be used in server to client * communication. diff --git a/server/src/com/vaadin/terminal/AbstractJavaScriptExtension.java b/server/src/com/vaadin/terminal/AbstractJavaScriptExtension.java index aae71640aa..1def6df697 100644 --- a/server/src/com/vaadin/terminal/AbstractJavaScriptExtension.java +++ b/server/src/com/vaadin/terminal/AbstractJavaScriptExtension.java @@ -166,7 +166,7 @@ public abstract class AbstractJavaScriptExtension extends AbstractExtension { } @Override - public JavaScriptExtensionState getState() { + protected JavaScriptExtensionState getState() { return (JavaScriptExtensionState) super.getState(); } } diff --git a/server/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java b/server/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java index 99376ffd1f..7ea4a7d097 100644 --- a/server/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java +++ b/server/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java @@ -880,49 +880,19 @@ public abstract class AbstractCommunicationManager implements Serializable { // processing. JSONObject sharedStates = new JSONObject(); for (ClientConnector connector : dirtyVisibleConnectors) { - SharedState state = connector.getState(); - if (null != state) { - // encode and send shared state - try { - Class stateType = connector - .getStateType(); - Object diffState = rootConnectorTracker - .getDiffState(connector); - if (diffState == null) { - diffState = new JSONObject(); - // Use an empty state object as reference for full - // repaints - boolean emptyInitialState = JavaScriptConnectorState.class - .isAssignableFrom(stateType); - if (!emptyInitialState) { - try { - SharedState referenceState = stateType - .newInstance(); - diffState = JsonCodec.encode(referenceState, - null, stateType, - root.getConnectorTracker()); - } catch (Exception e) { - getLogger().log( - Level.WARNING, - "Error creating reference object for state of type " - + stateType.getName()); - } - } - rootConnectorTracker.setDiffState(connector, diffState); - } - JSONObject stateJson = (JSONObject) JsonCodec.encode(state, - diffState, stateType, root.getConnectorTracker()); + // encode and send shared state + try { + JSONObject stateJson = connector.encodeState(); - if (stateJson.length() != 0) { - sharedStates.put(connector.getConnectorId(), stateJson); - } - } catch (JSONException e) { - throw new PaintException( - "Failed to serialize shared state for connector " - + connector.getClass().getName() + " (" - + connector.getConnectorId() + "): " - + e.getMessage(), e); + if (stateJson != null && stateJson.length() != 0) { + sharedStates.put(connector.getConnectorId(), stateJson); } + } catch (JSONException e) { + throw new PaintException( + "Failed to serialize shared state for connector " + + connector.getClass().getName() + " (" + + connector.getConnectorId() + "): " + + e.getMessage(), e); } } outWriter.print("\"state\":"); @@ -1273,6 +1243,37 @@ public abstract class AbstractCommunicationManager implements Serializable { writePerformanceData(outWriter); } + public static JSONObject encodeState(ClientConnector connector, + SharedState state) throws JSONException { + Root root = connector.getRoot(); + ConnectorTracker connectorTracker = root.getConnectorTracker(); + Class stateType = connector.getStateType(); + Object diffState = connectorTracker.getDiffState(connector); + if (diffState == null) { + diffState = new JSONObject(); + // Use an empty state object as reference for full + // repaints + boolean emptyInitialState = JavaScriptConnectorState.class + .isAssignableFrom(stateType); + if (!emptyInitialState) { + try { + SharedState referenceState = stateType.newInstance(); + diffState = JsonCodec.encode(referenceState, null, + stateType, root.getConnectorTracker()); + } catch (Exception e) { + getLogger().log( + Level.WARNING, + "Error creating reference object for state of type " + + stateType.getName()); + } + } + connectorTracker.setDiffState(connector, diffState); + } + JSONObject stateJson = (JSONObject) JsonCodec.encode(state, diffState, + stateType, root.getConnectorTracker()); + return stateJson; + } + /** * Resolves a resource URI, registering the URI with this * {@code AbstractCommunicationManager} if needed and returns a fully diff --git a/server/src/com/vaadin/terminal/gwt/server/ClientConnector.java b/server/src/com/vaadin/terminal/gwt/server/ClientConnector.java index c9fe2563f9..87524fe28f 100644 --- a/server/src/com/vaadin/terminal/gwt/server/ClientConnector.java +++ b/server/src/com/vaadin/terminal/gwt/server/ClientConnector.java @@ -18,6 +18,8 @@ package com.vaadin.terminal.gwt.server; import java.util.Collection; import java.util.List; +import com.vaadin.external.json.JSONException; +import com.vaadin.external.json.JSONObject; import com.vaadin.shared.Connector; import com.vaadin.shared.communication.SharedState; import com.vaadin.terminal.AbstractClientConnector; @@ -177,4 +179,16 @@ public interface ClientConnector extends Connector, RpcTarget { * @since 7.0 */ public void beforeClientResponse(boolean initial); + + /** + * Called by the framework to encode the state to a JSONObject. This is + * typically done by calling the static method + * {@link AbstractCommunicationManager#encodeState(ClientConnector, SharedState)} + * . + * + * @return a JSON object with the encoded connector state + * @throws JSONException + * if the state can not be encoded + */ + public JSONObject encodeState() throws JSONException; } diff --git a/server/src/com/vaadin/terminal/gwt/server/DragAndDropService.java b/server/src/com/vaadin/terminal/gwt/server/DragAndDropService.java index 56d5ed1393..981d2569d1 100644 --- a/server/src/com/vaadin/terminal/gwt/server/DragAndDropService.java +++ b/server/src/com/vaadin/terminal/gwt/server/DragAndDropService.java @@ -31,6 +31,8 @@ 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.external.json.JSONException; +import com.vaadin.external.json.JSONObject; import com.vaadin.shared.ApplicationConstants; import com.vaadin.shared.communication.SharedState; import com.vaadin.shared.ui.dd.DragEventType; @@ -234,12 +236,6 @@ public class DragAndDropService implements VariableOwner, ClientConnector { return false; } - @Override - public SharedState getState() { - // TODO Auto-generated method stub - return null; - } - @Override public String getConnectorId() { return ApplicationConstants.DRAG_AND_DROP_CONNECTOR_ID; @@ -327,4 +323,10 @@ public class DragAndDropService implements VariableOwner, ClientConnector { public void beforeClientResponse(boolean initial) { // Nothing to do } + + @Override + public JSONObject encodeState() throws JSONException { + // TODO Auto-generated method stub + return null; + } } diff --git a/server/src/com/vaadin/ui/AbsoluteLayout.java b/server/src/com/vaadin/ui/AbsoluteLayout.java index a3bc577fe3..8981895717 100644 --- a/server/src/com/vaadin/ui/AbsoluteLayout.java +++ b/server/src/com/vaadin/ui/AbsoluteLayout.java @@ -61,7 +61,7 @@ public class AbsoluteLayout extends AbstractLayout implements } @Override - public AbsoluteLayoutState getState() { + protected AbsoluteLayoutState getState() { return (AbsoluteLayoutState) super.getState(); } diff --git a/server/src/com/vaadin/ui/AbstractComponent.java b/server/src/com/vaadin/ui/AbstractComponent.java index cde5217ca1..1eb95311cd 100644 --- a/server/src/com/vaadin/ui/AbstractComponent.java +++ b/server/src/com/vaadin/ui/AbstractComponent.java @@ -713,7 +713,7 @@ public abstract class AbstractComponent extends AbstractClientConnector * @return updated component shared state */ @Override - public ComponentState getState() { + protected ComponentState getState() { return (ComponentState) super.getState(); } diff --git a/server/src/com/vaadin/ui/AbstractField.java b/server/src/com/vaadin/ui/AbstractField.java index b914fb4c46..8ac7b21daf 100644 --- a/server/src/com/vaadin/ui/AbstractField.java +++ b/server/src/com/vaadin/ui/AbstractField.java @@ -1615,7 +1615,7 @@ public abstract class AbstractField extends AbstractComponent implements } @Override - public AbstractFieldState getState() { + protected AbstractFieldState getState() { return (AbstractFieldState) super.getState(); } diff --git a/server/src/com/vaadin/ui/AbstractJavaScriptComponent.java b/server/src/com/vaadin/ui/AbstractJavaScriptComponent.java index c442bf2204..67b6447ef9 100644 --- a/server/src/com/vaadin/ui/AbstractJavaScriptComponent.java +++ b/server/src/com/vaadin/ui/AbstractJavaScriptComponent.java @@ -17,6 +17,8 @@ package com.vaadin.ui; import com.vaadin.shared.ui.JavaScriptComponentState; import com.vaadin.terminal.JavaScriptCallbackHelper; +import com.vaadin.terminal.gwt.client.ApplicationConnection; +import com.vaadin.terminal.gwt.client.ui.JavaScriptWidget; /** * Base class for Components with all client-side logic implemented using @@ -90,9 +92,8 @@ import com.vaadin.terminal.JavaScriptCallbackHelper; * {@link #addFunction(String, JavaScriptFunction)} on the server will * automatically be present as a function that triggers the registered function * on the server. - *
  • Any field name referred to using - * {@link #callFunction(String, Object...)} on the server will be called if a - * function has been assigned to the field.
  • + *
  • Any field name referred to using {@link #callFunction(String, Object...)} + * on the server will be called if a function has been assigned to the field.
  • * *

    * @@ -168,7 +169,7 @@ public abstract class AbstractJavaScriptComponent extends AbstractComponent { } @Override - public JavaScriptComponentState getState() { + protected JavaScriptComponentState getState() { return (JavaScriptComponentState) super.getState(); } } diff --git a/server/src/com/vaadin/ui/AbstractLayout.java b/server/src/com/vaadin/ui/AbstractLayout.java index dd1d5eab12..6743b09211 100644 --- a/server/src/com/vaadin/ui/AbstractLayout.java +++ b/server/src/com/vaadin/ui/AbstractLayout.java @@ -29,7 +29,7 @@ public abstract class AbstractLayout extends AbstractComponentContainer implements Layout { @Override - public AbstractLayoutState getState() { + protected AbstractLayoutState getState() { return (AbstractLayoutState) super.getState(); } diff --git a/server/src/com/vaadin/ui/AbstractMedia.java b/server/src/com/vaadin/ui/AbstractMedia.java index 51a3bcd2be..7a29c8f4ce 100644 --- a/server/src/com/vaadin/ui/AbstractMedia.java +++ b/server/src/com/vaadin/ui/AbstractMedia.java @@ -33,7 +33,7 @@ import com.vaadin.terminal.gwt.server.ResourceReference; public abstract class AbstractMedia extends AbstractComponent { @Override - public AbstractMediaState getState() { + protected AbstractMediaState getState() { return (AbstractMediaState) super.getState(); } diff --git a/server/src/com/vaadin/ui/AbstractOrderedLayout.java b/server/src/com/vaadin/ui/AbstractOrderedLayout.java index 3ac4e76bdb..cac9c05fb8 100644 --- a/server/src/com/vaadin/ui/AbstractOrderedLayout.java +++ b/server/src/com/vaadin/ui/AbstractOrderedLayout.java @@ -63,7 +63,7 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements } @Override - public AbstractOrderedLayoutState getState() { + protected AbstractOrderedLayoutState getState() { return (AbstractOrderedLayoutState) super.getState(); } @@ -394,6 +394,7 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements return components.get(index); } + @Override public void setMargin(boolean enabled) { setMargin(new MarginInfo(enabled)); } @@ -403,6 +404,7 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements * * @see com.vaadin.ui.Layout.MarginHandler#getMargin() */ + @Override public MarginInfo getMargin() { return new MarginInfo(getState().getMarginsBitmask()); } @@ -412,6 +414,7 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements * * @see com.vaadin.ui.Layout.MarginHandler#setMargin(MarginInfo) */ + @Override public void setMargin(MarginInfo marginInfo) { getState().setMarginsBitmask(marginInfo.getBitMask()); requestRepaint(); diff --git a/server/src/com/vaadin/ui/AbstractSplitPanel.java b/server/src/com/vaadin/ui/AbstractSplitPanel.java index 03e8a2dfb6..68964e2c35 100644 --- a/server/src/com/vaadin/ui/AbstractSplitPanel.java +++ b/server/src/com/vaadin/ui/AbstractSplitPanel.java @@ -520,7 +520,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { } @Override - public AbstractSplitPanelState getState() { + protected AbstractSplitPanelState getState() { return (AbstractSplitPanelState) super.getState(); } diff --git a/server/src/com/vaadin/ui/AbstractTextField.java b/server/src/com/vaadin/ui/AbstractTextField.java index 86315f801f..54d15eff26 100644 --- a/server/src/com/vaadin/ui/AbstractTextField.java +++ b/server/src/com/vaadin/ui/AbstractTextField.java @@ -92,7 +92,7 @@ public abstract class AbstractTextField extends AbstractField implements } @Override - public AbstractTextFieldState getState() { + protected AbstractTextFieldState getState() { return (AbstractTextFieldState) super.getState(); } diff --git a/server/src/com/vaadin/ui/Button.java b/server/src/com/vaadin/ui/Button.java index f568d770e8..c55a955679 100644 --- a/server/src/com/vaadin/ui/Button.java +++ b/server/src/com/vaadin/ui/Button.java @@ -509,7 +509,7 @@ public class Button extends AbstractComponent implements } @Override - public ButtonState getState() { + protected ButtonState getState() { return (ButtonState) super.getState(); } diff --git a/server/src/com/vaadin/ui/CheckBox.java b/server/src/com/vaadin/ui/CheckBox.java index 158c9d0032..6da86b9711 100644 --- a/server/src/com/vaadin/ui/CheckBox.java +++ b/server/src/com/vaadin/ui/CheckBox.java @@ -106,7 +106,7 @@ public class CheckBox extends AbstractField { } @Override - public CheckBoxState getState() { + protected CheckBoxState getState() { return (CheckBoxState) super.getState(); } diff --git a/server/src/com/vaadin/ui/Component.java b/server/src/com/vaadin/ui/Component.java index ff7ed47930..89e282d4e1 100644 --- a/server/src/com/vaadin/ui/Component.java +++ b/server/src/com/vaadin/ui/Component.java @@ -23,7 +23,6 @@ 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; @@ -623,19 +622,6 @@ public interface Component extends ClientConnector, Sizeable, Serializable { */ public Locale getLocale(); - /** - * Returns the current shared state bean for the component. The state (or - * changes to it) is communicated from the server to the client. - * - * Subclasses can use a more specific return type for this method. - * - * @return The state object for the component - * - * @since 7.0 - */ - @Override - public ComponentState getState(); - /** * Adds an unique id for component that get's transferred to terminal for * testing purposes. Keeping identifiers unique is the responsibility of the diff --git a/server/src/com/vaadin/ui/CssLayout.java b/server/src/com/vaadin/ui/CssLayout.java index 0192debc4a..c80986b768 100644 --- a/server/src/com/vaadin/ui/CssLayout.java +++ b/server/src/com/vaadin/ui/CssLayout.java @@ -211,7 +211,7 @@ public class CssLayout extends AbstractLayout implements LayoutClickNotifier { } @Override - public CssLayoutState getState() { + protected CssLayoutState getState() { return (CssLayoutState) super.getState(); } diff --git a/server/src/com/vaadin/ui/CustomLayout.java b/server/src/com/vaadin/ui/CustomLayout.java index d47b2f92b3..0948a92e5b 100644 --- a/server/src/com/vaadin/ui/CustomLayout.java +++ b/server/src/com/vaadin/ui/CustomLayout.java @@ -123,7 +123,7 @@ public class CustomLayout extends AbstractLayout implements Vaadin6Component { } @Override - public CustomLayoutState getState() { + protected CustomLayoutState getState() { return (CustomLayoutState) super.getState(); } diff --git a/server/src/com/vaadin/ui/Form.java b/server/src/com/vaadin/ui/Form.java index a1ec0f9917..8efd85009c 100644 --- a/server/src/com/vaadin/ui/Form.java +++ b/server/src/com/vaadin/ui/Form.java @@ -200,7 +200,7 @@ public class Form extends AbstractField implements Item.Editor, } @Override - public FormState getState() { + protected FormState getState() { return (FormState) super.getState(); } diff --git a/server/src/com/vaadin/ui/GridLayout.java b/server/src/com/vaadin/ui/GridLayout.java index b31ab82741..52aef4c253 100644 --- a/server/src/com/vaadin/ui/GridLayout.java +++ b/server/src/com/vaadin/ui/GridLayout.java @@ -141,7 +141,7 @@ public class GridLayout extends AbstractLayout implements } @Override - public GridLayoutState getState() { + protected GridLayoutState getState() { return (GridLayoutState) super.getState(); } diff --git a/server/src/com/vaadin/ui/JavaScript.java b/server/src/com/vaadin/ui/JavaScript.java index 35cc1893f6..5984c63e7a 100644 --- a/server/src/com/vaadin/ui/JavaScript.java +++ b/server/src/com/vaadin/ui/JavaScript.java @@ -66,7 +66,7 @@ public class JavaScript extends AbstractExtension { } @Override - public JavaScriptManagerState getState() { + protected JavaScriptManagerState getState() { return (JavaScriptManagerState) super.getState(); } diff --git a/server/src/com/vaadin/ui/Label.java b/server/src/com/vaadin/ui/Label.java index 10fa741058..d0a6059865 100644 --- a/server/src/com/vaadin/ui/Label.java +++ b/server/src/com/vaadin/ui/Label.java @@ -151,7 +151,7 @@ public class Label extends AbstractComponent implements Property, } @Override - public LabelState getState() { + protected LabelState getState() { return (LabelState) super.getState(); } diff --git a/server/src/com/vaadin/ui/Panel.java b/server/src/com/vaadin/ui/Panel.java index ba68238707..985eed8a28 100644 --- a/server/src/com/vaadin/ui/Panel.java +++ b/server/src/com/vaadin/ui/Panel.java @@ -489,7 +489,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable, } @Override - public PanelState getState() { + protected PanelState getState() { return (PanelState) super.getState(); } diff --git a/server/src/com/vaadin/ui/Root.java b/server/src/com/vaadin/ui/Root.java index 020ff869fa..4b90d613bb 100644 --- a/server/src/com/vaadin/ui/Root.java +++ b/server/src/com/vaadin/ui/Root.java @@ -498,7 +498,7 @@ public abstract class Root extends AbstractComponentContainer implements } @Override - public RootState getState() { + protected RootState getState() { return (RootState) super.getState(); } diff --git a/server/src/com/vaadin/ui/TextArea.java b/server/src/com/vaadin/ui/TextArea.java index fed06b561a..f885781d46 100644 --- a/server/src/com/vaadin/ui/TextArea.java +++ b/server/src/com/vaadin/ui/TextArea.java @@ -81,7 +81,7 @@ public class TextArea extends AbstractTextField { } @Override - public TextAreaState getState() { + protected TextAreaState getState() { return (TextAreaState) super.getState(); } diff --git a/server/src/com/vaadin/ui/Video.java b/server/src/com/vaadin/ui/Video.java index 95a38c59d5..04ecc9af06 100644 --- a/server/src/com/vaadin/ui/Video.java +++ b/server/src/com/vaadin/ui/Video.java @@ -44,7 +44,7 @@ import com.vaadin.terminal.gwt.server.ResourceReference; public class Video extends AbstractMedia { @Override - public VideoState getState() { + protected VideoState getState() { return (VideoState) super.getState(); } diff --git a/server/src/com/vaadin/ui/Window.java b/server/src/com/vaadin/ui/Window.java index d1d2c25d8b..705e093bce 100644 --- a/server/src/com/vaadin/ui/Window.java +++ b/server/src/com/vaadin/ui/Window.java @@ -838,7 +838,7 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier, } @Override - public WindowState getState() { + protected WindowState getState() { return (WindowState) super.getState(); } } diff --git a/shared/src/com/vaadin/shared/Connector.java b/shared/src/com/vaadin/shared/Connector.java index 5a00f6cca2..5927d08d79 100644 --- a/shared/src/com/vaadin/shared/Connector.java +++ b/shared/src/com/vaadin/shared/Connector.java @@ -17,8 +17,6 @@ package com.vaadin.shared; import java.io.Serializable; -import com.vaadin.shared.communication.SharedState; - /** * Interface implemented by all classes that are capable of communicating with * the server or the client side. @@ -40,15 +38,6 @@ import com.vaadin.shared.communication.SharedState; * @since 7.0.0 */ public interface Connector extends Serializable { - /** - * Gets the current shared state of the connector. - * - * @since 7.0. - * @return state The shared state object. Can be any sub type of - * {@link SharedState}. Never null. - */ - public SharedState getState(); - /** * Returns the id for this connector. This is set by the framework and does * not change during the lifetime of a connector. -- cgit v1.2.3 From 098957c08507449e34fd64618d4964ee0b030eba Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Wed, 22 Aug 2012 21:18:01 +0300 Subject: Made Root.getCurrent() work in LoginForm LoginListener (#9372) --- server/src/com/vaadin/ui/LoginForm.java | 3 ++ .../loginform/LoginFormRootInLoginHandler.java | 52 ++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100755 tests/testbench/com/vaadin/tests/components/loginform/LoginFormRootInLoginHandler.java (limited to 'server/src/com/vaadin') diff --git a/server/src/com/vaadin/ui/LoginForm.java b/server/src/com/vaadin/ui/LoginForm.java index c8634ea81a..bb7767084c 100644 --- a/server/src/com/vaadin/ui/LoginForm.java +++ b/server/src/com/vaadin/ui/LoginForm.java @@ -99,6 +99,9 @@ public class LoginForm extends CustomComponent { throws IOException { String requestPathInfo = request.getRequestPathInfo(); if ("/loginHandler".equals(requestPathInfo)) { + // Ensure Root.getCurrent() works in listeners + Root.setCurrent(getRoot()); + response.setCacheTime(-1); response.setContentType("text/html; charset=utf-8"); response.getWriter() diff --git a/tests/testbench/com/vaadin/tests/components/loginform/LoginFormRootInLoginHandler.java b/tests/testbench/com/vaadin/tests/components/loginform/LoginFormRootInLoginHandler.java new file mode 100755 index 0000000000..2c0a8744fc --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/loginform/LoginFormRootInLoginHandler.java @@ -0,0 +1,52 @@ +package com.vaadin.tests.components.loginform; + +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.Label; +import com.vaadin.ui.LoginForm; +import com.vaadin.ui.LoginForm.LoginEvent; +import com.vaadin.ui.LoginForm.LoginListener; +import com.vaadin.ui.Root; + +public class LoginFormRootInLoginHandler extends TestBase { + + @Override + protected void setup() { + LoginForm lf = new LoginForm(); + lf.addListener(new LoginListener() { + + @Override + public void onLogin(LoginEvent event) { + Root r1 = Root.getCurrent(); + if (r1 != null) { + addComponent(new Label("Root.getCurrent().data: " + + r1.getData())); + } else { + addComponent(new Label("Root.getCurrent() is null")); + } + Root r2 = ((LoginForm) event.getSource()).getRoot(); + if (r2 != null) { + addComponent(new Label("event.getSource().data: " + + r2.getData())); + } else { + addComponent(new Label( + "event.getSource().getRoot() is null")); + } + } + }); + addComponent(lf); + getLayout().getRoot().setData("This root"); + } + + @Override + protected String getDescription() { + // TODO Auto-generated method stub + return null; + } + + @Override + protected Integer getTicketNumber() { + // TODO Auto-generated method stub + return null; + } + +} -- cgit v1.2.3 From af2638fc57cf3d9f6dc84957bb6ee4b256ec60e7 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Wed, 22 Aug 2012 21:57:12 +0300 Subject: Removed readThrough/writeThrough in favor of buffered (#8180) --- server/src/com/vaadin/data/Buffered.java | 76 ------------- server/src/com/vaadin/ui/AbstractField.java | 125 +++------------------ server/src/com/vaadin/ui/Form.java | 62 ++-------- .../components/AbstractTestFieldValueChange.java | 50 +-------- .../components/TestTextFieldValueChange.java | 53 --------- .../AbstractFieldCommitWithInvalidValues.java | 2 +- .../tests/components/customfield/AddressField.java | 2 +- .../components/customfield/NestedPersonForm.java | 2 +- .../tests/components/datefield/CommitInvalid.java | 6 +- .../components/datefield/DateFieldInSubWindow.java | 2 +- .../datefield/DateFieldRangeValidation.java | 3 +- .../components/select/SelectDisplaysOldValue.java | 6 +- .../OutOfSyncIssueWithKeyboardShortcut.java | 2 +- .../sqlcontainer/CheckboxUpdateProblem.java | 2 +- .../vaadin/tests/layouts/TestAbsoluteLayout.java | 4 +- .../com/vaadin/tests/tickets/Ticket1806.java | 3 +- 16 files changed, 48 insertions(+), 352 deletions(-) (limited to 'server/src/com/vaadin') diff --git a/server/src/com/vaadin/data/Buffered.java b/server/src/com/vaadin/data/Buffered.java index 2472524bbc..0b59c9ff97 100644 --- a/server/src/com/vaadin/data/Buffered.java +++ b/server/src/com/vaadin/data/Buffered.java @@ -76,82 +76,6 @@ public interface Buffered extends Serializable { */ public void discard() throws SourceException; - /** - * Tests if the object is in write-through mode. If the object is in - * write-through mode, all modifications to it will result in - * commit being called after the modification. - * - * @return true if the object is in write-through mode, - * false if it's not. - * @deprecated As of 7.0, use {@link #setBuffered(boolean)} instead. Note - * that setReadThrough(true), setWriteThrough(true) equals - * setBuffered(false) - */ - @Deprecated - public boolean isWriteThrough(); - - /** - * Sets the object's write-through mode to the specified status. When - * switching the write-through mode on, the commit operation - * will be performed. - * - * @param writeThrough - * Boolean value to indicate if the object should be in - * write-through mode after the call. - * @throws SourceException - * If the operation fails because of an exception is thrown by - * the data source. - * @throws InvalidValueException - * If the implicit commit operation fails because of a - * validation error. - * - * @deprecated As of 7.0, use {@link #setBuffered(boolean)} instead. Note - * that setReadThrough(true), setWriteThrough(true) equals - * setBuffered(false) - */ - @Deprecated - public void setWriteThrough(boolean writeThrough) throws SourceException, - InvalidValueException; - - /** - * Tests if the object is in read-through mode. If the object is in - * read-through mode, retrieving its value will result in the value being - * first updated from the data source to the object. - *

    - * The only exception to this rule is that when the object is not in - * write-through mode and it's buffer contains a modified value, the value - * retrieved from the object will be the locally modified value in the - * buffer which may differ from the value in the data source. - *

    - * - * @return true if the object is in read-through mode, - * false if it's not. - * @deprecated As of 7.0, use {@link #isBuffered(boolean)} instead. Note - * that setReadThrough(true), setWriteThrough(true) equals - * setBuffered(false) - */ - @Deprecated - public boolean isReadThrough(); - - /** - * Sets the object's read-through mode to the specified status. When - * switching read-through mode on, the object's value is updated from the - * data source. - * - * @param readThrough - * Boolean value to indicate if the object should be in - * read-through mode after the call. - * - * @throws SourceException - * If the operation fails because of an exception is thrown by - * the data source. The cause is included in the exception. - * @deprecated As of 7.0, use {@link #setBuffered(boolean)} instead. Note - * that setReadThrough(true), setWriteThrough(true) equals - * setBuffered(false) - */ - @Deprecated - public void setReadThrough(boolean readThrough) throws SourceException; - /** * Sets the object's buffered mode to the specified status. *

    diff --git a/server/src/com/vaadin/ui/AbstractField.java b/server/src/com/vaadin/ui/AbstractField.java index 8ac7b21daf..f13c6a3138 100644 --- a/server/src/com/vaadin/ui/AbstractField.java +++ b/server/src/com/vaadin/ui/AbstractField.java @@ -97,14 +97,9 @@ public abstract class AbstractField extends AbstractComponent implements private LinkedList validators = null; /** - * Auto commit mode. + * True if field is in buffered mode, false otherwise */ - private boolean writeThroughMode = true; - - /** - * Reads the value from data-source, when it is not modified. - */ - private boolean readThroughMode = true; + private boolean buffered; /** * Flag to indicate that the field is currently committing its value to the @@ -345,7 +340,7 @@ public abstract class AbstractField extends AbstractComponent implements */ private T getFieldValue() { // Give the value from abstract buffers if the field if possible - if (dataSource == null || !isReadThrough() || isModified()) { + if (dataSource == null || isBuffered() || isModified()) { return getInternalValue(); } @@ -368,91 +363,6 @@ public abstract class AbstractField extends AbstractComponent implements requestRepaint(); } - /* - * 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; - } - - /** - * Sets the field's write-through mode to the specified status. When - * switching the write-through mode on, a {@link #commit()} will be - * performed. - * - * @see #setBuffered(boolean) for an easier way to control read through and - * write through modes - * - * @param writeThrough - * Boolean value to indicate if the object should be in - * write-through mode after the call. - * @throws SourceException - * If the operation fails because of an exception is thrown by - * the data source. - * @throws InvalidValueException - * If the implicit commit operation fails because of a - * validation error. - * @deprecated As of 7.0, use {@link #setBuffered(boolean)} instead. Note - * that setReadThrough(true), setWriteThrough(true) equals - * setBuffered(false) - */ - @Override - @Deprecated - public void setWriteThrough(boolean writeThrough) - throws Buffered.SourceException, InvalidValueException { - if (writeThroughMode == writeThrough) { - return; - } - writeThroughMode = writeThrough; - if (writeThroughMode) { - commit(); - } - } - - /* - * 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; - } - - /** - * Sets the field's read-through mode to the specified status. When - * switching read-through mode on, the object's value is updated from the - * data source. - * - * @see #setBuffered(boolean) for an easier way to control read through and - * write through modes - * - * @param readThrough - * Boolean value to indicate if the object should be in - * read-through mode after the call. - * - * @throws SourceException - * If the operation fails because of an exception is thrown by - * the data source. The cause is included in the exception. - * @deprecated As of 7.0, use {@link #setBuffered(boolean)} instead. Note - * that setReadThrough(true), setWriteThrough(true) equals - * setBuffered(false) - */ - @Override - @Deprecated - public void setReadThrough(boolean readThrough) - throws Buffered.SourceException { - if (readThroughMode == readThrough) { - return; - } - readThroughMode = readThrough; - if (!isModified() && readThroughMode && getPropertyDataSource() != null) { - setInternalValue(convertFromDataSource(getDataSourceValue())); - fireValueChange(false); - } - } - /** * Sets the buffered mode of this Field. *

    @@ -460,34 +370,35 @@ public abstract class AbstractField extends AbstractComponent implements * property data source until {@link #commit()} is called. *

    *

    - * Changing buffered mode will change the read through and write through - * state for the field. + * Setting buffered mode from true to false will commit any pending changes. *

    *

    - * Mixing calls to {@link #setBuffered(boolean)} and - * {@link #setReadThrough(boolean)} or {@link #setWriteThrough(boolean)} is - * generally a bad idea. + * *

    * + * @since 7.0.0 * @param buffered * true if buffered mode should be turned on, false otherwise */ @Override public void setBuffered(boolean buffered) { - setReadThrough(!buffered); - setWriteThrough(!buffered); + if (this.buffered == buffered) { + return; + } + this.buffered = buffered; + if (!buffered) { + commit(); + } } /** * Checks the buffered mode of this Field. - *

    - * This method only returns true if both read and write buffering is used. * * @return true if buffered mode is on, false otherwise */ @Override public boolean isBuffered() { - return !isReadThrough() && !isWriteThrough(); + return buffered; } /* Property interface implementation */ @@ -607,8 +518,8 @@ public abstract class AbstractField extends AbstractComponent implements setModified(dataSource != null); valueWasModifiedByDataSourceDuringCommit = false; - // In write through mode , try to commit - if (isWriteThrough() && dataSource != null + // In not buffering, try to commit + if (!isBuffered() && dataSource != null && (isInvalidCommitted() || isValid())) { try { @@ -1267,7 +1178,7 @@ public abstract class AbstractField extends AbstractComponent implements */ @Override public void valueChange(Property.ValueChangeEvent event) { - if (isReadThrough()) { + if (!isBuffered()) { if (committingValueToDataSource) { boolean propertyNotifiesOfTheBufferedValue = equals(event .getProperty().getValue(), getInternalValue()); @@ -1371,7 +1282,7 @@ public abstract class AbstractField extends AbstractComponent implements if (!isListeningToPropertyEvents) { addPropertyListeners(); - if (!isModified() && isReadThrough()) { + if (!isModified() && !isBuffered()) { // Update value from data source discard(); } diff --git a/server/src/com/vaadin/ui/Form.java b/server/src/com/vaadin/ui/Form.java index 8efd85009c..689a088c41 100644 --- a/server/src/com/vaadin/ui/Form.java +++ b/server/src/com/vaadin/ui/Form.java @@ -99,14 +99,9 @@ public class Form extends AbstractField implements Item.Editor, private Buffered.SourceException currentBufferedSourceException = null; /** - * Is the form in write trough mode. + * Is the form in buffered mode. */ - private boolean writeThrough = true; - - /** - * Is the form in read trough mode. - */ - private boolean readThrough = true; + private boolean buffered = false; /** * Mapping from propertyName to corresponding field. @@ -427,50 +422,15 @@ public class Form extends AbstractField implements Item.Editor, } /* - * Is the editor in a read-through mode? Don't add a JavaDoc comment here, - * we use the default one from the interface. - */ - @Override - @Deprecated - public boolean isReadThrough() { - return readThrough; - } - - /* - * Is the editor in a write-through mode? Don't add a JavaDoc comment here, - * we use the default one from the interface. - */ - @Override - @Deprecated - public boolean isWriteThrough() { - return writeThrough; - } - - /* - * Sets the editor's read-through mode to the specified status. Don't add a - * JavaDoc comment here, we use the default one from the interface. - */ - @Override - public void setReadThrough(boolean readThrough) { - if (readThrough != this.readThrough) { - this.readThrough = readThrough; - for (final Iterator i = propertyIds.iterator(); i.hasNext();) { - (fields.get(i.next())).setReadThrough(readThrough); - } - } - } - - /* - * Sets the editor's read-through mode to the specified status. Don't add a + * Sets the editor's buffered mode to the specified status. Don't add a * JavaDoc comment here, we use the default one from the interface. */ @Override - public void setWriteThrough(boolean writeThrough) throws SourceException, - InvalidValueException { - if (writeThrough != this.writeThrough) { - this.writeThrough = writeThrough; + public void setBuffered(boolean buffered) { + if (buffered != this.buffered) { + this.buffered = buffered; for (final Iterator i = propertyIds.iterator(); i.hasNext();) { - (fields.get(i.next())).setWriteThrough(writeThrough); + (fields.get(i.next())).setBuffered(buffered); } } } @@ -560,11 +520,10 @@ public class Form extends AbstractField implements Item.Editor, propertyIds.addLast(propertyId); } - // Update the read and write through status and immediate to match the + // Update the buffered mode and immediate to match the // form. // Should this also include invalidCommitted (#3993)? - field.setReadThrough(readThrough); - field.setWriteThrough(writeThrough); + field.setBuffered(buffered); if (isImmediate() && field instanceof AbstractComponent) { ((AbstractComponent) field).setImmediate(true); } @@ -949,8 +908,7 @@ public class Form extends AbstractField implements Item.Editor, : new Select(); newField.setCaption(oldField.getCaption()); newField.setReadOnly(oldField.isReadOnly()); - newField.setReadThrough(oldField.isReadThrough()); - newField.setWriteThrough(oldField.isWriteThrough()); + newField.setBuffered(oldField.isBuffered()); // Creates the options list newField.addContainerProperty("desc", String.class, ""); diff --git a/tests/server-side/com/vaadin/tests/server/components/AbstractTestFieldValueChange.java b/tests/server-side/com/vaadin/tests/server/components/AbstractTestFieldValueChange.java index 3512f555c9..f2de4f3c04 100644 --- a/tests/server-side/com/vaadin/tests/server/components/AbstractTestFieldValueChange.java +++ b/tests/server-side/com/vaadin/tests/server/components/AbstractTestFieldValueChange.java @@ -42,8 +42,7 @@ public abstract class AbstractTestFieldValueChange extends TestCase { */ public void testRemoveListener() { getField().setPropertyDataSource(new ObjectProperty("")); - getField().setWriteThrough(true); - getField().setReadThrough(true); + getField().setBuffered(false); // Expectations and start test listener.valueChange(EasyMock.isA(ValueChangeEvent.class)); @@ -76,10 +75,9 @@ public abstract class AbstractTestFieldValueChange extends TestCase { * Field value change notifications closely mirror value changes of the data * source behind the field. */ - public void testWriteThroughReadThrough() { + public void testNonBuffered() { getField().setPropertyDataSource(new ObjectProperty("")); - getField().setWriteThrough(true); - getField().setReadThrough(true); + getField().setBuffered(false); expectValueChangeFromSetValueNotCommit(); } @@ -91,47 +89,9 @@ public abstract class AbstractTestFieldValueChange extends TestCase { * Field value change notifications reflect the buffered value in the field, * not the original data source value changes. */ - public void testNoWriteThroughNoReadThrough() { + public void testBuffered() { getField().setPropertyDataSource(new ObjectProperty("")); - getField().setWriteThrough(false); - getField().setReadThrough(false); - - expectValueChangeFromSetValueNotCommit(); - } - - /** - * Less common partly buffered case: writeThrough (auto-commit) is on and - * readThrough is off. Calling commit() should not cause notifications. - * - * Without readThrough activated, changes to the data source that do not - * cause notifications are not reflected by the field value. - * - * Field value change notifications correspond to changes made to the data - * source value through the text field or the (notifying) property. - */ - public void testWriteThroughNoReadThrough() { - getField().setPropertyDataSource(new ObjectProperty("")); - getField().setWriteThrough(true); - getField().setReadThrough(false); - - expectValueChangeFromSetValueNotCommit(); - } - - /** - * Partly buffered use where the data source is read but not nor modified - * during editing, and is updated at commit(). - * - * When used like this, a field is updated from the data source if necessary - * when its value is requested and the property value has changed but the - * field has not been modified in its buffer. - * - * Field value change notifications reflect the buffered value in the field, - * not the original data source value changes. - */ - public void testNoWriteThroughReadThrough() { - getField().setPropertyDataSource(new ObjectProperty("")); - getField().setWriteThrough(false); - getField().setReadThrough(true); + getField().setBuffered(true); expectValueChangeFromSetValueNotCommit(); } diff --git a/tests/server-side/com/vaadin/tests/server/components/TestTextFieldValueChange.java b/tests/server-side/com/vaadin/tests/server/components/TestTextFieldValueChange.java index f5db67be97..de838e339c 100644 --- a/tests/server-side/com/vaadin/tests/server/components/TestTextFieldValueChange.java +++ b/tests/server-side/com/vaadin/tests/server/components/TestTextFieldValueChange.java @@ -77,59 +77,6 @@ public class TestTextFieldValueChange extends EasyMock.verify(getListener()); } - /** - * If read through is on and value has been modified, but not committed, the - * value should not propagate similar to - * {@link #testValueChangeEventPropagationWithReadThrough()} - * - * TODO make test field type agnostic (eg. combobox) - */ - public void testValueChangePropagationWithReadThroughWithModifiedValue() { - final String initialValue = "initial"; - ObjectProperty property = new ObjectProperty( - initialValue); - getField().setPropertyDataSource(property); - - // write buffering on, read buffering off - getField().setWriteThrough(false); - getField().setReadThrough(true); - - // Expect no value changes calls to listener - EasyMock.replay(getListener()); - - // first set the value (note, write through false -> not forwarded to - // property) - setValue(getField()); - - Assert.assertTrue(getField().isModified()); - - // Add listener and set the value -> should end up in listener once - getField().addListener(getListener()); - - // modify property value, should not fire value change in field as the - // field has uncommitted value (aka isModified() == true) - property.setValue("Foo"); - - // Ensure listener was called once - EasyMock.verify(getListener()); - - // get value should not fire value change again - Object value = getField().getValue(); - // Ensure listener still has been called only once - EasyMock.verify(getListener()); - - // field value should be different from the original value and current - // proeprty value - boolean isValueEqualToInitial = value.equals(initialValue); - Assert.assertFalse(isValueEqualToInitial); - boolean isValueEqualToPropertyValue = value.equals(property.getValue()); - Assert.assertFalse(isValueEqualToPropertyValue); - - // Ensure listener has not been called - EasyMock.verify(getListener()); - - } - /** * Value change events from property should not propagate if read through is * false. Execpt when the property is being set. diff --git a/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.java b/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.java index aa630c79fd..0aaa7c5f13 100644 --- a/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.java +++ b/tests/testbench/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.java @@ -28,7 +28,7 @@ public class AbstractFieldCommitWithInvalidValues extends TestBase { tf = new TextField("A field, must contain 1-2 chars", new ObjectProperty("a")); tf.addValidator(new StringLengthValidator("Invalid length", 1, 2, false)); - tf.setWriteThrough(false); + tf.setBuffered(true); tf.setRequired(true); Button b = new Button("Commit", new ClickListener() { diff --git a/tests/testbench/com/vaadin/tests/components/customfield/AddressField.java b/tests/testbench/com/vaadin/tests/components/customfield/AddressField.java index a3ee89b3ee..2daeb7bf25 100644 --- a/tests/testbench/com/vaadin/tests/components/customfield/AddressField.java +++ b/tests/testbench/com/vaadin/tests/components/customfield/AddressField.java @@ -34,7 +34,7 @@ public class AddressField extends CustomField
    { addressForm = new Form(); } addressForm.setCaption("Address"); - addressForm.setWriteThrough(false); + addressForm.setBuffered(true); // make sure field changes are sent early addressForm.setImmediate(true); diff --git a/tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java b/tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java index 0655c09102..9b40074433 100644 --- a/tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java +++ b/tests/testbench/com/vaadin/tests/components/customfield/NestedPersonForm.java @@ -31,7 +31,7 @@ public class NestedPersonForm extends Form { beanItem = new BeanItem(person); setCaption("Update person details"); - setWriteThrough(false); + setBuffered(true); setFormFieldFactory(new PersonFieldFactory()); // set the data source and the visible fields // Note that if the nested form is the first or last field in the parent diff --git a/tests/testbench/com/vaadin/tests/components/datefield/CommitInvalid.java b/tests/testbench/com/vaadin/tests/components/datefield/CommitInvalid.java index c4f001ac41..e24f4753ff 100644 --- a/tests/testbench/com/vaadin/tests/components/datefield/CommitInvalid.java +++ b/tests/testbench/com/vaadin/tests/components/datefield/CommitInvalid.java @@ -41,7 +41,7 @@ public class CommitInvalid extends TestBase { * Create and configure form. */ final Form form = new Form(); - form.setWriteThrough(false); // set write buffering on + form.setBuffered(true); // set write buffering on form.setImmediate(true); // make form (and especially its fields // immediate) @@ -132,8 +132,8 @@ public class CommitInvalid extends TestBase { } private void printState() { - log.log("Date. Field: " + f((Date) dateField.getValue()) - + " Property: " + f(dateProperty.getValue())); + log.log("Date. Field: " + f(dateField.getValue()) + " Property: " + + f(dateProperty.getValue())); log.log("Integer: Field: " + integerField.getValue() + " Property: " + integerProperty.getValue()); } diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldInSubWindow.java b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldInSubWindow.java index 2a7807670b..85f1c80a08 100644 --- a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldInSubWindow.java +++ b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldInSubWindow.java @@ -88,7 +88,7 @@ public class DateFieldInSubWindow extends AbstractTestCase { final Form generalForm = new Form(); { generalForm.setCaption("My form"); - generalForm.setWriteThrough(true); + generalForm.setBuffered(false); generalForm.setFormFieldFactory(fieldFactory); BeanItem myBeanItem = new BeanItem(myBean); diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java index befdd65693..484b9cfee8 100644 --- a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java +++ b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java @@ -125,8 +125,7 @@ public class DateFieldRangeValidation extends TestBase { PopupDateField df = new PopupDateField(); df.setLocale(new Locale("en", "US")); df.setResolution(Resolution.DAY); - df.setWriteThrough(true); - df.setReadThrough(true); + df.setBuffered(false); df.setImmediate(true); return df; } diff --git a/tests/testbench/com/vaadin/tests/components/select/SelectDisplaysOldValue.java b/tests/testbench/com/vaadin/tests/components/select/SelectDisplaysOldValue.java index b9ae958a03..77c187ff60 100644 --- a/tests/testbench/com/vaadin/tests/components/select/SelectDisplaysOldValue.java +++ b/tests/testbench/com/vaadin/tests/components/select/SelectDisplaysOldValue.java @@ -121,8 +121,7 @@ public class SelectDisplaysOldValue extends TestBase { controllerComboBox.setNullSelectionAllowed(false); controllerComboBox.setNewItemsAllowed(false); controllerComboBox.setImmediate(true); - controllerComboBox.setWriteThrough(false); - controllerComboBox.setReadThrough(false); + controllerComboBox.setBuffered(true); } @@ -131,8 +130,7 @@ public class SelectDisplaysOldValue extends TestBase { slaveComboBox.setNullSelectionAllowed(false); slaveComboBox.setNewItemsAllowed(false); slaveComboBox.setImmediate(true); - slaveComboBox.setWriteThrough(false); - slaveComboBox.setReadThrough(false); + slaveComboBox.setBuffered(true); } private void refreshSlaveDropdown(Integer masterId) { diff --git a/tests/testbench/com/vaadin/tests/components/textfield/OutOfSyncIssueWithKeyboardShortcut.java b/tests/testbench/com/vaadin/tests/components/textfield/OutOfSyncIssueWithKeyboardShortcut.java index 89f9ffda40..955a9c2772 100644 --- a/tests/testbench/com/vaadin/tests/components/textfield/OutOfSyncIssueWithKeyboardShortcut.java +++ b/tests/testbench/com/vaadin/tests/components/textfield/OutOfSyncIssueWithKeyboardShortcut.java @@ -70,7 +70,7 @@ public class OutOfSyncIssueWithKeyboardShortcut extends TestBase { form.setImmediate(true); // this is critical for the problem to occur - form.setWriteThrough(false); + form.setBuffered(true); HorizontalLayout footer = new HorizontalLayout(); footer.setSpacing(true); diff --git a/tests/testbench/com/vaadin/tests/containers/sqlcontainer/CheckboxUpdateProblem.java b/tests/testbench/com/vaadin/tests/containers/sqlcontainer/CheckboxUpdateProblem.java index f34c12607a..537c9be973 100644 --- a/tests/testbench/com/vaadin/tests/containers/sqlcontainer/CheckboxUpdateProblem.java +++ b/tests/testbench/com/vaadin/tests/containers/sqlcontainer/CheckboxUpdateProblem.java @@ -76,7 +76,7 @@ public class CheckboxUpdateProblem extends Application.LegacyApplication private TestForm() { setSizeFull(); - setWriteThrough(false); + setBuffered(true); setInvalidCommitted(false); save = new Button("Save", this); diff --git a/tests/testbench/com/vaadin/tests/layouts/TestAbsoluteLayout.java b/tests/testbench/com/vaadin/tests/layouts/TestAbsoluteLayout.java index d2f14c114e..33fa0558e7 100644 --- a/tests/testbench/com/vaadin/tests/layouts/TestAbsoluteLayout.java +++ b/tests/testbench/com/vaadin/tests/layouts/TestAbsoluteLayout.java @@ -271,14 +271,14 @@ public class TestAbsoluteLayout extends TestBase { addComponent(addComp); componentEditor = new Form(); - componentEditor.setWriteThrough(false); + componentEditor.setBuffered(true); componentEditor.setCaption("Component properties:"); componentEditor.setFormFieldFactory(MFieldFactory.get()); addComponent(componentEditor); positionEditor = new Form(); positionEditor.setCaption("Component position"); - positionEditor.setWriteThrough(false); + positionEditor.setBuffered(true); positionEditor.setFormFieldFactory(MFieldFactory.get()); addComponent(positionEditor); diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1806.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1806.java index 2c979f4600..fa572039aa 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket1806.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1806.java @@ -17,8 +17,7 @@ public class Ticket1806 extends com.vaadin.Application.LegacyApplication { final ObjectProperty prop = new ObjectProperty(""); final TextField tf1 = new TextField( "Buffered TextField bound to ObjectProperty"); - tf1.setWriteThrough(false); - tf1.setReadThrough(false); + tf1.setBuffered(true); tf1.setPropertyDataSource(prop); main.addComponent(tf1); main.addComponent(new Button( -- cgit v1.2.3 From 8d2d0adb625f478658b7115ae2dfb007aad079b5 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Wed, 22 Aug 2012 21:48:34 +0300 Subject: Removed API deprecated in Vaadin 6 (#9071) --- .../terminal/gwt/client/ApplicationConnection.java | 39 +- .../gwt/client/ClientExceptionHandler.java | 42 -- .../vaadin/terminal/gwt/client/ui/dd/DDUtil.java | 33 +- .../terminal/gwt/client/ui/dd/VHtml5DragEvent.java | 8 - .../src/com/vaadin/data/util/QueryContainer.java | 685 --------------------- .../data/util/sqlcontainer/ColumnProperty.java | 6 +- server/src/com/vaadin/ui/AbstractComponent.java | 28 - .../src/com/vaadin/ui/AbstractOrderedLayout.java | 13 - server/src/com/vaadin/ui/DragAndDropWrapper.java | 16 - server/src/com/vaadin/ui/GridLayout.java | 46 -- server/src/com/vaadin/ui/Layout.java | 69 --- server/src/com/vaadin/ui/PopupView.java | 16 - server/src/com/vaadin/ui/RichTextArea.java | 71 +-- server/src/com/vaadin/ui/Select.java | 34 - server/src/com/vaadin/ui/TabSheet.java | 81 +-- server/src/com/vaadin/ui/Table.java | 35 -- server/src/com/vaadin/ui/Upload.java | 27 - server/src/com/vaadin/ui/themes/BaseTheme.java | 12 - server/src/com/vaadin/ui/themes/Reindeer.java | 18 - .../com/vaadin/tests/tickets/Ticket1710.java | 78 ++- 20 files changed, 57 insertions(+), 1300 deletions(-) delete mode 100644 client/src/com/vaadin/terminal/gwt/client/ClientExceptionHandler.java delete mode 100644 server/src/com/vaadin/data/util/QueryContainer.java (limited to 'server/src/com/vaadin') diff --git a/client/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java b/client/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java index 7e1c505fe9..58357ae3fc 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java +++ b/client/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java @@ -395,32 +395,6 @@ public class ApplicationConnection { } }-*/; - /** - * Get the active Console for writing debug messages. May return an actual - * logging console, or the NullConsole if debugging is not turned on. - * - * @deprecated Developers should use {@link VConsole} since 6.4.5 - * - * @return the active Console - */ - @Deprecated - public static Console getConsole() { - return VConsole.getImplementation(); - } - - /** - * Checks if client side is in debug mode. Practically this is invoked by - * adding ?debug parameter to URI. - * - * @deprecated use ApplicationConfiguration isDebugMode instead. - * - * @return true if client side is currently been debugged - */ - @Deprecated - public static boolean isDebugMode() { - return ApplicationConfiguration.isDebugMode(); - } - /** * Gets the application base URI. Using this other than as the download * action URI can cause problems in Portlet 2.0 deployments. @@ -2468,7 +2442,8 @@ public class ApplicationConnection { * The identifier for the event * @return true if at least one listener has been registered on server side * for the event identified by eventIdentifier. - * @deprecated Use {@link ComponentState#hasEventListener(String)} instead + * @deprecated as of Vaadin 7. Use + * {@link ComponentState#hasEventListener(String)} instead */ @Deprecated public boolean hasEventListeners(ComponentConnector paintable, @@ -2521,11 +2496,13 @@ public class ApplicationConnection { return connectorMap; } + /** + * @deprecated No longer needed in Vaadin 7 + */ @Deprecated public void unregisterPaintable(ServerConnector p) { - System.out.println("unregisterPaintable (unnecessarily) called for " + VConsole.log("unregisterPaintable (unnecessarily) called for " + Util.getConnectorString(p)); - // connectorMap.unregisterConnector(p); } /** @@ -2564,6 +2541,10 @@ public class ApplicationConnection { return false; } + /** + * @deprecated as of Vaadin 7. Use + * {@link ComponentState#hasEventListener(String)} instead + */ @Deprecated public boolean hasEventListeners(Widget widget, String eventIdentifier) { return hasEventListeners(getConnectorMap().getConnector(widget), diff --git a/client/src/com/vaadin/terminal/gwt/client/ClientExceptionHandler.java b/client/src/com/vaadin/terminal/gwt/client/ClientExceptionHandler.java deleted file mode 100644 index d8c7e67638..0000000000 --- a/client/src/com/vaadin/terminal/gwt/client/ClientExceptionHandler.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2011 Vaadin Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.vaadin.terminal.gwt.client; - -import com.google.gwt.core.client.GWT; - -@Deprecated -public class ClientExceptionHandler { - - public static void displayError(Throwable e) { - displayError(e.getClass().getName() + ": " + e.getMessage()); - - GWT.log(e.getMessage(), e); - } - - @Deprecated - public static void displayError(String msg) { - VConsole.error(msg); - GWT.log(msg); - } - - @Deprecated - public static void displayError(String msg, Throwable e) { - displayError(msg); - displayError(e); - - } - -} diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/dd/DDUtil.java b/client/src/com/vaadin/terminal/gwt/client/ui/dd/DDUtil.java index b6012eded1..a4d00f59de 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/dd/DDUtil.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/dd/DDUtil.java @@ -24,23 +24,6 @@ import com.vaadin.terminal.gwt.client.Util; public class DDUtil { - /** - * @deprecated use the version with the actual event instead of detected - * clientY value - * - * @param element - * @param clientY - * @param topBottomRatio - * @return - */ - @Deprecated - public static VerticalDropLocation getVerticalDropLocation(Element element, - int clientY, double topBottomRatio) { - int offsetHeight = element.getOffsetHeight(); - return getVerticalDropLocation(element, offsetHeight, clientY, - topBottomRatio); - } - public static VerticalDropLocation getVerticalDropLocation(Element element, NativeEvent event, double topBottomRatio) { int offsetHeight = element.getOffsetHeight(); @@ -76,21 +59,7 @@ public class DDUtil { public static HorizontalDropLocation getHorizontalDropLocation( Element element, NativeEvent event, double leftRightRatio) { - int touchOrMouseClientX = Util.getTouchOrMouseClientX(event); - return getHorizontalDropLocation(element, touchOrMouseClientX, - leftRightRatio); - } - - /** - * @deprecated use the version with the actual event - * @param element - * @param clientX - * @param leftRightRatio - * @return - */ - @Deprecated - public static HorizontalDropLocation getHorizontalDropLocation( - Element element, int clientX, double leftRightRatio) { + int clientX = Util.getTouchOrMouseClientX(event); // Event coordinates are relative to the viewport, element absolute // position is relative to the document. Make element position relative diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/dd/VHtml5DragEvent.java b/client/src/com/vaadin/terminal/gwt/client/ui/dd/VHtml5DragEvent.java index 32abc787da..34bdb28c91 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/dd/VHtml5DragEvent.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/dd/VHtml5DragEvent.java @@ -53,14 +53,6 @@ public class VHtml5DragEvent extends NativeEvent { return null; }-*/; - /** - * @deprecated As of Vaadin 6.8, replaced by {@link #setDropEffect(String)}. - */ - @Deprecated - public final void setDragEffect(String effect) { - setDropEffect(effect); - } - public final native void setDropEffect(String effect) /*-{ try { diff --git a/server/src/com/vaadin/data/util/QueryContainer.java b/server/src/com/vaadin/data/util/QueryContainer.java deleted file mode 100644 index add93c25ee..0000000000 --- a/server/src/com/vaadin/data/util/QueryContainer.java +++ /dev/null @@ -1,685 +0,0 @@ -/* - * Copyright 2011 Vaadin Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.vaadin.data.util; - -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; - -import com.vaadin.data.Container; -import com.vaadin.data.Item; -import com.vaadin.data.Property; - -/** - *

    - * The QueryContainer is the specialized form of Container which is - * Ordered and Indexed. This is used to represent the contents of relational - * database tables accessed through the JDBC Connection in the Vaadin Table. - * This creates Items based on the queryStatement provided to the container. - *

    - * - *

    - * The QueryContainer can be visualized as a representation of a - * relational database table.Each Item in the container represents the row - * fetched by the query.All cells in a column have same data type and the data - * type information is retrieved from the metadata of the resultset. - *

    - * - *

    - * Note : If data in the tables gets modified, Container will not get reflected - * with the updates, we have to explicity invoke QueryContainer.refresh method. - * {@link com.vaadin.data.util.QueryContainer#refresh() refresh()} - *

    - * - * @see com.vaadin.data.Container - * - * @author Vaadin Ltd. - * @since 4.0 - * - * @deprecated will be removed in the future, use the SQLContainer add-on - */ - -@Deprecated -@SuppressWarnings("serial") -public class QueryContainer implements Container, Container.Ordered, - Container.Indexed { - - // default ResultSet type - public static final int DEFAULT_RESULTSET_TYPE = ResultSet.TYPE_SCROLL_INSENSITIVE; - - // default ResultSet concurrency - public static final int DEFAULT_RESULTSET_CONCURRENCY = ResultSet.CONCUR_READ_ONLY; - - private int resultSetType = DEFAULT_RESULTSET_TYPE; - - private int resultSetConcurrency = DEFAULT_RESULTSET_CONCURRENCY; - - private final String queryStatement; - - private final Connection connection; - - private ResultSet result; - - private Collection propertyIds; - - private final HashMap> propertyTypes = new HashMap>(); - - private int size = -1; - - private Statement statement; - - /** - * Constructs new QueryContainer with the specified - * queryStatement. - * - * @param queryStatement - * Database query - * @param connection - * Connection object - * @param resultSetType - * @param resultSetConcurrency - * @throws SQLException - * when database operation fails - */ - public QueryContainer(String queryStatement, Connection connection, - int resultSetType, int resultSetConcurrency) throws SQLException { - this.queryStatement = queryStatement; - this.connection = connection; - this.resultSetType = resultSetType; - this.resultSetConcurrency = resultSetConcurrency; - init(); - } - - /** - * Constructs new QueryContainer with the specified - * queryStatement using the default resultset type and default resultset - * concurrency. - * - * @param queryStatement - * Database query - * @param connection - * Connection object - * @see QueryContainer#DEFAULT_RESULTSET_TYPE - * @see QueryContainer#DEFAULT_RESULTSET_CONCURRENCY - * @throws SQLException - * when database operation fails - */ - public QueryContainer(String queryStatement, Connection connection) - throws SQLException { - this(queryStatement, connection, DEFAULT_RESULTSET_TYPE, - DEFAULT_RESULTSET_CONCURRENCY); - } - - /** - * Fills the Container with the items and properties. Invoked by the - * constructor. - * - * @throws SQLException - * when parameter initialization fails. - * @see QueryContainer#QueryContainer(String, Connection, int, int). - */ - private void init() throws SQLException { - refresh(); - ResultSetMetaData metadata; - metadata = result.getMetaData(); - final int count = metadata.getColumnCount(); - final ArrayList list = new ArrayList(count); - for (int i = 1; i <= count; i++) { - final String columnName = metadata.getColumnName(i); - list.add(columnName); - final Property p = getContainerProperty(new Integer(1), - columnName); - propertyTypes.put(columnName, - p == null ? Object.class : p.getType()); - } - propertyIds = Collections.unmodifiableCollection(list); - } - - /** - *

    - * Restores items in the container. This method will update the latest data - * to the container. - *

    - * Note: This method should be used to update the container with the latest - * items. - * - * @throws SQLException - * when database operation fails - * - */ - - public void refresh() throws SQLException { - close(); - statement = connection.createStatement(resultSetType, - resultSetConcurrency); - result = statement.executeQuery(queryStatement); - result.last(); - size = result.getRow(); - } - - /** - * Releases and nullifies the statement. - * - * @throws SQLException - * when database operation fails - */ - - public void close() throws SQLException { - if (statement != null) { - statement.close(); - } - statement = null; - } - - /** - * Gets the Item with the given Item ID from the Container. - * - * @param id - * ID of the Item to retrieve - * @return Item Id. - */ - - @Override - public Item getItem(Object id) { - return new Row(id); - } - - /** - * Gets the collection of propertyId from the Container. - * - * @return Collection of Property ID. - */ - - @Override - public Collection getContainerPropertyIds() { - return propertyIds; - } - - /** - * Gets an collection of all the item IDs in the container. - * - * @return collection of Item IDs - */ - @Override - public Collection getItemIds() { - final Collection c = new ArrayList(size); - for (int i = 1; i <= size; i++) { - c.add(new Integer(i)); - } - return c; - } - - /** - * Gets the property identified by the given itemId and propertyId from the - * container. If the container does not contain the property - * null is returned. - * - * @param itemId - * ID of the Item which contains the Property - * @param propertyId - * ID of the Property to retrieve - * - * @return Property with the given ID if exists; null - * otherwise. - */ - - @Override - public synchronized Property getContainerProperty(Object itemId, - Object propertyId) { - if (!(itemId instanceof Integer && propertyId instanceof String)) { - return null; - } - Object value; - try { - result.absolute(((Integer) itemId).intValue()); - value = result.getObject((String) propertyId); - } catch (final Exception e) { - return null; - } - - // Handle also null values from the database - return new ObjectProperty(value != null ? value - : new String("")); - } - - /** - * Gets the data type of all properties identified by the given type ID. - * - * @param id - * ID identifying the Properties - * - * @return data type of the Properties - */ - - @Override - public Class getType(Object id) { - return propertyTypes.get(id); - } - - /** - * Gets the number of items in the container. - * - * @return the number of items in the container. - */ - @Override - public int size() { - return size; - } - - /** - * Tests if the list contains the specified Item. - * - * @param id - * ID the of Item to be tested. - * @return true if given id is in the container; - * false otherwise. - */ - @Override - public boolean containsId(Object id) { - if (!(id instanceof Integer)) { - return false; - } - final int i = ((Integer) id).intValue(); - if (i < 1) { - return false; - } - if (i > size) { - return false; - } - return true; - } - - /** - * Creates new Item with the given ID into the Container. - * - * @param itemId - * ID of the Item to be created. - * - * @return Created new Item, or null if it fails. - * - * @throws UnsupportedOperationException - * if the addItem method is not supported. - */ - @Override - public Item addItem(Object itemId) throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - /** - * Creates a new Item into the Container, and assign it an ID. - * - * @return ID of the newly created Item, or null if it fails. - * @throws UnsupportedOperationException - * if the addItem method is not supported. - */ - @Override - public Object addItem() throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - /** - * Removes the Item identified by ItemId from the Container. - * - * @param itemId - * ID of the Item to remove. - * @return true if the operation succeeded; false - * otherwise. - * @throws UnsupportedOperationException - * if the removeItem method is not supported. - */ - @Override - public boolean removeItem(Object itemId) - throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - /** - * Adds new Property to all Items in the Container. - * - * @param propertyId - * ID of the Property - * @param type - * Data type of the new Property - * @param defaultValue - * The value all created Properties are initialized to. - * @return true if the operation succeeded; false - * otherwise. - * @throws UnsupportedOperationException - * if the addContainerProperty method is not supported. - */ - @Override - public boolean addContainerProperty(Object propertyId, Class type, - Object defaultValue) throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - /** - * Removes a Property specified by the given Property ID from the Container. - * - * @param propertyId - * ID of the Property to remove - * @return true if the operation succeeded; false - * otherwise. - * @throws UnsupportedOperationException - * if the removeContainerProperty method is not supported. - */ - @Override - public boolean removeContainerProperty(Object propertyId) - throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - /** - * Removes all Items from the Container. - * - * @return true if the operation succeeded; false - * otherwise. - * @throws UnsupportedOperationException - * if the removeAllItems method is not supported. - */ - @Override - public boolean removeAllItems() throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - /** - * Adds new item after the given item. - * - * @param previousItemId - * Id of the previous item in ordered container. - * @param newItemId - * Id of the new item to be added. - * @return Returns new item or null if the operation fails. - * @throws UnsupportedOperationException - * if the addItemAfter method is not supported. - */ - @Override - public Item addItemAfter(Object previousItemId, Object newItemId) - throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - /** - * Adds new item after the given item. - * - * @param previousItemId - * Id of the previous item in ordered container. - * @return Returns item id created new item or null if the - * operation fails. - * @throws UnsupportedOperationException - * if the addItemAfter method is not supported. - */ - @Override - public Object addItemAfter(Object previousItemId) - throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - /** - * Returns id of first item in the Container. - * - * @return ID of the first Item in the list. - */ - @Override - public Object firstItemId() { - if (size < 1) { - return null; - } - return new Integer(1); - } - - /** - * Returns true if given id is first id at first index. - * - * @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; - } - - /** - * Returns true if given id is last id at last index. - * - * @param id - * ID of an Item in the Container - * - */ - @Override - public boolean isLastId(Object id) { - return size > 0 && (id instanceof Integer) - && ((Integer) id).intValue() == size; - } - - /** - * Returns id of last item in the Container. - * - * @return ID of the last Item. - */ - @Override - public Object lastItemId() { - if (size < 1) { - return null; - } - return new Integer(size); - } - - /** - * Returns id of next item in container at next index. - * - * @param id - * 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; - } - final int i = ((Integer) id).intValue(); - if (i >= size) { - return null; - } - return new Integer(i + 1); - } - - /** - * Returns id of previous item in container at previous index. - * - * @param id - * 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; - } - final int i = ((Integer) id).intValue(); - if (i <= 1) { - return null; - } - return new Integer(i - 1); - } - - /** - * The Row class implements methods of Item. - * - * @author Vaadin Ltd. - * @since 4.0 - */ - class Row implements Item { - - Object id; - - private Row(Object rowId) { - id = rowId; - } - - /** - * Adds the item property. - * - * @param id - * ID of the new Property. - * @param property - * Property to be added and associated with ID. - * @return true if the operation succeeded; - * false otherwise. - * @throws UnsupportedOperationException - * if the addItemProperty method is not supported. - */ - @Override - public boolean addItemProperty(Object id, Property property) - throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - /** - * Gets the property corresponding to the given property ID stored in - * the Item. - * - * @param propertyId - * identifier of the Property to get - * @return the Property with the given ID or null - */ - @Override - public Property getItemProperty(Object propertyId) { - return getContainerProperty(id, propertyId); - } - - /** - * Gets the collection of property IDs stored in the Item. - * - * @return unmodifiable collection containing IDs of the Properties - * stored the Item. - */ - @Override - public Collection getItemPropertyIds() { - return propertyIds; - } - - /** - * Removes given item property. - * - * @param id - * ID of the Property to be removed. - * @return true if the item property is removed; - * false otherwise. - * @throws UnsupportedOperationException - * if the removeItemProperty is not supported. - */ - @Override - public boolean removeItemProperty(Object id) - throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - } - - /** - * Closes the statement. - * - * @see #close() - */ - @Override - public void finalize() { - try { - close(); - } catch (final SQLException ignored) { - - } - } - - /** - * Adds the given item at the position of given index. - * - * @param index - * Index to add the new item. - * @param newItemId - * Id of the new item to be added. - * @return new item or null if the operation fails. - * @throws UnsupportedOperationException - * if the addItemAt is not supported. - */ - @Override - public Item addItemAt(int index, Object newItemId) - throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - /** - * Adds item at the position of provided index in the container. - * - * @param index - * Index to add the new item. - * @return item id created new item or null if the operation - * fails. - * - * @throws UnsupportedOperationException - * if the addItemAt is not supported. - */ - - @Override - public Object addItemAt(int index) throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - /** - * Gets the Index id in the container. - * - * @param index - * Index Id. - * @return ID in the given index. - */ - @Override - public Object getIdByIndex(int index) { - if (size < 1 || index < 0 || index >= size) { - return null; - } - return new Integer(index + 1); - } - - /** - * Gets the index of the Item corresponding to id in the container. - * - * @param id - * ID of an Item in the Container - * @return index of the Item, or -1 if the Container does not include the - * Item - */ - - @Override - public int indexOfId(Object id) { - if (size < 1 || !(id instanceof Integer)) { - return -1; - } - final int i = ((Integer) id).intValue(); - if (i >= size || i < 1) { - return -1; - } - return i - 1; - } - -} diff --git a/server/src/com/vaadin/data/util/sqlcontainer/ColumnProperty.java b/server/src/com/vaadin/data/util/sqlcontainer/ColumnProperty.java index 0146c92b5c..6e5ba0dc57 100644 --- a/server/src/com/vaadin/data/util/sqlcontainer/ColumnProperty.java +++ b/server/src/com/vaadin/data/util/sqlcontainer/ColumnProperty.java @@ -69,7 +69,9 @@ final public class ColumnProperty implements Property { * @param value * @param type * - * @deprecated + * @deprecated as of 7.0. Use + * {@link #ColumnProperty(String, boolean, boolean, boolean, boolean, Object, Class) + * instead */ @Deprecated public ColumnProperty(String propertyId, boolean readOnly, @@ -144,7 +146,7 @@ final public class ColumnProperty implements Property { @Override public void setValue(Object newValue) throws ReadOnlyException, - ConversionException { + ConversionException { if (newValue == null && !nullable) { throw new NotNullableException( "Null values are not allowed for this property."); diff --git a/server/src/com/vaadin/ui/AbstractComponent.java b/server/src/com/vaadin/ui/AbstractComponent.java index 1eb95311cd..585e3e2513 100644 --- a/server/src/com/vaadin/ui/AbstractComponent.java +++ b/server/src/com/vaadin/ui/AbstractComponent.java @@ -121,34 +121,6 @@ public abstract class AbstractComponent extends AbstractClientConnector return getState().getDebugId(); } - /** - * Gets style for component. Multiple styles are joined with spaces. - * - * @return the component's styleValue of property style. - * @deprecated Use getStyleName() instead; renamed for consistency and to - * indicate that "style" should not be used to switch client - * side implementation, only to style the component. - */ - @Deprecated - public String getStyle() { - return getStyleName(); - } - - /** - * Sets and replaces all previous style names of the component. This method - * will trigger a {@link RepaintRequestEvent}. - * - * @param style - * the new style of the component. - * @deprecated Use setStyleName() instead; renamed for consistency and to - * indicate that "style" should not be used to switch client - * side implementation, only to style the component. - */ - @Deprecated - public void setStyle(String style) { - setStyleName(style); - } - /* * Gets the component's style. Don't add a JavaDoc comment here, we use the * default documentation from implemented interface. diff --git a/server/src/com/vaadin/ui/AbstractOrderedLayout.java b/server/src/com/vaadin/ui/AbstractOrderedLayout.java index cac9c05fb8..ce6a3eafbd 100644 --- a/server/src/com/vaadin/ui/AbstractOrderedLayout.java +++ b/server/src/com/vaadin/ui/AbstractOrderedLayout.java @@ -232,19 +232,6 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements } } - /* - * (non-Javadoc) - * - * @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) { diff --git a/server/src/com/vaadin/ui/DragAndDropWrapper.java b/server/src/com/vaadin/ui/DragAndDropWrapper.java index 3fd94210d8..1c41de81a0 100644 --- a/server/src/com/vaadin/ui/DragAndDropWrapper.java +++ b/server/src/com/vaadin/ui/DragAndDropWrapper.java @@ -156,22 +156,6 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget, .valueOf((String) getData("horizontalLocation")); } - /** - * @deprecated use {@link #getVerticalDropLocation()} instead - */ - @Deprecated - public VerticalDropLocation verticalDropLocation() { - return getVerticalDropLocation(); - } - - /** - * @deprecated use {@link #getHorizontalDropLocation()} instead - */ - @Deprecated - public HorizontalDropLocation horizontalDropLocation() { - return getHorizontalDropLocation(); - } - } public enum DragStartMode { diff --git a/server/src/com/vaadin/ui/GridLayout.java b/server/src/com/vaadin/ui/GridLayout.java index 52aef4c253..5abfb1a22e 100644 --- a/server/src/com/vaadin/ui/GridLayout.java +++ b/server/src/com/vaadin/ui/GridLayout.java @@ -805,14 +805,6 @@ public class GridLayout extends AbstractLayout implements component = newComponent; } - /** - * @deprecated Use {@link #getColumn1()} instead. - */ - @Deprecated - public int getX1() { - return getColumn1(); - } - /** * Gets the column of the top-left corner cell. * @@ -822,14 +814,6 @@ public class GridLayout extends AbstractLayout implements return column1; } - /** - * @deprecated Use {@link #getColumn2()} instead. - */ - @Deprecated - public int getX2() { - return getColumn2(); - } - /** * Gets the column of the bottom-right corner cell. * @@ -839,14 +823,6 @@ public class GridLayout extends AbstractLayout implements return column2; } - /** - * @deprecated Use {@link #getRow1()} instead. - */ - @Deprecated - public int getY1() { - return getRow1(); - } - /** * Gets the row of the top-left corner cell. * @@ -856,14 +832,6 @@ public class GridLayout extends AbstractLayout implements return row1; } - /** - * @deprecated Use {@link #getRow2()} instead. - */ - @Deprecated - public int getY2() { - return getRow2(); - } - /** * Gets the row of the bottom-right corner cell. * @@ -1149,20 +1117,6 @@ public class GridLayout extends AbstractLayout implements cursorY = 0; } - /* - * (non-Javadoc) - * - * @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( - horizontalAlignment + verticalAlignment)); - requestRepaint(); - } - @Override public void setComponentAlignment(Component childComponent, Alignment alignment) { diff --git a/server/src/com/vaadin/ui/Layout.java b/server/src/com/vaadin/ui/Layout.java index 9c7cd2b477..b32cf8c47d 100644 --- a/server/src/com/vaadin/ui/Layout.java +++ b/server/src/com/vaadin/ui/Layout.java @@ -18,7 +18,6 @@ package com.vaadin.ui; import java.io.Serializable; -import com.vaadin.shared.ui.AlignmentInfo.Bits; import com.vaadin.shared.ui.MarginInfo; /** @@ -38,74 +37,6 @@ public interface Layout extends ComponentContainer, Serializable { */ public interface AlignmentHandler extends Serializable { - /** - * Contained component should be aligned horizontally to the left. - * - * @deprecated Use of {@link Alignment} class and its constants - */ - @Deprecated - public static final int ALIGNMENT_LEFT = Bits.ALIGNMENT_LEFT; - - /** - * Contained component should be aligned horizontally to the right. - * - * @deprecated Use of {@link Alignment} class and its constants - */ - @Deprecated - public static final int ALIGNMENT_RIGHT = Bits.ALIGNMENT_RIGHT; - - /** - * Contained component should be aligned vertically to the top. - * - * @deprecated Use of {@link Alignment} class and its constants - */ - @Deprecated - public static final int ALIGNMENT_TOP = Bits.ALIGNMENT_TOP; - - /** - * Contained component should be aligned vertically to the bottom. - * - * @deprecated Use of {@link Alignment} class and its constants - */ - @Deprecated - public static final int ALIGNMENT_BOTTOM = Bits.ALIGNMENT_BOTTOM; - - /** - * Contained component should be horizontally aligned to center. - * - * @deprecated Use of {@link Alignment} class and its constants - */ - @Deprecated - public static final int ALIGNMENT_HORIZONTAL_CENTER = Bits.ALIGNMENT_HORIZONTAL_CENTER; - - /** - * Contained component should be vertically aligned to center. - * - * @deprecated Use of {@link Alignment} class and its constants - */ - @Deprecated - public static final int ALIGNMENT_VERTICAL_CENTER = Bits.ALIGNMENT_VERTICAL_CENTER; - - /** - * Set alignment for one contained component in this layout. Alignment - * is calculated as a bit mask of the two passed values. - * - * @deprecated Use {@link #setComponentAlignment(Component, Alignment)} - * instead - * - * @param childComponent - * the component to align within it's layout cell. - * @param horizontalAlignment - * the horizontal alignment for the child component (left, - * center, right). Use ALIGNMENT constants. - * @param verticalAlignment - * the vertical alignment for the child component (top, - * center, bottom). Use ALIGNMENT constants. - */ - @Deprecated - public void setComponentAlignment(Component childComponent, - int horizontalAlignment, int verticalAlignment); - /** * Set alignment for one contained component in this layout. Use * predefined alignments from Alignment class. diff --git a/server/src/com/vaadin/ui/PopupView.java b/server/src/com/vaadin/ui/PopupView.java index 4a5814f660..198ba00ed2 100644 --- a/server/src/com/vaadin/ui/PopupView.java +++ b/server/src/com/vaadin/ui/PopupView.java @@ -159,22 +159,6 @@ public class PopupView extends AbstractComponentContainer implements return content; } - /** - * @deprecated Use {@link #setPopupVisible()} instead. - */ - @Deprecated - public void setPopupVisibility(boolean visible) { - setPopupVisible(visible); - } - - /** - * @deprecated Use {@link #isPopupVisible()} instead. - */ - @Deprecated - public boolean getPopupVisibility() { - return isPopupVisible(); - } - /** * Set the visibility of the popup. Does not hide the minimal * representation. diff --git a/server/src/com/vaadin/ui/RichTextArea.java b/server/src/com/vaadin/ui/RichTextArea.java index e3d1168559..e954f78700 100644 --- a/server/src/com/vaadin/ui/RichTextArea.java +++ b/server/src/com/vaadin/ui/RichTextArea.java @@ -16,7 +16,6 @@ package com.vaadin.ui; -import java.text.Format; import java.util.Map; import com.vaadin.data.Property; @@ -34,12 +33,6 @@ import com.vaadin.terminal.Vaadin6Component; public class RichTextArea extends AbstractField implements Vaadin6Component { - /** - * Value formatter used to format the string contents. - */ - @Deprecated - private Format format; - /** * Null representation. */ @@ -123,7 +116,7 @@ public class RichTextArea extends AbstractField implements } // Adds the content as variable - String value = getFormattedValue(); + String value = getValue(); if (value == null) { value = getNullRepresentation(); } @@ -167,37 +160,6 @@ public class RichTextArea extends AbstractField implements requestRepaint(); } - /** - * Gets the formatted string value. Sets the field value by using the - * assigned Format. - * - * @return the Formatted value. - * @see #setFormat(Format) - * @see Format - * @deprecated - */ - @Deprecated - protected String getFormattedValue() { - Object v = getValue(); - if (v == null) { - return null; - } - return v.toString(); - } - - @Override - public String getValue() { - String v = super.getValue(); - if (format == null || v == null) { - return v; - } - try { - return format.format(v); - } catch (final IllegalArgumentException e) { - return v; - } - } - @Override public void changeVariables(Object source, Map variables) { // Sets the text @@ -207,7 +169,7 @@ public class RichTextArea extends AbstractField implements // has been updated String newValue = (String) variables.get("text"); - final String oldValue = getFormattedValue(); + final String oldValue = getValue(); if (newValue != null && (oldValue == null || isNullSettingAllowed()) && newValue.equals(getNullRepresentation())) { @@ -218,9 +180,9 @@ public class RichTextArea extends AbstractField implements boolean wasModified = isModified(); setValue(newValue, true); - // If the modified status changes, or if we have a formatter, + // If the modified status changes, // repaint is needed after all. - if (format != null || wasModified != isModified()) { + if (wasModified != isModified()) { requestRepaint(); } } @@ -323,31 +285,6 @@ public class RichTextArea extends AbstractField implements this.nullSettingAllowed = nullSettingAllowed; } - /** - * Gets the value formatter of TextField. - * - * @return the Format used to format the value. - * @deprecated replaced by {@link com.vaadin.data.util.PropertyFormatter} - */ - @Deprecated - public Format getFormat() { - return format; - } - - /** - * Gets the value formatter of TextField. - * - * @param format - * the Format used to format the value. Null disables the - * formatting. - * @deprecated replaced by {@link com.vaadin.data.util.PropertyFormatter} - */ - @Deprecated - public void setFormat(Format format) { - this.format = format; - requestRepaint(); - } - @Override protected boolean isEmpty() { return super.isEmpty() || getValue().length() == 0; diff --git a/server/src/com/vaadin/ui/Select.java b/server/src/com/vaadin/ui/Select.java index 698350cb30..898728b9cd 100644 --- a/server/src/com/vaadin/ui/Select.java +++ b/server/src/com/vaadin/ui/Select.java @@ -697,40 +697,6 @@ public class Select extends AbstractSelect implements AbstractSelect.Filtering, return filteringMode; } - /** - * Note, one should use more generic setWidth(String) method instead of - * this. This now days actually converts columns to width with em css unit. - * - * Sets the number of columns in the editor. If the number of columns is set - * 0, the actual number of displayed columns is determined implicitly by the - * adapter. - * - * @deprecated - * - * @param columns - * the number of columns to set. - */ - @Deprecated - public void setColumns(int columns) { - if (columns < 0) { - columns = 0; - } - if (this.columns != columns) { - this.columns = columns; - setWidth(columns, Select.UNITS_EM); - requestRepaint(); - } - } - - /** - * @deprecated see setter function - * @return - */ - @Deprecated - public int getColumns() { - return columns; - } - @Override public void addListener(BlurListener listener) { addListener(BlurEvent.EVENT_ID, BlurEvent.class, listener, diff --git a/server/src/com/vaadin/ui/TabSheet.java b/server/src/com/vaadin/ui/TabSheet.java index 5a1aa02845..868d97a09c 100644 --- a/server/src/com/vaadin/ui/TabSheet.java +++ b/server/src/com/vaadin/ui/TabSheet.java @@ -361,8 +361,9 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, String caption = null; Resource icon = null; if (TabSheet.class.isAssignableFrom(source.getClass())) { - caption = ((TabSheet) source).getTabCaption(c); - icon = ((TabSheet) source).getTabIcon(c); + Tab tab = ((TabSheet) source).getTab(c); + caption = tab.getCaption(); + icon = tab.getIcon(); } source.removeComponent(c); addTab(c, caption, icon); @@ -477,82 +478,6 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, requestRepaint(); } - /** - * Gets tab caption. The tab is identified by the tab content component. - * - * @param c - * the component in the tab - * @deprecated Use {@link #getTab(Component)} and {@link Tab#getCaption()} - * instead. - */ - @Deprecated - public String getTabCaption(Component c) { - Tab info = tabs.get(c); - if (info == null) { - return ""; - } else { - return info.getCaption(); - } - } - - /** - * Sets tab caption. The tab is identified by the tab content component. - * - * @param c - * the component in the tab - * @param caption - * the caption to set. - * @deprecated Use {@link #getTab(Component)} and - * {@link Tab#setCaption(String)} instead. - */ - @Deprecated - public void setTabCaption(Component c, String caption) { - Tab info = tabs.get(c); - if (info != null) { - info.setCaption(caption); - requestRepaint(); - } - } - - /** - * Gets the icon for a tab. The tab is identified by the tab content - * component. - * - * @param c - * the component in the tab - * @deprecated Use {@link #getTab(Component)} and {@link Tab#getIcon()} - * instead. - */ - @Deprecated - public Resource getTabIcon(Component c) { - Tab info = tabs.get(c); - if (info == null) { - return null; - } else { - return info.getIcon(); - } - } - - /** - * Sets icon for the given component. The tab is identified by the tab - * content component. - * - * @param c - * the component in the tab - * @param icon - * the icon to set - * @deprecated Use {@link #getTab(Component)} and - * {@link Tab#setIcon(Resource)} instead. - */ - @Deprecated - public void setTabIcon(Component c, Resource icon) { - Tab info = tabs.get(c); - if (info != null) { - info.setIcon(icon); - requestRepaint(); - } - } - /** * Returns the {@link Tab} (metadata) for a component. The {@link Tab} * object can be used for setting caption,icon, etc for the tab. diff --git a/server/src/com/vaadin/ui/Table.java b/server/src/com/vaadin/ui/Table.java index 2bbb69beaf..120d1f9810 100644 --- a/server/src/com/vaadin/ui/Table.java +++ b/server/src/com/vaadin/ui/Table.java @@ -1506,31 +1506,6 @@ public class Table extends AbstractSelect implements Action.Container, setCurrentPageFirstItemIndex(newIndex, true); } - /** - * Getter for property pageBuffering. - * - * @deprecated functionality is not needed in ajax rendering model - * - * @return the Value of property pageBuffering. - */ - @Deprecated - public boolean isPageBufferingEnabled() { - return true; - } - - /** - * Setter for property pageBuffering. - * - * @deprecated functionality is not needed in ajax rendering model - * - * @param pageBuffering - * the New value of property pageBuffering. - */ - @Deprecated - public void setPageBufferingEnabled(boolean pageBuffering) { - - } - /** * Getter for property selectable. * @@ -2229,16 +2204,6 @@ public class Table extends AbstractSelect implements Action.Container, } } - /** - * Refreshes the current page contents. - * - * @deprecated should not need to be used - */ - @Deprecated - public void refreshCurrentPage() { - - } - /** * Sets the row header mode. *

    diff --git a/server/src/com/vaadin/ui/Upload.java b/server/src/com/vaadin/ui/Upload.java index c4f15ebea9..b50ba03835 100644 --- a/server/src/com/vaadin/ui/Upload.java +++ b/server/src/com/vaadin/ui/Upload.java @@ -855,33 +855,6 @@ public class Upload extends AbstractComponent implements Component.Focusable, return contentLength; } - /** - * This method is deprecated, use addListener(ProgressListener) instead. - * - * @deprecated Use addListener(ProgressListener) instead. - * @param progressListener - */ - @Deprecated - public void setProgressListener(ProgressListener progressListener) { - addListener(progressListener); - } - - /** - * This method is deprecated. - * - * @deprecated Replaced with addListener/removeListener - * @return listener - * - */ - @Deprecated - public ProgressListener getProgressListener() { - if (progressListeners == null || progressListeners.isEmpty()) { - return null; - } else { - return progressListeners.iterator().next(); - } - } - /** * ProgressListener receives events to track progress of upload. */ diff --git a/server/src/com/vaadin/ui/themes/BaseTheme.java b/server/src/com/vaadin/ui/themes/BaseTheme.java index bdb0087d2e..9e95627eec 100644 --- a/server/src/com/vaadin/ui/themes/BaseTheme.java +++ b/server/src/com/vaadin/ui/themes/BaseTheme.java @@ -44,18 +44,6 @@ public class BaseTheme { */ public static final String BUTTON_LINK = "link"; - /** - * Removes extra decorations from the panel. - * - * @deprecated Base theme does not implement this style, but it is defined - * here since it has been a part of the framework before - * multiple themes were available. Use the constant provided by - * the theme you're using instead, e.g. - * {@link Reindeer#PANEL_LIGHT} or {@link Runo#PANEL_LIGHT}. - */ - @Deprecated - public static final String PANEL_LIGHT = "light"; - /** * Adds the connector lines between a parent node and its child nodes to * indicate the tree hierarchy better. diff --git a/server/src/com/vaadin/ui/themes/Reindeer.java b/server/src/com/vaadin/ui/themes/Reindeer.java index 7bc6720465..037f59d7b4 100644 --- a/server/src/com/vaadin/ui/themes/Reindeer.java +++ b/server/src/com/vaadin/ui/themes/Reindeer.java @@ -48,12 +48,6 @@ public class Reindeer extends BaseTheme { */ public static final String LABEL_SMALL = "light"; - /** - * @deprecated Use {@link #LABEL_SMALL} instead. - */ - @Deprecated - public static final String LABEL_LIGHT = "small"; - /*************************************************************************** * * Button styles @@ -67,12 +61,6 @@ public class Reindeer extends BaseTheme { */ public static final String BUTTON_DEFAULT = "primary"; - /** - * @deprecated Use {@link #BUTTON_DEFAULT} instead - */ - @Deprecated - public static final String BUTTON_PRIMARY = BUTTON_DEFAULT; - /** * Small sized button, use for context specific actions for example */ @@ -128,12 +116,6 @@ public class Reindeer extends BaseTheme { */ public static final String TABSHEET_SMALL = "bar"; - /** - * @deprecated Use {@link #TABSHEET_SMALL} instead. - */ - @Deprecated - public static final String TABSHEET_BAR = TABSHEET_SMALL; - /** * Removes borders and background color from the tab sheet. The tabs are * presented with minimal lines indicating the selected tab. diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1710.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1710.java index 1f2c9624c3..6547572e6d 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket1710.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1710.java @@ -5,10 +5,12 @@ import java.util.Iterator; import com.vaadin.data.Property; import com.vaadin.data.Property.ValueChangeEvent; import com.vaadin.data.util.MethodProperty; +import com.vaadin.shared.ui.AlignmentInfo.Bits; import com.vaadin.shared.ui.MarginInfo; import com.vaadin.terminal.SystemError; import com.vaadin.terminal.ThemeResource; import com.vaadin.ui.AbstractComponent; +import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; import com.vaadin.ui.CheckBox; import com.vaadin.ui.Component; @@ -320,76 +322,66 @@ public class Ticket1710 extends com.vaadin.Application.LegacyApplication { hAlign.setNullSelectionAllowed(false); vAlign.setNullSelectionAllowed(false); - vAlign.addItem(new Integer(Layout.AlignmentHandler.ALIGNMENT_TOP)); - vAlign.setItemCaption(new Integer( - Layout.AlignmentHandler.ALIGNMENT_TOP), "top"); - vAlign.addItem(new Integer( - Layout.AlignmentHandler.ALIGNMENT_VERTICAL_CENTER)); - vAlign.setItemCaption(new Integer( - Layout.AlignmentHandler.ALIGNMENT_VERTICAL_CENTER), + vAlign.addItem(new Integer(Bits.ALIGNMENT_TOP)); + vAlign.setItemCaption(new Integer(Bits.ALIGNMENT_TOP), "top"); + vAlign.addItem(new Integer(Bits.ALIGNMENT_VERTICAL_CENTER)); + vAlign.setItemCaption(new Integer(Bits.ALIGNMENT_VERTICAL_CENTER), "center"); - vAlign.addItem(new Integer(Layout.AlignmentHandler.ALIGNMENT_BOTTOM)); - vAlign.setItemCaption(new Integer( - Layout.AlignmentHandler.ALIGNMENT_BOTTOM), "bottom"); - - hAlign.addItem(new Integer(Layout.AlignmentHandler.ALIGNMENT_LEFT)); - hAlign.setItemCaption(new Integer( - Layout.AlignmentHandler.ALIGNMENT_LEFT), "left"); - hAlign.addItem(new Integer( - Layout.AlignmentHandler.ALIGNMENT_HORIZONTAL_CENTER)); - hAlign.setItemCaption(new Integer( - Layout.AlignmentHandler.ALIGNMENT_HORIZONTAL_CENTER), - "center"); - hAlign.addItem(new Integer(Layout.AlignmentHandler.ALIGNMENT_RIGHT)); - hAlign.setItemCaption(new Integer( - Layout.AlignmentHandler.ALIGNMENT_RIGHT), "right"); + vAlign.addItem(new Integer(Bits.ALIGNMENT_BOTTOM)); + vAlign.setItemCaption(new Integer(Bits.ALIGNMENT_BOTTOM), "bottom"); + + hAlign.addItem(new Integer(Bits.ALIGNMENT_LEFT)); + hAlign.setItemCaption(new Integer(Bits.ALIGNMENT_LEFT), "left"); + hAlign.addItem(new Integer(Bits.ALIGNMENT_HORIZONTAL_CENTER)); + hAlign.setItemCaption( + new Integer(Bits.ALIGNMENT_HORIZONTAL_CENTER), "center"); + hAlign.addItem(new Integer(Bits.ALIGNMENT_RIGHT)); + hAlign.setItemCaption(new Integer(Bits.ALIGNMENT_RIGHT), "right"); Property.ValueChangeListener alignmentChangeListener = new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { - updateAlignments(((Integer) hAlign.getValue()).intValue(), - ((Integer) vAlign.getValue()).intValue()); + Integer h = ((Integer) hAlign.getValue()).intValue(); + int v = ((Integer) vAlign.getValue()).intValue(); + + updateAlignments(new Alignment(h + v)); } }; - hAlign.setValue(new Integer(Layout.AlignmentHandler.ALIGNMENT_LEFT)); + hAlign.setValue(new Integer(Bits.ALIGNMENT_LEFT)); vAlign.addListener(alignmentChangeListener); hAlign.addListener(alignmentChangeListener); - vAlign.setValue(new Integer(Layout.AlignmentHandler.ALIGNMENT_TOP)); + vAlign.setValue(new Integer(Bits.ALIGNMENT_TOP)); controls.addComponent(new Label("layout alignment")); final NativeSelect lAlign = new NativeSelect(); controls.addComponent(lAlign); lAlign.setNullSelectionAllowed(false); - lAlign.addItem(new Integer(Layout.AlignmentHandler.ALIGNMENT_LEFT)); - lAlign.setItemCaption(new Integer( - Layout.AlignmentHandler.ALIGNMENT_LEFT), "left"); - lAlign.addItem(new Integer( - Layout.AlignmentHandler.ALIGNMENT_HORIZONTAL_CENTER)); - lAlign.setItemCaption(new Integer( - Layout.AlignmentHandler.ALIGNMENT_HORIZONTAL_CENTER), - "center"); - lAlign.addItem(new Integer(Layout.AlignmentHandler.ALIGNMENT_RIGHT)); - lAlign.setItemCaption(new Integer( - Layout.AlignmentHandler.ALIGNMENT_RIGHT), "right"); + lAlign.addItem(new Integer(Bits.ALIGNMENT_LEFT)); + lAlign.setItemCaption(new Integer(Bits.ALIGNMENT_LEFT), "left"); + lAlign.addItem(new Integer(Bits.ALIGNMENT_HORIZONTAL_CENTER)); + lAlign.setItemCaption( + new Integer(Bits.ALIGNMENT_HORIZONTAL_CENTER), "center"); + lAlign.addItem(new Integer(Bits.ALIGNMENT_RIGHT)); + lAlign.setItemCaption(new Integer(Bits.ALIGNMENT_RIGHT), "right"); lAlign.addListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { - testPanelLayout.setComponentAlignment(testedLayout, - ((Integer) lAlign.getValue()).intValue(), - VerticalLayout.ALIGNMENT_TOP); + testPanelLayout.setComponentAlignment( + testedLayout, + new Alignment(((Integer) lAlign.getValue()) + .intValue() + Bits.ALIGNMENT_TOP)); } }); } - @SuppressWarnings("deprecation") - private void updateAlignments(int h, int v) { + private void updateAlignments(Alignment a) { for (Iterator i = testedLayout.getComponentIterator(); i .hasNext();) { ((Layout.AlignmentHandler) testedLayout).setComponentAlignment( - i.next(), h, v); + i.next(), a); } } -- cgit v1.2.3 From 05422d4a9ab485e9130ed1205b52acdeb2295a37 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Thu, 23 Aug 2012 09:14:55 +0300 Subject: Don't import client classes for javadocs --- server/src/com/vaadin/ui/AbstractJavaScriptComponent.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'server/src/com/vaadin') diff --git a/server/src/com/vaadin/ui/AbstractJavaScriptComponent.java b/server/src/com/vaadin/ui/AbstractJavaScriptComponent.java index 67b6447ef9..e19bdf1b2b 100644 --- a/server/src/com/vaadin/ui/AbstractJavaScriptComponent.java +++ b/server/src/com/vaadin/ui/AbstractJavaScriptComponent.java @@ -17,8 +17,6 @@ package com.vaadin.ui; import com.vaadin.shared.ui.JavaScriptComponentState; import com.vaadin.terminal.JavaScriptCallbackHelper; -import com.vaadin.terminal.gwt.client.ApplicationConnection; -import com.vaadin.terminal.gwt.client.ui.JavaScriptWidget; /** * Base class for Components with all client-side logic implemented using @@ -36,9 +34,10 @@ import com.vaadin.terminal.gwt.client.ui.JavaScriptWidget; * , then com_example_SuperComponent will also be attempted if * com_example_MyComponent has not been defined. *

    - * JavaScript components have a very simple GWT widget ({@link JavaScriptWidget} - * ) just consisting of a div element to which the JavaScript code - * should initialize its own user interface. + * JavaScript components have a very simple GWT widget ( + * {@link com.vaadin.terminal.gwt.client.ui.JavaScriptWidget} ) just consisting + * of a div element to which the JavaScript code should initialize + * its own user interface. *

    * The initialization function will be called with this pointing to * a connector wrapper object providing integration to Vaadin with the following @@ -81,7 +80,8 @@ import com.vaadin.terminal.gwt.client.ui.JavaScriptWidget; * functions is described bellow. *

  • translateVaadinUri(uri) - Translates a Vaadin URI to a URL * that can be used in the browser. This is just way of accessing - * {@link ApplicationConnection#translateVaadinUri(String)}
  • + * {@link com.vaadin.terminal.gwt.client.ApplicationConnection#translateVaadinUri(String)} + * * * The connector wrapper also supports these special functions: *
      -- cgit v1.2.3 From fad5360a76b9f4f93b99f9775ad01997899859ab Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Thu, 23 Aug 2012 10:32:07 +0300 Subject: Make getStateType() find for protected getState methods (#9315) --- server/src/com/vaadin/terminal/AbstractClientConnector.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'server/src/com/vaadin') diff --git a/server/src/com/vaadin/terminal/AbstractClientConnector.java b/server/src/com/vaadin/terminal/AbstractClientConnector.java index a8da553a62..1025297a4f 100644 --- a/server/src/com/vaadin/terminal/AbstractClientConnector.java +++ b/server/src/com/vaadin/terminal/AbstractClientConnector.java @@ -187,7 +187,16 @@ public abstract class AbstractClientConnector implements ClientConnector { @Override public Class getStateType() { try { - Method m = getClass().getMethod("getState", (Class[]) null); + Method m = null; + Class class1 = getClass(); + while (m == null && class1 != null) { + m = class1.getDeclaredMethod("getState", (Class[]) null); + class1 = class1.getSuperclass(); + } + if (m == null) { + throw new NoSuchMethodException(getClass().getCanonicalName() + + ".getState()"); + } Class type = m.getReturnType(); return type.asSubclass(SharedState.class); } catch (Exception e) { -- cgit v1.2.3 From 8606feb8596ed8f6cd3ed41160706b692f6f4679 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Thu, 23 Aug 2012 10:46:17 +0300 Subject: Make getStateType() find getState methods in superclases (#9315) Also cache the result as the finding logic could be quite expensive with multiple exceptions thrown and caught. --- .../vaadin/terminal/AbstractClientConnector.java | 39 +++++++++++++--------- 1 file changed, 24 insertions(+), 15 deletions(-) (limited to 'server/src/com/vaadin') diff --git a/server/src/com/vaadin/terminal/AbstractClientConnector.java b/server/src/com/vaadin/terminal/AbstractClientConnector.java index 1025297a4f..53b3bb1c9d 100644 --- a/server/src/com/vaadin/terminal/AbstractClientConnector.java +++ b/server/src/com/vaadin/terminal/AbstractClientConnector.java @@ -71,6 +71,8 @@ public abstract class AbstractClientConnector implements ClientConnector { */ private SharedState sharedState; + private Class stateType; + /** * Pending RPC method invocations to be sent. */ @@ -179,26 +181,33 @@ public abstract class AbstractClientConnector implements ClientConnector { } } - /* - * (non-Javadoc) - * - * @see com.vaadin.terminal.gwt.server.ClientConnector#getStateType() - */ @Override public Class getStateType() { + // Lazy load because finding type can be expensive because of the + // exceptions flying around + if (stateType == null) { + stateType = findStateType(); + } + + return stateType; + } + + private Class findStateType() { try { - Method m = null; Class class1 = getClass(); - while (m == null && class1 != null) { - m = class1.getDeclaredMethod("getState", (Class[]) null); - class1 = class1.getSuperclass(); - } - if (m == null) { - throw new NoSuchMethodException(getClass().getCanonicalName() - + ".getState()"); + while (class1 != null) { + try { + Method m = class1.getDeclaredMethod("getState", + (Class[]) null); + Class type = m.getReturnType(); + return type.asSubclass(SharedState.class); + } catch (NoSuchMethodException nsme) { + // Try in superclass instead + class1 = class1.getSuperclass(); + } } - Class type = m.getReturnType(); - return type.asSubclass(SharedState.class); + throw new NoSuchMethodException(getClass().getCanonicalName() + + ".getState()"); } catch (Exception e) { throw new RuntimeException("Error finding state type for " + getClass().getName(), e); -- cgit v1.2.3 From af8afede9f0d196a28792dea9e587a1eac829902 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Thu, 23 Aug 2012 11:23:10 +0300 Subject: Handle requestRepaint automatically (#9325) --- .../vaadin/terminal/AbstractClientConnector.java | 10 ++++- .../vaadin/terminal/JavaScriptCallbackHelper.java | 6 +-- server/src/com/vaadin/ui/AbstractComponent.java | 26 +----------- server/src/com/vaadin/ui/AbstractField.java | 4 -- server/src/com/vaadin/ui/AbstractMedia.java | 6 --- .../src/com/vaadin/ui/AbstractOrderedLayout.java | 9 +---- server/src/com/vaadin/ui/AbstractTextField.java | 3 -- server/src/com/vaadin/ui/Button.java | 7 +--- server/src/com/vaadin/ui/ConnectorTracker.java | 4 ++ server/src/com/vaadin/ui/CustomLayout.java | 5 --- server/src/com/vaadin/ui/Form.java | 9 ----- server/src/com/vaadin/ui/GridLayout.java | 6 --- server/src/com/vaadin/ui/JavaScript.java | 8 +--- server/src/com/vaadin/ui/Label.java | 3 -- server/src/com/vaadin/ui/Panel.java | 3 -- server/src/com/vaadin/ui/Root.java | 2 - server/src/com/vaadin/ui/TextArea.java | 2 - server/src/com/vaadin/ui/Video.java | 1 - server/src/com/vaadin/ui/Window.java | 46 +--------------------- 19 files changed, 20 insertions(+), 140 deletions(-) (limited to 'server/src/com/vaadin') diff --git a/server/src/com/vaadin/terminal/AbstractClientConnector.java b/server/src/com/vaadin/terminal/AbstractClientConnector.java index 53b3bb1c9d..2b96c5fb35 100644 --- a/server/src/com/vaadin/terminal/AbstractClientConnector.java +++ b/server/src/com/vaadin/terminal/AbstractClientConnector.java @@ -146,6 +146,12 @@ public abstract class AbstractClientConnector implements ClientConnector { if (null == sharedState) { sharedState = createState(); } + + Root root = getRoot(); + if (root != null && !root.getConnectorTracker().isDirty(this)) { + requestRepaint(); + } + return sharedState; } @@ -280,8 +286,6 @@ public abstract class AbstractClientConnector implements ClientConnector { public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { addMethodInvocationToQueue(rpcInterfaceName, method, args); - // TODO no need to do full repaint if only RPC calls - requestRepaint(); return null; } @@ -304,6 +308,8 @@ public abstract class AbstractClientConnector implements ClientConnector { // add to queue pendingInvocations.add(new ClientMethodInvocation(this, interfaceName, method, parameters)); + // TODO no need to do full repaint if only RPC calls + requestRepaint(); } /** diff --git a/server/src/com/vaadin/terminal/JavaScriptCallbackHelper.java b/server/src/com/vaadin/terminal/JavaScriptCallbackHelper.java index 6153cf2619..f0063a8708 100644 --- a/server/src/com/vaadin/terminal/JavaScriptCallbackHelper.java +++ b/server/src/com/vaadin/terminal/JavaScriptCallbackHelper.java @@ -60,9 +60,7 @@ public class JavaScriptCallbackHelper implements Serializable { JavaScriptFunction javaScriptCallback) { callbacks.put(functionName, javaScriptCallback); JavaScriptConnectorState state = getConnectorState(); - if (state.getCallbackNames().add(functionName)) { - connector.requestRepaint(); - } + state.getCallbackNames().add(functionName); ensureRpc(); } @@ -100,7 +98,6 @@ public class JavaScriptCallbackHelper implements Serializable { connector.addMethodInvocationToQueue( JavaScriptCallbackRpc.class.getName(), CALL_METHOD, new Object[] { name, args }); - connector.requestRepaint(); } public void registerRpc(Class rpcInterfaceType) { @@ -119,7 +116,6 @@ public class JavaScriptCallbackHelper implements Serializable { } rpcInterfaces.put(interfaceName, methodNames); - connector.requestRepaint(); } } diff --git a/server/src/com/vaadin/ui/AbstractComponent.java b/server/src/com/vaadin/ui/AbstractComponent.java index 585e3e2513..a799c5d679 100644 --- a/server/src/com/vaadin/ui/AbstractComponent.java +++ b/server/src/com/vaadin/ui/AbstractComponent.java @@ -148,7 +148,6 @@ public abstract class AbstractComponent extends AbstractClientConnector public void setStyleName(String style) { if (style == null || "".equals(style)) { getState().setStyles(null); - requestRepaint(); return; } if (getState().getStyles() == null) { @@ -162,7 +161,6 @@ public abstract class AbstractComponent extends AbstractClientConnector styles.add(part); } } - requestRepaint(); } @Override @@ -184,7 +182,6 @@ public abstract class AbstractComponent extends AbstractClientConnector List styles = getState().getStyles(); if (!styles.contains(style)) { styles.add(style); - requestRepaint(); } } @@ -197,7 +194,6 @@ public abstract class AbstractComponent extends AbstractClientConnector getState().getStyles().remove(part); } } - requestRepaint(); } } @@ -221,7 +217,6 @@ public abstract class AbstractComponent extends AbstractClientConnector @Override public void setCaption(String caption) { getState().setCaption(caption); - requestRepaint(); } /* @@ -289,7 +284,6 @@ public abstract class AbstractComponent extends AbstractClientConnector @Override public void setIcon(Resource icon) { getState().setIcon(ResourceReference.create(icon)); - requestRepaint(); } /* @@ -309,10 +303,7 @@ public abstract class AbstractComponent extends AbstractClientConnector */ @Override public void setEnabled(boolean enabled) { - if (getState().isEnabled() != enabled) { - getState().setEnabled(enabled); - requestRepaint(); - } + getState().setEnabled(enabled); } /* @@ -355,7 +346,6 @@ public abstract class AbstractComponent extends AbstractClientConnector */ public void setImmediate(boolean immediate) { getState().setImmediate(immediate); - requestRepaint(); } /* @@ -380,7 +370,6 @@ public abstract class AbstractComponent extends AbstractClientConnector } getState().setVisible(visible); - requestRepaint(); if (getParent() != null) { // Must always repaint the parent (at least the hierarchy) when // visibility of a child component changes. @@ -463,7 +452,6 @@ public abstract class AbstractComponent extends AbstractClientConnector */ public void setDescription(String description) { getState().setDescription(description); - requestRepaint(); } /* @@ -566,7 +554,6 @@ public abstract class AbstractComponent extends AbstractClientConnector @Override public void setReadOnly(boolean readOnly) { getState().setReadOnly(readOnly); - requestRepaint(); } /* @@ -718,17 +705,6 @@ public abstract class AbstractComponent extends AbstractClientConnector } } - /* Documentation copied from interface */ - @Override - public void requestRepaint() { - // Invisible components (by flag in this particular component) do not - // need repaints - if (!getState().isVisible()) { - return; - } - super.requestRepaint(); - } - /* General event framework */ private static final Method COMPONENT_EVENT_METHOD = ReflectTools diff --git a/server/src/com/vaadin/ui/AbstractField.java b/server/src/com/vaadin/ui/AbstractField.java index f13c6a3138..23481eca9e 100644 --- a/server/src/com/vaadin/ui/AbstractField.java +++ b/server/src/com/vaadin/ui/AbstractField.java @@ -360,7 +360,6 @@ public abstract class AbstractField extends AbstractComponent implements private void setModified(boolean modified) { getState().setModified(modified); - requestRepaint(); } /** @@ -1101,7 +1100,6 @@ public abstract class AbstractField extends AbstractComponent implements @Override public void readOnlyStatusChange(Property.ReadOnlyStatusChangeEvent event) { getState().setPropertyReadOnly(event.getProperty().isReadOnly()); - requestRepaint(); } /** @@ -1233,7 +1231,6 @@ public abstract class AbstractField extends AbstractComponent implements @Override public void setTabIndex(int tabIndex) { getState().setTabIndex(tabIndex); - requestRepaint(); } /** @@ -1336,7 +1333,6 @@ public abstract class AbstractField extends AbstractComponent implements @Override public void setRequired(boolean required) { getState().setRequired(required); - requestRepaint(); } /** diff --git a/server/src/com/vaadin/ui/AbstractMedia.java b/server/src/com/vaadin/ui/AbstractMedia.java index 7a29c8f4ce..77c12ac045 100644 --- a/server/src/com/vaadin/ui/AbstractMedia.java +++ b/server/src/com/vaadin/ui/AbstractMedia.java @@ -66,7 +66,6 @@ public abstract class AbstractMedia extends AbstractComponent { if (source != null) { getState().getSources().add(new ResourceReference(source)); getState().getSourceTypes().add(source.getMIMEType()); - requestRepaint(); } } @@ -103,7 +102,6 @@ public abstract class AbstractMedia extends AbstractComponent { */ public void setShowControls(boolean showControls) { getState().setShowControls(showControls); - requestRepaint(); } /** @@ -126,7 +124,6 @@ public abstract class AbstractMedia extends AbstractComponent { */ public void setAltText(String altText) { getState().setAltText(altText); - requestRepaint(); } /** @@ -145,7 +142,6 @@ public abstract class AbstractMedia extends AbstractComponent { */ public void setHtmlContentAllowed(boolean htmlContentAllowed) { getState().setHtmlContentAllowed(htmlContentAllowed); - requestRepaint(); } /** @@ -164,7 +160,6 @@ public abstract class AbstractMedia extends AbstractComponent { */ public void setAutoplay(boolean autoplay) { getState().setAutoplay(autoplay); - requestRepaint(); } /** @@ -181,7 +176,6 @@ public abstract class AbstractMedia extends AbstractComponent { */ public void setMuted(boolean muted) { getState().setMuted(muted); - requestRepaint(); } /** diff --git a/server/src/com/vaadin/ui/AbstractOrderedLayout.java b/server/src/com/vaadin/ui/AbstractOrderedLayout.java index ce6a3eafbd..0a57cb98c4 100644 --- a/server/src/com/vaadin/ui/AbstractOrderedLayout.java +++ b/server/src/com/vaadin/ui/AbstractOrderedLayout.java @@ -144,13 +144,10 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements private void componentRemoved(Component c) { getState().getChildData().remove(c); - requestRepaint(); } private void componentAdded(Component c) { getState().getChildData().put(c, new ChildComponentData()); - requestRepaint(); - } /** @@ -240,7 +237,6 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements if (childData != null) { // Alignments are bit masks childData.setAlignmentBitmask(alignment.getBitMask()); - requestRepaint(); } else { throw new IllegalArgumentException( "Component must be added to layout before using setComponentAlignment()"); @@ -274,7 +270,6 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements @Override public void setSpacing(boolean spacing) { getState().setSpacing(spacing); - requestRepaint(); } /* @@ -324,8 +319,7 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements } childData.setExpandRatio(ratio); - requestRepaint(); - }; + } /** * Returns the expand ratio of given component. @@ -404,6 +398,5 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements @Override public void setMargin(MarginInfo marginInfo) { getState().setMarginsBitmask(marginInfo.getBitMask()); - requestRepaint(); } } diff --git a/server/src/com/vaadin/ui/AbstractTextField.java b/server/src/com/vaadin/ui/AbstractTextField.java index 54d15eff26..51d5449fdd 100644 --- a/server/src/com/vaadin/ui/AbstractTextField.java +++ b/server/src/com/vaadin/ui/AbstractTextField.java @@ -324,7 +324,6 @@ public abstract class AbstractTextField extends AbstractField implements */ public void setMaxLength(int maxLength) { getState().setMaxLength(maxLength); - requestRepaint(); } /** @@ -351,7 +350,6 @@ public abstract class AbstractTextField extends AbstractField implements columns = 0; } getState().setColumns(columns); - requestRepaint(); } /** @@ -372,7 +370,6 @@ public abstract class AbstractTextField extends AbstractField implements */ public void setInputPrompt(String inputPrompt) { getState().setInputPrompt(inputPrompt); - requestRepaint(); } /* ** Text Change Events ** */ diff --git a/server/src/com/vaadin/ui/Button.java b/server/src/com/vaadin/ui/Button.java index c55a955679..8546d8f830 100644 --- a/server/src/com/vaadin/ui/Button.java +++ b/server/src/com/vaadin/ui/Button.java @@ -478,7 +478,6 @@ public class Button extends AbstractComponent implements */ public void setDisableOnClick(boolean disableOnClick) { getState().setDisableOnClick(disableOnClick); - requestRepaint(); } /* @@ -499,7 +498,6 @@ public class Button extends AbstractComponent implements @Override public void setTabIndex(int tabIndex) { getState().setTabIndex(tabIndex); - requestRepaint(); } @Override @@ -526,10 +524,7 @@ public class Button extends AbstractComponent implements * false otherwise */ public void setHtmlContentAllowed(boolean htmlContentAllowed) { - if (getState().isHtmlContentAllowed() != htmlContentAllowed) { - getState().setHtmlContentAllowed(htmlContentAllowed); - requestRepaint(); - } + getState().setHtmlContentAllowed(htmlContentAllowed); } /** diff --git a/server/src/com/vaadin/ui/ConnectorTracker.java b/server/src/com/vaadin/ui/ConnectorTracker.java index 2afe7f9025..72879e0a25 100644 --- a/server/src/com/vaadin/ui/ConnectorTracker.java +++ b/server/src/com/vaadin/ui/ConnectorTracker.java @@ -385,4 +385,8 @@ public class ConnectorTracker implements Serializable { diffStates.put(connector, diffState); } + public boolean isDirty(ClientConnector connector) { + return dirtyConnectors.contains(connector); + } + } diff --git a/server/src/com/vaadin/ui/CustomLayout.java b/server/src/com/vaadin/ui/CustomLayout.java index 0948a92e5b..54308b99c3 100644 --- a/server/src/com/vaadin/ui/CustomLayout.java +++ b/server/src/com/vaadin/ui/CustomLayout.java @@ -145,7 +145,6 @@ public class CustomLayout extends AbstractLayout implements Vaadin6Component { getState().getChildLocations().put(c, location); c.setParent(this); fireComponentAttachEvent(c); - requestRepaint(); } /** @@ -176,7 +175,6 @@ public class CustomLayout extends AbstractLayout implements Vaadin6Component { slots.values().remove(c); getState().getChildLocations().remove(c); super.removeComponent(c); - requestRepaint(); } /** @@ -251,7 +249,6 @@ public class CustomLayout extends AbstractLayout implements Vaadin6Component { slots.put(oldLocation, newComponent); getState().getChildLocations().put(newComponent, oldLocation); getState().getChildLocations().put(oldComponent, newLocation); - requestRepaint(); } } @@ -277,7 +274,6 @@ public class CustomLayout extends AbstractLayout implements Vaadin6Component { public void setTemplateName(String templateName) { getState().setTemplateName(templateName); getState().setTemplateContents(null); - requestRepaint(); } /** @@ -288,7 +284,6 @@ public class CustomLayout extends AbstractLayout implements Vaadin6Component { public void setTemplateContents(String templateContents) { getState().setTemplateContents(templateContents); getState().setTemplateName(null); - requestRepaint(); } @Override diff --git a/server/src/com/vaadin/ui/Form.java b/server/src/com/vaadin/ui/Form.java index 689a088c41..8f63ad511a 100644 --- a/server/src/com/vaadin/ui/Form.java +++ b/server/src/com/vaadin/ui/Form.java @@ -820,10 +820,6 @@ public class Form extends AbstractField implements Item.Editor, // Replace the previous layout layout.setParent(this); getState().setLayout(layout); - - // Hierarchy has changed so we need to repaint (this could be a - // hierarchy repaint only) - requestRepaint(); } /** @@ -1239,11 +1235,6 @@ public class Form extends AbstractField implements Item.Editor, getState().setFooter(footer); footer.setParent(this); - - // Hierarchy has changed so we need to repaint (this could be a - // hierarchy repaint only) - requestRepaint(); - } @Override diff --git a/server/src/com/vaadin/ui/GridLayout.java b/server/src/com/vaadin/ui/GridLayout.java index 5abfb1a22e..5de6cc79c7 100644 --- a/server/src/com/vaadin/ui/GridLayout.java +++ b/server/src/com/vaadin/ui/GridLayout.java @@ -962,8 +962,6 @@ public class GridLayout extends AbstractLayout implements } getState().setColumns(columns); - - requestRepaint(); } /** @@ -1006,8 +1004,6 @@ public class GridLayout extends AbstractLayout implements } getState().setRows(rows); - - requestRepaint(); } /** @@ -1132,7 +1128,6 @@ public class GridLayout extends AbstractLayout implements @Override public void setSpacing(boolean spacing) { getState().setSpacing(spacing); - requestRepaint(); } /* @@ -1391,7 +1386,6 @@ public class GridLayout extends AbstractLayout implements @Override public void setMargin(MarginInfo marginInfo) { getState().setMarginsBitmask(marginInfo.getBitMask()); - requestRepaint(); } /* diff --git a/server/src/com/vaadin/ui/JavaScript.java b/server/src/com/vaadin/ui/JavaScript.java index 5984c63e7a..e34ccae82a 100644 --- a/server/src/com/vaadin/ui/JavaScript.java +++ b/server/src/com/vaadin/ui/JavaScript.java @@ -93,9 +93,7 @@ public class JavaScript extends AbstractExtension { */ public void addFunction(String name, JavaScriptFunction function) { functions.put(name, function); - if (getState().getNames().add(name)) { - requestRepaint(); - } + getState().getNames().add(name); } /** @@ -111,9 +109,7 @@ public class JavaScript extends AbstractExtension { */ public void removeFunction(String name) { functions.remove(name); - if (getState().getNames().remove(name)) { - requestRepaint(); - } + getState().getNames().remove(name); } /** diff --git a/server/src/com/vaadin/ui/Label.java b/server/src/com/vaadin/ui/Label.java index d0a6059865..5055c7e573 100644 --- a/server/src/com/vaadin/ui/Label.java +++ b/server/src/com/vaadin/ui/Label.java @@ -190,7 +190,6 @@ public class Label extends AbstractComponent implements Property, } if (getPropertyDataSource() == null) { getState().text = (String) newStringValue; - requestRepaint(); } else { throw new IllegalStateException( "Label is only a Property.Viewer and cannot update its data source"); @@ -294,7 +293,6 @@ public class Label extends AbstractComponent implements Property, } getState().contentMode = contentMode; - requestRepaint(); } /* Value change events */ @@ -385,7 +383,6 @@ public class Label extends AbstractComponent implements Property, public void valueChange(Property.ValueChangeEvent event) { // Update the internal value from the data source getState().text = getValue(); - requestRepaint(); fireValueChange(); } diff --git a/server/src/com/vaadin/ui/Panel.java b/server/src/com/vaadin/ui/Panel.java index 985eed8a28..1f3b8580f8 100644 --- a/server/src/com/vaadin/ui/Panel.java +++ b/server/src/com/vaadin/ui/Panel.java @@ -318,7 +318,6 @@ public class Panel extends AbstractComponentContainer implements Scrollable, "Scroll offset must be at least 0"); } getState().setScrollLeft(scrollLeft); - requestRepaint(); } /* @@ -333,7 +332,6 @@ public class Panel extends AbstractComponentContainer implements Scrollable, "Scroll offset must be at least 0"); } getState().setScrollTop(scrollTop); - requestRepaint(); } /* Documented in superclass */ @@ -465,7 +463,6 @@ public class Panel extends AbstractComponentContainer implements Scrollable, @Override public void setTabIndex(int tabIndex) { getState().setTabIndex(tabIndex); - requestRepaint(); } /** diff --git a/server/src/com/vaadin/ui/Root.java b/server/src/com/vaadin/ui/Root.java index 4b90d613bb..f96fa1dc5a 100644 --- a/server/src/com/vaadin/ui/Root.java +++ b/server/src/com/vaadin/ui/Root.java @@ -860,8 +860,6 @@ public abstract class Root extends AbstractComponentContainer implements if (content != null) { super.addComponent(content); } - - requestRepaint(); } /** diff --git a/server/src/com/vaadin/ui/TextArea.java b/server/src/com/vaadin/ui/TextArea.java index f885781d46..0dc9722eb3 100644 --- a/server/src/com/vaadin/ui/TextArea.java +++ b/server/src/com/vaadin/ui/TextArea.java @@ -96,7 +96,6 @@ public class TextArea extends AbstractTextField { rows = 0; } getState().setRows(rows); - requestRepaint(); } /** @@ -117,7 +116,6 @@ public class TextArea extends AbstractTextField { */ public void setWordwrap(boolean wordwrap) { getState().setWordwrap(wordwrap); - requestRepaint(); } /** diff --git a/server/src/com/vaadin/ui/Video.java b/server/src/com/vaadin/ui/Video.java index 04ecc9af06..b54d404da6 100644 --- a/server/src/com/vaadin/ui/Video.java +++ b/server/src/com/vaadin/ui/Video.java @@ -80,7 +80,6 @@ public class Video extends AbstractMedia { */ public void setPoster(Resource poster) { getState().setPoster(ResourceReference.create(poster)); - requestRepaint(); } /** diff --git a/server/src/com/vaadin/ui/Window.java b/server/src/com/vaadin/ui/Window.java index 705e093bce..902d33bc64 100644 --- a/server/src/com/vaadin/ui/Window.java +++ b/server/src/com/vaadin/ui/Window.java @@ -174,14 +174,14 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier, final int x = positionx.intValue(); // This is information from the client so it is already using the // position. No need to repaint. - setPositionX(x < 0 ? -1 : x, false); + setPositionX(x < 0 ? -1 : x); } final Integer positiony = (Integer) variables.get("positiony"); if (positiony != null) { final int y = positiony.intValue(); // This is information from the client so it is already using the // position. No need to repaint. - setPositionY(y < 0 ? -1 : y, false); + setPositionY(y < 0 ? -1 : y); } if (isClosable()) { @@ -255,26 +255,8 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier, * @since 4.0.0 */ public void setPositionX(int positionX) { - setPositionX(positionX, true); - } - - /** - * Sets the distance of Window left border in pixels from left border of the - * containing (main window). - * - * @param positionX - * the Distance of Window left border in pixels from left border - * of the containing (main window). or -1 if unspecified. - * @param repaintRequired - * true if the window needs to be repainted, false otherwise - * @since 6.3.4 - */ - private void setPositionX(int positionX, boolean repaintRequired) { getState().setPositionX(positionX); getState().setCentered(false); - if (repaintRequired) { - requestRepaint(); - } } /** @@ -301,27 +283,8 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier, * @since 4.0.0 */ public void setPositionY(int positionY) { - setPositionY(positionY, true); - } - - /** - * Sets the distance of Window top border in pixels from top border of the - * containing (main window). - * - * @param positionY - * the Distance of Window top border in pixels from top border of - * the containing (main window). or -1 if unspecified - * @param repaintRequired - * true if the window needs to be repainted, false otherwise - * - * @since 6.3.4 - */ - private void setPositionY(int positionY, boolean repaintRequired) { getState().setPositionY(positionY); getState().setCentered(false); - if (repaintRequired) { - requestRepaint(); - } } private static final Method WINDOW_CLOSE_METHOD; @@ -543,7 +506,6 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier, public void setModal(boolean modal) { getState().setModal(modal); center(); - requestRepaint(); } /** @@ -561,7 +523,6 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier, */ public void setResizable(boolean resizable) { getState().setResizable(resizable); - requestRepaint(); } /** @@ -595,7 +556,6 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier, */ public void setResizeLazy(boolean resizeLazy) { getState().setResizeLazy(resizeLazy); - requestRepaint(); } /** @@ -609,7 +569,6 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier, */ public void center() { getState().setCentered(true); - requestRepaint(); } /** @@ -674,7 +633,6 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier, */ public void setDraggable(boolean draggable) { getState().setDraggable(draggable); - requestRepaint(); } /* -- cgit v1.2.3 From bc6786f0dc865b88dd2eeb0614534bfce80dee35 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Thu, 23 Aug 2012 12:09:48 +0300 Subject: Rename requestRepaint to markAsDirty (#9378) Also remove some requestRepaint calls that are no longer needed (#9325) --- server/src/com/vaadin/event/ActionManager.java | 2 +- .../vaadin/terminal/AbstractClientConnector.java | 23 ++++++-- server/src/com/vaadin/terminal/Page.java | 10 ++-- .../src/com/vaadin/terminal/Vaadin6Component.java | 11 ++++ .../terminal/gwt/server/ClientConnector.java | 28 ++++++++- .../terminal/gwt/server/DragAndDropService.java | 12 ++++ server/src/com/vaadin/ui/AbsoluteLayout.java | 34 +++++------ server/src/com/vaadin/ui/AbstractComponent.java | 12 ++-- .../com/vaadin/ui/AbstractComponentContainer.java | 9 +-- server/src/com/vaadin/ui/AbstractField.java | 26 ++++----- .../src/com/vaadin/ui/AbstractOrderedLayout.java | 2 +- server/src/com/vaadin/ui/AbstractSelect.java | 36 ++++++------ server/src/com/vaadin/ui/AbstractSplitPanel.java | 12 +--- server/src/com/vaadin/ui/AbstractTextField.java | 14 ++--- server/src/com/vaadin/ui/ComboBox.java | 4 +- server/src/com/vaadin/ui/CssLayout.java | 10 ++-- server/src/com/vaadin/ui/CustomComponent.java | 2 +- server/src/com/vaadin/ui/CustomField.java | 4 +- server/src/com/vaadin/ui/DateField.java | 18 +++--- server/src/com/vaadin/ui/DragAndDropWrapper.java | 8 +-- server/src/com/vaadin/ui/Embedded.java | 22 ++++---- server/src/com/vaadin/ui/Form.java | 16 +++--- server/src/com/vaadin/ui/GridLayout.java | 16 +++--- server/src/com/vaadin/ui/Label.java | 4 +- server/src/com/vaadin/ui/Link.java | 10 ++-- server/src/com/vaadin/ui/ListSelect.java | 4 +- server/src/com/vaadin/ui/MenuBar.java | 40 ++++++------- server/src/com/vaadin/ui/NativeSelect.java | 2 +- server/src/com/vaadin/ui/OptionGroup.java | 10 ++-- server/src/com/vaadin/ui/Panel.java | 2 +- server/src/com/vaadin/ui/PopupDateField.java | 2 +- server/src/com/vaadin/ui/PopupView.java | 4 +- server/src/com/vaadin/ui/ProgressIndicator.java | 4 +- server/src/com/vaadin/ui/RichTextArea.java | 4 +- server/src/com/vaadin/ui/Root.java | 10 ++-- server/src/com/vaadin/ui/Select.java | 10 +++- server/src/com/vaadin/ui/Slider.java | 8 +-- server/src/com/vaadin/ui/TabSheet.java | 34 +++++------ server/src/com/vaadin/ui/Table.java | 66 ++++++++++++++-------- server/src/com/vaadin/ui/Tree.java | 38 ++++++------- server/src/com/vaadin/ui/TreeTable.java | 6 +- server/src/com/vaadin/ui/TwinColSelect.java | 8 +-- server/src/com/vaadin/ui/Upload.java | 14 ++--- server/src/com/vaadin/ui/Window.java | 2 +- .../textfield/TextFieldWithPropertyFormatter.java | 4 +- .../PerformanceTestLabelsAndOrderedLayouts.java | 2 +- .../com/vaadin/tests/TestSizeableIncomponents.java | 4 +- ...eComponentsFromAbsoluteLayoutToInnerLayout.java | 2 +- .../datefield/DateFieldRangeValidation.java | 2 +- .../datefield/DisabledDateFieldWidth.java | 2 +- .../components/embedded/EmbeddedImageRefresh.java | 4 +- .../MoveComponentsFromGridLayoutToInnerLayout.java | 2 +- .../splitpanel/SplitPanelExtraScrollbars.java | 4 +- .../tests/components/table/EditableTableLeak.java | 2 +- .../table/TableClickValueChangeInteraction.java | 2 +- .../table/TableColumnResizeContentsWidth.java | 4 +- .../tests/components/tree/TreeFiltering.java | 2 +- .../components/treetable/KeepAllItemsVisible.java | 2 +- .../vaadin/tests/dd/NotPaintedAcceptSource.java | 2 +- .../tests/extensions/HelloWorldExtension.java | 1 - .../extensions/SimpleJavaScriptExtensionTest.java | 1 - .../vaadin/tests/layouts/CssLayoutCustomCss.java | 2 +- .../v7a2/ComponentInStateComponent.java | 1 - .../tests/minitutorials/v7a2/MyComponent.java | 1 - .../tests/minitutorials/v7a2/WidgetContainer.java | 6 +- .../com/vaadin/tests/minitutorials/v7a3/Flot.java | 2 - .../tests/tickets/Ticket1834PanelScrolling.java | 2 +- .../com/vaadin/tests/tickets/Ticket1983.java | 2 +- .../com/vaadin/tests/tickets/Ticket2060.java | 6 +- 69 files changed, 371 insertions(+), 306 deletions(-) (limited to 'server/src/com/vaadin') diff --git a/server/src/com/vaadin/event/ActionManager.java b/server/src/com/vaadin/event/ActionManager.java index 50ddef6265..296d12ba92 100644 --- a/server/src/com/vaadin/event/ActionManager.java +++ b/server/src/com/vaadin/event/ActionManager.java @@ -67,7 +67,7 @@ public class ActionManager implements Action.Container, Action.Handler, private void requestRepaint() { if (viewer != null) { - viewer.requestRepaint(); + viewer.markAsDirty(); } } diff --git a/server/src/com/vaadin/terminal/AbstractClientConnector.java b/server/src/com/vaadin/terminal/AbstractClientConnector.java index 2b96c5fb35..d2490225fb 100644 --- a/server/src/com/vaadin/terminal/AbstractClientConnector.java +++ b/server/src/com/vaadin/terminal/AbstractClientConnector.java @@ -85,8 +85,15 @@ public abstract class AbstractClientConnector implements ClientConnector { private ClientConnector parent; /* Documentation copied from interface */ + @Deprecated @Override public void requestRepaint() { + markAsDirty(); + } + + /* Documentation copied from interface */ + @Override + public void markAsDirty() { Root root = getRoot(); if (root != null) { root.getConnectorTracker().markDirty(this); @@ -389,11 +396,17 @@ public abstract class AbstractClientConnector implements ClientConnector { } @Override + @Deprecated public void requestRepaintAll() { - requestRepaint(); + markAsDirtyRecursive(); + } + + @Override + public void markAsDirtyRecursive() { + markAsDirty(); for (ClientConnector connector : getAllChildrenIterable(this)) { - connector.requestRepaintAll(); + connector.markAsDirtyRecursive(); } } @@ -469,14 +482,14 @@ public abstract class AbstractClientConnector implements ClientConnector { extensions.add(extension); extension.setParent(this); - requestRepaint(); + markAsDirty(); } @Override public void removeExtension(Extension extension) { extension.setParent(null); extensions.remove(extension); - requestRepaint(); + markAsDirty(); } @Override @@ -513,7 +526,7 @@ public abstract class AbstractClientConnector implements ClientConnector { @Override public void attach() { - requestRepaint(); + markAsDirty(); getRoot().getConnectorTracker().registerConnector(this); diff --git a/server/src/com/vaadin/terminal/Page.java b/server/src/com/vaadin/terminal/Page.java index 8eb77b7d0d..d41d500bb0 100644 --- a/server/src/com/vaadin/terminal/Page.java +++ b/server/src/com/vaadin/terminal/Page.java @@ -332,7 +332,7 @@ public class Page implements Serializable { if (fireEvents) { fireEvent(new FragmentChangedEvent(this, newFragment)); } - root.requestRepaint(); + root.markAsDirty(); } } @@ -523,7 +523,7 @@ public class Page implements Serializable { */ public void open(Resource resource) { openList.add(new OpenResource(resource, null, -1, -1, BORDER_DEFAULT)); - root.requestRepaint(); + root.markAsDirty(); } /** @@ -566,7 +566,7 @@ public class Page implements Serializable { public void open(Resource resource, String windowName) { openList.add(new OpenResource(resource, windowName, -1, -1, BORDER_DEFAULT)); - root.requestRepaint(); + root.markAsDirty(); } /** @@ -589,7 +589,7 @@ public class Page implements Serializable { int height, BorderStyle border) { openList.add(new OpenResource(resource, windowName, width, height, border)); - root.requestRepaint(); + root.markAsDirty(); } /** @@ -603,7 +603,7 @@ public class Page implements Serializable { notifications = new LinkedList(); } notifications.add(notification); - root.requestRepaint(); + root.markAsDirty(); } /** diff --git a/server/src/com/vaadin/terminal/Vaadin6Component.java b/server/src/com/vaadin/terminal/Vaadin6Component.java index 048000e31d..eb169c90f9 100644 --- a/server/src/com/vaadin/terminal/Vaadin6Component.java +++ b/server/src/com/vaadin/terminal/Vaadin6Component.java @@ -52,4 +52,15 @@ public interface Vaadin6Component extends VariableOwner, Component, */ public void paintContent(PaintTarget target) throws PaintException; + /** + * (non-Javadoc) {@inheritDoc} + *

      + * For a Vaadin6Component, markAsDirty will also cause + * {@link #paintContent(PaintTarget)} to be called before sending changes to + * the client. + * + * @see com.vaadin.terminal.gwt.server.ClientConnector#markAsDirty() + */ + @Override + public void markAsDirty(); } diff --git a/server/src/com/vaadin/terminal/gwt/server/ClientConnector.java b/server/src/com/vaadin/terminal/gwt/server/ClientConnector.java index 87524fe28f..24675c9e45 100644 --- a/server/src/com/vaadin/terminal/gwt/server/ClientConnector.java +++ b/server/src/com/vaadin/terminal/gwt/server/ClientConnector.java @@ -65,17 +65,39 @@ public interface ClientConnector extends Connector, RpcTarget { public ClientConnector getParent(); /** - * Requests that the connector should be repainted as soon as possible. + * @deprecated As of 7.0.0, use {@link #markAsDirty()} instead */ + @Deprecated public void requestRepaint(); /** - * Causes a repaint of this connector, and all connectors below it. + * Marks that this connector's state might have changed. When the framework + * is about to send new data to the client-side, it will run + * {@link #beforeClientResponse(boolean)} followed by {@link #encodeState()} + * for all connectors that are marked as dirty and send any updated state + * info to the client. * + * @since 7.0.0 + */ + public void markAsDirty(); + + /** + * @deprecated As of 7.0.0, use {@link #markAsDirtyRecursive()} instead + */ + @Deprecated + public void requestRepaintAll(); + + /** + * Causes this connector and all connectors below it to be marked as dirty. + *

      * This should only be used in special cases, e.g when the state of a * descendant depends on the state of an ancestor. + * + * @see #markAsDirty() + * + * @since 7.0.0 */ - public void requestRepaintAll(); + public void markAsDirtyRecursive(); /** * Sets the parent connector of the connector. diff --git a/server/src/com/vaadin/terminal/gwt/server/DragAndDropService.java b/server/src/com/vaadin/terminal/gwt/server/DragAndDropService.java index 981d2569d1..221598171c 100644 --- a/server/src/com/vaadin/terminal/gwt/server/DragAndDropService.java +++ b/server/src/com/vaadin/terminal/gwt/server/DragAndDropService.java @@ -264,7 +264,13 @@ public class DragAndDropService implements VariableOwner, ClientConnector { } @Override + @Deprecated public void requestRepaint() { + markAsDirty(); + } + + @Override + public void markAsDirty() { // TODO Auto-generated method stub } @@ -276,7 +282,13 @@ public class DragAndDropService implements VariableOwner, ClientConnector { } @Override + @Deprecated public void requestRepaintAll() { + markAsDirtyRecursive(); + } + + @Override + public void markAsDirtyRecursive() { // TODO Auto-generated method stub } diff --git a/server/src/com/vaadin/ui/AbsoluteLayout.java b/server/src/com/vaadin/ui/AbsoluteLayout.java index 8981895717..56bbd19852 100644 --- a/server/src/com/vaadin/ui/AbsoluteLayout.java +++ b/server/src/com/vaadin/ui/AbsoluteLayout.java @@ -153,7 +153,7 @@ public class AbsoluteLayout extends AbstractLayout implements internalRemoveComponent(c); throw e; } - requestRepaint(); + markAsDirty(); } /** @@ -197,7 +197,7 @@ public class AbsoluteLayout extends AbstractLayout implements public void removeComponent(Component c) { internalRemoveComponent(c); super.removeComponent(c); - requestRepaint(); + markAsDirty(); } /** @@ -245,7 +245,7 @@ public class AbsoluteLayout extends AbstractLayout implements private void internalSetPosition(Component component, ComponentPosition position) { componentToCoordinates.put(component, position); - requestRepaint(); + markAsDirty(); } /** @@ -322,7 +322,7 @@ public class AbsoluteLayout extends AbstractLayout implements } } } - requestRepaint(); + markAsDirty(); } /** @@ -363,7 +363,7 @@ public class AbsoluteLayout extends AbstractLayout implements public void setTop(Float topValue, Unit topUnits) { this.topValue = topValue; this.topUnits = topUnits; - requestRepaint(); + markAsDirty(); } /** @@ -379,7 +379,7 @@ public class AbsoluteLayout extends AbstractLayout implements public void setRight(Float rightValue, Unit rightUnits) { this.rightValue = rightValue; this.rightUnits = rightUnits; - requestRepaint(); + markAsDirty(); } /** @@ -395,7 +395,7 @@ public class AbsoluteLayout extends AbstractLayout implements public void setBottom(Float bottomValue, Unit bottomUnits) { this.bottomValue = bottomValue; this.bottomUnits = bottomUnits; - requestRepaint(); + markAsDirty(); } /** @@ -411,7 +411,7 @@ public class AbsoluteLayout extends AbstractLayout implements public void setLeft(Float leftValue, Unit leftUnits) { this.leftValue = leftValue; this.leftUnits = leftUnits; - requestRepaint(); + markAsDirty(); } /** @@ -422,7 +422,7 @@ public class AbsoluteLayout extends AbstractLayout implements */ public void setZIndex(int zIndex) { this.zIndex = zIndex; - requestRepaint(); + markAsDirty(); } /** @@ -434,7 +434,7 @@ public class AbsoluteLayout extends AbstractLayout implements */ public void setTopValue(Float topValue) { this.topValue = topValue; - requestRepaint(); + markAsDirty(); } /** @@ -468,7 +468,7 @@ public class AbsoluteLayout extends AbstractLayout implements */ public void setRightValue(Float rightValue) { this.rightValue = rightValue; - requestRepaint(); + markAsDirty(); } /** @@ -492,7 +492,7 @@ public class AbsoluteLayout extends AbstractLayout implements */ public void setBottomValue(Float bottomValue) { this.bottomValue = bottomValue; - requestRepaint(); + markAsDirty(); } /** @@ -516,7 +516,7 @@ public class AbsoluteLayout extends AbstractLayout implements */ public void setLeftValue(Float leftValue) { this.leftValue = leftValue; - requestRepaint(); + markAsDirty(); } /** @@ -538,7 +538,7 @@ public class AbsoluteLayout extends AbstractLayout implements */ public void setTopUnits(Unit topUnits) { this.topUnits = topUnits; - requestRepaint(); + markAsDirty(); } /** @@ -560,7 +560,7 @@ public class AbsoluteLayout extends AbstractLayout implements */ public void setRightUnits(Unit rightUnits) { this.rightUnits = rightUnits; - requestRepaint(); + markAsDirty(); } /** @@ -582,7 +582,7 @@ public class AbsoluteLayout extends AbstractLayout implements */ public void setBottomUnits(Unit bottomUnits) { this.bottomUnits = bottomUnits; - requestRepaint(); + markAsDirty(); } /** @@ -604,7 +604,7 @@ public class AbsoluteLayout extends AbstractLayout implements */ public void setLeftUnits(Unit leftUnits) { this.leftUnits = leftUnits; - requestRepaint(); + markAsDirty(); } /** diff --git a/server/src/com/vaadin/ui/AbstractComponent.java b/server/src/com/vaadin/ui/AbstractComponent.java index a799c5d679..b1393488f7 100644 --- a/server/src/com/vaadin/ui/AbstractComponent.java +++ b/server/src/com/vaadin/ui/AbstractComponent.java @@ -262,7 +262,7 @@ public abstract class AbstractComponent extends AbstractClientConnector this.locale = locale; // FIXME: Reload value if there is a converter - requestRepaint(); + markAsDirty(); } /* @@ -373,7 +373,7 @@ public abstract class AbstractComponent extends AbstractClientConnector if (getParent() != null) { // Must always repaint the parent (at least the hierarchy) when // visibility of a child component changes. - getParent().requestRepaint(); + getParent().markAsDirty(); } } @@ -535,7 +535,7 @@ public abstract class AbstractComponent extends AbstractClientConnector public void setComponentError(ErrorMessage componentError) { this.componentError = componentError; fireComponentErrorEvent(); - requestRepaint(); + markAsDirty(); } /* @@ -751,7 +751,6 @@ public abstract class AbstractComponent extends AbstractClientConnector if (needRepaint) { getState().addRegisteredEventListener(eventIdentifier); - requestRepaint(); } } @@ -800,7 +799,6 @@ public abstract class AbstractComponent extends AbstractClientConnector eventRouter.removeListener(eventType, target); if (!eventRouter.hasListeners(eventType)) { getState().removeRegisteredEventListener(eventIdentifier); - requestRepaint(); } } } @@ -1107,7 +1105,7 @@ public abstract class AbstractComponent extends AbstractClientConnector } this.height = height; heightUnit = unit; - requestRepaint(); + markAsDirty(); // ComponentSizeValidator.setHeightLocation(this); } @@ -1145,7 +1143,7 @@ public abstract class AbstractComponent extends AbstractClientConnector } this.width = width; widthUnit = unit; - requestRepaint(); + markAsDirty(); // ComponentSizeValidator.setWidthLocation(this); } diff --git a/server/src/com/vaadin/ui/AbstractComponentContainer.java b/server/src/com/vaadin/ui/AbstractComponentContainer.java index 7450c76fda..4939eb1265 100644 --- a/server/src/com/vaadin/ui/AbstractComponentContainer.java +++ b/server/src/com/vaadin/ui/AbstractComponentContainer.java @@ -212,7 +212,7 @@ public abstract class AbstractComponentContainer extends AbstractComponent // If the visibility state is toggled it might affect all children // aswell, e.g. make container visible should make children visible if // they were only hidden because the container was hidden. - requestRepaintAll(); + markAsDirtyRecursive(); } @Override @@ -306,12 +306,7 @@ public abstract class AbstractComponentContainer extends AbstractComponent private void repaintChildTrees(Collection dirtyChildren) { for (Component c : dirtyChildren) { - if (c instanceof ComponentContainer) { - ComponentContainer cc = (ComponentContainer) c; - cc.requestRepaintAll(); - } else { - c.requestRepaint(); - } + c.markAsDirtyRecursive(); } } diff --git a/server/src/com/vaadin/ui/AbstractField.java b/server/src/com/vaadin/ui/AbstractField.java index 23481eca9e..5123d08da9 100644 --- a/server/src/com/vaadin/ui/AbstractField.java +++ b/server/src/com/vaadin/ui/AbstractField.java @@ -301,7 +301,7 @@ public abstract class AbstractField extends AbstractComponent implements // Sets the buffering state currentBufferedSourceException = new Buffered.SourceException( this, e); - requestRepaint(); + markAsDirty(); // Throws the source exception throw currentBufferedSourceException; @@ -316,7 +316,7 @@ public abstract class AbstractField extends AbstractComponent implements fireValueChange(false); } else if (wasModified) { // If the value did not change, but the modification status did - requestRepaint(); + markAsDirty(); } } } @@ -535,7 +535,7 @@ public abstract class AbstractField extends AbstractComponent implements // Sets the buffering state currentBufferedSourceException = new Buffered.SourceException( this, e); - requestRepaint(); + markAsDirty(); // Throws the source exception throw currentBufferedSourceException; @@ -805,7 +805,7 @@ public abstract class AbstractField extends AbstractComponent implements validators = new LinkedList(); } validators.add(validator); - requestRepaint(); + markAsDirty(); } /** @@ -833,7 +833,7 @@ public abstract class AbstractField extends AbstractComponent implements if (validators != null) { validators.remove(validator); } - requestRepaint(); + markAsDirty(); } /** @@ -843,7 +843,7 @@ public abstract class AbstractField extends AbstractComponent implements if (validators != null) { validators.clear(); } - requestRepaint(); + markAsDirty(); } /** @@ -1070,7 +1070,7 @@ public abstract class AbstractField extends AbstractComponent implements protected void fireValueChange(boolean repaintIsNotNeeded) { fireEvent(new AbstractField.ValueChangeEvent(this)); if (!repaintIsNotNeeded) { - requestRepaint(); + markAsDirty(); } } @@ -1264,7 +1264,7 @@ public abstract class AbstractField extends AbstractComponent implements protected void setInternalValue(T newValue) { value = newValue; if (validators != null && !validators.isEmpty()) { - requestRepaint(); + markAsDirty(); } } @@ -1347,7 +1347,7 @@ public abstract class AbstractField extends AbstractComponent implements @Override public void setRequiredError(String requiredMessage) { requiredError = requiredMessage; - requestRepaint(); + markAsDirty(); } @Override @@ -1375,7 +1375,7 @@ public abstract class AbstractField extends AbstractComponent implements */ public void setConversionError(String valueConversionError) { this.conversionError = valueConversionError; - requestRepaint(); + markAsDirty(); } /** @@ -1417,7 +1417,7 @@ public abstract class AbstractField extends AbstractComponent implements */ public void setValidationVisible(boolean validateAutomatically) { if (validationVisible != validateAutomatically) { - requestRepaint(); + markAsDirty(); validationVisible = validateAutomatically; } } @@ -1430,7 +1430,7 @@ public abstract class AbstractField extends AbstractComponent implements public void setCurrentBufferedSourceException( Buffered.SourceException currentBufferedSourceException) { this.currentBufferedSourceException = currentBufferedSourceException; - requestRepaint(); + markAsDirty(); } /** @@ -1518,7 +1518,7 @@ public abstract class AbstractField extends AbstractComponent implements */ public void setConverter(Converter converter) { this.converter = (Converter) converter; - requestRepaint(); + markAsDirty(); } @Override diff --git a/server/src/com/vaadin/ui/AbstractOrderedLayout.java b/server/src/com/vaadin/ui/AbstractOrderedLayout.java index 0a57cb98c4..596bbb7ee2 100644 --- a/server/src/com/vaadin/ui/AbstractOrderedLayout.java +++ b/server/src/com/vaadin/ui/AbstractOrderedLayout.java @@ -225,7 +225,7 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements components.add(newLocation, oldComponent); } - requestRepaint(); + markAsDirty(); } } diff --git a/server/src/com/vaadin/ui/AbstractSelect.java b/server/src/com/vaadin/ui/AbstractSelect.java index 19a74782c4..21ff7ba948 100644 --- a/server/src/com/vaadin/ui/AbstractSelect.java +++ b/server/src/com/vaadin/ui/AbstractSelect.java @@ -462,7 +462,7 @@ public abstract class AbstractSelect extends AbstractField implements if (!isNullSelectionAllowed() && (id == null || id == getNullSelectionItemId())) { // skip empty selection if nullselection is not allowed - requestRepaint(); + markAsDirty(); } else if (id != null && containsId(id)) { acceptedSelections.add(id); } @@ -470,7 +470,7 @@ public abstract class AbstractSelect extends AbstractField implements if (!isNullSelectionAllowed() && acceptedSelections.size() < 1) { // empty selection not allowed, keep old value - requestRepaint(); + markAsDirty(); return; } @@ -498,7 +498,7 @@ public abstract class AbstractSelect extends AbstractField implements if (!isNullSelectionAllowed() && (clientSideSelectedKeys.length == 0 || clientSideSelectedKeys[0] == null || clientSideSelectedKeys[0] == getNullSelectionItemId())) { - requestRepaint(); + markAsDirty(); return; } if (clientSideSelectedKeys.length == 0) { @@ -513,7 +513,7 @@ public abstract class AbstractSelect extends AbstractField implements final Object id = itemIdMapper .get(clientSideSelectedKeys[0]); if (!isNullSelectionAllowed() && id == null) { - requestRepaint(); + markAsDirty(); } else if (id != null && id.equals(getNullSelectionItemId())) { setValue(null, true); @@ -975,7 +975,7 @@ public abstract class AbstractSelect extends AbstractField implements */ setValue(null); - requestRepaint(); + markAsDirty(); } } @@ -1042,7 +1042,7 @@ public abstract class AbstractSelect extends AbstractField implements } } - requestRepaint(); + markAsDirty(); } } @@ -1071,7 +1071,7 @@ public abstract class AbstractSelect extends AbstractField implements this.allowNewOptions = allowNewOptions; - requestRepaint(); + markAsDirty(); } } @@ -1087,7 +1087,7 @@ public abstract class AbstractSelect extends AbstractField implements public void setItemCaption(Object itemId, String caption) { if (itemId != null) { itemCaptions.put(itemId, caption); - requestRepaint(); + markAsDirty(); } } @@ -1173,7 +1173,7 @@ public abstract class AbstractSelect extends AbstractField implements } else { itemIcons.put(itemId, icon); } - requestRepaint(); + markAsDirty(); } } @@ -1239,7 +1239,7 @@ public abstract class AbstractSelect extends AbstractField implements public void setItemCaptionMode(ItemCaptionMode mode) { if (mode != null) { itemCaptionMode = mode; - requestRepaint(); + markAsDirty(); } } @@ -1302,13 +1302,13 @@ public abstract class AbstractSelect extends AbstractField implements if (propertyId != null) { itemCaptionPropertyId = propertyId; setItemCaptionMode(ITEM_CAPTION_MODE_PROPERTY); - requestRepaint(); + markAsDirty(); } else { itemCaptionPropertyId = null; if (getItemCaptionMode() == ITEM_CAPTION_MODE_PROPERTY) { setItemCaptionMode(ITEM_CAPTION_MODE_EXPLICIT_DEFAULTS_ID); } - requestRepaint(); + markAsDirty(); } } @@ -1360,7 +1360,7 @@ public abstract class AbstractSelect extends AbstractField implements throw new IllegalArgumentException( "Property type must be assignable to Resource"); } - requestRepaint(); + markAsDirty(); } /** @@ -1579,7 +1579,7 @@ public abstract class AbstractSelect extends AbstractField implements .containerPropertySetChange(event); } } - requestRepaint(); + markAsDirty(); } /** @@ -1594,7 +1594,7 @@ public abstract class AbstractSelect extends AbstractField implements .containerItemSetChange(event); } } - requestRepaint(); + markAsDirty(); } /** @@ -1665,7 +1665,7 @@ public abstract class AbstractSelect extends AbstractField implements public void setNullSelectionAllowed(boolean nullSelectionAllowed) { if (nullSelectionAllowed != this.nullSelectionAllowed) { this.nullSelectionAllowed = nullSelectionAllowed; - requestRepaint(); + markAsDirty(); } } @@ -1824,13 +1824,13 @@ public abstract class AbstractSelect extends AbstractField implements @Override public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) { - requestRepaint(); + markAsDirty(); } @Override public void itemPropertySetChange( com.vaadin.data.Item.PropertySetChangeEvent event) { - requestRepaint(); + markAsDirty(); } } diff --git a/server/src/com/vaadin/ui/AbstractSplitPanel.java b/server/src/com/vaadin/ui/AbstractSplitPanel.java index 68964e2c35..8b7499115c 100644 --- a/server/src/com/vaadin/ui/AbstractSplitPanel.java +++ b/server/src/com/vaadin/ui/AbstractSplitPanel.java @@ -154,8 +154,6 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { if (c != null) { super.addComponent(c); } - - requestRepaint(); } /** @@ -179,7 +177,6 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { if (c != null) { super.addComponent(c); } - requestRepaint(); } /** @@ -217,7 +214,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { } else if (c == getSecondComponent()) { getState().setSecondChild(null); } - requestRepaint(); + markAsDirty(); } /* @@ -259,7 +256,7 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { } else if (oldComponent == getSecondComponent()) { setSecondComponent(newComponent); } - requestRepaint(); + markAsDirty(); } /** @@ -329,8 +326,6 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { splitterState.setPositionUnit(unit.getSymbol()); splitterState.setPositionReversed(reverse); posUnit = unit; - - requestRepaint(); } /** @@ -452,8 +447,6 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { state.setMaxPosition(maxPos); state.setMaxPositionUnit(maxPosUnit.getSymbol()); posMaxUnit = maxPosUnit; - - requestRepaint(); } /** @@ -465,7 +458,6 @@ public abstract class AbstractSplitPanel extends AbstractComponentContainer { */ public void setLocked(boolean locked) { getSplitterState().setLocked(locked); - requestRepaint(); } /** diff --git a/server/src/com/vaadin/ui/AbstractTextField.java b/server/src/com/vaadin/ui/AbstractTextField.java index 51d5449fdd..1bd61023a4 100644 --- a/server/src/com/vaadin/ui/AbstractTextField.java +++ b/server/src/com/vaadin/ui/AbstractTextField.java @@ -184,7 +184,7 @@ public abstract class AbstractTextField extends AbstractField implements // If the modified status changes, or if we have a // formatter, repaint is needed after all. if (wasModified != isModified()) { - requestRepaint(); + markAsDirty(); } } } @@ -271,7 +271,7 @@ public abstract class AbstractTextField extends AbstractField implements */ public void setNullRepresentation(String nullRepresentation) { this.nullRepresentation = nullRepresentation; - requestRepaint(); + markAsDirty(); } /** @@ -297,7 +297,7 @@ public abstract class AbstractTextField extends AbstractField implements */ public void setNullSettingAllowed(boolean nullSettingAllowed) { this.nullSettingAllowed = nullSettingAllowed; - requestRepaint(); + markAsDirty(); } @Override @@ -440,7 +440,7 @@ public abstract class AbstractTextField extends AbstractField implements */ if (lastKnownTextContent != null) { lastKnownTextContent = null; - requestRepaint(); + markAsDirty(); } } @@ -465,7 +465,7 @@ public abstract class AbstractTextField extends AbstractField implements */ public void setTextChangeEventMode(TextChangeEventMode inputEventMode) { textChangeEventMode = inputEventMode; - requestRepaint(); + markAsDirty(); } /** @@ -536,7 +536,7 @@ public abstract class AbstractTextField extends AbstractField implements */ public void setTextChangeTimeout(int timeout) { textChangeEventTimeout = timeout; - requestRepaint(); + markAsDirty(); } /** @@ -627,7 +627,7 @@ public abstract class AbstractTextField extends AbstractField implements selectionPosition = pos; selectionLength = length; focus(); - requestRepaint(); + markAsDirty(); } /** diff --git a/server/src/com/vaadin/ui/ComboBox.java b/server/src/com/vaadin/ui/ComboBox.java index e2655be405..af19ca5b96 100644 --- a/server/src/com/vaadin/ui/ComboBox.java +++ b/server/src/com/vaadin/ui/ComboBox.java @@ -81,7 +81,7 @@ public class ComboBox extends Select { */ public void setInputPrompt(String inputPrompt) { this.inputPrompt = inputPrompt; - requestRepaint(); + markAsDirty(); } @Override @@ -110,7 +110,7 @@ public class ComboBox extends Select { */ public void setTextInputAllowed(boolean textInputAllowed) { this.textInputAllowed = textInputAllowed; - requestRepaint(); + markAsDirty(); } /** diff --git a/server/src/com/vaadin/ui/CssLayout.java b/server/src/com/vaadin/ui/CssLayout.java index c80986b768..b16bcf31df 100644 --- a/server/src/com/vaadin/ui/CssLayout.java +++ b/server/src/com/vaadin/ui/CssLayout.java @@ -102,7 +102,7 @@ public class CssLayout extends AbstractLayout implements LayoutClickNotifier { components.add(c); try { super.addComponent(c); - requestRepaint(); + markAsDirty(); } catch (IllegalArgumentException e) { components.remove(c); throw e; @@ -125,7 +125,7 @@ public class CssLayout extends AbstractLayout implements LayoutClickNotifier { components.addFirst(c); try { super.addComponent(c); - requestRepaint(); + markAsDirty(); } catch (IllegalArgumentException e) { components.remove(c); throw e; @@ -154,7 +154,7 @@ public class CssLayout extends AbstractLayout implements LayoutClickNotifier { components.add(index, c); try { super.addComponent(c); - requestRepaint(); + markAsDirty(); } catch (IllegalArgumentException e) { components.remove(c); throw e; @@ -171,7 +171,7 @@ public class CssLayout extends AbstractLayout implements LayoutClickNotifier { public void removeComponent(Component c) { components.remove(c); super.removeComponent(c); - requestRepaint(); + markAsDirty(); } /** @@ -276,7 +276,7 @@ public class CssLayout extends AbstractLayout implements LayoutClickNotifier { components.add(newLocation, oldComponent); } - requestRepaint(); + markAsDirty(); } } diff --git a/server/src/com/vaadin/ui/CustomComponent.java b/server/src/com/vaadin/ui/CustomComponent.java index 88f7b162c1..b67fa89ecb 100644 --- a/server/src/com/vaadin/ui/CustomComponent.java +++ b/server/src/com/vaadin/ui/CustomComponent.java @@ -100,7 +100,7 @@ public class CustomComponent extends AbstractComponentContainer { super.addComponent(compositionRoot); } root = compositionRoot; - requestRepaint(); + markAsDirty(); } } diff --git a/server/src/com/vaadin/ui/CustomField.java b/server/src/com/vaadin/ui/CustomField.java index 794e472dae..9ac5e2defb 100644 --- a/server/src/com/vaadin/ui/CustomField.java +++ b/server/src/com/vaadin/ui/CustomField.java @@ -120,13 +120,13 @@ public abstract class CustomField extends AbstractField implements @Override public void setHeight(float height, Unit unit) { super.setHeight(height, unit); - requestRepaintAll(); + markAsDirtyRecursive(); } @Override public void setWidth(float height, Unit unit) { super.setWidth(height, unit); - requestRepaintAll(); + markAsDirtyRecursive(); } // ComponentContainer methods diff --git a/server/src/com/vaadin/ui/DateField.java b/server/src/com/vaadin/ui/DateField.java index 790f3568d5..828fa3b21d 100644 --- a/server/src/com/vaadin/ui/DateField.java +++ b/server/src/com/vaadin/ui/DateField.java @@ -429,7 +429,7 @@ public class DateField extends AbstractField implements * if handleUnparsableDateString throws an exception. In * this case the invalid text remains in the DateField. */ - requestRepaint(); + markAsDirty(); } catch (Converter.ConversionException e) { /* @@ -471,7 +471,7 @@ public class DateField extends AbstractField implements * change and form depends on this implementation detail. */ notifyFormOfValidityChange(); - requestRepaint(); + markAsDirty(); } } else if (newDate != oldDate && (newDate == null || !newDate.equals(oldDate))) { @@ -562,7 +562,7 @@ public class DateField extends AbstractField implements * this. */ notifyFormOfValidityChange(); - requestRepaint(); + markAsDirty(); return; } @@ -588,7 +588,7 @@ public class DateField extends AbstractField implements * thing as form does in its value change listener that * it registers to all fields. */ - f.requestRepaint(); + f.markAsDirty(); formFound = true; break; } @@ -639,7 +639,7 @@ public class DateField extends AbstractField implements */ public void setResolution(Resolution resolution) { this.resolution = resolution; - requestRepaint(); + markAsDirty(); } /** @@ -699,7 +699,7 @@ public class DateField extends AbstractField implements */ public void setDateFormat(String dateFormat) { this.dateFormat = dateFormat; - requestRepaint(); + markAsDirty(); } /** @@ -725,7 +725,7 @@ public class DateField extends AbstractField implements */ public void setLenient(boolean lenient) { this.lenient = lenient; - requestRepaint(); + markAsDirty(); } /** @@ -781,7 +781,7 @@ public class DateField extends AbstractField implements */ public void setShowISOWeekNumbers(boolean showWeekNumbers) { showISOWeekNumbers = showWeekNumbers; - requestRepaint(); + markAsDirty(); } /** @@ -850,7 +850,7 @@ public class DateField extends AbstractField implements */ public void setTimeZone(TimeZone timeZone) { this.timeZone = timeZone; - requestRepaint(); + markAsDirty(); } /** diff --git a/server/src/com/vaadin/ui/DragAndDropWrapper.java b/server/src/com/vaadin/ui/DragAndDropWrapper.java index 1c41de81a0..ec805ecf46 100644 --- a/server/src/com/vaadin/ui/DragAndDropWrapper.java +++ b/server/src/com/vaadin/ui/DragAndDropWrapper.java @@ -60,7 +60,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget, String id = (String) rawVariables.get("fi" + i); files[i] = file; receivers.put(id, file); - requestRepaint(); // paint Receivers + markAsDirty(); // paint Receivers } } } @@ -207,7 +207,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget, */ public void setHTML5DataFlavor(String type, Object value) { html5DataFlavors.put(type, value); - requestRepaint(); + markAsDirty(); } @Override @@ -254,7 +254,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget, public void setDropHandler(DropHandler dropHandler) { this.dropHandler = dropHandler; - requestRepaint(); + markAsDirty(); } @Override @@ -270,7 +270,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget, public void setDragStartMode(DragStartMode dragStartMode) { this.dragStartMode = dragStartMode; - requestRepaint(); + markAsDirty(); } public DragStartMode getDragStartMode() { diff --git a/server/src/com/vaadin/ui/Embedded.java b/server/src/com/vaadin/ui/Embedded.java index d019ea3b0b..41b93d0b27 100644 --- a/server/src/com/vaadin/ui/Embedded.java +++ b/server/src/com/vaadin/ui/Embedded.java @@ -196,7 +196,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component { if (altText != this.altText || (altText != null && !altText.equals(this.altText))) { this.altText = altText; - requestRepaint(); + markAsDirty(); } } @@ -222,7 +222,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component { */ public void setParameter(String name, String value) { parameters.put(name, value); - requestRepaint(); + markAsDirty(); } /** @@ -244,7 +244,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component { */ public void removeParameter(String name) { parameters.remove(name); - requestRepaint(); + markAsDirty(); } /** @@ -307,7 +307,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component { if (codebase != this.codebase || (codebase != null && !codebase.equals(this.codebase))) { this.codebase = codebase; - requestRepaint(); + markAsDirty(); } } @@ -325,7 +325,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component { if (codetype != this.codetype || (codetype != null && !codetype.equals(this.codetype))) { this.codetype = codetype; - requestRepaint(); + markAsDirty(); } } @@ -350,7 +350,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component { setParameter("wmode", "transparent"); } } - requestRepaint(); + markAsDirty(); } } @@ -365,7 +365,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component { if (standby != this.standby || (standby != null && !standby.equals(this.standby))) { this.standby = standby; - requestRepaint(); + markAsDirty(); } } @@ -390,7 +390,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component { if (classId != this.classId || (classId != null && !classId.equals(this.classId))) { this.classId = classId; - requestRepaint(); + markAsDirty(); } } @@ -443,7 +443,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component { } else { // Keep previous type } - requestRepaint(); + markAsDirty(); } } @@ -467,7 +467,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component { } if (type != this.type) { this.type = type; - requestRepaint(); + markAsDirty(); } } @@ -502,7 +502,7 @@ public class Embedded extends AbstractComponent implements Vaadin6Component { if (archive != this.archive || (archive != null && !archive.equals(this.archive))) { this.archive = archive; - requestRepaint(); + markAsDirty(); } } diff --git a/server/src/com/vaadin/ui/Form.java b/server/src/com/vaadin/ui/Form.java index 8f63ad511a..55404b2e6b 100644 --- a/server/src/com/vaadin/ui/Form.java +++ b/server/src/com/vaadin/ui/Form.java @@ -133,7 +133,7 @@ public class Form extends AbstractField implements Item.Editor, private final ValueChangeListener fieldValueChangeListener = new ValueChangeListener() { @Override public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) { - requestRepaint(); + markAsDirty(); } }; @@ -342,7 +342,7 @@ public class Form extends AbstractField implements Item.Editor, if (problems == null) { if (currentBufferedSourceException != null) { currentBufferedSourceException = null; - requestRepaint(); + markAsDirty(); } return; } @@ -357,7 +357,7 @@ public class Form extends AbstractField implements Item.Editor, final Buffered.SourceException e = new Buffered.SourceException(this, causes); currentBufferedSourceException = e; - requestRepaint(); + markAsDirty(); throw e; } @@ -386,7 +386,7 @@ public class Form extends AbstractField implements Item.Editor, if (problems == null) { if (currentBufferedSourceException != null) { currentBufferedSourceException = null; - requestRepaint(); + markAsDirty(); } return; } @@ -401,7 +401,7 @@ public class Form extends AbstractField implements Item.Editor, final Buffered.SourceException e = new Buffered.SourceException(this, causes); currentBufferedSourceException = e; - requestRepaint(); + markAsDirty(); throw e; } @@ -491,7 +491,7 @@ public class Form extends AbstractField implements Item.Editor, public void addField(Object propertyId, Field field) { registerField(propertyId, field); attachField(propertyId, field); - requestRepaint(); + markAsDirty(); } /** @@ -720,7 +720,7 @@ public class Form extends AbstractField implements Item.Editor, // If the new datasource is null, just set null datasource if (itemDatasource == null) { - requestRepaint(); + markAsDirty(); return; } @@ -1244,7 +1244,7 @@ public class Form extends AbstractField implements Item.Editor, // some ancestor still disabled, don't update children return; } else { - getLayout().requestRepaintAll(); + getLayout().markAsDirtyRecursive(); } } diff --git a/server/src/com/vaadin/ui/GridLayout.java b/server/src/com/vaadin/ui/GridLayout.java index 5de6cc79c7..3870b71611 100644 --- a/server/src/com/vaadin/ui/GridLayout.java +++ b/server/src/com/vaadin/ui/GridLayout.java @@ -254,7 +254,7 @@ public class GridLayout extends AbstractLayout implements } } - requestRepaint(); + markAsDirty(); } /** @@ -400,7 +400,7 @@ public class GridLayout extends AbstractLayout implements super.removeComponent(component); - requestRepaint(); + markAsDirty(); } /** @@ -1096,7 +1096,7 @@ public class GridLayout extends AbstractLayout implements } else { oldLocation.setComponent(newComponent); newLocation.setComponent(oldComponent); - requestRepaint(); + markAsDirty(); } } @@ -1117,7 +1117,7 @@ public class GridLayout extends AbstractLayout implements public void setComponentAlignment(Component childComponent, Alignment alignment) { componentToAlignment.put(childComponent, alignment); - requestRepaint(); + markAsDirty(); } /* @@ -1173,7 +1173,7 @@ public class GridLayout extends AbstractLayout implements setRows(getRows() + 1); structuralChange = true; - requestRepaint(); + markAsDirty(); } /** @@ -1232,7 +1232,7 @@ public class GridLayout extends AbstractLayout implements } structuralChange = true; - requestRepaint(); + markAsDirty(); } @@ -1257,7 +1257,7 @@ public class GridLayout extends AbstractLayout implements */ public void setColumnExpandRatio(int columnIndex, float ratio) { columnExpandRatio.put(columnIndex, ratio); - requestRepaint(); + markAsDirty(); } /** @@ -1295,7 +1295,7 @@ public class GridLayout extends AbstractLayout implements */ public void setRowExpandRatio(int rowIndex, float ratio) { rowExpandRatio.put(rowIndex, ratio); - requestRepaint(); + markAsDirty(); } /** diff --git a/server/src/com/vaadin/ui/Label.java b/server/src/com/vaadin/ui/Label.java index 5055c7e573..81a343e937 100644 --- a/server/src/com/vaadin/ui/Label.java +++ b/server/src/com/vaadin/ui/Label.java @@ -265,7 +265,7 @@ public class Label extends AbstractComponent implements Property, .isAssignableFrom(dataSource.getClass())) { ((Property.ValueChangeNotifier) dataSource).addListener(this); } - requestRepaint(); + markAsDirty(); } /** @@ -482,7 +482,7 @@ public class Label extends AbstractComponent implements Property, */ public void setConverter(Converter converter) { this.converter = (Converter) converter; - requestRepaint(); + markAsDirty(); } } diff --git a/server/src/com/vaadin/ui/Link.java b/server/src/com/vaadin/ui/Link.java index ae2934f878..f98a2b0d2d 100644 --- a/server/src/com/vaadin/ui/Link.java +++ b/server/src/com/vaadin/ui/Link.java @@ -188,7 +188,7 @@ public class Link extends AbstractComponent implements Vaadin6Component { */ public void setTargetBorder(BorderStyle targetBorder) { this.targetBorder = targetBorder; - requestRepaint(); + markAsDirty(); } /** @@ -199,7 +199,7 @@ public class Link extends AbstractComponent implements Vaadin6Component { */ public void setTargetHeight(int targetHeight) { this.targetHeight = targetHeight; - requestRepaint(); + markAsDirty(); } /** @@ -210,7 +210,7 @@ public class Link extends AbstractComponent implements Vaadin6Component { */ public void setTargetName(String targetName) { this.targetName = targetName; - requestRepaint(); + markAsDirty(); } /** @@ -221,7 +221,7 @@ public class Link extends AbstractComponent implements Vaadin6Component { */ public void setTargetWidth(int targetWidth) { this.targetWidth = targetWidth; - requestRepaint(); + markAsDirty(); } /** @@ -241,7 +241,7 @@ public class Link extends AbstractComponent implements Vaadin6Component { */ public void setResource(Resource resource) { this.resource = resource; - requestRepaint(); + markAsDirty(); } @Override diff --git a/server/src/com/vaadin/ui/ListSelect.java b/server/src/com/vaadin/ui/ListSelect.java index eb54183164..da78e24fa8 100644 --- a/server/src/com/vaadin/ui/ListSelect.java +++ b/server/src/com/vaadin/ui/ListSelect.java @@ -62,7 +62,7 @@ public class ListSelect extends AbstractSelect { } if (this.columns != columns) { this.columns = columns; - requestRepaint(); + markAsDirty(); } } @@ -88,7 +88,7 @@ public class ListSelect extends AbstractSelect { } if (this.rows != rows) { this.rows = rows; - requestRepaint(); + markAsDirty(); } } diff --git a/server/src/com/vaadin/ui/MenuBar.java b/server/src/com/vaadin/ui/MenuBar.java index 37728ee69b..51c06cf934 100644 --- a/server/src/com/vaadin/ui/MenuBar.java +++ b/server/src/com/vaadin/ui/MenuBar.java @@ -223,7 +223,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { } MenuItem newItem = new MenuItem(caption, icon, command); menuItems.add(newItem); - requestRepaint(); + markAsDirty(); return newItem; @@ -259,7 +259,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { menuItems.add(newItem); } - requestRepaint(); + markAsDirty(); return newItem; } @@ -283,7 +283,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { if (item != null) { menuItems.remove(item); } - requestRepaint(); + markAsDirty(); } /** @@ -291,7 +291,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { */ public void removeItems() { menuItems.clear(); - requestRepaint(); + markAsDirty(); } /** @@ -318,7 +318,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { } else { moreItem = new MenuItem("", null, null); } - requestRepaint(); + markAsDirty(); } /** @@ -345,7 +345,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { public void setAutoOpen(boolean autoOpenTopLevelMenu) { if (autoOpenTopLevelMenu != openRootOnHover) { openRootOnHover = autoOpenTopLevelMenu; - requestRepaint(); + markAsDirty(); } } @@ -373,7 +373,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { */ public void setHtmlContentAllowed(boolean htmlContentAllowed) { this.htmlContentAllowed = htmlContentAllowed; - requestRepaint(); + markAsDirty(); } /** @@ -521,7 +521,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { newItem.setParent(this); itsChildren.add(newItem); - requestRepaint(); + markAsDirty(); return newItem; } @@ -560,7 +560,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { newItem = addItem(caption, icon, command); } - requestRepaint(); + markAsDirty(); return newItem; } @@ -651,7 +651,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { */ public void setIcon(Resource icon) { itsIcon = icon; - requestRepaint(); + markAsDirty(); } /** @@ -664,7 +664,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { if (text != null) { itsText = text; } - requestRepaint(); + markAsDirty(); } /** @@ -679,7 +679,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { if (itsChildren.isEmpty()) { itsChildren = null; } - requestRepaint(); + markAsDirty(); } } @@ -690,7 +690,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { if (itsChildren != null) { itsChildren.clear(); itsChildren = null; - requestRepaint(); + markAsDirty(); } } @@ -706,7 +706,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { public void setEnabled(boolean enabled) { this.enabled = enabled; - requestRepaint(); + markAsDirty(); } public boolean isEnabled() { @@ -715,7 +715,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { public void setVisible(boolean visible) { this.visible = visible; - requestRepaint(); + markAsDirty(); } public boolean isVisible() { @@ -724,7 +724,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { private void setSeparator(boolean isSeparator) { this.isSeparator = isSeparator; - requestRepaint(); + markAsDirty(); } public boolean isSeparator() { @@ -733,7 +733,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { public void setStyleName(String styleName) { this.styleName = styleName; - requestRepaint(); + markAsDirty(); } public String getStyleName() { @@ -750,7 +750,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { */ public void setDescription(String description) { this.description = description; - requestRepaint(); + markAsDirty(); } /** @@ -855,7 +855,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { "A menu item with children cannot be checkable"); } this.checkable = checkable; - requestRepaint(); + markAsDirty(); } /** @@ -897,7 +897,7 @@ public class MenuBar extends AbstractComponent implements Vaadin6Component { */ public void setChecked(boolean checked) { this.checked = checked; - requestRepaint(); + markAsDirty(); } }// class MenuItem diff --git a/server/src/com/vaadin/ui/NativeSelect.java b/server/src/com/vaadin/ui/NativeSelect.java index 53c225a256..c2969874b0 100644 --- a/server/src/com/vaadin/ui/NativeSelect.java +++ b/server/src/com/vaadin/ui/NativeSelect.java @@ -64,7 +64,7 @@ public class NativeSelect extends AbstractSelect { } if (this.columns != columns) { this.columns = columns; - requestRepaint(); + markAsDirty(); } } diff --git a/server/src/com/vaadin/ui/OptionGroup.java b/server/src/com/vaadin/ui/OptionGroup.java index dfb5019331..12507442c9 100644 --- a/server/src/com/vaadin/ui/OptionGroup.java +++ b/server/src/com/vaadin/ui/OptionGroup.java @@ -125,14 +125,14 @@ public class OptionGroup extends AbstractSelect implements Set newValueSet = (Set) newValue; for (Object itemId : currentValueSet) { if (!isItemEnabled(itemId) && !newValueSet.contains(itemId)) { - requestRepaint(); + markAsDirty(); return; } } for (Object itemId : newValueSet) { if (!isItemEnabled(itemId) && !currentValueSet.contains(itemId)) { - requestRepaint(); + markAsDirty(); return; } } @@ -141,7 +141,7 @@ public class OptionGroup extends AbstractSelect implements newValue = getNullSelectionItemId(); } if (!isItemEnabled(newValue)) { - requestRepaint(); + markAsDirty(); return; } } @@ -169,7 +169,7 @@ public class OptionGroup extends AbstractSelect implements } else { disabledItemIds.add(itemId); } - requestRepaint(); + markAsDirty(); } } @@ -200,7 +200,7 @@ public class OptionGroup extends AbstractSelect implements */ public void setHtmlContentAllowed(boolean htmlContentAllowed) { this.htmlContentAllowed = htmlContentAllowed; - requestRepaint(); + markAsDirty(); } /** diff --git a/server/src/com/vaadin/ui/Panel.java b/server/src/com/vaadin/ui/Panel.java index 1f3b8580f8..00810b83db 100644 --- a/server/src/com/vaadin/ui/Panel.java +++ b/server/src/com/vaadin/ui/Panel.java @@ -176,7 +176,7 @@ public class Panel extends AbstractComponentContainer implements Scrollable, .addListener((ComponentContainer.ComponentDetachListener) this); content = newContent; - requestRepaint(); + markAsDirty(); } /** diff --git a/server/src/com/vaadin/ui/PopupDateField.java b/server/src/com/vaadin/ui/PopupDateField.java index a4304faaf9..acff49a142 100644 --- a/server/src/com/vaadin/ui/PopupDateField.java +++ b/server/src/com/vaadin/ui/PopupDateField.java @@ -84,7 +84,7 @@ public class PopupDateField extends DateField { */ public void setInputPrompt(String inputPrompt) { this.inputPrompt = inputPrompt; - requestRepaint(); + markAsDirty(); } } diff --git a/server/src/com/vaadin/ui/PopupView.java b/server/src/com/vaadin/ui/PopupView.java index 198ba00ed2..786257c240 100644 --- a/server/src/com/vaadin/ui/PopupView.java +++ b/server/src/com/vaadin/ui/PopupView.java @@ -147,7 +147,7 @@ public class PopupView extends AbstractComponentContainer implements throw new IllegalArgumentException("Content must not be null"); } content = newContent; - requestRepaint(); + markAsDirty(); } /** @@ -179,7 +179,7 @@ public class PopupView extends AbstractComponentContainer implements visibleComponent = null; } fireEvent(new PopupVisibilityEvent(this)); - requestRepaint(); + markAsDirty(); } } diff --git a/server/src/com/vaadin/ui/ProgressIndicator.java b/server/src/com/vaadin/ui/ProgressIndicator.java index d3e292a3e1..528c404ab9 100644 --- a/server/src/com/vaadin/ui/ProgressIndicator.java +++ b/server/src/com/vaadin/ui/ProgressIndicator.java @@ -226,7 +226,7 @@ public class ProgressIndicator extends AbstractField implements */ public void setIndeterminate(boolean newValue) { indeterminate = newValue; - requestRepaint(); + markAsDirty(); } /** @@ -246,7 +246,7 @@ public class ProgressIndicator extends AbstractField implements */ public void setPollingInterval(int newValue) { pollingInterval = newValue; - requestRepaint(); + markAsDirty(); } /** diff --git a/server/src/com/vaadin/ui/RichTextArea.java b/server/src/com/vaadin/ui/RichTextArea.java index e954f78700..51caa82136 100644 --- a/server/src/com/vaadin/ui/RichTextArea.java +++ b/server/src/com/vaadin/ui/RichTextArea.java @@ -157,7 +157,7 @@ public class RichTextArea extends AbstractField implements */ selectAll = true; focus(); - requestRepaint(); + markAsDirty(); } @Override @@ -183,7 +183,7 @@ public class RichTextArea extends AbstractField implements // If the modified status changes, // repaint is needed after all. if (wasModified != isModified()) { - requestRepaint(); + markAsDirty(); } } } diff --git a/server/src/com/vaadin/ui/Root.java b/server/src/com/vaadin/ui/Root.java index f96fa1dc5a..35517044c0 100644 --- a/server/src/com/vaadin/ui/Root.java +++ b/server/src/com/vaadin/ui/Root.java @@ -723,7 +723,7 @@ public abstract class Root extends AbstractComponentContainer implements private void attachWindow(Window w) { windows.add(w); w.setParent(this); - requestRepaint(); + markAsDirty(); } /** @@ -746,7 +746,7 @@ public abstract class Root extends AbstractComponentContainer implements } window.setParent(null); window.fireClose(); - requestRepaint(); + markAsDirty(); return true; } @@ -788,7 +788,7 @@ public abstract class Root extends AbstractComponentContainer implements */ public void setFocusedComponent(Focusable focusable) { pendingFocus = focusable; - requestRepaint(); + markAsDirty(); } /** @@ -808,7 +808,7 @@ public abstract class Root extends AbstractComponentContainer implements "The component where to scroll must belong to this root."); } scrollIntoView = component; - requestRepaint(); + markAsDirty(); } /** @@ -1013,7 +1013,7 @@ public abstract class Root extends AbstractComponentContainer implements */ public void setResizeLazy(boolean resizeLazy) { this.resizeLazy = resizeLazy; - requestRepaint(); + markAsDirty(); } /** diff --git a/server/src/com/vaadin/ui/Select.java b/server/src/com/vaadin/ui/Select.java index 898728b9cd..20345b55e0 100644 --- a/server/src/com/vaadin/ui/Select.java +++ b/server/src/com/vaadin/ui/Select.java @@ -676,15 +676,21 @@ public class Select extends AbstractSelect implements AbstractSelect.Filtering, } @Override + @Deprecated public void requestRepaint() { - super.requestRepaint(); + markAsDirty(); + } + + @Override + public void markAsDirty() { + super.markAsDirty(); optionRequest = false; prevfilterstring = filterstring; filterstring = null; } private void optionRepaint() { - super.requestRepaint(); + super.markAsDirty(); } @Override diff --git a/server/src/com/vaadin/ui/Slider.java b/server/src/com/vaadin/ui/Slider.java index f7672f617c..d4e2db4853 100644 --- a/server/src/com/vaadin/ui/Slider.java +++ b/server/src/com/vaadin/ui/Slider.java @@ -174,7 +174,7 @@ public class Slider extends AbstractField implements Vaadin6Component { if (getValue() > max) { setValue(max); } - requestRepaint(); + markAsDirty(); } /** @@ -198,7 +198,7 @@ public class Slider extends AbstractField implements Vaadin6Component { if (getValue() < min) { setValue(min); } - requestRepaint(); + markAsDirty(); } /** @@ -220,7 +220,7 @@ public class Slider extends AbstractField implements Vaadin6Component { */ public void setOrientation(int orientation) { this.orientation = orientation; - requestRepaint(); + markAsDirty(); } /** @@ -244,7 +244,7 @@ public class Slider extends AbstractField implements Vaadin6Component { return; } this.resolution = resolution; - requestRepaint(); + markAsDirty(); } /** diff --git a/server/src/com/vaadin/ui/TabSheet.java b/server/src/com/vaadin/ui/TabSheet.java index 868d97a09c..82faedcc41 100644 --- a/server/src/com/vaadin/ui/TabSheet.java +++ b/server/src/com/vaadin/ui/TabSheet.java @@ -176,7 +176,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, fireSelectedTabChange(); } } - requestRepaint(); + markAsDirty(); } } @@ -301,7 +301,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, fireSelectedTabChange(); } super.addComponent(c); - requestRepaint(); + markAsDirty(); return tab; } } @@ -475,7 +475,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, */ public void hideTabs(boolean tabsHidden) { this.tabsHidden = tabsHidden; - requestRepaint(); + markAsDirty(); } /** @@ -519,7 +519,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, setSelected(c); updateSelection(); fireSelectedTabChange(); - requestRepaint(); + markAsDirty(); } } @@ -537,13 +537,13 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, // "cached" update even though the client knows nothing about the // connector if (selected instanceof ComponentContainer) { - ((ComponentContainer) selected).requestRepaintAll(); + ((ComponentContainer) selected).markAsDirtyRecursive(); } else if (selected instanceof Table) { // Workaround until there's a generic way of telling a component // that there is no client side state to rely on. See #8642 ((Table) selected).refreshRowCache(); } else if (selected != null) { - selected.requestRepaint(); + selected.markAsDirty(); } } @@ -716,7 +716,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, copyTabMetadata(oldTab, newTab); copyTabMetadata(tmp, oldTab); - requestRepaint(); + markAsDirty(); } } @@ -1028,7 +1028,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, @Override public void setCaption(String caption) { this.caption = caption; - requestRepaint(); + markAsDirty(); } @Override @@ -1039,7 +1039,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, @Override public void setIcon(Resource icon) { this.icon = icon; - requestRepaint(); + markAsDirty(); } @Override @@ -1053,7 +1053,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, if (updateSelection()) { fireSelectedTabChange(); } - requestRepaint(); + markAsDirty(); } @Override @@ -1067,7 +1067,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, if (updateSelection()) { fireSelectedTabChange(); } - requestRepaint(); + markAsDirty(); } @Override @@ -1078,7 +1078,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, @Override public void setClosable(boolean closable) { this.closable = closable; - requestRepaint(); + markAsDirty(); } public void close() { @@ -1093,7 +1093,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, @Override public void setDescription(String description) { this.description = description; - requestRepaint(); + markAsDirty(); } @Override @@ -1104,7 +1104,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, @Override public void setComponentError(ErrorMessage componentError) { this.componentError = componentError; - requestRepaint(); + markAsDirty(); } @Override @@ -1120,7 +1120,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, @Override public void setStyleName(String styleName) { this.styleName = styleName; - requestRepaint(); + markAsDirty(); } @Override @@ -1180,7 +1180,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, int oldPosition = getTabPosition(tab); components.remove(oldPosition); components.add(position, tab.getComponent()); - requestRepaint(); + markAsDirty(); } /** @@ -1207,7 +1207,7 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, @Override public void setTabIndex(int tabIndex) { this.tabIndex = tabIndex; - requestRepaint(); + markAsDirty(); } @Override diff --git a/server/src/com/vaadin/ui/Table.java b/server/src/com/vaadin/ui/Table.java index 120d1f9810..8fc3fc2572 100644 --- a/server/src/com/vaadin/ui/Table.java +++ b/server/src/com/vaadin/ui/Table.java @@ -729,7 +729,7 @@ public class Table extends AbstractSelect implements Action.Container, this.columnHeaders.put(it.next(), columnHeaders[i]); } - requestRepaint(); + markAsDirty(); } /** @@ -788,7 +788,7 @@ public class Table extends AbstractSelect implements Action.Container, this.columnIcons.put(it.next(), columnIcons[i]); } - requestRepaint(); + markAsDirty(); } /** @@ -888,7 +888,7 @@ public class Table extends AbstractSelect implements Action.Container, } else { columnWidths.put(propertyId, Integer.valueOf(width)); } - requestRepaint(); + markAsDirty(); } /** @@ -1026,7 +1026,7 @@ public class Table extends AbstractSelect implements Action.Container, } if (this.cacheRate != cacheRate) { this.cacheRate = cacheRate; - requestRepaint(); + markAsDirty(); } } @@ -1158,7 +1158,7 @@ public class Table extends AbstractSelect implements Action.Container, columnIcons.put(propertyId, icon); } - requestRepaint(); + markAsDirty(); } /** @@ -1198,7 +1198,7 @@ public class Table extends AbstractSelect implements Action.Container, columnHeaders.put(propertyId, header); } - requestRepaint(); + markAsDirty(); } /** @@ -1361,7 +1361,7 @@ public class Table extends AbstractSelect implements Action.Container, public void setColumnReorderingAllowed(boolean columnReorderingAllowed) { if (columnReorderingAllowed != this.columnReorderingAllowed) { this.columnReorderingAllowed = columnReorderingAllowed; - requestRepaint(); + markAsDirty(); } } @@ -1532,7 +1532,7 @@ public class Table extends AbstractSelect implements Action.Container, public void setSelectable(boolean selectable) { if (this.selectable != selectable) { this.selectable = selectable; - requestRepaint(); + markAsDirty(); } } @@ -1558,7 +1558,7 @@ public class Table extends AbstractSelect implements Action.Container, } if (columnHeaderMode != this.columnHeaderMode) { this.columnHeaderMode = columnHeaderMode; - requestRepaint(); + markAsDirty(); } } @@ -1627,7 +1627,7 @@ public class Table extends AbstractSelect implements Action.Container, } setRowCacheInvalidated(true); - requestRepaint(); + markAsDirty(); } /** @@ -1636,17 +1636,39 @@ public class Table extends AbstractSelect implements Action.Container, * Note that a {@code Table} does not necessarily repaint its contents when * this method has been called. See {@link #refreshRowCache()} for forcing * an update of the contents. + * + * @deprecated As of 7.0.0, use {@link #markAsDirty()} instead */ + @Deprecated @Override public void requestRepaint() { + markAsDirty(); + } + + /** + * Requests that the Table should be repainted as soon as possible. + * + * Note that a {@code Table} does not necessarily repaint its contents when + * this method has been called. See {@link #refreshRowCache()} for forcing + * an update of the contents. + */ + + @Override + public void markAsDirty() { // Overridden only for javadoc - super.requestRepaint(); + super.markAsDirty(); } + @Deprecated @Override public void requestRepaintAll() { - super.requestRepaintAll(); + markAsDirtyRecursive(); + } + + @Override + public void markAsDirtyRecursive() { + super.markAsDirtyRecursive(); // Avoid sending a partial repaint (#8714) refreshRowCache(); @@ -2436,7 +2458,7 @@ public class Table extends AbstractSelect implements Action.Container, if (!isNullSelectionAllowed() && (id == null || id == getNullSelectionItemId())) { // skip empty selection if nullselection is not allowed - requestRepaint(); + markAsDirty(); } else if (id != null && containsId(id)) { newValue.add(id); renderedButNotSelectedItemIds.remove(id); @@ -2463,7 +2485,7 @@ public class Table extends AbstractSelect implements Action.Container, if (!isNullSelectionAllowed() && newValue.isEmpty()) { // empty selection not allowed, keep old value - requestRepaint(); + markAsDirty(); return; } @@ -2802,7 +2824,7 @@ public class Table extends AbstractSelect implements Action.Container, if (refreshContent) { refreshRenderedCells(); // Ensure that client gets a response - requestRepaint(); + markAsDirty(); } } @@ -3751,7 +3773,7 @@ public class Table extends AbstractSelect implements Action.Container, refreshRowCache(); containerChangeToBeRendered = true; } - requestRepaint(); + markAsDirty(); } /** @@ -4476,7 +4498,7 @@ public class Table extends AbstractSelect implements Action.Container, public void setSortEnabled(boolean sortEnabled) { if (this.sortEnabled != sortEnabled) { this.sortEnabled = sortEnabled; - requestRepaint(); + markAsDirty(); } } @@ -4573,7 +4595,7 @@ public class Table extends AbstractSelect implements Action.Container, // some ancestor still disabled, don't update children return; } else { - requestRepaintAll(); + markAsDirtyRecursive(); } } @@ -4585,7 +4607,7 @@ public class Table extends AbstractSelect implements Action.Container, */ public void setDragMode(TableDragMode newDragMode) { dragMode = newDragMode; - requestRepaint(); + markAsDirty(); } /** @@ -4669,7 +4691,7 @@ public class Table extends AbstractSelect implements Action.Container, */ public void setMultiSelectMode(MultiSelectMode mode) { multiSelectMode = mode; - requestRepaint(); + markAsDirty(); } /** @@ -4977,7 +4999,7 @@ public class Table extends AbstractSelect implements Action.Container, columnFooters.put(propertyId, footer); } - requestRepaint(); + markAsDirty(); } /** @@ -4993,7 +5015,7 @@ public class Table extends AbstractSelect implements Action.Container, public void setFooterVisible(boolean visible) { if (visible != columnFootersVisible) { columnFootersVisible = visible; - requestRepaint(); + markAsDirty(); } } diff --git a/server/src/com/vaadin/ui/Tree.java b/server/src/com/vaadin/ui/Tree.java index dda0a78aff..2d6673a67d 100644 --- a/server/src/com/vaadin/ui/Tree.java +++ b/server/src/com/vaadin/ui/Tree.java @@ -184,7 +184,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, */ public boolean expandItem(Object itemId) { boolean success = expandItem(itemId, true); - requestRepaint(); + markAsDirty(); return success; } @@ -215,7 +215,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, expandedItemId = itemId; if (initialPaint) { - requestRepaint(); + markAsDirty(); } else if (sendChildTree) { requestPartialRepaint(); } @@ -225,13 +225,13 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, } @Override - public void requestRepaint() { - super.requestRepaint(); + public void markAsDirty() { + super.markAsDirty(); partialUpdate = false; } private void requestPartialRepaint() { - super.requestRepaint(); + super.markAsDirty(); partialUpdate = true; } @@ -262,7 +262,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, todo.addAll(getChildren(id)); } } - requestRepaint(); + markAsDirty(); return result; } @@ -282,7 +282,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, // Collapse expanded.remove(itemId); - requestRepaint(); + markAsDirty(); fireCollapseEvent(itemId); return true; @@ -349,7 +349,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, public void setSelectable(boolean selectable) { if (this.selectable != selectable) { this.selectable = selectable; - requestRepaint(); + markAsDirty(); } } @@ -362,7 +362,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, public void setMultiselectMode(MultiSelectMode mode) { if (multiSelectMode != mode && mode != null) { multiSelectMode = mode; - requestRepaint(); + markAsDirty(); } } @@ -478,7 +478,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, if (!isNullSelectionAllowed() && (id == null || id == getNullSelectionItemId())) { // skip empty selection if nullselection is not allowed - requestRepaint(); + markAsDirty(); } else if (id != null && containsId(id)) { s.add(id); } @@ -486,7 +486,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, if (!isNullSelectionAllowed() && s.size() < 1) { // empty selection not allowed, keep old value - requestRepaint(); + markAsDirty(); return; } @@ -796,7 +796,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, final boolean success = ((Container.Hierarchical) items) .setChildrenAllowed(itemId, areChildrenAllowed); if (success) { - requestRepaint(); + markAsDirty(); } return success; } @@ -812,7 +812,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, final boolean success = ((Container.Hierarchical) items).setParent( itemId, newParentId); if (success) { - requestRepaint(); + markAsDirty(); } return success; } @@ -1036,7 +1036,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, if (!actionHandlers.contains(actionHandler)) { actionHandlers.add(actionHandler); - requestRepaint(); + markAsDirty(); } } } @@ -1058,7 +1058,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, actionMapper = null; } - requestRepaint(); + markAsDirty(); } } @@ -1068,7 +1068,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, public void removeAllActionHandlers() { actionHandlers = null; actionMapper = null; - requestRepaint(); + markAsDirty(); } /** @@ -1182,7 +1182,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, public void setItemStyleGenerator(ItemStyleGenerator itemStyleGenerator) { if (this.itemStyleGenerator != itemStyleGenerator) { this.itemStyleGenerator = itemStyleGenerator; - requestRepaint(); + markAsDirty(); } } @@ -1342,7 +1342,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, */ public void setDragMode(TreeDragMode dragMode) { this.dragMode = dragMode; - requestRepaint(); + markAsDirty(); } /** @@ -1601,7 +1601,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, public void setItemDescriptionGenerator(ItemDescriptionGenerator generator) { if (generator != itemDescriptionGenerator) { itemDescriptionGenerator = generator; - requestRepaint(); + markAsDirty(); } } diff --git a/server/src/com/vaadin/ui/TreeTable.java b/server/src/com/vaadin/ui/TreeTable.java index 7548a4840b..05757a6d09 100644 --- a/server/src/com/vaadin/ui/TreeTable.java +++ b/server/src/com/vaadin/ui/TreeTable.java @@ -463,7 +463,7 @@ public class TreeTable extends Table implements Hierarchical { // been processed clearFocusedRowPending = true; } - requestRepaint(); + markAsDirty(); } @Override @@ -561,7 +561,7 @@ public class TreeTable extends Table implements Hierarchical { } if (containerSupportsPartialUpdates && !forceFullRefresh) { - requestRepaint(); + markAsDirty(); } else { // For containers that do not send item set change events, always do // full repaint instead of partial row update. @@ -826,7 +826,7 @@ public class TreeTable extends Table implements Hierarchical { */ public void setAnimationsEnabled(boolean animationsEnabled) { this.animationsEnabled = animationsEnabled; - requestRepaint(); + markAsDirty(); } private static final Logger getLogger() { diff --git a/server/src/com/vaadin/ui/TwinColSelect.java b/server/src/com/vaadin/ui/TwinColSelect.java index 80f4ae49c8..891e695a5f 100644 --- a/server/src/com/vaadin/ui/TwinColSelect.java +++ b/server/src/com/vaadin/ui/TwinColSelect.java @@ -79,7 +79,7 @@ public class TwinColSelect extends AbstractSelect { } if (this.columns != columns) { this.columns = columns; - requestRepaint(); + markAsDirty(); } } @@ -111,7 +111,7 @@ public class TwinColSelect extends AbstractSelect { } if (this.rows != rows) { this.rows = rows; - requestRepaint(); + markAsDirty(); } } @@ -159,7 +159,7 @@ public class TwinColSelect extends AbstractSelect { */ public void setRightColumnCaption(String rightColumnCaption) { this.rightColumnCaption = rightColumnCaption; - requestRepaint(); + markAsDirty(); } /** @@ -179,7 +179,7 @@ public class TwinColSelect extends AbstractSelect { */ public void setLeftColumnCaption(String leftColumnCaption) { this.leftColumnCaption = leftColumnCaption; - requestRepaint(); + markAsDirty(); } /** diff --git a/server/src/com/vaadin/ui/Upload.java b/server/src/com/vaadin/ui/Upload.java index b50ba03835..619db07eea 100644 --- a/server/src/com/vaadin/ui/Upload.java +++ b/server/src/com/vaadin/ui/Upload.java @@ -138,7 +138,7 @@ public class Upload extends AbstractComponent implements Component.Focusable, int id = (Integer) variables.get("pollForStart"); if (!isUploading && id == nextid) { notStarted = true; - requestRepaint(); + markAsDirty(); } else { } } @@ -829,7 +829,7 @@ public class Upload extends AbstractComponent implements Component.Focusable, isUploading = false; contentLength = -1; interrupted = false; - requestRepaint(); + markAsDirty(); } public boolean isUploading() { @@ -901,7 +901,7 @@ public class Upload extends AbstractComponent implements Component.Focusable, */ public void setButtonCaption(String buttonCaption) { this.buttonCaption = buttonCaption; - requestRepaint(); + markAsDirty(); } /** @@ -922,14 +922,14 @@ public class Upload extends AbstractComponent implements Component.Focusable, * fired. */ public void submitUpload() { - requestRepaint(); + markAsDirty(); forceSubmit = true; } @Override - public void requestRepaint() { + public void markAsDirty() { forceSubmit = false; - super.requestRepaint(); + super.markAsDirty(); } /* @@ -982,7 +982,7 @@ public class Upload extends AbstractComponent implements Component.Focusable, fireUploadSuccess(event.getFileName(), event.getMimeType(), event.getContentLength()); endUpload(); - requestRepaint(); + markAsDirty(); } @Override diff --git a/server/src/com/vaadin/ui/Window.java b/server/src/com/vaadin/ui/Window.java index 902d33bc64..d79588cc63 100644 --- a/server/src/com/vaadin/ui/Window.java +++ b/server/src/com/vaadin/ui/Window.java @@ -493,7 +493,7 @@ public class Window extends Panel implements FocusNotifier, BlurNotifier, } } bringToFront = Integer.valueOf(maxBringToFront + 1); - requestRepaint(); + markAsDirty(); } /** 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 bd6dd6c7b1..4bb0177a18 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 @@ -30,9 +30,9 @@ public class TextFieldWithPropertyFormatter extends TestCase { field = new TextField() { @Override - public void requestRepaint() { + public void markAsDirty() { repainted++; - super.requestRepaint(); + super.markAsDirty(); } }; diff --git a/tests/testbench/com/vaadin/tests/PerformanceTestLabelsAndOrderedLayouts.java b/tests/testbench/com/vaadin/tests/PerformanceTestLabelsAndOrderedLayouts.java index aa8814ce4c..8002059227 100644 --- a/tests/testbench/com/vaadin/tests/PerformanceTestLabelsAndOrderedLayouts.java +++ b/tests/testbench/com/vaadin/tests/PerformanceTestLabelsAndOrderedLayouts.java @@ -62,7 +62,7 @@ public class PerformanceTestLabelsAndOrderedLayouts extends CustomComponent { new ClickListener() { @Override public void buttonClick(ClickEvent event) { - testContainer.requestRepaint(); + testContainer.markAsDirty(); } })); diff --git a/tests/testbench/com/vaadin/tests/TestSizeableIncomponents.java b/tests/testbench/com/vaadin/tests/TestSizeableIncomponents.java index 50cbe0778b..f33132a709 100644 --- a/tests/testbench/com/vaadin/tests/TestSizeableIncomponents.java +++ b/tests/testbench/com/vaadin/tests/TestSizeableIncomponents.java @@ -78,7 +78,7 @@ public class TestSizeableIncomponents extends Application.LegacyApplication { getMainWindow().showNotification( "Selected test:" + prev.getTestableName()); select.setValue(prev); - select.requestRepaint(); + select.markAsDirty(); } } }); @@ -94,7 +94,7 @@ public class TestSizeableIncomponents extends Application.LegacyApplication { getMainWindow().showNotification( "Selected test:" + next.getTestableName()); select.setValue(next); - select.requestRepaint(); + select.markAsDirty(); } } }); diff --git a/tests/testbench/com/vaadin/tests/components/absolutelayout/MoveComponentsFromAbsoluteLayoutToInnerLayout.java b/tests/testbench/com/vaadin/tests/components/absolutelayout/MoveComponentsFromAbsoluteLayoutToInnerLayout.java index 826b7cee07..c14cda58f1 100644 --- a/tests/testbench/com/vaadin/tests/components/absolutelayout/MoveComponentsFromAbsoluteLayoutToInnerLayout.java +++ b/tests/testbench/com/vaadin/tests/components/absolutelayout/MoveComponentsFromAbsoluteLayoutToInnerLayout.java @@ -40,7 +40,7 @@ public class MoveComponentsFromAbsoluteLayoutToInnerLayout extends TestBase { @Override public void buttonClick(ClickEvent event) { - vl.requestRepaint(); + vl.markAsDirty(); } }); diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java index 484b9cfee8..c085088917 100644 --- a/tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java +++ b/tests/testbench/com/vaadin/tests/components/datefield/DateFieldRangeValidation.java @@ -58,7 +58,7 @@ public class DateFieldRangeValidation extends TestBase { @Override public void valueChange(ValueChangeEvent event) { - actualDateField.requestRepaint(); + actualDateField.markAsDirty(); } }; diff --git a/tests/testbench/com/vaadin/tests/components/datefield/DisabledDateFieldWidth.java b/tests/testbench/com/vaadin/tests/components/datefield/DisabledDateFieldWidth.java index 4e256aa947..403b82a2a7 100644 --- a/tests/testbench/com/vaadin/tests/components/datefield/DisabledDateFieldWidth.java +++ b/tests/testbench/com/vaadin/tests/components/datefield/DisabledDateFieldWidth.java @@ -18,7 +18,7 @@ public class DisabledDateFieldWidth extends TestBase { new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { - dateField1.requestRepaint(); + dateField1.markAsDirty(); } }); diff --git a/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedImageRefresh.java b/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedImageRefresh.java index e316fcc5ec..3020942844 100644 --- a/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedImageRefresh.java +++ b/tests/testbench/com/vaadin/tests/components/embedded/EmbeddedImageRefresh.java @@ -47,7 +47,7 @@ public class EmbeddedImageRefresh extends TestBase { button.addListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { - embedded.requestRepaint(); + embedded.markAsDirty(); } }); addComponent(button); @@ -57,7 +57,7 @@ public class EmbeddedImageRefresh extends TestBase { public void buttonClick(ClickEvent event) { ((StreamResource) embedded.getSource()).setFilename(new Date() .getTime() + ".png"); - embedded.requestRepaint(); + embedded.markAsDirty(); } }); addComponent(button); diff --git a/tests/testbench/com/vaadin/tests/components/gridlayout/MoveComponentsFromGridLayoutToInnerLayout.java b/tests/testbench/com/vaadin/tests/components/gridlayout/MoveComponentsFromGridLayoutToInnerLayout.java index 1c10b1d9d7..0106f2e218 100644 --- a/tests/testbench/com/vaadin/tests/components/gridlayout/MoveComponentsFromGridLayoutToInnerLayout.java +++ b/tests/testbench/com/vaadin/tests/components/gridlayout/MoveComponentsFromGridLayoutToInnerLayout.java @@ -40,7 +40,7 @@ public class MoveComponentsFromGridLayoutToInnerLayout extends TestBase { @Override public void buttonClick(ClickEvent event) { - vl.requestRepaint(); + vl.markAsDirty(); } }); diff --git a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java index 05e10397ac..00012522ca 100644 --- a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java +++ b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java @@ -62,8 +62,8 @@ public class SplitPanelExtraScrollbars extends AbstractTestCase implements } // Sending all changes in one repaint triggers the bug - hl.requestRepaint(); - sp.requestRepaint(); + hl.markAsDirty(); + sp.markAsDirty(); } } diff --git a/tests/testbench/com/vaadin/tests/components/table/EditableTableLeak.java b/tests/testbench/com/vaadin/tests/components/table/EditableTableLeak.java index 88c7c76889..26ac23d5be 100644 --- a/tests/testbench/com/vaadin/tests/components/table/EditableTableLeak.java +++ b/tests/testbench/com/vaadin/tests/components/table/EditableTableLeak.java @@ -114,7 +114,7 @@ public class EditableTableLeak extends TestBase { addComponent(new Button("Show size of the table", new ClickListener() { @Override public void buttonClick(ClickEvent event) { - table.requestRepaintAll(); + table.markAsDirtyRecursive(); updateSize(); } diff --git a/tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java b/tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java index 00df9fa3c3..a37cf48579 100644 --- a/tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java +++ b/tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java @@ -63,7 +63,7 @@ public class TableClickValueChangeInteraction extends TestBase { @Override public void itemClick(ItemClickEvent event) { - table.requestRepaint(); + table.markAsDirty(); clickLabel.setValue("Click " + event.getItemId()); } }); diff --git a/tests/testbench/com/vaadin/tests/components/table/TableColumnResizeContentsWidth.java b/tests/testbench/com/vaadin/tests/components/table/TableColumnResizeContentsWidth.java index 1895191cc4..0b695b41c7 100644 --- a/tests/testbench/com/vaadin/tests/components/table/TableColumnResizeContentsWidth.java +++ b/tests/testbench/com/vaadin/tests/components/table/TableColumnResizeContentsWidth.java @@ -34,14 +34,14 @@ public class TableColumnResizeContentsWidth extends TestBase { @Override public void buttonClick(ClickEvent event) { table.setColumnWidth(COL1, table.getColumnWidth(COL1) + 20); - table.requestRepaint(); + table.markAsDirty(); } })); addComponent(new Button("Decrease width", new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { table.setColumnWidth(COL1, table.getColumnWidth(COL1) - 40); - table.requestRepaint(); + table.markAsDirty(); } })); } diff --git a/tests/testbench/com/vaadin/tests/components/tree/TreeFiltering.java b/tests/testbench/com/vaadin/tests/components/tree/TreeFiltering.java index bd7984cdeb..be65a335be 100644 --- a/tests/testbench/com/vaadin/tests/components/tree/TreeFiltering.java +++ b/tests/testbench/com/vaadin/tests/components/tree/TreeFiltering.java @@ -51,7 +51,7 @@ public class TreeFiltering extends TestBase { public void valueChange(ValueChangeEvent event) { cont.setIncludeParentsWhenFiltering((Boolean) ((CheckBox) event .getProperty()).getValue()); - ccTree.requestRepaint(); + ccTree.markAsDirty(); } }); addComponent(filterType); diff --git a/tests/testbench/com/vaadin/tests/components/treetable/KeepAllItemsVisible.java b/tests/testbench/com/vaadin/tests/components/treetable/KeepAllItemsVisible.java index 799537f923..f444b781dd 100644 --- a/tests/testbench/com/vaadin/tests/components/treetable/KeepAllItemsVisible.java +++ b/tests/testbench/com/vaadin/tests/components/treetable/KeepAllItemsVisible.java @@ -40,7 +40,7 @@ public class KeepAllItemsVisible extends TestBase implements ExpandListener, @Override public void valueChange(ValueChangeEvent event) { recalculatePageLength(tt); - tt.requestRepaint(); + tt.markAsDirty(); } }); addComponent(tt); diff --git a/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSource.java b/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSource.java index abe8553267..020a6b56c5 100644 --- a/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSource.java +++ b/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSource.java @@ -64,7 +64,7 @@ public class NotPaintedAcceptSource extends TestBase { } else { horizontalLayout.replaceComponent(source2, source1); } - target.requestRepaint(); + target.markAsDirty(); } })); diff --git a/tests/testbench/com/vaadin/tests/extensions/HelloWorldExtension.java b/tests/testbench/com/vaadin/tests/extensions/HelloWorldExtension.java index de028cf0c3..60db95827c 100644 --- a/tests/testbench/com/vaadin/tests/extensions/HelloWorldExtension.java +++ b/tests/testbench/com/vaadin/tests/extensions/HelloWorldExtension.java @@ -39,7 +39,6 @@ public class HelloWorldExtension extends AbstractExtension { public void setGreeting(String greeting) { getState().setGreeting(greeting); - requestRepaint(); } public String getGreeting() { diff --git a/tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java b/tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java index b33162d714..7d4f41cfb3 100644 --- a/tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java +++ b/tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java @@ -84,7 +84,6 @@ public class SimpleJavaScriptExtensionTest extends AbstractTestRoot { public void setPrefix(String prefix) { getState().setPrefix(prefix); - requestRepaint(); } public void greetRpc(String message) { diff --git a/tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java b/tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java index ed35d39ef7..2f717d2b64 100644 --- a/tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java +++ b/tests/testbench/com/vaadin/tests/layouts/CssLayoutCustomCss.java @@ -85,7 +85,7 @@ public class CssLayoutCustomCss extends TestBase implements ClickListener { css.remove(b); b.setCaption("not " + b.getCaption()); } - layout.requestRepaint(); + layout.markAsDirty(); } diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/ComponentInStateComponent.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/ComponentInStateComponent.java index c6109eebcd..061eb7a23e 100644 --- a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/ComponentInStateComponent.java +++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/ComponentInStateComponent.java @@ -29,7 +29,6 @@ public class ComponentInStateComponent extends AbstractComponent { public void setOtherComponent(Component component) { getState().setOtherComponent(component); - requestRepaint(); } public Component getOtherComponent() { diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyComponent.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyComponent.java index b85d49172b..292ac62125 100644 --- a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyComponent.java +++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/MyComponent.java @@ -51,7 +51,6 @@ public class MyComponent extends AbstractComponent { public void setText(String text) { getState().setText(text); - requestRepaint(); } public String getText() { diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetContainer.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetContainer.java index 40bb7b68b8..5c519dbdfe 100644 --- a/tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetContainer.java +++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a2/WidgetContainer.java @@ -15,14 +15,14 @@ public class WidgetContainer extends AbstractComponentContainer { public void addComponent(Component c) { children.add(c); super.addComponent(c); - requestRepaint(); + markAsDirty(); } @Override public void removeComponent(Component c) { children.remove(c); super.removeComponent(c); - requestRepaint(); + markAsDirty(); } @Override @@ -33,7 +33,7 @@ public class WidgetContainer extends AbstractComponentContainer { children.add(index, newComponent); fireComponentDetachEvent(oldComponent); fireComponentAttachEvent(newComponent); - requestRepaint(); + markAsDirty(); } } diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/Flot.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/Flot.java index 99e6418fdc..816c60cfe5 100644 --- a/tests/testbench/com/vaadin/tests/minitutorials/v7a3/Flot.java +++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a3/Flot.java @@ -58,8 +58,6 @@ public class Flot extends AbstractJavaScriptComponent { } getState().getSeries().add(pointList); - - requestRepaint(); } public void highlight(int seriesIndex, int dataIndex) { diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1834PanelScrolling.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1834PanelScrolling.java index de91b04c1c..e31748ec2f 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket1834PanelScrolling.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1834PanelScrolling.java @@ -66,7 +66,7 @@ public class Ticket1834PanelScrolling extends b.addListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { - p.requestRepaint(); + p.markAsDirty(); } }); diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1983.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1983.java index 4deb5020ab..4db82c3371 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket1983.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1983.java @@ -107,7 +107,7 @@ public class Ticket1983 extends Application.LegacyApplication { isLong = true; } // Works the same way with or without repaint request - table.requestRepaint(); + table.markAsDirty(); } }); diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2060.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2060.java index 1d7d8bb006..88404b6ef1 100644 --- a/tests/testbench/com/vaadin/tests/tickets/Ticket2060.java +++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2060.java @@ -33,9 +33,9 @@ public class Ticket2060 extends Application.LegacyApplication { @Override public void buttonClick(ClickEvent event) { - button1.requestRepaint(); - button2.requestRepaint(); - button3.requestRepaint(); + button1.markAsDirty(); + button2.markAsDirty(); + button3.markAsDirty(); } -- cgit v1.2.3 From 52986fdf881260994e5465012af2afd80447b8b6 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Thu, 23 Aug 2012 10:41:24 +0300 Subject: Changed Notification type and position to enum (#9072) --- .../gwt/client/ui/notification/VNotification.java | 36 ++++++------ server/src/com/vaadin/terminal/Page.java | 4 +- server/src/com/vaadin/ui/Notification.java | 66 ++++++++++++++-------- server/src/com/vaadin/ui/Root.java | 9 +-- shared/src/com/vaadin/shared/Position.java | 20 +++++++ .../components/notification/Notifications.java | 4 +- 6 files changed, 90 insertions(+), 49 deletions(-) create mode 100755 shared/src/com/vaadin/shared/Position.java (limited to 'server/src/com/vaadin') diff --git a/client/src/com/vaadin/terminal/gwt/client/ui/notification/VNotification.java b/client/src/com/vaadin/terminal/gwt/client/ui/notification/VNotification.java index 6e253c9137..b4cea2dc72 100644 --- a/client/src/com/vaadin/terminal/gwt/client/ui/notification/VNotification.java +++ b/client/src/com/vaadin/terminal/gwt/client/ui/notification/VNotification.java @@ -29,6 +29,7 @@ import com.google.gwt.user.client.Event; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.Widget; +import com.vaadin.shared.Position; import com.vaadin.shared.ui.root.RootConstants; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.BrowserInfo; @@ -38,13 +39,13 @@ import com.vaadin.terminal.gwt.client.ui.VOverlay; public class VNotification extends VOverlay { - public static final int CENTERED = 1; - public static final int CENTERED_TOP = 2; - public static final int CENTERED_BOTTOM = 3; - public static final int TOP_LEFT = 4; - public static final int TOP_RIGHT = 5; - public static final int BOTTOM_LEFT = 6; - public static final int BOTTOM_RIGHT = 7; + public static final Position CENTERED = Position.MIDDLE_CENTER; + public static final Position CENTERED_TOP = Position.TOP_CENTER; + public static final Position CENTERED_BOTTOM = Position.BOTTOM_CENTER; + public static final Position TOP_LEFT = Position.TOP_LEFT; + public static final Position TOP_RIGHT = Position.TOP_RIGHT; + public static final Position BOTTOM_LEFT = Position.BOTTOM_LEFT; + public static final Position BOTTOM_RIGHT = Position.BOTTOM_RIGHT; public static final int DELAY_FOREVER = -1; public static final int DELAY_NONE = 0; @@ -144,21 +145,21 @@ public class VNotification extends VOverlay { show(CENTERED, style); } - public void show(int position) { + public void show(com.vaadin.shared.Position position) { show(position, null); } - public void show(Widget widget, int position, String style) { + public void show(Widget widget, Position position, String style) { setWidget(widget); show(position, style); } - public void show(String html, int position, String style) { + public void show(String html, Position position, String style) { setWidget(new HTML(html)); show(position, style); } - public void show(int position, String style) { + public void show(Position position, String style) { setOpacity(getElement(), startOpacity); if (style != null) { temporaryStyle = style; @@ -231,7 +232,7 @@ public class VNotification extends VOverlay { } } - public void setPosition(int position) { + public void setPosition(com.vaadin.shared.Position position) { final Element el = getElement(); DOM.setStyleAttribute(el, "top", ""); DOM.setStyleAttribute(el, "left", ""); @@ -260,17 +261,17 @@ public class VNotification extends VOverlay { DOM.setStyleAttribute(el, "bottom", "0px"); DOM.setStyleAttribute(el, "left", "0px"); break; - case CENTERED_TOP: + case TOP_CENTER: center(); DOM.setStyleAttribute(el, "top", "0px"); break; - case CENTERED_BOTTOM: + case BOTTOM_CENTER: center(); DOM.setStyleAttribute(el, "top", ""); DOM.setStyleAttribute(el, "bottom", "0px"); break; default: - case CENTERED: + case MIDDLE_CENTER: center(); break; } @@ -417,8 +418,11 @@ public class VNotification extends VOverlay { .hasAttribute(RootConstants.ATTRIBUTE_NOTIFICATION_STYLE) ? notification .getStringAttribute(RootConstants.ATTRIBUTE_NOTIFICATION_STYLE) : null; - final int position = notification + + final int pos = notification .getIntAttribute(RootConstants.ATTRIBUTE_NOTIFICATION_POSITION); + Position position = Position.values()[pos]; + final int delay = notification .getIntAttribute(RootConstants.ATTRIBUTE_NOTIFICATION_DELAY); createNotification(delay).show(html, position, style); diff --git a/server/src/com/vaadin/terminal/Page.java b/server/src/com/vaadin/terminal/Page.java index d41d500bb0..41ab8cc8b6 100644 --- a/server/src/com/vaadin/terminal/Page.java +++ b/server/src/com/vaadin/terminal/Page.java @@ -493,8 +493,8 @@ public class Page implements Serializable { true); } target.addAttribute( - RootConstants.ATTRIBUTE_NOTIFICATION_POSITION, - n.getPosition()); + RootConstants.ATTRIBUTE_NOTIFICATION_POSITION, n + .getPosition().ordinal()); target.addAttribute(RootConstants.ATTRIBUTE_NOTIFICATION_DELAY, n.getDelayMsec()); if (n.getStyleName() != null) { diff --git a/server/src/com/vaadin/ui/Notification.java b/server/src/com/vaadin/ui/Notification.java index d408889519..22ad31dffe 100644 --- a/server/src/com/vaadin/ui/Notification.java +++ b/server/src/com/vaadin/ui/Notification.java @@ -18,6 +18,7 @@ package com.vaadin.ui; import java.io.Serializable; +import com.vaadin.shared.Position; import com.vaadin.terminal.Page; import com.vaadin.terminal.Resource; @@ -61,18 +62,33 @@ import com.vaadin.terminal.Resource; * */ public class Notification implements Serializable { - public static final int TYPE_HUMANIZED_MESSAGE = 1; - public static final int TYPE_WARNING_MESSAGE = 2; - public static final int TYPE_ERROR_MESSAGE = 3; - public static final int TYPE_TRAY_NOTIFICATION = 4; - - public static final int POSITION_CENTERED = 1; - public static final int POSITION_CENTERED_TOP = 2; - public static final int POSITION_CENTERED_BOTTOM = 3; - public static final int POSITION_TOP_LEFT = 4; - public static final int POSITION_TOP_RIGHT = 5; - public static final int POSITION_BOTTOM_LEFT = 6; - public static final int POSITION_BOTTOM_RIGHT = 7; + public enum Type { + HUMANIZED_MESSAGE, WARNING_MESSAGE, ERROR_MESSAGE, TRAY_NOTIFICATION; + } + + @Deprecated + public static final Type TYPE_HUMANIZED_MESSAGE = Type.HUMANIZED_MESSAGE; + @Deprecated + public static final Type TYPE_WARNING_MESSAGE = Type.WARNING_MESSAGE; + @Deprecated + public static final Type TYPE_ERROR_MESSAGE = Type.ERROR_MESSAGE; + @Deprecated + public static final Type TYPE_TRAY_NOTIFICATION = Type.TRAY_NOTIFICATION; + + @Deprecated + public static final Position POSITION_CENTERED = Position.MIDDLE_CENTER; + @Deprecated + public static final Position POSITION_CENTERED_TOP = Position.TOP_CENTER; + @Deprecated + public static final Position POSITION_CENTERED_BOTTOM = Position.BOTTOM_CENTER; + @Deprecated + public static final Position POSITION_TOP_LEFT = Position.TOP_LEFT; + @Deprecated + public static final Position POSITION_TOP_RIGHT = Position.TOP_RIGHT; + @Deprecated + public static final Position POSITION_BOTTOM_LEFT = Position.BOTTOM_LEFT; + @Deprecated + public static final Position POSITION_BOTTOM_RIGHT = Position.BOTTOM_RIGHT; public static final int DELAY_FOREVER = -1; public static final int DELAY_NONE = 0; @@ -80,7 +96,7 @@ public class Notification implements Serializable { private String caption; private String description; private Resource icon; - private int position = POSITION_CENTERED; + private Position position = Position.MIDDLE_CENTER; private int delayMsec = 0; private String styleName; private boolean htmlContentAllowed; @@ -107,7 +123,7 @@ public class Notification implements Serializable { * @param type * The type of message */ - public Notification(String caption, int type) { + public Notification(String caption, Type type) { this(caption, null, type); } @@ -141,7 +157,7 @@ public class Notification implements Serializable { * @param type * The type of message */ - public Notification(String caption, String description, int type) { + public Notification(String caption, String description, Type type) { this(caption, description, type, false); } @@ -161,7 +177,7 @@ public class Notification implements Serializable { * Whether html in the caption and description should be * displayed as html or as plain text */ - public Notification(String caption, String description, int type, + public Notification(String caption, String description, Type type, boolean htmlContentAllowed) { this.caption = caption; this.description = description; @@ -169,22 +185,22 @@ public class Notification implements Serializable { setType(type); } - private void setType(int type) { + private void setType(Type type) { switch (type) { - case TYPE_WARNING_MESSAGE: + case WARNING_MESSAGE: delayMsec = 1500; styleName = "warning"; break; - case TYPE_ERROR_MESSAGE: + case ERROR_MESSAGE: delayMsec = -1; styleName = "error"; break; - case TYPE_TRAY_NOTIFICATION: + case TRAY_NOTIFICATION: delayMsec = 3000; - position = POSITION_BOTTOM_RIGHT; + position = Position.BOTTOM_RIGHT; styleName = "tray"; - case TYPE_HUMANIZED_MESSAGE: + case HUMANIZED_MESSAGE: default: break; } @@ -233,7 +249,7 @@ public class Notification implements Serializable { * * @return The position */ - public int getPosition() { + public Position getPosition() { return position; } @@ -243,7 +259,7 @@ public class Notification implements Serializable { * @param position * The desired notification position */ - public void setPosition(int position) { + public void setPosition(Position position) { this.position = position; } @@ -373,7 +389,7 @@ public class Notification implements Serializable { * @param type * The message type */ - public static void show(String caption, int type) { + public static void show(String caption, Type type) { new Notification(caption, type).show(Page.getCurrent()); } } \ No newline at end of file diff --git a/server/src/com/vaadin/ui/Root.java b/server/src/com/vaadin/ui/Root.java index 35517044c0..67f2e04a65 100644 --- a/server/src/com/vaadin/ui/Root.java +++ b/server/src/com/vaadin/ui/Root.java @@ -1124,7 +1124,7 @@ public abstract class Root extends AbstractComponentContainer implements * Notification.show does not allow HTML. */ @Deprecated - public void showNotification(String caption, int type) { + public void showNotification(String caption, Notification.Type type) { Notification notification = new Notification(caption, type); notification.setHtmlContentAllowed(true);// Backwards compatibility getPage().showNotification(notification); @@ -1179,7 +1179,8 @@ public abstract class Root extends AbstractComponentContainer implements * be aware that HTML by default not allowed. */ @Deprecated - public void showNotification(String caption, String description, int type) { + public void showNotification(String caption, String description, + Notification.Type type) { Notification notification = new Notification(caption, description, type); notification.setHtmlContentAllowed(true);// Backwards compatibility getPage().showNotification(notification); @@ -1210,8 +1211,8 @@ public abstract class Root extends AbstractComponentContainer implements * @deprecated As of 7.0, use new Notification(...).show(Page). */ @Deprecated - public void showNotification(String caption, String description, int type, - boolean htmlContentAllowed) { + public void showNotification(String caption, String description, + Notification.Type type, boolean htmlContentAllowed) { getPage() .showNotification( new Notification(caption, description, type, diff --git a/shared/src/com/vaadin/shared/Position.java b/shared/src/com/vaadin/shared/Position.java new file mode 100755 index 0000000000..89d6a4261c --- /dev/null +++ b/shared/src/com/vaadin/shared/Position.java @@ -0,0 +1,20 @@ +/* + * Copyright 2011 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.shared; + +public enum Position { + TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT; +} diff --git a/tests/testbench/com/vaadin/tests/components/notification/Notifications.java b/tests/testbench/com/vaadin/tests/components/notification/Notifications.java index ab632a2a57..97e038dc1a 100644 --- a/tests/testbench/com/vaadin/tests/components/notification/Notifications.java +++ b/tests/testbench/com/vaadin/tests/components/notification/Notifications.java @@ -7,6 +7,7 @@ import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.NativeSelect; import com.vaadin.ui.Notification; +import com.vaadin.ui.Notification.Type; import com.vaadin.ui.TextArea; public class Notifications extends TestBase implements ClickListener { @@ -52,8 +53,7 @@ public class Notifications extends TestBase implements ClickListener { @Override public void buttonClick(ClickEvent event) { - Notification n = new Notification(tf.getValue(), - (Integer) type.getValue()); + Notification n = new Notification(tf.getValue(), (Type) type.getValue()); n.setHtmlContentAllowed(true); n.show(Page.getCurrent()); } -- cgit v1.2.3