我知道使用 @RowStyle 我可以根据字段的特定值确定样式。但是,如果我想将前五个记录(id >= 1 和 id <= 5)与其他记录区分开来,我该怎么做呢?
例如,在我的例子中,一个活动实体默认以 5 个活动开始。目标是以不同的颜色或样式显示前 5 行,而用户添加的其余记录具有常规样式。像这样:
如何将样式仅应用于前 5 行?
我知道使用 @RowStyle 我可以根据字段的特定值确定样式。但是,如果我想将前五个记录(id >= 1 和 id <= 5)与其他记录区分开来,我该怎么做呢?
例如,在我的例子中,一个活动实体默认以 5 个活动开始。目标是以不同的颜色或样式显示前 5 行,而用户添加的其余记录具有常规样式。像这样:
如何将样式仅应用于前 5 行?
@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属性。