0

我知道使用 @RowStyle 我可以根据字段的特定值确定样式。但是,如果我想将前五个记录(id >= 1 和 id <= 5)与其他记录区分开来,我该怎么做呢?

例如,在我的例子中,一个活动实体默认以 5 个活动开始。目标是以不同的颜色或样式显示前 5 行,而用户添加的其余记录具有常规样式。像这样:

带有前 5 行注释的列表

如何将样式仅应用于前 5 行?

4

1 回答 1

0

@RowStyle 不允许您定义复杂的逻辑,而只是比较属性的值。但是,您可以定义一个计算属性来实现它,您可以在其中放置该逻辑。像这样的东西:

import javax.persistence.*;
import org.openxava.annotations.*;
import lombok.*;

@Entity @Getter @Setter
@Tab(
    rowStyles={
        @RowStyle(style="row-highlight", property="type", value="default"),
        @RowStyle(style="row-red", property="type", value="extra")
    }
)
public class Activity {
    
    @Id
    int id;
    
    @Column(length=50) @Required
    String description;
    
    public enum Type { DEFAULT, NORMAL, EXTRA };
    public Type getType() {
        if (id >= 1 && id <= 5) return Type.DEFAULT;
        if (id > 100) return Type.EXTRA;
        return Type.NORMAL;
    }
    
}

请注意我们放置确定样式的逻辑的type属性。

于 2021-06-15T16:49:53.150 回答