]> source.dussan.org Git - vaadin-framework.git/commitdiff
Add disclaimers about performance to TreeTable (#10381)
authorTeemu Suo-Anttila <tsuoanttila@users.noreply.github.com>
Wed, 29 Nov 2017 11:27:39 +0000 (13:27 +0200)
committerAleksi Hietanen <aleksi@vaadin.com>
Wed, 29 Nov 2017 11:27:39 +0000 (13:27 +0200)
documentation/components/components-treetable.asciidoc
server/src/main/java/com/vaadin/ui/TreeTable.java

index 97dedd3e7c885575eb117c8d3fd78861eaa78734..34148ccd5f22a32bb70454d8fb697842769e3009 100644 (file)
@@ -51,7 +51,9 @@ ttable.setParent(6, 2);
 
 Some container types may allow defining hierarchies if the container data
 itself, without explicitly setting the parent-child relationships with
-[methodname]#setParent()#.
+[methodname]#setParent()#. These containers should be used if there is going
+to be a lot of data. Setting up a [interfacename]#Container.Hierarchical# before
+setting it to the [classname]#TreeTable# will improve the initial performance.
 
 Unlike [classname]#Tree#, a [classname]#TreeTable# can have components in the
 hierarchical column, both when the property type is a component type and when
index 1b912589bfcf9303dc8def9a1d09a86f6b9d6aef..549b59fe0927fb3dd27415f3e54ac4017f036625 100644 (file)
@@ -32,6 +32,7 @@ import org.jsoup.nodes.Element;
 
 import com.vaadin.data.Collapsible;
 import com.vaadin.data.Container;
+import com.vaadin.data.Item;
 import com.vaadin.data.Container.Hierarchical;
 import com.vaadin.data.Container.ItemSetChangeEvent;
 import com.vaadin.data.util.ContainerHierarchicalWrapper;
@@ -66,6 +67,11 @@ import com.vaadin.ui.declarative.DesignException;
  * standard Hierarchical implementations. Developer must however note that
  * {@link Collapsible} containers can not be shared among several users as they
  * share UI state in the container.
+ * <p>
+ * <strong>Note:</strong> Constructing a big hierarchical data set using the
+ * methods in {@link TreeTable} may cause a decrease in performance. Instead a
+ * {@link Container.Hierarchical} container should be populated before setting it
+ * to the {@code TreeTable}.
  */
 @SuppressWarnings({ "serial" })
 public class TreeTable extends Table implements Hierarchical {
@@ -703,12 +709,114 @@ public class TreeTable extends Table implements Hierarchical {
                 areChildrenAllowed);
     }
 
+    /**
+     * {@inheritDoc}
+     * <p>
+     * <strong>Note:</strong> Constructing a big hierarchical data set using the
+     * methods in {@link TreeTable} may cause a decrease in performance.
+     */
     @Override
     public boolean setParent(Object itemId, Object newParentId)
             throws UnsupportedOperationException {
         return getContainerDataSource().setParent(itemId, newParentId);
     }
 
+    /**
+     * {@inheritDoc}
+     * <p>
+     * <strong>Note:</strong> Constructing a big hierarchical data set using the
+     * methods in {@link TreeTable} may cause a decrease in performance. Instead a
+     * {@link Container.Hierarchical} container should be populated before setting it
+     * to the {@code TreeTable}.
+     */
+    @Override
+    public Object addItem() throws UnsupportedOperationException {
+        return super.addItem();
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p>
+     * <strong>Note:</strong> Constructing a big hierarchical data set using the
+     * methods in {@link TreeTable} may cause a decrease in performance. Instead a
+     * {@link Container.Hierarchical} container should be populated before setting it
+     * to the {@code TreeTable}.
+     */
+    @Override
+    public Item addItem(Object itemId) throws UnsupportedOperationException {
+        return super.addItem(itemId);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p>
+     * <strong>Note:</strong> Constructing a big hierarchical data set using the
+     * methods in {@link TreeTable} may cause a decrease in performance. Instead a
+     * {@link Container.Hierarchical} container should be populated before setting it
+     * to the {@code TreeTable}.
+     */
+    @Override
+    public Object addItem(Object[] cells, Object itemId)
+            throws UnsupportedOperationException {
+        return super.addItem(cells, itemId);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p>
+     * <strong>Note:</strong> Constructing a big hierarchical data set using the
+     * methods in {@link TreeTable} may cause a decrease in performance. Instead a
+     * {@link Container.Hierarchical} container should be populated before setting it
+     * to the {@code TreeTable}.
+     */
+    @Override
+    public Item addItemAfter(Object previousItemId, Object newItemId)
+            throws UnsupportedOperationException {
+        return super.addItemAfter(previousItemId, newItemId);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p>
+     * <strong>Note:</strong> Constructing a big hierarchical data set using the
+     * methods in {@link TreeTable} may cause a decrease in performance. Instead a
+     * {@link Container.Hierarchical} container should be populated before setting it
+     * to the {@code TreeTable}.
+     */
+    @Override
+    public Object addItemAfter(Object previousItemId)
+            throws UnsupportedOperationException {
+        return super.addItemAfter(previousItemId);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p>
+     * <strong>Note:</strong> Constructing a big hierarchical data set using the
+     * methods in {@link TreeTable} may cause a decrease in performance. Instead a
+     * {@link Container.Hierarchical} container should be populated before setting it
+     * to the {@code TreeTable}.
+     */
+    @Override
+    public void addItems(Collection<?> itemIds)
+            throws UnsupportedOperationException {
+        super.addItems(itemIds);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p>
+     * <strong>Note:</strong> Constructing a big hierarchical data set using the
+     * methods in {@link TreeTable} may cause a decrease in performance. Instead a
+     * {@link Container.Hierarchical} container should be populated before setting it
+     * to the {@code TreeTable}.
+     */
+    @Override
+    public void addItems(Object... itemId)
+            throws UnsupportedOperationException {
+        super.addItems(itemId);
+    }
+
     /**
      * Sets the Item specified by given identifier as collapsed or expanded. If
      * the Item is collapsed, its children are not displayed to the user.