@@ -0,0 +1,1403 @@
+package com.aesthetikx.hubski.adapter;%0A%0Aimport java.util.List;%0A%0Apublic class BaseTreeListItem implements TreeListItem %7B%0A%0A    private boolean visible;%0A    private boolean expanded;%0A    private List%3C? extends BaseTreeListItem%3E children;%0A    private int depth;%0A%0A    public BaseTreeListItem(List%3C? extends BaseTreeListItem%3E children, boolean visible, boolean expanded, int depth) %7B%0A        this.children = children;%0A        this.visible = visible;%0A        this.expanded = expanded;%0A        this.depth = depth;%0A    %7D%0A%0A    @Override%0A    public boolean isExpanded() %7B%0A        return expanded;%0A    %7D%0A%0A    @Override%0A    public void setExpanded(boolean expanded) %7B%0A        this.expanded = expanded;%0A        for (BaseTreeListItem child: children) %7B%0A            child.parentToggled(expanded, isVisible());%0A        %7D%0A    %7D%0A%0A    @Override%0A    public void parentToggled(boolean parentExpanded, boolean parentVisible) %7B%0A        setVisible( parentVisible && parentExpanded );%0A        for (BaseTreeListItem child: children) child.parentToggled(isExpanded(), isVisible());%0A    %7D%0A%0A    @Override%0A    public void toggleExpanded() %7B%0A        setExpanded(!isExpanded());%0A    %7D%0A%0A    @Override%0A    public boolean isVisible() %7B%0A        return visible;%0A    %7D%0A%0A    @Override%0A    public void setVisible(boolean visible) %7B%0A        this.visible = visible;%0A    %7D%0A%0A    @Override%0A    public int getDepth() %7B%0A        return depth;%0A    %7D%0A%0A%7D%0A

Implement tree list item with base tree list item