package com.constellio.app.ui.pages.management.schemaRecords;
import static com.constellio.app.ui.i18n.i18n.$;
import com.constellio.app.ui.entities.RecordVO;
import com.constellio.app.ui.framework.components.OverridingMetadataFieldFactory;
import com.constellio.app.ui.framework.components.RecordForm;
import com.constellio.app.ui.pages.base.BaseViewImpl;
import com.constellio.model.frameworks.validation.ValidationException;
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.ui.Component;
@SuppressWarnings("serial")
public class AddEditSchemaRecordViewImpl extends BaseViewImpl implements AddEditSchemaRecordView {
AddEditSchemaRecordPresenter presenter;
RecordVO recordVO;
public AddEditSchemaRecordViewImpl() {
this.presenter = new AddEditSchemaRecordPresenter(this);
}
@Override
protected void initBeforeCreateComponents(ViewChangeEvent event) {
String[] splitParams = event.getParameters().split("/");
presenter.forSchema(splitParams[0]);
String id = splitParams.length == 2 ? splitParams[1] : null;
recordVO = presenter.getRecordVO(id);
}
@Override
protected String getTitle() {
return $("AddEditSchemaRecordView.viewTitle");
}
@Override
protected Component buildMainComponent(ViewChangeEvent event) {
return new RecordForm(recordVO, new OverridingMetadataFieldFactory(presenter)) {
@Override
protected void saveButtonClick(RecordVO recordVO)
throws ValidationException {
presenter.saveButtonClicked(recordVO);
}
@Override
protected void cancelButtonClick(RecordVO recordVO) {
presenter.cancelButtonClicked(recordVO);
}
};
}
}