瀏覽代碼

Add since tags and update release notes (#10109)

tags/8.2.0.alpha2
Henri Sara 6 年之前
父節點
當前提交
198ec82c51

+ 10
- 0
all/src/main/templates/release-notes.html 查看文件

@@ -86,7 +86,17 @@
<li>Separate row heights for header, body and footer in Grid</li>
<li>Support for item descriptions (tooltips) in CheckBoxGroup, RadioButtonGroup and Tree</li>
<li>Binder supports removing bindings</li>
<li>Binding builder methods do not have to be chained</li>
<li>Bean validation failures will revert changes in Binder</li>
<li>Notification supports CloseListener</li>
<li>Tree now has methods to scroll it programmatically</li>
<li>The browser time zone can be obtained from WebBrowser if the browser supports it</li>
<li>AbstractDateField now supports formatting of time zone information</li>
<li>PushState based navigation support</li>
<li>VaadinSession is now stored to the HTTP session at the end of each access to support clustering</li>
<li>Grid WAI-ARIA support has been improved (aria-sort added)</li>
<li>Client side ErrorLevel support</li>
<li>VaadinService, VaadinServlet and VaadinServletService have protected no-args constructors to make DI integrations simpler</li>
</ul>

</p>

+ 2
- 0
client/src/main/java/com/vaadin/client/StyleConstants.java 查看文件

@@ -47,6 +47,8 @@ public class StyleConstants {

/**
* Style name and style name prefix for the error indicator element.
*
* @since 8.2
*/
public static final String STYLE_NAME_ERROR_INDICATOR = "v-errorindicator";
}

+ 25
- 23
client/src/main/java/com/vaadin/client/TooltipInfo.java 查看文件

@@ -48,7 +48,7 @@ public class TooltipInfo {
* Constructs a new tooltip info instance.
*
* @param tooltip
* tooltip title
* tooltip title
*/
public TooltipInfo(String tooltip) {
this(tooltip, ContentMode.PREFORMATTED);
@@ -103,8 +103,9 @@ public class TooltipInfo {
* @param errorLevel
* error level
*
* @deprecated use {@link #TooltipInfo(String, ContentMode, String, Object,
* ErrorLevel)} instead
* @deprecated use
* {@link #TooltipInfo(String, ContentMode, String, Object, ErrorLevel)}
* instead
* @since 8.2
*/
@Deprecated
@@ -117,9 +118,9 @@ public class TooltipInfo {
* Constructs a new tooltip info instance.
*
* @param tooltip
* tooltip title
* tooltip title
* @param mode
* content mode
* content mode
*/
public TooltipInfo(String tooltip, ContentMode mode) {
setTitle(tooltip);
@@ -130,11 +131,11 @@ public class TooltipInfo {
* Constructs a new tooltip info instance.
*
* @param tooltip
* tooltip title
* tooltip title
* @param mode
* content mode
* content mode
* @param errorMessage
* error message
* error message
*/
public TooltipInfo(String tooltip, ContentMode mode, String errorMessage) {
this(tooltip, mode, errorMessage, null);
@@ -144,13 +145,13 @@ public class TooltipInfo {
* Constructs a new tooltip info instance.
*
* @param tooltip
* tooltip title
* tooltip title
* @param mode
* content mode
* content mode
* @param errorMessage
* error message
* error message
* @param identifier
* the tooltip's identifier
* the tooltip's identifier
*/
public TooltipInfo(String tooltip, ContentMode mode, String errorMessage,
Object identifier) {
@@ -161,15 +162,16 @@ public class TooltipInfo {
* Constructs a new tooltip info instance.
*
* @param tooltip
* tooltip title
* tooltip title
* @param mode
* content mode
* content mode
* @param errorMessage
* error message
* error message
* @param identifier
* the tooltip's identifier
* the tooltip's identifier
* @param errorLevel
* error level
* error level
* @since 8.2
*/
public TooltipInfo(String tooltip, ContentMode mode, String errorMessage,
Object identifier, ErrorLevel errorLevel) {
@@ -184,7 +186,7 @@ public class TooltipInfo {
* Sets the tooltip's identifier.
*
* @param identifier
* the identifier to set
* the identifier to set
*/
public void setIdentifier(Object identifier) {
this.identifier = identifier;
@@ -212,7 +214,7 @@ public class TooltipInfo {
* Sets the tooltip title.
*
* @param title
* the title to set
* the title to set
*/
public void setTitle(String title) {
this.title = title;
@@ -231,7 +233,7 @@ public class TooltipInfo {
* Sets the error message.
*
* @param errorMessage
* the error message to set
* the error message to set
*/
public void setErrorMessage(String errorMessage) {
errorMessageHtml = errorMessage;
@@ -250,7 +252,7 @@ public class TooltipInfo {
* Sets the tooltip title's content mode.
*
* @param contentMode
* the content mode to set
* the content mode to set
*/
public void setContentMode(ContentMode contentMode) {
this.contentMode = contentMode;
@@ -270,7 +272,7 @@ public class TooltipInfo {
* Sets the error level.
*
* @param errorLevel
* the error level to set
* the error level to set
* @since 8.2
*/
public void setErrorLevel(ErrorLevel errorLevel) {
@@ -294,7 +296,7 @@ public class TooltipInfo {
* identifier are equal.
*
* @param other
* the reference tooltip info instance with which to compare
* the reference tooltip info instance with which to compare
* @return {@code true} if the instances are equal, {@code false} otherwise
*/
public boolean equals(TooltipInfo other) {

+ 7
- 0
client/src/main/java/com/vaadin/client/ui/VAbstractTextualDate.java 查看文件

@@ -201,6 +201,13 @@ public abstract class VAbstractTextualDate<R extends Enum<R>>
}
}

/**
* Sets the time zone for the field.
*
* @param timeZone
* the new time zone to use
* @since 8.2
*/
public void setTimeZone(TimeZone timeZone) {
this.timeZone = timeZone;
}

+ 21
- 23
server/src/main/java/com/vaadin/data/Binder.java 查看文件

@@ -129,9 +129,9 @@ public class Binder<BEAN> implements Serializable {

/**
* Gets the validation status handler for this Binding.
*
*
* @return the validation status handler for this binding
*
*
* @since 8.2
*/
public BindingValidationStatusHandler getValidationStatusHandler();
@@ -423,11 +423,9 @@ public class Binder<BEAN> implements Serializable {
TARGET nullRepresentation) {
return withConverter(
fieldValue -> Objects.equals(fieldValue, nullRepresentation)
? null
: fieldValue,
? null : fieldValue,
modelValue -> Objects.isNull(modelValue)
? nullRepresentation
: modelValue);
? nullRepresentation : modelValue);
}

/**
@@ -1111,9 +1109,10 @@ public class Binder<BEAN> implements Serializable {
* trigger validating and writing of the whole bean if using
* {@link #setBean(Object)}. If using {@link #readBean(Object)} only the
* field validation is run.
*
*
* @param binding
* the binding whose value has been changed
* @since 8.2
*/
protected void handleFieldValueChange(Binding<BEAN, ?> binding) {
changedBindings.add(binding);
@@ -1520,7 +1519,7 @@ public class Binder<BEAN> implements Serializable {
* Changes have been succesfully saved. The set is only cleared
* if using readBean/writeBean or when the changes are stored in
* the currently set bean.
*
*
* Writing changes to another bean when using setBean does not
* clear the set of changed bindings.
*/
@@ -1538,12 +1537,12 @@ public class Binder<BEAN> implements Serializable {

/**
* Restores the state of the bean from the given values.
*
*
* @param bean
* the bean
* @param oldValues
* the old values
*
*
* @since 8.2
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
@@ -1560,14 +1559,14 @@ public class Binder<BEAN> implements Serializable {

/**
* Stores the state of the given bean.
*
*
* @param bean
* the bean to store the state of
* @param bindings
* the bindings to store
*
*
* @return map from binding to value
*
*
* @since 8.2
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
@@ -1689,12 +1688,12 @@ public class Binder<BEAN> implements Serializable {
* Validates the values of all bound fields and returns the validation
* status. This method can skip firing the event, based on the given
* {@code boolean}.
*
*
* @param fireEvent
* {@code true} to fire validation status events; {@code false}
* to not
* @return validation status for the binder
*
*
* @since 8.2
*/
protected BinderValidationStatus<BEAN> validate(boolean fireEvent) {
@@ -2159,8 +2158,7 @@ public class Binder<BEAN> implements Serializable {
Converter<FIELDVALUE, FIELDVALUE> nullRepresentationConverter = Converter
.from(fieldValue -> fieldValue,
modelValue -> Objects.isNull(modelValue)
? field.getEmptyValue()
: modelValue,
? field.getEmptyValue() : modelValue,
exception -> exception.getMessage());
ConverterDelegate<FIELDVALUE> converter = new ConverterDelegate<>(
nullRepresentationConverter);
@@ -2490,10 +2488,10 @@ public class Binder<BEAN> implements Serializable {

/**
* Finds and removes all Bindings for the given field.
*
*
* @param field
* the field to remove from bindings
*
*
* @since 8.2
*/
public void removeBinding(HasValue<?> field) {
@@ -2506,10 +2504,10 @@ public class Binder<BEAN> implements Serializable {

/**
* Removes the given Binding from this Binder.
*
*
* @param binding
* the binding to remove
*
*
* @since 8.2
*/
public void removeBinding(Binding<BEAN, ?> binding) {
@@ -2542,10 +2540,10 @@ public class Binder<BEAN> implements Serializable {

/**
* Finds and removes the Binding for the given property name.
*
*
* @param propertyName
* the propertyName to remove from bindings
*
*
* @since 8.2
*/
public void removeBinding(String propertyName) {

+ 5
- 3
server/src/main/java/com/vaadin/server/WebBrowser.java 查看文件

@@ -359,7 +359,9 @@ public class WebBrowser implements Serializable {
* (if the browser supports this feature).
*
* @return the TimeZone Id if provided by the browser, null otherwise.
* @see <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/resolvedOptions">Intl.DateTimeFormat.prototype.resolvedOptions()</a>
* @see <a href=
* "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/resolvedOptions">Intl.DateTimeFormat.prototype.resolvedOptions()</a>
* @since 8.2
*/
public String getTimeZoneId() {
return timeZoneId;
@@ -500,9 +502,9 @@ public class WebBrowser implements Serializable {
this.dstInEffect = Boolean.parseBoolean(dstInEffect);
}
if (tzId == null || "undefined".equals(tzId)) {
this.timeZoneId = null;
timeZoneId = null;
} else {
this.timeZoneId = tzId;
timeZoneId = tzId;
}
if (curDate != null) {
try {

+ 25
- 19
server/src/main/java/com/vaadin/ui/Notification.java 查看文件

@@ -23,7 +23,6 @@ import com.vaadin.event.ConnectorEvent;
import com.vaadin.server.AbstractExtension;
import com.vaadin.server.Page;
import com.vaadin.server.Resource;
import com.vaadin.server.ResourceReference;
import com.vaadin.shared.Position;
import com.vaadin.shared.Registration;
import com.vaadin.shared.ui.notification.NotificationServerRpc;
@@ -72,6 +71,8 @@ public class Notification extends AbstractExtension implements Serializable {

/**
* The server RPC.
*
* @since 8.2
*/
protected NotificationServerRpc rpc = () -> {
fireEvent(new CloseEvent(Notification.this));
@@ -287,8 +288,7 @@ public class Notification extends AbstractExtension implements Serializable {
* Sets the position of the notification message.
*
* @param position
* The desired notification position,
* not {@code null}
* The desired notification position, not {@code null}
*/
public void setPosition(Position position) {
if (position == null) {
@@ -319,8 +319,8 @@ public class Notification extends AbstractExtension implements Serializable {
/**
* Gets the delay before the notification disappears.
*
* @return the delay in milliseconds, {@value #DELAY_FOREVER}
* indicates the message has to be clicked.
* @return the delay in milliseconds, {@value #DELAY_FOREVER} indicates the
* message has to be clicked.
*/
public int getDelayMsec() {
return getState(false).delay;
@@ -330,8 +330,8 @@ public class Notification extends AbstractExtension implements Serializable {
* Sets the delay before the notification disappears.
*
* @param delayMsec
* the desired delay in milliseconds, {@value #DELAY_FOREVER}
* to require the user to click the message
* the desired delay in milliseconds, {@value #DELAY_FOREVER} to
* require the user to click the message
*/
public void setDelayMsec(int delayMsec) {
getState().delay = delayMsec;
@@ -374,8 +374,8 @@ public class Notification extends AbstractExtension implements Serializable {
* Checks whether caption and description are interpreted as HTML or plain
* text.
*
* @return {@code true} if the texts are used as HTML,
* {@code false} if used as plain text
* @return {@code true} if the texts are used as HTML, {@code false} if used
* as plain text
* @see #setHtmlContentAllowed(boolean)
*/
public boolean isHtmlContentAllowed() {
@@ -413,8 +413,7 @@ public class Notification extends AbstractExtension implements Serializable {
*
* @param caption
* The message
* @return
* The Notification
* @return The Notification
*/
public static Notification show(String caption) {
Notification notification = new Notification(caption);
@@ -437,8 +436,7 @@ public class Notification extends AbstractExtension implements Serializable {
* The message
* @param type
* The message type
* @return
* The Notification
* @return The Notification
*/
public static Notification show(String caption, Type type) {
Notification notification = new Notification(caption, type);
@@ -463,11 +461,12 @@ public class Notification extends AbstractExtension implements Serializable {
* The message description
* @param type
* The message type
* @return
* The Notification
* @return The Notification
*/
public static Notification show(String caption, String description, Type type) {
Notification notification = new Notification(caption, description, type);
public static Notification show(String caption, String description,
Type type) {
Notification notification = new Notification(caption, description,
type);
notification.extend(UI.getCurrent());
return notification;
}
@@ -495,6 +494,11 @@ public class Notification extends AbstractExtension implements Serializable {
}
}

/**
* Event fired when a notification is closed.
*
* @since 8.2
*/
public static class CloseEvent extends ConnectorEvent {

/**
@@ -517,8 +521,10 @@ public class Notification extends AbstractExtension implements Serializable {
/**
* An interface used for listening to Notification close events. Add the
* CloseListener to a Notification and
* {@link CloseListener#notificationClose(CloseEvent)} will be called whenever the
* Notification is closed.
* {@link CloseListener#notificationClose(CloseEvent)} will be called
* whenever the Notification is closed.
*
* @since 8.2
*/
@FunctionalInterface
public interface CloseListener extends Serializable {

+ 7
- 1
server/src/main/java/com/vaadin/ui/Tree.java 查看文件

@@ -1153,7 +1153,8 @@ public class Tree<T> extends Composite
* @param row
* zero based index of the item to scroll to in the current view.
* @throws IllegalArgumentException
* if the provided row is outside the item range
* if the provided row is outside the item range
* @since 8.2
*/
public void scrollTo(int row) throws IllegalArgumentException {
treeGrid.scrollTo(row, ScrollDestination.ANY);
@@ -1172,6 +1173,7 @@ public class Tree<T> extends Composite
* {@code null}
* @throws IllegalArgumentException
* if the provided row is outside the item range
* @since 8.2
*/
public void scrollTo(int row, ScrollDestination destination) {
treeGrid.scrollTo(row, destination);
@@ -1179,6 +1181,8 @@ public class Tree<T> extends Composite

/**
* Scrolls to the beginning of the first data row.
*
* @since 8.2
*/
public void scrollToStart() {
treeGrid.scrollToStart();
@@ -1186,6 +1190,8 @@ public class Tree<T> extends Composite

/**
* Scrolls to the end of the last data row.
*
* @since 8.2
*/
public void scrollToEnd() {
treeGrid.scrollToEnd();

Loading…
取消
儲存