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  /**
30   * Duplicate action.
31   */
32  public class DuplicateFilterAction extends AbstractDaliAction<FilterListUIModel, FilterListUI, FilterListUIHandler> {
33  
34      private FilterDTO duplicatedFilter;
35  
36      /**
37       * Constructor.
38       *
39       * @param handler Controller
40       */
41      public DuplicateFilterAction(final FilterListUIHandler handler) {
42          super(handler, false);
43      }
44  
45      /**
46       * {@inheritDoc}
47       */
48      @Override
49      public void doAction() throws Exception {
50          FilterListRowModel filterToDuplicate = getModel().getSingleSelectedRow();
51          if (filterToDuplicate != null) {
52              duplicatedFilter = getContext().getContextService().duplicateFilter(filterToDuplicate.toBean());
53          }
54      }
55  
56      /**
57       * {@inheritDoc}
58       */
59      @Override
60      public void postSuccessAction() {
61  
62          getHandler().setFocusOnCell(getModel().addNewRow(duplicatedFilter));
63      }
64  }