Magnolia 5.4.7 更改列排序

Posted

技术标签:

【中文标题】Magnolia 5.4.7 更改列排序【英文标题】:Magnolia 5.4.7 Change Column Sortation 【发布时间】:2016-07-21 10:02:09 【问题描述】:

我想更改 Column 的默认排序,使其仅在第一层按字母顺序排序,在其余层按 jcr 节点排序。

老实说,我不知道从哪里开始。首先我尝试扩展现有的TreePresenterDefinition,但很快我意识到这是错误的方式。 目前我尝试扩展PropertyColumnDefinition 并编写自己的ColumnFormatter

谁能给我一个研究方向?

祝愿, 地狱魔王

【问题讨论】:

【参考方案1】:

您很可能应该接触 Containers,例如可以为您的应用程序扩展 AbstractJcrContainer 并按照您的意愿设置排序,基本上可以按照这种方式进行; (Vaadin方式)

  IndexedContainer ic = new IndexedContainer() 
            @Override
            public Collection<?> getSortableContainerPropertyIds() 
                // Default implementation allows sorting only if the property
                // type can be cast to Comparable
                return getContainerPropertyIds();
            
        ;

        ic.setItemSorter(new DefaultItemSorter(new Comparator<Object>() 
                public int compare(Object o1, Object o2)                 

            
        ));

希望对你有帮助,

干杯,

【讨论】:

谢谢!我目前添加了一个带有每个节点前缀的列,并希望按字母顺序对该列进行排序......在树视图中,羞耻排序似乎根本不起作用。如果我有更多时间,我会尝试你的方式,在我看来这似乎更干净。 没有足够的时间进行如此深刻的改变,但这似乎是正确的方式。

以上是关于Magnolia 5.4.7 更改列排序的主要内容,如果未能解决你的问题,请参考以下文章

排序算法——选择排序

在 SQL 2005 中更改聚集索引列的排序规则

您可以在自动排序DataGrid中更改列的初始排序方向吗?

更改列排序规则

如何在Datagrid中更改列标题排序图像?

922-按奇偶校验排序数组II