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 b6eac4ddb96ae6cbf4618a05d7c9908fde3051d1 Author: Andi Huber <ahu...@apache.org> AuthorDate: Tue May 8 14:24:25 2018 +0200 ISIS-1944: Tree View: minor code improvements Task-Url: https://issues.apache.org/jira/browse/ISIS-1944 --- .../components/tree/IsisToWicketTreeAdapter.java | 124 +++++++++++---------- 1 file changed, 68 insertions(+), 56 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 a5ab062..90e7776 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 @@ -137,7 +137,7 @@ class IsisToWicketTreeAdapter { } - // -- HELPER + // -- ISIS' TREE-MODEL /** * Extending the EntityModel to also provide a TreePath. @@ -157,6 +157,11 @@ class IsisToWicketTreeAdapter { } } + // -- ISIS' TREE ADAPTER (FOR TREES OF TREE-MODEL NODES) + + /** + * TreeAdapter for TreeModel nodes. + */ @SuppressWarnings({"rawtypes", "unchecked"}) private static class TreeModelTreeAdapter implements TreeAdapter<TreeModel>, Serializable { private static final long serialVersionUID = 1L; @@ -225,6 +230,8 @@ class IsisToWicketTreeAdapter { } } + + // -- WICKET'S TREE PROVIDER (FOR TREES OF TREE-MODEL NODES) /** * Wicket's ITreeProvider implemented for Isis @@ -265,7 +272,7 @@ class IsisToWicketTreeAdapter { @Override public IModel<TreeModel> model(final TreeModel treeModel) { - return new LoadableDetachableEntityModel(treeModel); + return new LoadableDetachableTreeModel(treeModel); } } @@ -286,67 +293,19 @@ class IsisToWicketTreeAdapter { wrappingTreeAdapter); } - /** - * - * @param model - * @return Wicket's model for collapse/expand state - */ - @SuppressWarnings({ "rawtypes" }) - private static TreeExpansionModel toIModelRepresentingCollapseExpandState(ModelAbstract<ObjectAdapter> model) { - - final TreeNode treeNode = (TreeNode) model.getObject().getObject(); - final TreeState treeState = treeNode.getTreeState(); - return TreeExpansionModel.of(treeState.getExpandedNodePaths()); - } + // -- WICKET'S LOADABLE/DETACHABLE MODEL FOR TREE-MODEL NODES /** - * Wicket's model for collapse/expand state + * Wicket's loadable/detachable model for TreeModel nodes. */ - private static class TreeExpansionModel extends AbstractReadOnlyModel<Set<TreeModel>> { - private static final long serialVersionUID = 648152234030889164L; - - public static TreeExpansionModel of(Set<TreePath> expandedTreePaths) { - return new TreeExpansionModel(expandedTreePaths); - } - - 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 TreeExpansionModel(Set<TreePath> expandedTreePaths) { - this.expandedTreePaths = expandedTreePaths; - this.expandedNodes = expandedTreePaths.stream() - .map(tPath->new TreeModel(null, tPath)) - .collect(Collectors.toSet()); - } - - @Override - public Set<TreeModel> getObject() { - return expandedNodes; - } - - @Override - public String toString() { - return "{" + expandedNodes.stream() - .map(TreeModel::getTreePath) - .map(TreePath::toString) - .collect(Collectors.joining(", ")) + "}"; - } - - - } - - private static class LoadableDetachableEntityModel extends LoadableDetachableModel<TreeModel> { + private static class LoadableDetachableTreeModel extends LoadableDetachableModel<TreeModel> { private static final long serialVersionUID = 1L; private final RootOid id; private final TreePath treePath; private final int hashCode; - public LoadableDetachableEntityModel(TreeModel tModel) { + public LoadableDetachableTreeModel(TreeModel tModel) { super(tModel); this.id = (RootOid) tModel.getObject().getOid(); this.treePath = tModel.getTreePath(); @@ -386,8 +345,8 @@ class IsisToWicketTreeAdapter { */ @Override public boolean equals(Object obj) { - if (obj instanceof LoadableDetachableEntityModel) { - final LoadableDetachableEntityModel other = (LoadableDetachableEntityModel) obj; + if (obj instanceof LoadableDetachableTreeModel) { + final LoadableDetachableTreeModel other = (LoadableDetachableTreeModel) obj; return treePath.equals(other.treePath) && id.equals(other.id); } return false; @@ -402,4 +361,57 @@ class IsisToWicketTreeAdapter { } } + // -- COLLAPSE/EXPAND + + /** + * + * @param model + * @return Wicket's model for collapse/expand state + */ + @SuppressWarnings({ "rawtypes" }) + private static TreeExpansionModel toIModelRepresentingCollapseExpandState(ModelAbstract<ObjectAdapter> model) { + + final TreeNode treeNode = (TreeNode) model.getObject().getObject(); + final TreeState treeState = treeNode.getTreeState(); + return TreeExpansionModel.of(treeState.getExpandedNodePaths()); + } + + /** + * Wicket's model for collapse/expand state + */ + private static class TreeExpansionModel extends AbstractReadOnlyModel<Set<TreeModel>> { + private static final long serialVersionUID = 648152234030889164L; + + public static TreeExpansionModel of(Set<TreePath> expandedTreePaths) { + return new TreeExpansionModel(expandedTreePaths); + } + + 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 TreeExpansionModel(Set<TreePath> expandedTreePaths) { + this.expandedTreePaths = expandedTreePaths; + this.expandedNodes = expandedTreePaths.stream() + .map(tPath->new TreeModel(null, tPath)) + .collect(Collectors.toSet()); + } + + @Override + public Set<TreeModel> getObject() { + return expandedNodes; + } + + @Override + public String toString() { + return "{" + expandedTreePaths.stream() + .map(TreePath::toString) + .collect(Collectors.joining(", ")) + "}"; + } + + } + } -- To stop receiving notification emails like this one, please contact ahu...@apache.org.