public DVGenericPanel createDVGenericPanel(ElementInstance elementInstance) {
if (!Domains.CDS_ID.equals(elementInstance.getArchetypeReference().getIdDomain())
&& elementInstance instanceof PredicateGeneratedElementInstance) {
elementInstance = new ElementInstance(
elementInstance.getId(),
null,
elementInstance.getArchetypeReference(),
null,
OpenEHRConstUI.NULL_FLAVOUR_CODE_NO_INFO);
}
DVGenericPanel dvGenericPanel = getDVGenericForElement(elementInstance);
for (JComponent component : dvGenericPanel.getJComponents()) {
if (component instanceof JDateChooser) {
((JDateChooser) component).getDateEditor().getUiComponent().addFocusListener(new DVGenericComponentFocusAdapter(dvGenericPanel, elementInstance));
} else {
component.addFocusListener(new DVGenericComponentFocusAdapter(dvGenericPanel, elementInstance));
}
if (Domains.CDS_ID.equals(elementInstance.getArchetypeReference().getIdDomain())
|| elementInstance instanceof PredicateGeneratedElementInstance) {
DvSwingManager.disable(component);
}
}
return dvGenericPanel;
}