[ 
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)

Reply via email to