我想编辑一个DTO,它是一个值和其他DTO的组合。对于这些subdtos我已经有一个工作的编辑器被定义为复合。该结构是这样的:GWT编辑器 - 编辑subdto与subeditor
public class TopDto {
private SubDto subDto;
public SubDto getSubDto();
public void setSubDto(...);
}
public class TopEditor extends Composite implements Editor<TopDto> {
@UiField
SubEditor subEditor;
}
public class SubEditor extends Composite implements Editor<SubDto> {
}
所以,当副主编是SubDto工作编辑器,我不知道怎么说TopEditor该UiField副主编实际上编辑属性,而不是物业本身。
我到目前为止所尝试的是设置@Ignored并初始化SubEditors驱动程序与TopDto的subDto属性。但这并不像预期的那样工作。事实上,问题在于,当我在TopEditor中调用driver.flush()时,不会调用subEditor.driver.flush()。
由于驱动程序是私有的(或受保护的),因此我无法明确调用SubEditor的driver.flush(),并用此手动更改TopDto中的SubDto。所以我现在做的工作是给SubEditor一个公共的getSubDto()方法,它给了我Dto,然后手动插入它。 但从我从备件文档中了解到,这不是预期的工作流程,所以我在这里做错了什么。
有人可能会提供一个例子或帮助我建立一个如何按预期做到这一点?
是的,我做了,似乎我做错了,因为我在你的答案后再次尝试,现在似乎工作... –
...或者你可以调用你的UiField'subDto'或'subDtoEditor'。 –