Apache Isis:创建带有引用对象下拉列表的对话框

Apache Isis: create dialog with referenced object dropdown

给定一个具有如下简单域模型的 Apache Isis 项目,创建对话的绝对最低要求是什么,该对话将在创建新人员时显示所有可用办公室的下拉选择?

当前状态:我可以创建一个办公室对象,列出所有办公室对象,但是当我想创建一个人时,创建对话框不显示可用办公室的下拉列表,它只是说“(none)”(见屏幕截图)。

目前我为 Person 创建的对话如下所示:

如何在此对话框中显示所有可用办公室的下拉列表?

这是我的 DOM 代码的粗略布局(省略了 JDO 注释):

public class Office {
    private String name;
    // getter/setter ...
}

public class Person {
    private String name;
    private Office office;
    // getter/setter...
}

和对应的menu/repository类如

public class OfficeRepository {
    public List<Office> listAll() {
        // ...
    }
}

public class PersonRepository {
    public Person create(String name, final Office office) {
        // ...
    }
}

public class PersonMenu {
    public static class CreateDomainEvent extends ActionDomainEvent<Person> {}    
    @Action(domainEvent = CreateDomainEvent.class)        
    public Person create(
        @ParameterLayout(named="Name")
        final String name,
        final Office office) {
        return personRepository.create(name, office);
    }    
}

可以使用choices支持方法,autoComplete支持方法,或者将引用的class注解为@DomainObject(bounded=true)。后者主要适用于实例数量有限(即有界)的参考数据对象。

例如:

public List<Office> choices1Create()
    return officerRepository.findAll();
} 

查看这些 apache isis docs 了解更多详情(链接)。

如果您还有其他问题,我建议您注册 apache.isis mailing list

谢谢 旦