This is an automated email from the ASF dual-hosted git repository. ahuber pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/isis.git
commit fca655be46c02207087f1b38f8e996ae010f2e9a Author: Andi Huber <ahu...@apache.org> AuthorDate: Tue May 8 14:39:49 2018 +0200 ISIS-1944: Tree View: propagate expand/collapse events to tree's state Task-Url: https://issues.apache.org/jira/browse/ISIS-1944 --- .../components/tree/IsisToWicketTreeAdapter.java | 44 ++++++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/tree/IsisToWicketTreeAdapter.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/tree/IsisToWicketTreeAdapter.java index 90e7776..dc504df 100644 --- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/tree/IsisToWicketTreeAdapter.java +++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/tree/IsisToWicketTreeAdapter.java @@ -126,8 +126,8 @@ class IsisToWicketTreeAdapter { } /** - * To utilize the custom TreeExpansionModel for deciding a node's collapse/expand state we - * override this method. + * To utilize the custom TreeExpansionModel for deciding a node's collapse/expand state, + * we override this method. */ @Override public State getState(TreeModel t) { @@ -135,6 +135,28 @@ class IsisToWicketTreeAdapter { return treeExpansionModel.contains(t.getTreePath()) ? State.EXPANDED : State.COLLAPSED; } + /** + * To utilize the custom TreeExpansionModel for hooking into a node's expand event, + * we override this method. + */ + @Override + public void expand(TreeModel t) { + final TreeExpansionModel treeExpansionModel = (TreeExpansionModel) getModel(); + treeExpansionModel.onExpand(t); + super.expand(t); + } + + /** + * To utilize the custom TreeExpansionModel for hooking into a node's collapse event, + * we override this method. + */ + @Override + public void collapse(TreeModel t) { + final TreeExpansionModel treeExpansionModel = (TreeExpansionModel) getModel(); + treeExpansionModel.onCollapse(t); + super.collapse(t); + } + } // -- ISIS' TREE-MODEL @@ -386,12 +408,28 @@ class IsisToWicketTreeAdapter { return new TreeExpansionModel(expandedTreePaths); } + /** + * Happens on user interaction via UI. + * @param t + */ + public void onExpand(TreeModel t) { + expandedTreePaths.add(t.getTreePath()); + } + + /** + * Happens on user interaction via UI. + * @param t + */ + public void onCollapse(TreeModel t) { + expandedTreePaths.remove(t.getTreePath()); + } + public boolean contains(TreePath treePath) { return expandedTreePaths.contains(treePath); } private final Set<TreePath> expandedTreePaths; - private final Set<TreeModel> expandedNodes; //TODO [ahuber] possibly not used within this readonly model + private final Set<TreeModel> expandedNodes; private TreeExpansionModel(Set<TreePath> expandedTreePaths) { this.expandedTreePaths = expandedTreePaths; -- To stop receiving notification emails like this one, please contact ahu...@apache.org.