View Javadoc
1   package fr.ifremer.dali.ui.swing.content.manage.referential.location.menu;
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.decorator.DecoratorService;
27  import fr.ifremer.dali.dto.configuration.filter.FilterDTO;
28  import fr.ifremer.dali.dto.referential.GroupingTypeDTO;
29  import fr.ifremer.dali.service.StatusFilter;
30  import fr.ifremer.dali.ui.swing.content.manage.filter.element.menu.ApplyFilterUI;
31  import fr.ifremer.dali.ui.swing.content.manage.referential.menu.ReferentialMenuUIHandler;
32  import fr.ifremer.dali.ui.swing.util.DaliUIs;
33  import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox;
34  
35  import java.util.ArrayList;
36  import java.util.List;
37  
38  /**
39   * Controlleur du menu pour la gestion des lieux
40   */
41  public class LocationMenuUIHandler extends ReferentialMenuUIHandler<LocationMenuUIModel, LocationMenuUI> {
42  
43      /** {@inheritDoc} */
44      @Override
45      public void beforeInit(final LocationMenuUI ui) {
46          super.beforeInit(ui);
47  
48          // create model and register to the JAXX context
49          final LocationMenuUIModel model = new LocationMenuUIModel();
50          ui.setContextValue(model);
51      }
52  
53      /** {@inheritDoc} */
54      @Override
55      public void afterInit(final LocationMenuUI ui) {
56          super.afterInit(ui);
57  
58          // Initialiser les combobox
59          initComboBox();
60  
61          getUI().getGroupingTypeCombo().addPropertyChangeListener(BeanFilterableComboBox.PROPERTY_SELECTED_ITEM, evt -> {
62  
63              GroupingTypeDTO item = (GroupingTypeDTO) evt.getNewValue();
64              if (item != null) {
65                  getUI().getGroupingCombo().setData(item.getGrouping());
66              }
67              getUI().getGroupingCombo().setSelectedItem(null);
68          });
69  
70      }
71  
72      /** {@inheritDoc} */
73      @Override
74      public void enableSearch(boolean enabled) {
75          getUI().getGroupingTypeCombo().setEnabled(enabled);
76          getUI().getGroupingCombo().setEnabled(enabled);
77          getUI().getProgramCombo().setEnabled(enabled);
78          getUI().getStatusCombo().setEnabled(enabled);
79          getUI().getLabelEditor().setEnabled(enabled);
80          getUI().getNameEditor().setEnabled(enabled);
81          getUI().getClearButton().setEnabled(enabled);
82          getUI().getSearchButton().setEnabled(enabled);
83          getApplyFilterUI().setEnabled(enabled);
84      }
85  
86      /** {@inheritDoc} */
87      @Override
88      public List<FilterDTO> getFilters() {
89          return getContext().getContextService().getAllLocationFilter();
90      }
91  
92      /** {@inheritDoc} */
93      @Override
94      public ApplyFilterUI getApplyFilterUI() {
95          return getUI().getApplyFilterUI();
96      }
97  
98      /**
99       * Initialisation des combobox
100      */
101     private void initComboBox() {
102 
103         initBeanFilterableComboBox(
104                 getUI().getGroupingTypeCombo(),
105                 getContext().getReferentialService().getGroupingTypes(),
106                 null);
107 
108         initBeanFilterableComboBox(
109                 getUI().getGroupingCombo(),
110                 new ArrayList<>(),
111                 null);
112 
113         initBeanFilterableComboBox(
114                 getUI().getProgramCombo(),
115                 getContext().getProgramStrategyService().getWritablePrograms(),
116                 null,
117                 DecoratorService.CODE);
118 
119         initBeanFilterableComboBox(getUI().getStatusCombo(),
120             getContext().getReferentialService().getStatus(StatusFilter.ALL),
121             null);
122 
123         // Dimension forcee sur la combobox
124         DaliUIs.forceComponentSize(getUI().getGroupingTypeCombo());
125         DaliUIs.forceComponentSize(getUI().getGroupingCombo());
126         DaliUIs.forceComponentSize(getUI().getProgramCombo());
127         DaliUIs.forceComponentSize(getUI().getStatusCombo());
128 
129     }
130 
131 }