1 package fr.ifremer.dali.ui.swing.content.home;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 import com.google.common.collect.ImmutableList;
27 import fr.ifremer.dali.dto.DaliBeanFactory;
28 import fr.ifremer.dali.dto.data.survey.SurveyDTO;
29 import fr.ifremer.dali.dto.data.survey.SurveyFilterDTO;
30 import fr.ifremer.dali.ui.swing.action.AbstractCheckModelAction;
31 import fr.ifremer.quadrige3.ui.swing.model.AbstractBeanUIModel;
32 import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler;
33
34 import java.util.List;
35
36 import static org.nuiton.i18n.I18n.t;
37
38
39
40
41 public class SearchAction extends AbstractCheckModelAction<HomeUIModel, HomeUI, HomeUIHandler> {
42
43 private List<SurveyDTO> surveys;
44 private boolean controlAfterSelect = false;
45
46
47
48
49
50
51 public SearchAction(final HomeUIHandler handler) {
52 super(handler, false);
53 setActionDescription(t("dali.action.search.tip"));
54 }
55
56 public void setControlAfterSelect(boolean controlAfterSelect) {
57 this.controlAfterSelect = controlAfterSelect;
58 }
59
60
61 @Override
62 protected Class<SaveAction> getSaveActionClass() {
63 return SaveAction.class;
64 }
65
66
67 @Override
68 protected AbstractApplicationUIHandler<?, ?> getSaveHandler() {
69 return getHandler();
70 }
71
72
73 @Override
74 protected boolean isModelModify() {
75 return getModel().isModify();
76 }
77
78
79 @Override
80 protected void setModelModify(boolean modelModify) {
81 getModel().setModify(modelModify);
82 }
83
84
85 @Override
86 protected boolean isModelValid() {
87 return getModel().isValid();
88 }
89
90
91 @Override
92 public void doAction() throws Exception {
93
94
95 getUI().getSurveysTableUI().getHandler().beforeLoad();
96
97
98 final SurveyFilterDTO surveyFilter = DaliBeanFactory.newSurveyFilterDTO();
99
100
101 surveyFilter.setCampaignId(getModel().getCampaignId());
102 surveyFilter.setProgramCode(getModel().getProgramCode());
103 surveyFilter.setLocationId(getModel().getLocationId());
104 surveyFilter.setDate1(getModel().getStartDate());
105 surveyFilter.setDate2(getModel().getEndDate());
106 surveyFilter.setSearchDateId(getModel().getSearchDateId());
107 surveyFilter.setName(getModel().getName());
108 surveyFilter.setComment(getModel().getComment());
109 surveyFilter.setStateId(getModel().getStateId());
110 surveyFilter.setShareId(getModel().getSynchronizationStatusId());
111
112
113 getContext().setSurveyFilter(surveyFilter);
114
115
116 surveys = getContext().getObservationService().getSurveys(surveyFilter);
117 }
118
119 @Override
120 protected List<AbstractBeanUIModel> getOtherModelsToModify() {
121 return ImmutableList.of(
122 getModel().getSurveysTableUIModel(),
123 getModel().getOperationsTableUIModel()
124 );
125 }
126
127
128 @Override
129 public void postSuccessAction() {
130 super.postSuccessAction();
131
132 getUI().getSurveysTableUI().getSurveysTable().clearSelection();
133
134 getModel().getSurveysTableUIModel().setBeans(surveys);
135
136
137 getUI().getSurveysTableUI().getHandler().afterLoad();
138
139 if (getContext().getSelectedSurveyId() != null) {
140
141
142 getUI().getSurveysTableUI().getHandler().selectRowById(getContext().getSelectedSurveyId());
143
144 if (controlAfterSelect) {
145 getContext().getRulesControlService().controlSurvey(getModel().getSelectedSurvey(), false, false);
146 getUI().getSurveysTableUI().getHandler().ensureColumnsWithErrorAreVisible(getModel().getSelectedSurvey());
147 }
148 }
149
150 }
151
152 @Override
153 protected void releaseAction() {
154 super.releaseAction();
155 surveys = null;
156 controlAfterSelect = false;
157 }
158 }