Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据OpenXava引用的值定义每行的颜色/样式?_Java_User Interface_Openxava - Fatal编程技术网

Java 如何根据OpenXava引用的值定义每行的颜色/样式?

Java 如何根据OpenXava引用的值定义每行的颜色/样式?,java,user-interface,openxava,Java,User Interface,Openxava,我有一个涉及实体优先级的实体问题。我希望在OpenXava模块的列表模式中,根据优先级的值为每行提供不同的颜色和视觉样式 这是我的问题实体的代码: package com.yourcompany.tracker.model; import java.time.*; import javax.persistence.*; import org.openxava.annotations.*; import org.openxava.calculators.*; import org.openx

我有一个涉及实体优先级的实体问题。我希望在OpenXava模块的列表模式中,根据优先级的值为每行提供不同的颜色和视觉样式

这是我的问题实体的代码:

package com.yourcompany.tracker.model;

import java.time.*;

import javax.persistence.*;

import org.openxava.annotations.*;
import org.openxava.calculators.*;
import org.openxava.model.*;

import lombok.*;

@Entity @Getter @Setter
public class Issue extends Identifiable {

    @Column(length=100) @Required
    String title;
            
    @Stereotype("SIMPLE_HTML_TEXT") 
    String description;
    
    @ReadOnly 
    @DefaultValueCalculator(CurrentLocalDateCalculator.class) 
    LocalDate createdOn;
    
    @ManyToOne(fetch=FetchType.LAZY, optional=true)
    @DescriptionsList
    Priority priority; 
        
}
这是优先事项:

package com.yourcompany.tracker.model;

import javax.persistence.*;
import javax.validation.constraints.*;

import org.openxava.annotations.*;

import lombok.*;

@Entity @Getter @Setter
public class Priority {
    
    @Id @Max(9)
    int level;
    
    @Column(length=40) @Required
    String description;

}
这就是我想要达到的效果:

请注意,低优先级的行为灰色,高优先级的行为粗体


我知道有@RowStyle注释,但它似乎是用于简单属性的。如何根据引用(@ManyToOne)值为每行定义不同的样式?

@RowStyle允许您使用限定属性,即引用的属性。因此,您可以在实体的@Tab注释中使用@RowStyle,方法如下:

@Entity @Getter @Setter
@Tab(
    rowStyles= {
        @RowStyle(style="high-priority", property="priority.level", value="7"),
        @RowStyle(style="low-priority", property="priority.level", value="3"),
        
    }
)
public class Issue extends Identifiable {
注意@RowStyle中的property属性如何使用“priority.level”,所以我们引用了priority引用的属性。如上所述,当priority.level为7时,我们应用高优先级样式,当priority.level为3时,我们应用低优先级样式。这些样式是在custom.CSS文件中定义的CSS类,因此:

.high-priority {
    font-weight: bold;
}

.low-priority {
    color: lightgray !important;
}
要了解更多信息,请阅读