From: Henri Sara Date: Thu, 5 Apr 2012 06:34:00 +0000 (+0300) Subject: Moved Collapsible and HierarchicalContainerOrderedWrapper to data X-Git-Tag: 7.0.0.alpha2~117 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c518ac733f556cdc9061d132edb4a2e6461b2ec3;p=vaadin-framework.git Moved Collapsible and HierarchicalContainerOrderedWrapper to data packages (related to #8440) - should not be specific to TreeTable. Otherwise, having a package and a class by the same name causes problems when trying to compile a widgetset on systems that do not treat file names as case sensitive. --- diff --git a/src/com/vaadin/data/Collapsible.java b/src/com/vaadin/data/Collapsible.java new file mode 100644 index 0000000000..06c96b7ea7 --- /dev/null +++ b/src/com/vaadin/data/Collapsible.java @@ -0,0 +1,68 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ +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); + +} diff --git a/src/com/vaadin/data/util/HierarchicalContainerOrderedWrapper.java b/src/com/vaadin/data/util/HierarchicalContainerOrderedWrapper.java new file mode 100644 index 0000000000..b7eac3e378 --- /dev/null +++ b/src/com/vaadin/data/util/HierarchicalContainerOrderedWrapper.java @@ -0,0 +1,62 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ +package com.vaadin.data.util; + +import java.util.Collection; + +import com.vaadin.data.Container.Hierarchical; + +/** + * A wrapper class for adding external ordering to containers not implementing + * the {@link com.vaadin.data.Container.Ordered} interface while retaining + * {@link Hierarchical} features. + * + * @see ContainerOrderedWrapper + */ +@SuppressWarnings({ "serial" }) +public class HierarchicalContainerOrderedWrapper extends + ContainerOrderedWrapper implements Hierarchical { + + private Hierarchical hierarchical; + + public HierarchicalContainerOrderedWrapper(Hierarchical toBeWrapped) { + super(toBeWrapped); + hierarchical = toBeWrapped; + } + + public boolean areChildrenAllowed(Object itemId) { + return hierarchical.areChildrenAllowed(itemId); + } + + public Collection getChildren(Object itemId) { + return hierarchical.getChildren(itemId); + } + + public Object getParent(Object itemId) { + return hierarchical.getParent(itemId); + } + + public boolean hasChildren(Object itemId) { + return hierarchical.hasChildren(itemId); + } + + public boolean isRoot(Object itemId) { + return hierarchical.isRoot(itemId); + } + + public Collection rootItemIds() { + return hierarchical.rootItemIds(); + } + + public boolean setChildrenAllowed(Object itemId, boolean areChildrenAllowed) + throws UnsupportedOperationException { + return hierarchical.setChildrenAllowed(itemId, areChildrenAllowed); + } + + public boolean setParent(Object itemId, Object newParentId) + throws UnsupportedOperationException { + return hierarchical.setParent(itemId, newParentId); + } + +} diff --git a/src/com/vaadin/ui/TreeTable.java b/src/com/vaadin/ui/TreeTable.java index 3fe080787a..f920810edf 100644 --- a/src/com/vaadin/ui/TreeTable.java +++ b/src/com/vaadin/ui/TreeTable.java @@ -13,11 +13,13 @@ import java.util.List; import java.util.Map; import java.util.logging.Logger; +import com.vaadin.data.Collapsible; import com.vaadin.data.Container; import com.vaadin.data.Container.Hierarchical; import com.vaadin.data.Container.ItemSetChangeEvent; import com.vaadin.data.util.ContainerHierarchicalWrapper; import com.vaadin.data.util.HierarchicalContainer; +import com.vaadin.data.util.HierarchicalContainerOrderedWrapper; import com.vaadin.terminal.PaintException; import com.vaadin.terminal.PaintTarget; import com.vaadin.terminal.Resource; @@ -26,8 +28,6 @@ import com.vaadin.ui.Tree.CollapseEvent; import com.vaadin.ui.Tree.CollapseListener; import com.vaadin.ui.Tree.ExpandEvent; import com.vaadin.ui.Tree.ExpandListener; -import com.vaadin.ui.treetable.Collapsible; -import com.vaadin.ui.treetable.HierarchicalContainerOrderedWrapper; /** * TreeTable extends the {@link Table} component so that it can also visualize a diff --git a/src/com/vaadin/ui/treetable/Collapsible.java b/src/com/vaadin/ui/treetable/Collapsible.java deleted file mode 100644 index bec0ba9ae9..0000000000 --- a/src/com/vaadin/ui/treetable/Collapsible.java +++ /dev/null @@ -1,69 +0,0 @@ -/* -@VaadinApache2LicenseForJavaFiles@ - */ -package com.vaadin.ui.treetable; - -import com.vaadin.data.Container; -import com.vaadin.data.Container.Hierarchical; -import com.vaadin.data.Container.Ordered; -import com.vaadin.data.Item; - -/** - * Container needed by large lazy loading hierarchies displayed 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); - -} diff --git a/src/com/vaadin/ui/treetable/HierarchicalContainerOrderedWrapper.java b/src/com/vaadin/ui/treetable/HierarchicalContainerOrderedWrapper.java deleted file mode 100644 index f826c59bf7..0000000000 --- a/src/com/vaadin/ui/treetable/HierarchicalContainerOrderedWrapper.java +++ /dev/null @@ -1,60 +0,0 @@ -/* -@VaadinApache2LicenseForJavaFiles@ - */ -package com.vaadin.ui.treetable; - -import java.util.Collection; - -import com.vaadin.data.Container.Hierarchical; -import com.vaadin.data.util.ContainerOrderedWrapper; - -@SuppressWarnings({ "serial", "unchecked" }) -/** - * Helper for TreeTable. Does the same thing as ContainerOrderedWrapper - * to fit into table but retains Hierarchical feature. - */ -public class HierarchicalContainerOrderedWrapper extends - ContainerOrderedWrapper implements Hierarchical { - - private Hierarchical hierarchical; - - public HierarchicalContainerOrderedWrapper(Hierarchical toBeWrapped) { - super(toBeWrapped); - hierarchical = toBeWrapped; - } - - public boolean areChildrenAllowed(Object itemId) { - return hierarchical.areChildrenAllowed(itemId); - } - - public Collection getChildren(Object itemId) { - return hierarchical.getChildren(itemId); - } - - public Object getParent(Object itemId) { - return hierarchical.getParent(itemId); - } - - public boolean hasChildren(Object itemId) { - return hierarchical.hasChildren(itemId); - } - - public boolean isRoot(Object itemId) { - return hierarchical.isRoot(itemId); - } - - public Collection rootItemIds() { - return hierarchical.rootItemIds(); - } - - public boolean setChildrenAllowed(Object itemId, boolean areChildrenAllowed) - throws UnsupportedOperationException { - return hierarchical.setChildrenAllowed(itemId, areChildrenAllowed); - } - - public boolean setParent(Object itemId, Object newParentId) - throws UnsupportedOperationException { - return hierarchical.setParent(itemId, newParentId); - } - -}