View Javadoc
1   package fr.ifremer.tutti.ui.swing.content.program.actions;
2   
3   /*
4    * #%L
5    * Tutti :: UI
6    * %%
7    * Copyright (C) 2012 - 2014 Ifremer
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU General Public License as
11   * published by the Free Software Foundation, either version 3 of the 
12   * License, or (at your option) any later version.
13   * 
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Public License for more details.
18   * 
19   * You should have received a copy of the GNU General Public 
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/gpl-3.0.html>.
22   * #L%
23   */
24  
25  import fr.ifremer.tutti.persistence.entities.TuttiEntities;
26  import fr.ifremer.tutti.persistence.entities.data.Program;
27  import fr.ifremer.tutti.service.PersistenceService;
28  import fr.ifremer.tutti.ui.swing.TuttiUIContext;
29  import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport;
30  import fr.ifremer.tutti.ui.swing.content.program.EditProgramUI;
31  import fr.ifremer.tutti.ui.swing.content.program.EditProgramUIHandler;
32  import fr.ifremer.tutti.ui.swing.content.program.EditProgramUIModel;
33  
34  import static org.nuiton.i18n.I18n.t;
35  
36  /**
37   * @author Kevin Morin - kmorin@codelutin.com
38   * @author Tony Chemit - chemit@codelutin.com
39   * @since 1.0
40   */
41  public class SaveProgramAction extends LongActionSupport<EditProgramUIModel, EditProgramUI, EditProgramUIHandler> {
42  
43      public SaveProgramAction(EditProgramUIHandler handler) {
44          super(handler, true);
45      }
46  
47      @Override
48      public void doAction() throws Exception {
49          TuttiUIContext context = getContext();
50          PersistenceService persistenceService =
51                  getContext().getPersistenceService();
52  
53          EditProgramUIModel model = getModel();
54  
55          Program bean = model.toEntity();
56  
57          Program saved;
58          if (TuttiEntities.isNew(bean)) {
59  
60              saved = persistenceService.createProgram(bean);
61              model.setId(saved.getId());
62              sendMessage(t("tutti.flash.info.programCreated", bean.getName()));
63          } else {
64              saved = persistenceService.saveProgram(bean);
65              sendMessage(t("tutti.flash.info.programSaved", bean.getName()));
66          }
67  
68          context.setProgramId(saved.getId());
69  
70          model.setModify(false);
71      }
72  
73      @Override
74      public void postSuccessAction() {
75          getContext().getMainUI().getHandler().setBodyTitle(
76                  EditProgramUIHandler.getTitle(true));
77      }
78  
79  }