View Javadoc
1   package fr.ifremer.dali.ui.swing.content.manage.filter.list;
2   
3   /*
4    * #%L
5    * Dali :: 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 fr.ifremer.dali.dto.configuration.filter.FilterDTO;
27  import fr.ifremer.dali.ui.swing.action.AbstractDaliAction;
28  
29  import java.io.File;
30  import java.util.List;
31  
32  import static org.nuiton.i18n.I18n.t;
33  
34  /**
35   * Import action.
36   */
37  public class ImportFilterAction extends AbstractDaliAction<FilterListUIModel, FilterListUI, FilterListUIHandler> {
38  
39      private List<FilterDTO> importedFilters;
40  
41      private File importFile;
42  
43      /**
44       * Constructor.
45       *
46       * @param handler Controller
47       */
48      public ImportFilterAction(FilterListUIHandler handler) {
49          super(handler, false);
50      }
51  
52      /** {@inheritDoc} */
53      @Override
54      public boolean prepareAction() throws Exception {
55          importFile = null;
56          if (super.prepareAction()) {
57              // get importFile
58              importFile = chooseFile(t("dali.action.filter.import.title"),
59                      t("dali.action.common.chooseFile.buttonLabel"),
60                      "^.*\\.dat", t("dali.common.file.dat"));
61  
62          }
63          return importFile != null && importFile.exists();
64      }
65  
66      /** {@inheritDoc} */
67      @Override
68      public void doAction() throws Exception {
69          importedFilters = getContext().getContextService().importFilter(importFile, getHandler().getFilterTypeId());
70      }
71  
72      /** {@inheritDoc} */
73      @Override
74      public void postSuccessAction() {
75          getModel().addBeans(importedFilters);
76          getHandler().reloadComboBox();
77      }
78  
79  }