View Javadoc
1   package fr.ifremer.tutti.ui.swing.content.db.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.ui.swing.content.actions.AbstractMainUITuttiAction;
26  import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
27  
28  /**
29   * To import or reimport a db (will delegate to correct action).
30   *
31   * @author Tony Chemit - chemit@codelutin.com
32   * @since 2.4
33   */
34  public class ImportOrReimportDbAction extends AbstractMainUITuttiAction {
35  
36      protected AbstractMainUITuttiAction delegateAction;
37  
38      public ImportOrReimportDbAction(MainUIHandler handler) {
39          super(handler, true);
40      }
41  
42      @Override
43      public boolean prepareAction() throws Exception {
44  
45          if (getContext().isDbExist()) {
46  
47              // reimport action
48              delegateAction = getContext().getActionFactory().createLogicAction(getHandler(), ReimportDbAction.class);
49          } else {
50  
51              // import action
52              delegateAction = getContext().getActionFactory().createLogicAction(getHandler(), ImportDbAction.class);
53          }
54  
55          setActionDescription(delegateAction.getActionDescription());
56  
57          return delegateAction.prepareAction();
58      }
59  
60      @Override
61      public void doAction() throws Exception {
62  
63          getActionEngine().runInternalAction(delegateAction);
64      }
65  
66      @Override
67      protected void releaseAction() {
68          delegateAction = null;
69          super.releaseAction();
70      }
71  }