@Override
public void finish() throws WizardException {
XmlModule parentModule = (XmlModule) getCurrent().apply();
try {
ModuleJar mjParent = new ModuleJar(parentModule);
mjParent.save();
XmlModule childModule = DcModules.get(parentModule.getChildIndex()).getXmlModule();
childModule.setParentIndex(parentModule.getIndex());
if (childModule.getModuleClass().equals(DcMediaModule.class))
childModule.setModuleClass(DcMediaChildModule.class);
else
childModule.setModuleClass(DcChildModule.class);
Collection<XmlField> fields = childModule.getFields();
XmlField field = new XmlField();
field.setColumn(StringUtils.normalize(parentModule.getObjectName()).replaceAll(" ", "") + "ID");
field.setName(parentModule.getObjectName());
field.setFieldType(ComponentFactory._SHORTTEXTFIELD);
field.setMaximumLength(50);
field.setModuleReference(parentModule.getIndex());
field.setReadonly(true);
field.setEnabled(false);
field.setSearchable(false);
field.setUiOnly(false);
field.setOverwritable(false);
field.setValueType(DcRepository.ValueTypes._DCPARENTREFERENCE);
fields.add(field);
childModule.setFields(fields);
ModuleJar mjChild = new ModuleJar(childModule);
mjChild.save();
close();
} catch (Exception e) {
throw new WizardException(DcResources.getText("msgCouldNotWriteModuleFile", e.getMessage()));
}