[
https://issues.apache.org/jira/browse/ISIS-898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16440547#comment-16440547
]
Andi Huber commented on ISIS-898:
---------------------------------
New Tree API proposal demonstrated on *SimpleObject* ...
{code:java}
public class SimpleObject {
...
// infinitely large tree (lazy demo)
public static class MyTreeAdapter implements TreeAdapter<SimpleObject> {
@Override
public Optional<SimpleObject> parentOf(SimpleObject value) {
return Optional.empty();
}
@Override
public int childCountOf(SimpleObject value) {
return simpleObjectRepository().listAll().size();
}
@Override
public Stream<SimpleObject> childrenOf(SimpleObject value) {
return simpleObjectRepository().listAll().stream();
}
private SimpleObjectRepository simpleObjectRepository() {
return
IsisContext.getSessionFactory().getServicesInjector()
.lookupService(SimpleObjectRepository.class);
}
}
// action returning a tree with 'this' as the root of the tree
@Action
public TreeNode<SimpleObject> tree() {
return LazyTreeNode.of(this, MyTreeAdapter.class);
}
// property of type tree with 'this' as the root of the tree
public TreeNode<SimpleObject> getTree() {
return LazyTreeNode.of(this, MyTreeAdapter.class);
}
}
{code}
> Add a table tree view to the Wicket viewer.
> -------------------------------------------
>
> Key: ISIS-898
> URL: https://issues.apache.org/jira/browse/ISIS-898
> Project: Isis
> Issue Type: New Feature
> Components: Core: Viewer: Wicket
> Affects Versions: viewer-wicket-1.6.0
> Reporter: Dan Haywood
> Assignee: Andi Huber
> Priority: Minor
> Fix For: 2.0.0-M2
>
> Attachments: tree.png
>
>
> see mailing list discussion [1]
> [1] http://markmail.org/message/vu3jqmlawrskplic
> ~~~
> some further thoughts:
> For example, in Estatio there are several hierarchies
> EstatioInstance ("global") /
> EstatioInstance ("italy") /
> EstatioInstance ("Roma shopping mall")
> or:
> Property/
> Floor/
> Unit
> We'd like to render these objects in a single tree/table collection.
> ~~~
> We should distinguish two cases:
> - where all the rows are of the same type (EstatioInstance, turtles all the
> way down).
> - where all the rows are of different types (Property/Floor/Unit)
> For the former, the columns to use are exactly those of the (single) class.
> For the latter, things are more complicated, as all the objects are of
> different class. It's not clear to me what (apart from an icon and a title)
> should be shown as columns. Perhaps just the intersection of those
> properties that are common across all types (eg name?) . Or perhaps there's
> metadata (in @PropertyLayout(...)) to specify that a particular property
> should always be shown in such tree/table collections, even if it is null for
> other rows for instances of some other class.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)