View Javadoc
1   package fr.ifremer.reefdb.ui.swing.content.manage.referential.pmfm.parameter.local;
2   
3   /*
4    * #%L
5    * Reef DB :: UI
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2014 - 2015 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU Affero General Public License as published by
13   * the Free Software Foundation, either version 3 of the License, or
14   * (at your option) any later version.
15   * 
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   * 
21   * You should have received a copy of the GNU Affero General Public License
22   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
23   * #L%
24   */
25  
26  import com.google.common.collect.Lists;
27  import fr.ifremer.reefdb.decorator.DecoratorService;
28  import fr.ifremer.reefdb.dto.referential.pmfm.ParameterDTO;
29  import fr.ifremer.reefdb.service.StatusFilter;
30  import fr.ifremer.reefdb.service.referential.ReferentialService;
31  import fr.ifremer.reefdb.ui.swing.action.AbstractReefDbAction;
32  import fr.ifremer.reefdb.ui.swing.content.manage.referential.pmfm.parameter.ManageParametersUI;
33  import fr.ifremer.reefdb.ui.swing.content.manage.referential.pmfm.parameter.local.replace.ReplaceParameterUI;
34  import fr.ifremer.reefdb.ui.swing.content.manage.referential.pmfm.parameter.local.replace.ReplaceParameterUIModel;
35  import fr.ifremer.reefdb.ui.swing.content.manage.referential.replace.AbstractOpenReplaceUIAction;
36  import jaxx.runtime.context.JAXXInitialContext;
37  
38  import java.util.List;
39  
40  import static org.nuiton.i18n.I18n.t;
41  
42  /**
43   * Created on 7/6/14.
44   *
45   * @since 3.6
46   */
47  public class OpenReplaceParameterAction extends AbstractReefDbAction<ManageParametersLocalUIModel, ManageParametersLocalUI, ManageParametersLocalUIHandler> {
48  
49      /**
50       * <p>Constructor for OpenReplaceParameterAction.</p>
51       *
52       * @param handler a {@link fr.ifremer.reefdb.ui.swing.content.manage.referential.pmfm.parameter.local.ManageParametersLocalUIHandler} object.
53       */
54      public OpenReplaceParameterAction(ManageParametersLocalUIHandler handler) {
55          super(handler, false);
56      }
57  
58      /** {@inheritDoc} */
59      @Override
60      public void doAction() {
61  
62          AbstractOpenReplaceUIAction<ParameterDTO, ReplaceParameterUIModel, ReplaceParameterUI> openAction =
63                  new AbstractOpenReplaceUIAction<ParameterDTO, ReplaceParameterUIModel, ReplaceParameterUI>(getContext().getMainUI().getHandler()) {
64  
65                      @Override
66                      protected String getEntityLabel() {
67                          return t("reefdb.property.pmfm.parameter");
68                      }
69  
70                      @Override
71                      protected ReplaceParameterUIModel createNewModel() {
72                          ReplaceParameterUIModel model = new ReplaceParameterUIModel();
73                          model.setDecoratorContext(DecoratorService.CODE_NAME);
74                          return model;
75                      }
76  
77                      @Override
78                      protected ReplaceParameterUI createUI(JAXXInitialContext ctx) {
79                          return new ReplaceParameterUI(ctx);
80                      }
81  
82                      @Override
83                      protected List<ParameterDTO> getReferentialList(ReferentialService referentialService) {
84                          return Lists.newArrayList(referentialService.getParameters(StatusFilter.ACTIVE));
85                      }
86  
87                      @Override
88                      protected ParameterDTO getSelectedSource() {
89                          List<ParameterDTO> selectedBeans = OpenReplaceParameterAction.this.getModel().getSelectedBeans();
90                          return selectedBeans.size() == 1 ? selectedBeans.get(0) : null;
91                      }
92  
93                      @Override
94                      protected ParameterDTO getSelectedTarget() {
95                          ManageParametersUI ui = OpenReplaceParameterAction.this.getUI().getParentContainer(ManageParametersUI.class);
96                          List<ParameterDTO> selectedBeans = ui.getManageParametersNationalUI().getModel().getSelectedBeans();
97                          return selectedBeans.size() == 1 ? selectedBeans.get(0) : null;
98                      }
99                  };
100 
101         getActionEngine().runFullInternalAction(openAction);
102     }
103 }