package com.constellio.app.modules.tasks.ui.pages.workflow;
import java.io.IOException;
import org.apache.commons.lang3.StringUtils;
import com.constellio.app.modules.tasks.TasksPermissionsTo;
import com.constellio.app.modules.tasks.model.wrappers.Workflow;
import com.constellio.app.modules.tasks.navigation.TaskViews;
import com.constellio.app.modules.tasks.ui.builders.WorkflowToVoBuilder;
import com.constellio.app.modules.tasks.ui.entities.WorkflowVO;
import com.constellio.app.ui.entities.RecordVO.VIEW_MODE;
import com.constellio.app.ui.pages.base.SingleSchemaBasePresenter;
import com.constellio.model.entities.records.Record;
import com.constellio.model.entities.records.wrappers.User;
public class AddEditWorkflowPresenter extends SingleSchemaBasePresenter<AddEditWorkflowView> {
private boolean addView;
private WorkflowVO workflowVO;
private WorkflowToVoBuilder voBuilder;
public AddEditWorkflowPresenter(AddEditWorkflowView view) {
super(view, Workflow.DEFAULT_SCHEMA);
initTransientObjects();
voBuilder = new WorkflowToVoBuilder();
}
private void readObject(java.io.ObjectInputStream stream)
throws IOException, ClassNotFoundException {
stream.defaultReadObject();
initTransientObjects();
}
private void initTransientObjects() {
}
@Override
protected boolean hasPageAccess(String params, User user) {
return user.has(TasksPermissionsTo.MANAGE_WORKFLOWS).globally();
}
void forParams(String params) {
addView = StringUtils.isBlank(params);
view.setAddView(addView);
Record workflowRecord;
if (!addView) {
String id = params;
workflowRecord = getRecord(id);
} else {
workflowRecord = newRecord();
}
workflowVO = voBuilder.build(workflowRecord, VIEW_MODE.FORM, view.getSessionContext());
view.setWorkflowVO(workflowVO);
}
void saveButtonClicked() {
Record workflowRecord = toRecord(workflowVO);
addOrUpdate(workflowRecord);
view.navigate().to(TaskViews.class).displayWorkflow(workflowRecord.getId());
}
void cancelButtonClicked() {
view.navigate().to(TaskViews.class).listWorkflows();
}
}