ref #6169 replacing declarative WorkflowViewDesign
[cdm-vaadin.git] / src / main / java / eu / etaxonomy / cdm / vaadin / presenter / registration / RegistrationWorkflowPresenter.java
1 /**
2 * Copyright (C) 2017 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.cdm.vaadin.presenter.registration;
10
11 import org.apache.log4j.Logger;
12 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.context.event.EventListener;
14
15 import com.vaadin.spring.annotation.SpringComponent;
16 import com.vaadin.spring.annotation.ViewScope;
17
18 import eu.etaxonomy.cdm.mock.Registration;
19 import eu.etaxonomy.cdm.mock.RegistrationService;
20 import eu.etaxonomy.cdm.model.name.Rank;
21 import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
22 import eu.etaxonomy.cdm.vaadin.event.registration.RegistrationWorkflowEvent;
23 import eu.etaxonomy.cdm.vaadin.view.registration.RegistrationWorkflowView;
24 import eu.etaxonomy.vaadin.mvp.AbstractPresenter;
25
26 /**
27 * @author a.kohlbecker
28 * @since Mar 3, 2017
29 *
30 */
31 @SpringComponent
32 @ViewScope
33 public class RegistrationWorkflowPresenter extends AbstractPresenter<RegistrationWorkflowView> {
34
35
36 @Autowired
37 private RegistrationService serviceMock;
38
39 private Registration registration;
40
41 /**
42 *
43 */
44 public RegistrationWorkflowPresenter() {
45 }
46
47 @EventListener
48 protected void onRegistrationStartEvent(RegistrationWorkflowEvent e){
49
50 if(registration != null){
51 Logger.getLogger(RegistrationWorkflowPresenter.class).warn("Foiling attempt to start another registration in existing workflow");
52 return;
53 }
54
55 if(e.isStart()) {
56 registration = new Registration();
57 registration.setName(TaxonNameFactory.NewBotanicalInstance(Rank.SPECIES()));
58 } else {
59 registration = serviceMock.loadByRegistrationID(e.getRegistrationID());
60 }
61 if(registration != null){
62 // getView().getTitle().setValue("Workflow for a " + registrationType().name());
63 getView().makeWorflow(registrationType());
64 }
65 }
66
67 /**
68 * @return
69 */
70 private RegistrationType registrationType() {
71 return RegistrationType.from(registration);
72 }
73
74
75
76 }