Fix since tags for the server and shared modules and new types in client.
* execute a command after all dependencies have finished loading.
*
* @author Vaadin Ltd
- * @since 8.0.0
+ * @since 8.0
*/
public class DependencyLoader {
*
* @param <WIDGET>
* widget type which has to allow to register focus/blur handlers
+ * @since 8.0
*/
public abstract class AbstractFocusableListingConnector<WIDGET extends Widget & HasAllFocusHandlers>
extends AbstractListingConnector {
* An abstract class for single selection connectors.
*
* @author Vaadin Ltd
- * @since 8.0.0
+ * @since 8.0
*/
public abstract class AbstractSingleSelectConnector<WIDGET extends Widget & HasAllFocusHandlers>
extends AbstractFocusableListingConnector<WIDGET>
* @param <T>
* the presentation type of the renderer
*
- * @since 7.4
+ * @since 8.0
* @author Vaadin Ltd
*/
public abstract class AbstractGridRendererConnector<T>
* string, and displayed as-is on the client side. This is to be able to support
* the server's locale.
*
- * @since 7.4
+ * @since 8.0
* @author Vaadin Ltd
*/
@Connect(com.vaadin.ui.renderers.DateRenderer.class)
* string, and displayed as-is on the client side. This is to be able to support
* the server's locale.
*
- * @since 7.4
+ * @since 8.0
* @author Vaadin Ltd
*/
@Connect(com.vaadin.ui.renderers.NumberRenderer.class)
/**
* A connector for {@link ProgressBarRenderer}.
*
- * @since 7.4
+ * @since 8.0
* @author Vaadin Ltd
*/
@Connect(com.vaadin.ui.renderers.ProgressBarRenderer.class)
/**
* A connector for {@link TextRenderer}.
*
- * @since 7.4
+ * @since 8.0
* @author Vaadin Ltd
*/
@Connect(com.vaadin.ui.renderers.TextRenderer.class)
/**
* A connector for {@link UnsafeHtmlRenderer}
*
- * @since 7.4
+ * @since 8.0
* @author Vaadin Ltd
*/
@Connect(com.vaadin.ui.renderers.HtmlRenderer.class)
/**
* Implemented by all widgets used by a connector extending
* {@link AbstractTextFieldConnector}.
+ *
+ * @since 8.0
*/
public interface AbstractTextFieldWidget {
/**
* Implemented by connectors supporting an error indicator.
+ *
+ * @since 8.0
*/
public interface HasErrorIndicator extends ComponentConnector {
/**
* Implemented by connectors supporting a required flag.
+ *
+ * @since 8.0
*/
public interface HasRequiredIndicator extends ComponentConnector {
/**
* Abstract calendar panel to show and select a date using a resolution. The
* class is parameterized by the date resolution enumeration type.
- *
+ *
* @author Vaadin Ltd
*
* @param <R>
* the resolution type which this field is based on (day, month, ...)
+ * @since 8.0
*/
@SuppressWarnings("deprecation")
public abstract class VAbstractCalendarPanel<R extends Enum<R>>
/**
* Returns {@code true} if current resolution assumes handling focus event
* for day UI component.
- *
+ *
* @return {@code true} if day focus events should be handled, {@code false}
* otherwise
*/
/**
* Returns {@code true} if the provided {@code resolution} represents a day.
- *
+ *
* @param resolution
* the given resolution
* @return {@code true} if the {@code resolution} represents a day
/**
* Returns {@code true} if the provided {@code resolution} represents a
* month.
- *
+ *
* @param resolution
* the given resolution
* @return {@code true} if the {@code resolution} represents a month
/**
* Returns {@code true} if the provided {@code resolution} represents an
* year.
- *
+ *
* @param resolution
* the given resolution
* @return {@code true} if the {@code resolution} represents a year
/**
* Returns {@code true} if the {@code resolution} representation is strictly
* below month (day, hour, etc..).
- *
+ *
* @param resolution
* the given resolution
* @return whether the {@code resolution} is below the month resolution
/**
* Returns all available resolutions for the widget.
- *
+ *
* @return all available resolutions
*/
protected Stream<R> getResolutions() {
/**
* Finds the resolution by the {@code filter}.
- *
+ *
* @param filter
* predicate to filter resolutions
* @return the resolution accepted by the {@code filter}
/**
* Checks whether the widget is not editable (read-only).
- *
+ *
* @return {@code true} if the widget is read-only
*/
protected boolean isReadonly() {
/**
* Checks whether the widget is enabled.
- *
+ *
* @return {@code true} is the widget is enabled
*/
protected boolean isEnabled() {
/**
* Returns date time service for the widget.
- *
+ *
* @see #setDateTimeService(DateTimeService)
- *
+ *
* @return date time service
*/
protected DateTimeService getDateTimeService() {
/**
* Returns the date field which this panel is attached to.
- *
+ *
* @return the "parent" date field
*/
protected VDateField<R> getDateField() {
* Subclasses may override this method to provide a custom implementation
* avoiding {@link #renderCalendar(boolean)} override. The latter method
* contains a common logic which should not be overriden.
- *
+ *
* @param updateDate
* The value false prevents setting the selected date of the
* calendar based on focusedDate. That can be used when only the
* The actual implementation of the logic which sets the data of the Panel.
* The method {@link #setDate(Date)} just delegate a call to this method
* providing additional config parameters.
- *
+ *
* @param currentDate
* currentDate The date to set
* @param needRerender
* then pass set it by calling the
* <code>setCalendarPanel(VAbstractCalendarPanel panel)</code> method.
*
+ * @since 8.0
*/
public abstract class VAbstractPopupCalendar<PANEL extends VAbstractCalendarPanel<R>, R extends Enum<R>>
extends VAbstractTextualDate<R>
* Abstract textual date field base implementation. Provides a text box as an
* editor for a date. The class is parameterized by the date resolution
* enumeration type.
- *
+ *
* @author Vaadin Ltd
*
* @param <R>
* the resolution type which this field is based on (day, month, ...)
+ * @since 8.0
*/
public abstract class VAbstractTextualDate<R extends Enum<R>>
extends VDateField<R> implements Field, ChangeHandler, Focusable,
/**
* Gets the date format string for the current locale.
- *
+ *
* @return the format string
*/
protected String getFormatString() {
/**
* Clean date format string to make it suitable for
* {@link #getFormatString()}.
- *
+ *
* @see #getFormatString()
- *
+ *
* @param format
* date format string
* @return cleaned up string
* Client side implementation of the ComboBox component.
*
* TODO needs major refactoring (to be extensible etc)
+ *
+ * @since 8.0
*/
@SuppressWarnings("deprecation")
public class VComboBox extends Composite implements Field, KeyDownHandler,
/**
* @author Vaadin Ltd
- *
+ * @since 8.0
*/
public class VDateCalendarPanel extends VAbstractCalendarPanel<DateResolution> {
/**
* Returns window position in list of opened and shown windows.
*
- * @since 8.0.0
+ * @since 8.0
*/
public final int getWindowOrder() {
return windowOrder.indexOf(this);
/**
* Adds a Handler for window order change event.
*
- * @since 8.0.0
+ * @since 8.0
*
* @return registration object to deregister the handler
*/
/**
* Base class for inline data field connector.
- *
+ *
* @author Vaadin Ltd
*
* @param <R>
* the resolution type which the field is based on (day, month, ...)
* @param <PANEL>
* Subclass of VAbstractCalendarPanel specific for the implementation
+ * @since 8.0
*/
public abstract class AbstractInlineDateFieldConnector<PANEL extends VAbstractCalendarPanel<R>, R extends Enum<R>>
extends AbstractDateFieldConnector<R> {
/**
* Returns {@code true} is the current resolution of the widget is month or
* less specific (e.g. month, year, quarter, etc).
- *
+ *
* @return {@code true} if the current resolution is above month
*/
protected abstract boolean isResolutionMonthOrHigher();
import com.vaadin.client.ui.VAbstractTextualDate;
import com.vaadin.shared.ui.datefield.AbstractTextualDateFieldState;
+/**
+ * Abstract base class for date fields with textual date representation.
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ *
+ * @param <R>
+ * resolution type
+ */
public abstract class AbstractTextualDateConnector<R extends Enum<R>>
extends AbstractDateFieldConnector<R> {
import elemental.json.JsonObject;
+/**
+ * CheckBoxGroup client side connector.
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
@Connect(CheckBoxGroup.class)
// We don't care about the framework-provided selection model at this point
// TODO refactor to extend AbstractMultiSelectConnector, maybe when
import elemental.json.JsonObject;
+/**
+ * CheckBoxGroup client side connector.
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
@Connect(RadioButtonGroup.class)
public class RadioButtonGroupConnector
extends AbstractSingleSelectConnector<VRadioButtonGroup> {
/**
* Connector for {@link VProgressBar}.
*
- * @since 7.1
+ * @since 8.0
* @author Vaadin Ltd
*/
@Connect(ProgressBar.class)
/**
* Connector class for AbstractTextField.
+ *
+ * @since 8.0
*/
public abstract class AbstractTextFieldConnector extends AbstractFieldConnector
implements ValueChangeHandler.Owner, DeferredWorker {
/**
* {@inheritDoc}
- *
- * @since 8.0.0
+ *
+ * @since 8.0
*/
@Override
public boolean isWorkPending() {
/**
* Helper for dealing with scheduling value change events based on a given mode
* and possibly timeout.
+ *
+ * @since 8.0
*/
public class ValueChangeHandler {
/**
* Checks whether the value change is scheduled for sending.
- *
- * @since 8.0.0
- *
+ *
+ * @since 8.0
+ *
* @return {@code true} if value change is scheduled for sending,
* {@code false} otherwise
*/
/**
* Event for window order position updates.
*
- * @since 8.0.0
+ * @since 8.0
*
* @author Vaadin Ltd
*/
/**
* Handler for {@link WindowOrderEvent}s.
*
- * @since 8.0.0
+ * @since 8.0
*
* @author Vaadin Ltd
*/
* (child) elements.
*
* @author Vaadin Ltd
- *
+ * @since 8.0
*/
public class ChildFocusAwareFlowPanel extends FocusableFlowPanel
implements HasAllFocusHandlers {
* panel that tracks focus/blur events from its children).
*
* @author Vaadin Ltd
- *
+ * @since 8.0
*/
public abstract class FocusableFlowPanelComposite extends Composite
implements HasAllFocusHandlers, Focusable {
* the {@code init()} method of the client side connector is invoked.
*
* @author Vaadin Ltd
- * @since 8.0.0
+ * @since 8.0
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
* {@link HtmlImport @HtmlImport} should be used instead.
*
* @author Vaadin Ltd
+ * @since 8.0
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
* {@link JavaScript @JavaScript} should be used instead.
*
* @author Vaadin Ltd
+ * @since 8.0
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
* {@link StyleSheet @StyleSheet} should be used instead.
*
* @author Vaadin Ltd
+ * @since 8.0
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
</pre>
* </code>
*
- * @since 7.0
+ * @since 8.0
* @author Vaadin Ltd
*/
@Target({ ElementType.FIELD })
*
* @author Vaadin Ltd
*
- * @since
+ * @since 8.0
*
* @param <T>
* the type of the bean
*
* @author Vaadin Ltd
*
+ * @since 8.0
+ *
* @param <T>
* the type of the displayed item
*/
* {@link #setDataProvider(DataProvider)} method. It means that the items
* collection can be accessed later on via
* {@link ListDataProvider#getItems()}:
- *
+ *
* <pre>
* <code>
* HasDataProvider<String> listing = new CheckBoxGroup<>();
* listing.setItems(Arrays.asList("a","b"));
* ...
- *
+ *
* Collection<String> collection = ((ListDataProvider<String>)listing.getDataProvider()).getItems();
* </code>
* </pre>
* {@link #setDataProvider(DataProvider)} method. It means that the items
* collection can be accessed later on via
* {@link ListDataProvider#getItems()}:
- *
+ *
* <pre>
* <code>
* HasDataProvider<String> listing = new CheckBoxGroup<>();
* listing.setItems(Arrays.asList("a","b"));
* ...
- *
+ *
* Collection<String> collection = ((ListDataProvider<String>)listing.getDataProvider()).getItems();
* </code>
* </pre>
* <p>
- *
+ *
* @see #setItems(Collection)
- *
+ *
* @param items
* the data items to display
*/
* {@link #setDataProvider(DataProvider)} method. It means that the items
* collection can be accessed later on via
* {@link ListDataProvider#getItems()}:
- *
+ *
* <pre>
* <code>
* HasDataProvider<String> listing = new CheckBoxGroup<>();
* listing.setItems(Arrays.asList("a","b"));
* ...
- *
+ *
* Collection<String> collection = ((ListDataProvider<String>)listing.getDataProvider()).getItems();
* </code>
* </pre>
* A property from a {@link PropertySet}.
*
* @author Vaadin Ltd
- * @since
+ * @since 8.0
*
* @param <T>
* the type of the property set
*
* @author Vaadin Ltd
*
- * @since
+ * @since 8.0
*
* @param <T>
* the type for which the properties are defined
*
* @param <R>
* the result value type
+ *
+ * @since 8.0
*/
public interface Result<R> extends Serializable {
*
* @param <R>
* the result value type
+ *
+ * @since 8.0
*/
class SimpleResult<R> implements Result<R> {
*
* @author Vaadin Ltd
*
+ * @since 8.0
*/
public class StatusChangeEvent extends EventObject {
*
* @author Vaadin Ltd.
*
+ * @since 8.0
+ *
* @param <T>
* the type of the value to validate
*
* {@link InlineDateTimeField} is bound to a {@link Date} property.
*
* @author Vaadin Ltd
+ * @since 8.0
*/
public class LocalDateTimeToDateConverter
implements Converter<LocalDateTime, Date> {
* {@link InlineDateField} is bound to a {@link Date} property.
*
* @author Vaadin Ltd
+ * @since 8.0
*/
public class LocalDateToDateConverter implements Converter<LocalDate, Date> {
* data provider data type
* @param <F>
* data provider filter type
+ * @since 8.0
*/
public abstract class AbstractBackEndDataProvider<T, F> extends
AbstractDataProvider<T, F> implements BackEndDataProvider<T, F> {
* data provider data type
* @param <F>
* data provider filter type
+ * @since 8.0
*/
public interface BackEndDataProvider<T, F> extends DataProvider<T, F> {
/**
* Sets the sort order to use, given a {@link QuerySortOrderBuilder}.
* Shorthand for {@code setSortOrders(builder.build())}.
- *
+ *
* @see QuerySortOrderBuilder
- *
+ *
* @param builder
* the sort builder to retrieve the sort order from
* @throws NullPointerException
* another callback for counting the number of available items.
*
* @author Vaadin Ltd
+ * @since 8.0
*
* @param <T>
* data provider data type
* applied to all queries.
*
* @author Vaadin Ltd
+ * @since 8.0
*
* @param <T>
* the data provider item type
* the wrapped provider through the query.
*
* @author Vaadin Ltd
+ * @since 8.0
*
* @param <T>
* the data provider item type
* filter instance that can be passed to the wrapped data provider. Will not
* be called if the configured filter is <code>null</code> and the query has
* no filter.
- *
+ *
* @param queryFilter
* the filter received through the query, or <code>null</code> if
* no filter was provided in the query
*
* @param <T>
* the grid type
+ * @since 8.0
*/
public class GridSortOrder<T> extends SortOrder<Column<T, ?>> {
/**
* Construct sorting information for usage in a {@link Grid}.
- *
+ *
* @param column
* the column to be sorted
* @param direction
* Helper classes with fluent API for constructing {@link GridSortOrder} lists.
* When the sort order is ready to be passed on, calling {@link #build()} will
* create the list of sort orders.
- *
+ *
* @see GridSortOrder
* @see #thenAsc(Column)
* @see #thenDesc(Column)
* @see #build()
- *
+ *
* @param <T>
* the type of the grid
+ * @since 8.0
*/
public class GridSortOrderBuilder<T>
extends SortOrderBuilder<GridSortOrder<T>, Column<T, ?>> {
*
* @param <T>
* data type
+ * @since 8.0
*/
public class ListDataProvider<T>
extends AbstractDataProvider<T, SerializablePredicate<T>> implements
* Sorting information for {@link Query}.
*
* @see Query
+ * @since 8.0
*/
public class QuerySortOrder extends SortOrder<String> {
* @see #thenDesc(String)
* @see #thenDesc(String)
* @see #build()
+ * @since 8.0
*/
public class QuerySortOrderBuilder
extends SortOrderBuilder<QuerySortOrder, String> {
* @param <T>
* the type of the sorting information, usually a String (field id)
* or a {@link java.util.Comparator}.
+ * @since 8.0
*/
public class SortOrder<T> implements Serializable {
* @see SortOrderBuilder#thenAsc(Object)
* @see SortOrderBuilder#thenDesc(Object)
* @see #build()
+ * @since 8.0
*/
public abstract class SortOrderBuilder<T extends SortOrder<V>, V>
implements Serializable {
}
public interface ShortcutNotifier extends Serializable {
+ /**
+ * Add a shortcut listener and return a registration object for
+ * unregistering it.
+ *
+ * @param shortcut
+ * listener to add
+ * @return registration for unregistering the listener
+ * @since 8.0
+ */
public Registration addShortcutListener(ShortcutListener shortcut);
/**
* @param listener
* the context click listener to add, not null
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addContextClickListener(
ContextClickListener listener);
* using a provided event handler.
*
* @author Vaadin Ltd
- *
+ * @since 8.0
*/
public static class FocusAndBlurServerRpcDecorator
extends FocusAndBlurServerRpcImpl {
* @param listener
* The listener to add
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addLayoutClickListener(
LayoutClickListener listener);
* <code>object</code>
* @throws NullPointerException
* if {@code object} is {@code null}
+ * @since 8.0
*/
public Registration addListener(Class<?> eventType, Object object,
Method method);
* <code>object</code>
* @throws NullPointerException
* if {@code object} is {@code null}
+ * @since 8.0
*/
public Registration addListener(Class<?> eventType, Object object,
String methodName);
* @param listener
* the {@link PollListener} to add, not null
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addPollListener(PollListener listener);
*
* @param listener
* Listener to invoke during a view change.
+ * @since 8.0
*/
public Registration addViewChangeListener(ViewChangeListener listener) {
listeners.add(listener);
* @param method
* the activation method.
* @return a registration object for removing the listener
- * @since 6.2
+ * @since 8.0
*/
protected Registration addListener(String eventIdentifier,
Class<?> eventType, Object target, Method method) {
* @deprecated As of 7.0. This method should be avoided. Use
* {@link #addListener(Class, Object, Method)} or
* {@link #addListener(String, Class, Object, Method)} instead.
+ * @since 8.0
*/
@Override
@Deprecated
public void detach(DetachEvent event);
}
+ /**
+ * Add a listener for connector attach events.
+ *
+ * @since 8.0
+ *
+ * @param listener
+ * @return Registration for unregistering the listener
+ */
public Registration addAttachListener(AttachListener listener);
@Deprecated
public void removeAttachListener(AttachListener listener);
+ /**
+ * Add a listener for connector detach events.
+ *
+ * @since 8.0
+ *
+ * @param listener
+ * @return Registration for unregistering the listener
+ */
public Registration addDetachListener(DetachListener listener);
@Deprecated
/**
* Interface implemented by old Vaadin 7 exception types to produce the error
* message to show in a component.
+ *
+ * @since 8.0
*/
@Deprecated
public interface ErrorMessageProducer extends Serializable {
import java.util.List;
import com.vaadin.event.EventRouter;
-import com.vaadin.event.FieldEvents.FocusListener;
import com.vaadin.shared.Registration;
import com.vaadin.shared.ui.BorderStyle;
import com.vaadin.shared.ui.ui.PageClientRpc;
* @return a registration object for removing the listener
* @deprecated Use {@link Page#addPopStateListener(PopStateListener)}
* instead
+ * @since 8.0
*/
@Deprecated
public Registration addUriFragmentChangedListener(
* @see BrowserWindowResizeListener#browserWindowResized(BrowserWindowResizeEvent)
* @see UI#setResizeLazy(boolean)
* @see Registration
+ * @since 8.0
*/
public Registration addBrowserWindowResizeListener(
BrowserWindowResizeListener resizeListener) {
* For internal use only. Used to update the server-side location when the
* client-side location changes.
*
- * @since 7.2
+ * @since 8.0
*
* @param location
* the new location URI
*
* @param listener
* to add
+ * @since 8.0
*/
public Registration addPortletListener(PortletListener listener) {
portletListeners.add(listener);
* @param listener
* the Vaadin service session initialization listener
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addSessionInitListener(SessionInitListener listener) {
sessionInitListeners.add(listener);
* @param listener
* the vaadin service session destroy listener
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addSessionDestroyListener(
SessionDestroyListener listener) {
* it is not guaranteed that listeners will be invoked in the order they
* were added.
*
- * @since 7.2
+ * @since 8.0
* @param listener
* the service destroy listener to add
*
return getStaticFilePath(request) != null;
}
+ /**
+ * Returns the relative path at which static files are served for a request
+ * (if any).
+ *
+ * @param request
+ * HTTP request
+ * @return relative servlet path or null if the request path does not
+ * contain "/VAADIN/" or the request has no path info
+ * @since 8.0
+ */
protected String getStaticFilePath(HttpServletRequest request) {
String pathInfo = request.getPathInfo();
if (pathInfo == null) {
*
* @param converterFactory
* The converter factory used in the session
+ * @since 8.0
*/
@Deprecated
public void setConverterFactory(Object converterFactory) {
* @param listener
* the bootstrap listener to add
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addBootstrapListener(BootstrapListener listener) {
assert hasLock();
* the new description string for the component.
* @param mode
* the content mode for the description
+ * @since 8.0
*/
public void setDescription(String description, ContentMode mode) {
getState().description = description;
* @param visible
* <code>true</code> to make the required indicator visible,
* <code>false</code> if not
+ * @since 8.0
*/
protected void setRequiredIndicatorVisible(boolean visible) {
if (getState(false) instanceof AbstractFieldState) {
*
* @return <code>true</code> if visible, <code>false</code> if not
* @see #setRequiredIndicatorVisible(boolean)
+ * @since 8.0
*/
protected boolean isRequiredIndicatorVisible() {
if (getState(false) instanceof AbstractFieldState) {
/**
* Register a listener to handle {@link SplitPositionChangeEvent}s.
*
- * @since 7.5.0
+ * @since 8.0
* @param listener
* {@link SplitPositionChangeListener} to be registered.
*/
*
* @param placeholder
* the placeholder text to set
+ * @since 8.0
*/
public void setPlaceholder(String placeholder) {
getState().placeholder = placeholder;
* @param listener
* the Listener to be added.
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addClickListener(ClickListener listener) {
return addListener(ClickEvent.class, listener,
*
* @param <T>
* item (bean) type in ComboBox
+ * @since 8.0
*/
@FunctionalInterface
public interface FetchItemsCallback<T> extends Serializable {
/**
* Handler that adds a new item based on user input when the new items
* allowed mode is active.
+ *
+ * @since 8.0
*/
@FunctionalInterface
public interface NewItemHandler extends SerializableConsumer<String> {
*
* @param <T>
* item type
+ * @since 8.0
*/
protected static class DeclarativeStyleGenerator<T>
implements StyleGenerator<T> {
*
* @param listDataProvider
* the list data provider to use, not <code>null</code>
+ * @since 8.0
*/
public void setDataProvider(ListDataProvider<T> listDataProvider) {
// Cannot use the case insensitive contains shorthand from
* into the ComboBox
* @param items
* the data items to display
+ * @since 8.0
*/
public void setItems(CaptionFilter captionFilter, Collection<T> items) {
ListDataProvider<T> listDataProvider = DataProvider.ofCollection(items);
* into the ComboBox
* @param listDataProvider
* the list data provider to use, not <code>null</code>
+ * @since 8.0
*/
public void setDataProvider(CaptionFilter captionFilter,
ListDataProvider<T> listDataProvider) {
* into the ComboBox
* @param items
* the data items to display
+ * @since 8.0
*/
public void setItems(CaptionFilter captionFilter,
@SuppressWarnings("unchecked") T... items) {
*
* @see #setPlaceholder(String)
* @return the current placeholder string, or null if not enabled
+ * @since 8.0
*/
public String getPlaceholder() {
return getState(false).placeholder;
*
* @param placeholder
* the desired placeholder, or null to disable
+ * @since 8.0
*/
public void setPlaceholder(String placeholder) {
getState().placeholder = placeholder;
* Returns whether the user is allowed to select nothing in the combo box.
*
* @return true if empty selection is allowed, false otherwise
+ * @since 8.0
*/
public boolean isEmptySelectionAllowed() {
return getState(false).emptySelectionAllowed;
* @param emptySelectionAllowed
* true to allow not selecting anything, false to require
* selection
+ * @since 8.0
*/
public void setEmptySelectionAllowed(boolean emptySelectionAllowed) {
getState().emptySelectionAllowed = emptySelectionAllowed;
* @see #isSelected(Object)
*
* @return the empty selection caption, not {@code null}
+ * @since 8.0
*/
public String getEmptySelectionCaption() {
return getState(false).emptySelectionCaption;
* @param caption
* the caption to set, not {@code null}
* @see #isSelected(Object)
+ * @since 8.0
*/
public void setEmptySelectionCaption(String caption) {
Objects.nonNull(caption);
* the item style generator to set, not null
* @throws NullPointerException
* if {@code itemStyleGenerator} is {@code null}
+ * @since 8.0
*/
public void setStyleGenerator(StyleGenerator<T> itemStyleGenerator) {
Objects.requireNonNull(itemStyleGenerator,
* @see #setStyleGenerator(StyleGenerator)
*
* @return the currently used item style generator, not null
+ * @since 8.0
*/
public StyleGenerator<T> getStyleGenerator() {
return itemStyleGenerator;
* @param newItemHandler
* handler called for new items, null to only permit the
* selection of existing items
+ * @since 8.0
*/
public void setNewItemHandler(NewItemHandler newItemHandler) {
this.newItemHandler = newItemHandler;
*
* @see #setItems(CaptionFilter, Collection)
* @see #setItems(CaptionFilter, Object[])
+ * @since 8.0
*/
@FunctionalInterface
public interface CaptionFilter
*
* <p>
* The {@link #getParent()} method allows retrieving the parent component of a
- * component. While there is a {@link #setParent(HasComponents)}, you
- * rarely need it as you normally add components with the
+ * component. While there is a {@link #setParent(HasComponents)}, you rarely
+ * need it as you normally add components with the
* {@link ComponentContainer#addComponent(Component) addComponent()} method of
* the layout or other {@code ComponentContainer}, which automatically sets the
* parent.
* @return a registration object for removing this listener
* @see Component.Event
* @see Registration
+ * @since 8.0
*/
public Registration addListener(Component.Listener listener);
* Represents a stylesheet or JavaScript to include on the page.
*
* @author Vaadin Ltd
+ * @since 8.0
*/
public class Dependency implements Serializable {
/**
* @param listener
* The listener to add
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addClickListener(ClickListener listener) {
return addListener(EventId.CLICK_EVENT_IDENTIFIER, ClickEvent.class,
* @param listener
* the listener to add, not null
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addComponentAttachListener(
ComponentAttachListener listener);
* the registration object returned from
* {@link #addComponentAttachListener(ComponentAttachListener)}
* .
+ * @since 8.0
*/
@Deprecated
public void removeComponentAttachListener(
/**
* Implemented by components which support value change modes.
+ *
+ * @since 8.0
*/
public interface HasValueChangeMode extends Component {
/**
*
* @param components
* the components to set, not <code>null</code>
+ * @since 8.0
*/
public void addComponentsAndExpand(Component... components) {
addComponents(components);
*
* @param <T>
* item type for which the icon is generated
+ * @since 8.0
*/
@FunctionalInterface
public interface IconGenerator<T> extends SerializableFunction<T, Resource> {
* @param listener
* The listener to add, not null
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addClickListener(ClickListener listener) {
return addListener(EventId.CLICK_EVENT_IDENTIFIER, ClickEvent.class,
* the text to set
* @param contentMode
* the content mode to use
+ * @since 8.0
*/
public Label(String text, ContentMode contentMode) {
setValue(text);
* @return the content mode of the label
*
* @see ContentMode
+ * @since 8.0
*/
public ContentMode getContentMode() {
return getState(false).contentMode;
* the content mode to set
*
* @see ContentMode
+ * @since 8.0
*/
public void setContentMode(ContentMode contentMode) {
if (contentMode == null) {
* the caption to set, can be {@code null}
* @param dataProvider
* the data provider, not {@code null}
+ * @since 8.0
*/
public ListSelect(String caption, DataProvider<T, ?> dataProvider) {
this(caption);
* implementations, override {@link #createUsernameField()},
* {@link #createPasswordField()} and {@link #createLoginButton()}. If you
* only want to change the default captions, override
- * {@link #getUsernameCaption()}, {@link #getPasswordCaption()}
- * and {@link #getLoginButtonCaption()}. You do not have to use the login
- * button in your layout.
+ * {@link #getUsernameCaption()}, {@link #getPasswordCaption()} and
+ * {@link #getLoginButtonCaption()}. You do not have to use the login button
+ * in your layout.
*
* @param userNameField
* the user name text field
* @param listener
* the listener to add
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addLoginListener(LoginListener listener) {
return addListener(LoginEvent.class, listener, ON_LOGIN_METHOD);
* Returns whether the user is allowed to select nothing in the combo box.
*
* @return true if empty selection is allowed, false otherwise
+ * @since 8.0
*/
public boolean isEmptySelectionAllowed() {
return getState(false).emptySelectionAllowed;
* @param emptySelectionAllowed
* true to allow not selecting anything, false to require
* selection
+ * @since 8.0
*/
public void setEmptySelectionAllowed(boolean emptySelectionAllowed) {
getState().emptySelectionAllowed = emptySelectionAllowed;
* @see #isSelected(Object)
*
* @return the empty selection caption, not {@code null}
+ * @since 8.0
*/
public String getEmptySelectionCaption() {
return getState(false).emptySelectionCaption;
* @param caption
* the caption to set, not {@code null}
* @see #isSelected(Object)
+ * @since 8.0
*/
public void setEmptySelectionCaption(String caption) {
Objects.nonNull(caption);
* @param listener
* The listener to add, not null
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addClickListener(ClickListener listener) {
return addListener(EventId.CLICK_EVENT_IDENTIFIER, ClickEvent.class,
*
* @param valueChangeListener
* the value change listener, not {@code null}
+ * @since 8.0
*/
public PasswordField(ValueChangeListener<String> valueChangeListener) {
super(valueChangeListener);
* the caption for the field
* @param valueChangeListener
* the value change listener, not {@code null}
+ * @since 8.0
*/
public PasswordField(String caption,
ValueChangeListener<String> valueChangeListener) {
* <p>
* The listener is called when the value of this {@code PasswordField} is
* changed either by the user or programmatically.
- *
+ *
* @param caption
* the caption for the field
* @param value
* the value for the field, not {@code null}
* @param valueChangeListener
* the value change listener, not {@code null}
+ * @since 8.0
*/
public PasswordField(String caption, String value,
ValueChangeListener<String> valueChangeListener) {
* @param listener
* the listener to add, not null
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addPopupVisibilityListener(
PopupVisibilityListener listener) {
*
* @param newValue
* the current progress value
+ * @since 8.0
*/
public void setValue(float newValue) {
getState().state = newValue;
/**
* Resets the value of this component, effectively displaying zero progress.
+ *
+ * @since 8.0
*/
public void reset() {
setValue(DEFAULT_VALUE);
import java.util.Objects;
-import elemental.json.Json;
import org.jsoup.nodes.Element;
import com.vaadin.shared.ui.ValueChangeMode;
import com.vaadin.shared.ui.richtextarea.RichTextAreaState;
import com.vaadin.ui.declarative.DesignContext;
+import elemental.json.Json;
+
/**
* A simple RichTextArea to edit HTML format text.
*/
*
* @param valueChangeListener
* the value change listener, not {@code null}
+ * @since 8.0
*/
public RichTextArea(ValueChangeListener<String> valueChangeListener) {
addValueChangeListener(valueChangeListener);
* the caption for the field
* @param valueChangeListener
* the value change listener, not {@code null}
+ * @since 8.0
*/
public RichTextArea(String caption,
ValueChangeListener<String> valueChangeListener) {
* the value for the field, not {@code null}
* @param valueChangeListener
* the value change listener, not {@code null}
+ * @since 8.0
*/
public RichTextArea(String caption, String value,
ValueChangeListener<String> valueChangeListener) {
* Single selection component whose selection is treated as a value.
*
* @author Vaadin Ltd
+ * @since 8.0
*
* @param <V>
* the selection value type
* @param listener
* the Listener to be added, not null
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addSelectedTabChangeListener(
SelectedTabChangeListener listener) {
*
* @param valueChangeListener
* the value change listener, not {@code null}
+ * @since 8.0
*/
public TextArea(ValueChangeListener<String> valueChangeListener) {
addValueChangeListener(valueChangeListener);
* the caption for the field
* @param valueChangeListener
* the value change listener, not {@code null}
+ * @since 8.0
*/
public TextArea(String caption,
ValueChangeListener<String> valueChangeListener) {
* the value for the field, not {@code null}
* @param valueChangeListener
* the value change listener, not {@code null}
+ * @since 8.0
*/
public TextArea(String caption, String value,
ValueChangeListener<String> valueChangeListener) {
* the caption to set, can be {@code null}
* @param dataProvider
* the data provider, not {@code null}
+ * @since 8.0
*/
public TwinColSelect(String caption, DataProvider<T, ?> dataProvider) {
this(caption);
* @param listener
* The listener to add, not null
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addClickListener(ClickListener listener) {
return addListener(EventId.CLICK_EVENT_IDENTIFIER, ClickEvent.class,
*
* @param listener
* the WindowModeChangeListener to add.
- * @since 8.0.0
+ * @since 8.0
*
* @return a registration object for removing the listener
*/
* @see Window.WindowOrderChangeEvent
*
* @author Vaadin Ltd
- * @since 8.0.0
+ * @since 8.0
*
*/
public static class WindowOrderUpdateEvent extends Component.Event {
/**
* An interface used for listening to Windows order update events.
*
- * @since 8.0.0
+ * @since 8.0
*
* @see Window.WindowOrderChangeEvent
*/
*
* @param listener
* the Listener to be added, not null
+ * @since 8.0
*/
public Registration addStartedListener(StartedListener listener) {
return addListener(StartedEvent.class, listener, UPLOAD_STARTED_METHOD);
*
* @param listener
* the Listener to be added, not null
+ * @since 8.0
*/
public Registration addFinishedListener(FinishedListener listener) {
return addListener(FinishedEvent.class, listener,
*
* @param listener
* the Listener to be added, not null
+ * @since 8.0
*/
public Registration addFailedListener(FailedListener listener) {
return addListener(FailedEvent.class, listener, UPLOAD_FAILED_METHOD);
*
* @param listener
* the Listener to be added, not null
+ * @since 8.0
*/
public Registration addSucceededListener(SucceededListener listener) {
return addListener(SucceededEvent.class, listener,
*
* @param listener
* the progress listener to be added
+ * @since 8.0
*/
public Registration addProgressListener(ProgressListener listener) {
Objects.requireNonNull(listener, "Listener must not be null.");
*
* @param listener
* the Listener to add, not null
+ * @since 8.0
*/
public Registration addChangeListener(ChangeListener listener) {
return addListener(EventId.CHANGE, ChangeEvent.class, listener,
*
* @param immediateMode
* {@code true} for immediate mode, {@code false} for not
+ * @since 8.0
*/
public void setImmediateMode(boolean immediateMode) {
getState().immediateMode = immediateMode;
* @return {@code true} if the upload is in immediate mode, {@code false} if
* the upload is not in immediate mode
* @see #setImmediateMode(boolean)
+ * @since 8.0
*/
public boolean isImmediateMode() {
return getState(false).immediateMode;
*
* @param components
* the components to set, not <code>null</code>
+ * @since 8.0
*/
public void addComponentsAndExpand(Component... components) {
addComponents(components);
*
* @see UI#addWindowOrderUpdateListener(com.vaadin.ui.UI.WindowOrderUpdateListener)
*
- * @since 8.0.0
+ * @since 8.0
*
* @return window order position.
*/
*
* @param listener
* the WindowModeChangeListener to add.
+ * @since 8.0
*/
public Registration addWindowOrderChangeListener(
WindowOrderChangeListener listener) {
*
* @param listener
* the CloseListener to add, not null
+ * @since 8.0
*/
public Registration addCloseListener(CloseListener listener) {
return addListener(CloseEvent.class, listener, WINDOW_CLOSE_METHOD);
*
* @param listener
* the WindowModeChangeListener to add.
+ * @since 8.0
*/
public Registration addWindowModeChangeListener(
WindowModeChangeListener listener) {
* @param listener
* the listener to add, not null
* @return a registration object for removing the listener
+ * @since 8.0
*/
public Registration addResizeListener(ResizeListener listener) {
return addListener(ResizeEvent.class, listener, WINDOW_RESIZE_METHOD);
*
* @param <T>
* the grid bean type
+ * @since 8.0
*/
public class EditorImpl<T> extends AbstractGridExtension<T>
implements Editor<T> {
public Grid<T> getGrid() {
return getParent();
}
-}
\ No newline at end of file
+}
* the attribute list where the attribute will be written
* @param defaultInstance
* the default instance for comparing default values
+ * @since 8.0
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void writeAttribute(Object component, String attribute,
* the default attribute value
* @param inputType
* the type of the input value
+ * @since 8.0
*/
public static <T> void writeAttribute(String attribute,
Attributes attributes, T value, T defaultValue, Class<T> inputType,
* Type to convert to/from.
* @param converter
* Converter.
+ * @since 8.0
*/
protected <T> void addConverter(Class<?> type,
Converter<String, ?> converter) {
* be returned.
* @return A valid converter for a given type or its supertype, <b>null</b>
* if it was not found.
+ * @since 8.0
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
protected <T> Converter<String, T> findConverterFor(
* Type to find a converter for.
* @return A valid converter for a given type or its subtype, <b>null</b> if
* it was not found.
+ * @since 8.0
*/
protected <T> Converter<String, T> findConverterFor(
Class<? extends T> sourceType) {
* the grid type this renderer can be attached to
* @param <V>
* the type this renderer knows how to present
+ * @since 8.0
*/
public abstract class AbstractRenderer<T, V> extends AbstractExtension
implements Renderer<V> {
* Returns the item of the row where the click event originated.
*
* @return the item of the clicked row
+ * @since 8.0
*/
public T getItem() {
return item;
*
* @param listener
* the click listener to be added, not null
+ * @since 8.0
*/
public Registration addClickListener(RendererClickListener<T> listener) {
return addListener(RendererClickEvent.class, listener,
* Gets the currently set instances so that they can later be restored using
* {@link #restoreInstances(Map)}.
*
- * @since 7.1
+ * @since 8.0
*
* @return a map containing the current instances
*/
* another class to get the base type for, not <code>null</code>
* @return the most specific base class, not <code>null</code>
*
- * @since
+ * @since 8.0
*/
public static Class<?> findCommonBaseType(Class<?> a, Class<?> b) {
if (a.isInterface()) {
* State for components that can show the required indicator.
*
* @author Vaadin Ltd
- * @since 8.0.0
+ * @since 8.0
*
*/
public class AbstractFieldState extends TabIndexState {
* The range is considered {@link #isEmpty() empty} if the start is the same as
* the end.
*
- * @since 7.4
+ * @since 8.0
* @author Vaadin Ltd
*/
public final class Range implements Serializable {
/**
* Transmits SelectionModel selection events from the client to the server.
+ *
+ * @since 8.0
*/
public interface SelectionServerRpc extends ServerRpc {
* @param eventListenerId
* The event identifier to add
* @return a registration object for removing the listener
+ * @since 8.0
*/
public static final Registration addRegisteredEventListener(
SharedState state, String eventListenerId) {
/**
* Content modes defining how the client should interpret a Label's value.
*
- * @since 7.0
+ * @since 8.0
*/
public enum ContentMode {
/**
import java.io.Serializable;
+/**
+ * JSON key constants for common listing item attributes in server-client
+ * communication.
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
public class ListingJsonConstants implements Serializable {
public static final String JSONKEY_ITEM_DISABLED = "d";
/**
* Checks if this MarginInfo object has no margins enabled.
*
- * @since 8.0.0
+ * @since 8.0
*
* @return true if all edges have margins disabled
*/
/**
* Different modes for when and how often field value changes are transmitted
* from the client to the server.
+ *
+ * @since 8.0
*/
public enum ValueChangeMode {
* Notifies server when windows order is changed.
*
* @author Vaadin Ltd
- * @since 8.0.0
+ * @since 8.0
*
*/
public interface WindowOrderRpc extends ServerRpc {
/**
* Shared state for the AbstractDateField component.
- *
+ *
* @author Vaadin Ltd
+ * @since 8.0
*
*/
public class AbstractDateFieldState extends AbstractFieldState {
/**
* Shared state for the AbstractLocalDateField component.
- *
- * @author Vaadin Ltd
*
+ * @author Vaadin Ltd
+ * @since 8.0
*/
public class AbstractTextualDateFieldState extends AbstractDateFieldState {
* Resolutions for DateFields
*
* @author Vaadin Ltd.
- * @since 7.0
+ * @since 8.0
*/
public enum DateResolution {
DAY, MONTH, YEAR;
/**
* @author Vaadin Ltd
- *
+ * @since 8.0
*/
public class InlineDateTimeFieldState extends AbstractTextualDateFieldState {
{
/**
* Shared state for the DateField component.
- *
- * @author Vaadin Ltd
*
+ * @author Vaadin Ltd
+ * @since 8.0
*/
public class LocalDateFieldState extends TextualDateFieldState {
/**
* Shared state for the DateTimeField component.
- *
- * @author Vaadin Ltd
*
+ * @author Vaadin Ltd
+ * @since 8.0
*/
public class LocalDateTimeFieldState extends TextualDateFieldState {
import com.vaadin.shared.Connector;
+/**
+ * Shared state for a Grid column.
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
public class ColumnState extends AbstractGridExtensionState {
public String caption;
/**
* Informs the server that a column's visibility has been changed.
*
- * @since 7.5.0
+ * @since 8.0
* @param columnInternalId
* the internal id of the column
* @param hidden
* Shared state for Grid headers and footers.
*
* @author Vaadin Ltd
- * @since 7.4
+ * @since 8.0
*/
public class SectionState implements Serializable {
* Shared state for ListSelect component.
*
* @author Vaadin Ltd
- *
+ * @since 8.0
*/
public class ListSelectState extends AbstractMultiSelectState {
{
/**
* Server to client RPC interface for RichTextArea.
+ *
+ * @since 8.0
*/
public interface RichTextAreaClientRpc extends ClientRpc {
/**
* Client to server RPC interface for RichTextArea.
- *
+ *
+ * @since 8.0
*/
public interface RichTextAreaServerRpc extends ServerRpc {
/**
* State for RichTextArea.
- *
+ *
+ * @since 8.0
*/
public class RichTextAreaState extends AbstractFieldState {
{
import com.vaadin.shared.communication.ServerRpc;
+/**
+ * Client to server RPC interface for TextArea.
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ */
public interface TextAreaServerRpc extends ServerRpc {
public void setHeight(String height);
/**
* Server to client RPC interface for AbstractTextField.
- *
+ *
+ * @since 8.0
*/
public interface AbstractTextFieldClientRpc extends ClientRpc {
/**
import com.vaadin.shared.communication.ServerRpc;
+/**
+ * Client to server RPC interface for AbstractTextField.
+ *
+ * @since 8.0
+ */
public interface AbstractTextFieldServerRpc extends ServerRpc {
void setText(String text, int cursorPosition);
/**
* State class for TextField.
+ *
+ * @since 8.0
*/
public class TextFieldState extends AbstractTextFieldState {
{