com.vaadin.data.Collapsible Maven / Gradle / Ivy
/*
* Vaadin Framework 7
*
* Copyright (C) 2000-2024 Vaadin Ltd
*
* This program is available under Vaadin Commercial License and Service Terms.
*
* See for the full
* license.
*/
package com.vaadin.data;
import com.vaadin.data.Container.Hierarchical;
import com.vaadin.data.Container.Ordered;
/**
* Container needed by large lazy loading hierarchies displayed e.g. in
* TreeTable.
*
* Container of this type gets notified when a subtree is opened/closed in a
* component displaying its content. This allows container to lazy load subtrees
* and release memory when a sub-tree is no longer displayed.
*
* Methods from {@link Container.Ordered} (and from {@linkContainer.Indexed} if
* implemented) are expected to work as in "preorder" of the currently visible
* hierarchy. This means for example that the return value of size method
* changes when subtree is collapsed/expanded. In other words items in collapsed
* sub trees should be "ignored" by container when the container is accessed
* with methods introduced in {@link Container.Ordered} or
* {@linkContainer.Indexed}. From the accessors point of view, items in
* collapsed subtrees don't exist.
*
*
*/
public interface Collapsible extends Hierarchical, Ordered {
/**
*
* Collapsing the {@link Item} indicated by itemId
hides all
* children, and their respective children, from the {@link Container}.
*
*
*
* If called on a leaf {@link Item}, this method does nothing.
*
*
* @param itemId
* the identifier of the collapsed {@link Item}
* @param collapsed
* true
if you want to collapse the children below
* this {@link Item}. false
if you want to
* uncollapse the children.
*/
public void setCollapsed(Object itemId, boolean collapsed);
/**
*
* Checks whether the {@link Item}, identified by itemId
is
* collapsed or not.
*
*
*
* If an {@link Item} is "collapsed" its children are not included in
* methods used to list Items in this container.
*
*
* @param itemId
* The {@link Item}'s identifier that is to be checked.
* @return true
iff the {@link Item} identified by
* itemId
is currently collapsed, otherwise
* false
.
*/
public boolean isCollapsed(Object itemId);
}