I tried to place a frame in DataGrid details but got this error:
java.lang.ClassCastException: Cannot cast com.haulmont.cuba.web.gui.components.WebFrame to com.company.app.web.visitassignment.FlatListFrame
at java.lang.Class.cast(Class.java:3369)
at com.haulmont.cuba.web.gui.WebComponentsFactory.createComponent(WebComponentsFactory.java:181)
at com.company.app.web.visitassignment.VisitAssignmentForm$2.getDetails(VisitAssignmentForm.java:170)
at com.company.app.web.visitassignment.VisitAssignmentForm$2.getDetails(VisitAssignmentForm.java:166)
...
There is my code:
flatGrid.setDetailsGenerator(new DataGrid.DetailsGenerator<VisitAssignment>() {
@Override
public Component getDetails(VisitAssignment visitAssignment) {
FlatListFrame flatListFrame = componentsFactory.createComponent(FlatListFrame.class);
flatListFrame.setWidth("100%");
flatListFrame.setHeight("100%");
VBoxLayout mainLayout = componentsFactory.createComponent(VBoxLayout.class);
mainLayout.setWidth("100%");
mainLayout.setHeight("100%");
mainLayout.setMargin(true);
mainLayout.add(flatListFrame);
mainLayout.expand(flatListFrame);
return mainLayout;
}
});
flatGrid.setItemClickAction(new BaseAction("itemClickAction") {
@Override
public void actionPerform(Component component) {
flatGrid.setDetailsVisible(flatGrid.getSingleSelected(), !flatGrid.isDetailsVisible(flatGrid.getSingleSelected()));
}
});
How can I do it right?
CUBA Platform version 6.8.4