summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorMatti Tahvonen <matti@vaadin.com>2015-06-03 16:32:18 +0300
committerVaadin Code Review <review@vaadin.com>2015-06-04 14:14:59 +0000
commit97ecad0e0a0b638c1a49289bb1637ce882f7788a (patch)
tree3d0bf8fb66333df54dfbd6e5ce45c2281f7f2fea /client
parent69f66c8b28119da604836bde502e2220a35216e3 (diff)
downloadvaadin-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.java46
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);
+ }
+
}