diff options
author | Matti Tahvonen <matti@vaadin.com> | 2015-06-03 16:32:18 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2015-06-04 14:14:59 +0000 |
commit | 97ecad0e0a0b638c1a49289bb1637ce882f7788a (patch) | |
tree | 3d0bf8fb66333df54dfbd6e5ce45c2281f7f2fea /client | |
parent | 69f66c8b28119da604836bde502e2220a35216e3 (diff) | |
download | vaadin-framework-97ecad0e0a0b638c1a49289bb1637ce882f7788a.tar.gz vaadin-framework-97ecad0e0a0b638c1a49289bb1637ce882f7788a.zip |
Required indicator for Table now works as expected (#17294)
Table is a field (and one of the most powerful ones), but it cannot be
used as required, especially if one wants to use the built in "required
indicators" in Vaadin. Those only work if client side connector extends
AbstractFieldConnector so Table is now extending it as well and
(I expect that it ) needs to do the AbstractHasComponentsConnector
stuff internally.
Change-Id: I4ceb719366621053c7fe4c9691d624d61ed57567
Diffstat (limited to 'client')
-rw-r--r-- | client/src/com/vaadin/client/ui/table/TableConnector.java | 46 |
1 files changed, 40 insertions, 6 deletions
diff --git a/client/src/com/vaadin/client/ui/table/TableConnector.java b/client/src/com/vaadin/client/ui/table/TableConnector.java index 0d34d2d4d9..7bbda39c43 100644 --- a/client/src/com/vaadin/client/ui/table/TableConnector.java +++ b/client/src/com/vaadin/client/ui/table/TableConnector.java @@ -15,24 +15,29 @@ */ package com.vaadin.client.ui.table; +import java.util.Collections; import java.util.Iterator; +import java.util.List; import com.google.gwt.core.client.Scheduler; import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.Style.Position; +import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.ui.Widget; import com.vaadin.client.ApplicationConnection; import com.vaadin.client.BrowserInfo; import com.vaadin.client.ComponentConnector; import com.vaadin.client.ConnectorHierarchyChangeEvent; +import com.vaadin.client.ConnectorHierarchyChangeEvent.ConnectorHierarchyChangeHandler; import com.vaadin.client.DirectionalManagedLayout; +import com.vaadin.client.HasComponentsConnector; import com.vaadin.client.Paintable; import com.vaadin.client.ServerConnector; import com.vaadin.client.TooltipInfo; import com.vaadin.client.UIDL; import com.vaadin.client.WidgetUtil; -import com.vaadin.client.ui.AbstractHasComponentsConnector; +import com.vaadin.client.ui.AbstractFieldConnector; import com.vaadin.client.ui.PostLayoutListener; import com.vaadin.client.ui.VScrollTable; import com.vaadin.client.ui.VScrollTable.ContextMenuDetails; @@ -42,8 +47,15 @@ import com.vaadin.shared.ui.table.TableConstants; import com.vaadin.shared.ui.table.TableState; @Connect(com.vaadin.ui.Table.class) -public class TableConnector extends AbstractHasComponentsConnector implements - Paintable, DirectionalManagedLayout, PostLayoutListener { +public class TableConnector extends AbstractFieldConnector implements + HasComponentsConnector, ConnectorHierarchyChangeHandler, Paintable, + DirectionalManagedLayout, PostLayoutListener { + + private List<ComponentConnector> childComponents; + + public TableConnector() { + addConnectorHierarchyChangeHandler(this); + } @Override protected void init() { @@ -371,7 +383,7 @@ public class TableConnector extends AbstractHasComponentsConnector implements /** * Shows a saved row context menu if the row for the context menu is still * visible. Does nothing if a context menu has not been saved. - * + * * @param savedContextMenu */ public void showSavedContextMenu(ContextMenuDetails savedContextMenu) { @@ -429,11 +441,33 @@ public class TableConnector extends AbstractHasComponentsConnector implements protected void updateComponentSize(String newWidth, String newHeight) { super.updateComponentSize(newWidth, newHeight); - if("".equals(newWidth)) { + if ("".equals(newWidth)) { getWidget().updateWidth(); } - if("".equals(newHeight)) { + if ("".equals(newHeight)) { getWidget().updateHeight(); } } + + @Override + public List<ComponentConnector> getChildComponents() { + if (childComponents == null) { + return Collections.emptyList(); + } + + return childComponents; + } + + @Override + public void setChildComponents(List<ComponentConnector> childComponents) { + this.childComponents = childComponents; + } + + @Override + public HandlerRegistration addConnectorHierarchyChangeHandler( + ConnectorHierarchyChangeHandler handler) { + return ensureHandlerManager().addHandler( + ConnectorHierarchyChangeEvent.TYPE, handler); + } + } |