View Javadoc
1   package fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.qualitativevalue;
2   
3   /*-
4    * #%L
5    * Dali :: UI
6    * %%
7    * Copyright (C) 2017 Ifremer
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU Affero General Public License as published by
11   * the Free Software Foundation, either version 3 of the License, or
12   * (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 Affero General Public License
20   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21   * #L%
22   */
23  
24  import fr.ifremer.dali.dto.referential.pmfm.QualitativeValueDTO;
25  import fr.ifremer.dali.ui.swing.util.AbstractDaliUIHandler;
26  import org.nuiton.jaxx.application.swing.util.Cancelable;
27  
28  import java.util.ArrayList;
29  
30  /**
31   * @author peck7 on 24/10/2017.
32   */
33  public class SelectQualitativeValueUIHandler extends AbstractDaliUIHandler<SelectQualitativeValueUIModel, SelectQualitativeValueUI> implements Cancelable {
34  
35      public static final String QUALITATIVE_VALUES_LIST = "qualitativeValuesList";
36      public static final String QUALITATIVE_VALUES_DOUBLE_LIST = "qualitativeValuesDoubleList";
37  
38      @Override
39      public void beforeInit(SelectQualitativeValueUI ui) {
40          super.beforeInit(ui);
41          ui.setContextValue(new SelectQualitativeValueUIModel());
42      }
43  
44      @Override
45      public void afterInit(SelectQualitativeValueUI ui) {
46  
47          initUI(ui);
48  
49          ui.getAssociatedQualitativeValuesList().setCellRenderer(newListCellRender(QualitativeValueDTO.class));
50          initBeanList(ui.getAssociatedQualitativeValuesDoubleList(), null,null);
51  
52          getModel().addPropertyChangeListener(SelectQualitativeValueUIModel.PROPERTY_AVAILABLE_LIST,
53                  evt -> getUI().getAssociatedQualitativeValuesDoubleList().getModel().setUniverse(getModel().getAvailableList()));
54  
55          getModel().addPropertyChangeListener(SelectQualitativeValueUIModel.PROPERTY_SELECTED_LIST,
56                  evt -> {
57              if (getModel().getSelectedList() != null) {
58                  getUI().getAssociatedQualitativeValuesDoubleList().getModel().setSelected(getModel().getSelectedList());
59                  getUI().getAssociatedQualitativeValuesList().setListData(getModel().getSelectedList().toArray(new QualitativeValueDTO[0]));
60              }
61                  });
62  
63      }
64  
65      public void setEnabled(boolean enabled) {
66          if (enabled)
67              getUI().getAssociatedQualitativeValuesPanelLayout().setSelected(QUALITATIVE_VALUES_DOUBLE_LIST);
68          else
69              getUI().getAssociatedQualitativeValuesPanelLayout().setSelected(QUALITATIVE_VALUES_LIST);
70  
71          getUI().getActionValidate().setEnabled(enabled);
72      }
73  
74      public void valid() {
75          getModel().setSelectedList(new ArrayList<>(getUI().getAssociatedQualitativeValuesDoubleList().getModel().getSelected()));
76          getModel().setValid(true);
77          closeDialog();
78      }
79  
80      @Override
81      public void cancel() {
82          getModel().setSelectedList(null);
83          getModel().setValid(false);
84          closeDialog();
85      }
86  }