1 package fr.ifremer.reefdb.ui.swing.content.home.operation;
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
27 import fr.ifremer.quadrige3.ui.swing.ApplicationUI;
28 import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
29 import fr.ifremer.quadrige3.ui.swing.plaf.WaitBlockingLayerUI;
30 import fr.ifremer.quadrige3.ui.swing.table.SwingTable;
31 import fr.ifremer.reefdb.ui.swing.ReefDbHelpBroker;
32 import fr.ifremer.reefdb.ui.swing.ReefDbUIContext;
33 import fr.ifremer.reefdb.ui.swing.util.ReefDbUI;
34 import java.awt.BorderLayout;
35 import java.awt.Component;
36 import java.awt.Container;
37 import java.awt.FlowLayout;
38 import java.awt.LayoutManager;
39 import java.awt.event.ActionEvent;
40 import java.awt.event.ActionListener;
41 import java.awt.event.MouseEvent;
42 import java.awt.event.MouseListener;
43 import java.util.ArrayList;
44 import java.util.HashMap;
45 import java.util.List;
46 import java.util.Map;
47 import java.util.TreeMap;
48 import javax.swing.BorderFactory;
49 import javax.swing.JButton;
50 import javax.swing.JComboBox;
51 import javax.swing.JMenuItem;
52 import javax.swing.JPanel;
53 import javax.swing.JPopupMenu;
54 import javax.swing.JScrollPane;
55 import jaxx.runtime.JAXXBinding;
56 import jaxx.runtime.JAXXContext;
57 import jaxx.runtime.JAXXObject;
58 import jaxx.runtime.JAXXObjectDescriptor;
59 import jaxx.runtime.JAXXUtil;
60 import jaxx.runtime.SwingUtil;
61 import jaxx.runtime.binding.DefaultJAXXBinding;
62 import jaxx.runtime.context.DefaultJAXXContext;
63 import jaxx.runtime.swing.help.JAXXHelpUI;
64 import org.apache.commons.logging.Log;
65 import org.apache.commons.logging.LogFactory;
66 import static org.nuiton.i18n.I18n.t;
67
68 public class OperationsTableUI extends JPanel implements JAXXHelpUI<ReefDbHelpBroker>, ReefDbUI<OperationsTableUIModel, OperationsTableUIHandler>, JAXXObject {
69
70
71
72
73
74 public static final String BINDING_EDIT_MESURE_PRELEVEMENT_ENABLED = "editMesurePrelevement.enabled";
75 public static final String BINDING_NEXT_BUTTON_ENABLED = "nextButton.enabled";
76 public static final String BINDING_PRELEVEMENTS_PANEL_DUPLIQUER_BOUTON_ENABLED = "prelevementsPanelDupliquerBouton.enabled";
77 public static final String BINDING_PRELEVEMENTS_PANEL_EDITER_COMBOBOX_ENABLED = "prelevementsPanelEditerCombobox.enabled";
78 public static final String BINDING_PRELEVEMENTS_PANEL_NOUVEAU_BOUTON_ENABLED = "prelevementsPanelNouveauBouton.enabled";
79 public static final String BINDING_PRELEVEMENTS_PANEL_SUPPRIMER_BOUTON_ENABLED = "prelevementsPanelSupprimerBouton.enabled";
80 public static final String BINDING_TABLE_BLOCK_LAYER_BLOCK = "tableBlockLayer.block";
81
82
83
84
85
86 private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAALVXzW8bRRSfuHHapJTShn7QJsVJ29SBsqFUtEKltPmq6uKkUW1EIYcw9k7ibdc7293ZZI0VxJ/AnwB3LkjcOCEOnJHoBXHijhAHTkiI92bXu157P9waImW1npn3m/d+783vzX79O8nbFpl5RF1XsRxDaE2m3Ft8+PB+7RGrixVm1y3NFNwi3t9IjuQ2yWE1GLcFOb9ZRvMF33xhmTdNbjCjy/pGmUzYoqUzu8GYEGQ6alG37YVKMH3DNR2rgxo4FYf65Z9/5L5QP/8qR4hrgneTEEohyyqMZLRMcpoqyHHYaZcu6NTYATcszdgBf4/g2LJObXudNtkT8hk5WCZjJrUATJDZwUOWGNLeNQU5ZlpMZ7usCYvtDWowXZDlbUvRti0YsxSLsW21pjiaYu+BI0qdGwKWKg0O0XCTWVRo3FDud97sKq3p7IOSaco9xgTJN7mKqHf/A9Q1hAqhx2oWf8wsQV5PwX4Av1dqd8FuSa4OzY8KRF3Sef1xmbYQ51oXzhOHqpa2w66GUKZOt5UPqSakDYxIs+5gz2AEG12UVuoW13UkVpBTmELXx7oXzqDteAAxIb3a4KYD6TkZMZGDa8xwwg1PMFUTa8x2rO5tYTxiiDYlwZpodDqwfTFgWtIriJIevnRMqeC7NECYEwHa6b5KWnKEgNxBQUejwLlozIcueKNv4u/z+JgJ5s714a5zZ5dRZ4k7AC/IZATd2xRtLwQQhT6IFcfUtScOszwQXFeM2rzaZ7MKTDMLjlaN17jbS7EcX+JuFOVUF4pnn7jhub6lXlrtRIvpPouNBhc82aCfhwqUkgWKkexWJzVXYlIzYTBXhIRLy2smiN7ZiOiBnCqhnIZ6N7JJ8pYDw1A8m/0K/ACmPO093aO9CChn/zk5+fS7X7+90xHcKdj7ROzSrn4BQmhaWPpCw62PemrrCE1fWKPmjU0ybgNLda+ZTMU4VvGnwTnY7xiaK2iu3KV2AyDyB3/5/oeTn/x0gOTukAmdU/UOxfUlMi4akNAG11XXvHVbevTC3iF4vgT/ORQ0bqkoROX2knzzDFtK3WJUsKomdKZ6M0VRnPWlTqqmTZtQ0sZOoJmKwNWz8/P7kKgtE3NYbZnA/3Tbk8QPSsrqSqlaur++tbG4vlreqn60sbrvAt9TMXwHQdfGf/xrsvLN7Q7nI8DBK4nLQ97zH5MxzQAXmWxzfgeLbWuHTZs5Kg87VVzvInHNy/SV8ZZ8LvdxPApcAKVATwl7DjlAVWi4owLqGOB8Puu82QT+DLYnyGHBuV7VzKpccTGdcbAA1kG2DzIDBRKgz7Rl+1M0u+JYu6yF5xSnivPANPpYkhTi2/skU+yywsuD1m5RE9yqS48WZahw8NtS8GCQBd56c0odKd3voWW0zs1WwMu0H7W3QlE7UIpOa9jZoxydTVrdw8yiz8wOE16xMPUB37OL84qtfQr8FG7eLFwpzM0VnonATKnPojAX3ljcdoMaqg7NEBLr0dVReXkRKSaI++VCupTHzHcLNx7YkKaLg9AUS0VWB8ti4kBvUeBVA1zb1WxNXhfy21S3WVAmx6PHB1fHuZXUEp+3ti+1ESUo6zVGkWoZdGqJZ0SjpB91tFaa4V69p+CtZzPHw5GlBzGV9LyczUQ586pvGLaKA4Rr4i69PF0e1DCJofRL0LP2gzE4akyEcb0crenObDSGhEXhGb7dnkk6xJq92jRFC87x8ErXc5nLin3sfzlQPnFX0/MKaE7MGcpvNaCHo+h17jZNqvmr/X4iAXHV7H5vHq4/x569XWmuS27BWmdd+YIkzdwsGI6uxyYk/lNsgCMapdGQscRrqjc3HEtzWXcYt4+Us12kyNLMYKLru2CQdlvDr2n4jguuSmW4MoNTReyER2r+t/Yy1zncjN8ImjJ4s8yNbQ3Wee8wH/kwTzg4vZ/9WS6OgCzotAVnCj6Z31WpoIWaZqCD7/XBj+BzIhMRh3/Gx9N4hNmhES4OENUE1bUdA4v0YQrSpYF8+S0F4bWhES4PjfD20IxeH9qHdwbIyahW9z6mEzCmBvLi76HzmYYwWD7TEBaGRrgyNMLVoREGq6k0BKyIfwGo4bk18xYAAA==";
87 private static final Log log = LogFactory.getLog(OperationsTableUI.class);
88 private static final long serialVersionUID = 1L;
89
90
91
92
93
94 protected List<Object> $activeBindings = new ArrayList<Object>();
95 protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
96 protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
97 protected Map<String, Object> $objectMap = new HashMap<String, Object>();
98 protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
99 private boolean allComponentsCreated;
100 protected final JAXXContext delegateContext = new DefaultJAXXContext();
101
102
103
104
105
106 protected ReefDbHelpBroker broker;
107 protected JMenuItem editMesurePrelevement;
108 protected final OperationsTableUIHandler handler = createHandler();
109 protected JScrollPane homePrelevementsScrollPane;
110 protected OperationsTableUIModel model;
111 protected JButton nextButton;
112 protected SwingTable operationTable;
113 protected JButton prelevementEditerBouton;
114 protected JButton prelevementEditerMesuresBouton;
115 protected JButton prelevementEditerPhotosBouton;
116 protected OperationsTableUI prelevementsPanel = this;
117 protected JPanel prelevementsPanelButtons;
118 protected JButton prelevementsPanelDupliquerBouton;
119 protected JComboBox prelevementsPanelEditerCombobox;
120 protected JButton prelevementsPanelNouveauBouton;
121 protected JButton prelevementsPanelSupprimerBouton;
122 protected WaitBlockingLayerUI tableBlockLayer;
123 protected JPopupMenu tablePopup;
124
125
126
127
128
129 private JPanel $JPanel0;
130 private JPanel $JPanel1;
131
132
133
134
135
136 public OperationsTableUI(ApplicationUI parentUI) {
137 ApplicationUIUtil.setParentUI(this, parentUI);
138 $initialize();
139 }
140
141 public OperationsTableUI(LayoutManager param0, boolean param1) {
142 super(param0 ,param1);
143 $initialize();
144 }
145
146 public OperationsTableUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
147 super(param1 ,param2);
148 JAXXUtil.initContext(this, parentContext);
149 $initialize();
150 }
151
152 public OperationsTableUI(boolean param0) {
153 super(param0);
154 $initialize();
155 }
156
157 public OperationsTableUI(JAXXContext parentContext, boolean param1) {
158 super(param1);
159 JAXXUtil.initContext(this, parentContext);
160 $initialize();
161 }
162
163 public OperationsTableUI() {
164 $initialize();
165 }
166
167 public OperationsTableUI(JAXXContext parentContext) {
168 JAXXUtil.initContext(this, parentContext);
169 $initialize();
170 }
171
172 public OperationsTableUI(LayoutManager param0) {
173 super(param0);
174 $initialize();
175 }
176
177 public OperationsTableUI(JAXXContext parentContext, LayoutManager param1) {
178 super(param1);
179 JAXXUtil.initContext(this, parentContext);
180 $initialize();
181 }
182
183
184
185
186
187 public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
188 return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
189 }
190
191
192
193
194
195 @Override
196 public void applyDataBinding(String $binding) {
197 if (allComponentsCreated && $bindings.containsKey($binding)) {
198 getDataBinding($binding).applyDataBinding();
199 }
200 processDataBinding($binding);
201 }
202
203 @Override
204 public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
205 super.firePropertyChange(propertyName, oldValue, newValue);
206 }
207
208 @Override
209 public Map<String, Object> get$objectMap() {
210 return $objectMap;
211 }
212
213 @Override
214 public JAXXBinding getDataBinding(String bindingId) {
215 return $bindings.get(bindingId);
216 }
217
218 @Override
219 public JAXXBinding[] getDataBindings() {
220 return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
221 }
222
223 @Override
224 public Object getObjectById(String id) {
225 return $objectMap.get(id);
226 }
227
228 @Override
229 public void processDataBinding(String $binding, boolean $force) {
230 if (!$force && $activeBindings.contains($binding)) {
231 return;
232 }
233 $activeBindings.add($binding);
234 try {
235 if (allComponentsCreated && $bindings.containsKey($binding)) {
236 getDataBinding($binding).processDataBinding();
237 }
238 } finally {
239 $activeBindings.remove($binding);
240 }
241 }
242
243 @Override
244 public void processDataBinding(String $binding) {
245 processDataBinding($binding, false);
246 }
247
248 @Override
249 public void registerDataBinding(JAXXBinding binding) {
250 $bindings.put(binding.getId(), binding);
251 }
252
253 @Override
254 public void removeDataBinding(String $binding) {
255 if (allComponentsCreated && $bindings.containsKey($binding)) {
256 getDataBinding($binding).removeDataBinding();
257 }
258 }
259
260
261
262
263
264 @Override
265 public <T> T getContextValue(Class<T> clazz) {
266 return delegateContext.getContextValue(clazz, null);
267 }
268
269 @Override
270 public <T> T getContextValue(Class<T> clazz, String name) {
271 return delegateContext.getContextValue(clazz, name);
272 }
273
274 @Override
275 public JAXXContext getDelegateContext() {
276 return delegateContext;
277 }
278
279 @Override
280 public <O extends Container> O getParentContainer(Class<O> clazz) {
281 return SwingUtil.getParentContainer(this, clazz);
282 }
283
284 @Override
285 public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
286 return SwingUtil.getParentContainer(source, clazz);
287 }
288
289 @Override
290 public <T> void removeContextValue(Class<T> clazz) {
291 delegateContext.removeContextValue(clazz, null);
292 }
293
294 @Override
295 public <T> void removeContextValue(Class<T> clazz, String name) {
296 delegateContext.removeContextValue(clazz, name);
297 }
298
299 @Override
300 public <T> void setContextValue(T o) {
301 delegateContext.setContextValue(o, null);
302 }
303
304 @Override
305 public <T> void setContextValue(T o, String name) {
306 delegateContext.setContextValue(o, name);
307 }
308
309
310
311
312
313 public void doActionPerformed__on__nextButton(ActionEvent event) {
314 if (log.isDebugEnabled()) {
315 log.debug(event);
316 }
317 handler.onNext();
318 }
319
320 public void doActionPerformed__on__prelevementsPanelNouveauBouton(ActionEvent event) {
321 if (log.isDebugEnabled()) {
322 log.debug(event);
323 }
324 handler.addSamplingOperations();
325 }
326
327 public void doActionPerformed__on__prelevementsPanelSupprimerBouton(ActionEvent event) {
328 if (log.isDebugEnabled()) {
329 log.debug(event);
330 }
331 handler.removeSamplingOperations();
332 }
333
334 public void doMouseClicked__on__operationTable(MouseEvent event) {
335 if (log.isDebugEnabled()) {
336 log.debug(event);
337 }
338 handler.autoSelectRowInTable(event, tablePopup);
339 }
340
341
342
343
344
345 public ReefDbHelpBroker getBroker() {
346 return broker;
347 }
348
349 public JMenuItem getEditMesurePrelevement() {
350 return editMesurePrelevement;
351 }
352
353 public OperationsTableUIHandler getHandler() {
354 return handler;
355 }
356
357 public JScrollPane getHomePrelevementsScrollPane() {
358 return homePrelevementsScrollPane;
359 }
360
361 public OperationsTableUIModel getModel() {
362 return model;
363 }
364
365 public JButton getNextButton() {
366 return nextButton;
367 }
368
369 public SwingTable getOperationTable() {
370 return operationTable;
371 }
372
373 public JButton getPrelevementEditerBouton() {
374 return prelevementEditerBouton;
375 }
376
377 public JButton getPrelevementEditerMesuresBouton() {
378 return prelevementEditerMesuresBouton;
379 }
380
381 public JButton getPrelevementEditerPhotosBouton() {
382 return prelevementEditerPhotosBouton;
383 }
384
385 public JPanel getPrelevementsPanelButtons() {
386 return prelevementsPanelButtons;
387 }
388
389 public JButton getPrelevementsPanelDupliquerBouton() {
390 return prelevementsPanelDupliquerBouton;
391 }
392
393 public JComboBox getPrelevementsPanelEditerCombobox() {
394 return prelevementsPanelEditerCombobox;
395 }
396
397 public JButton getPrelevementsPanelNouveauBouton() {
398 return prelevementsPanelNouveauBouton;
399 }
400
401 public JButton getPrelevementsPanelSupprimerBouton() {
402 return prelevementsPanelSupprimerBouton;
403 }
404
405 public WaitBlockingLayerUI getTableBlockLayer() {
406 return tableBlockLayer;
407 }
408
409 public JPopupMenu getTablePopup() {
410 return tablePopup;
411 }
412
413
414
415
416
417 @Override
418 public void registerHelpId(ReefDbHelpBroker broker, Component component, String helpId) {
419 broker.installUI(component, helpId);
420 }
421
422 @Override
423 public void showHelp(String helpId) {
424 getBroker().showHelp(this, helpId);
425 }
426
427
428
429
430
431 protected JPanel get$JPanel0() {
432 return $JPanel0;
433 }
434
435 protected JPanel get$JPanel1() {
436 return $JPanel1;
437 }
438
439
440
441
442
443 protected void addChildrenToHomePrelevementsScrollPane() {
444 if (!allComponentsCreated) {
445 return;
446 }
447 homePrelevementsScrollPane.getViewport().add(operationTable);
448 }
449
450 protected void addChildrenToPrelevementsPanel() {
451 if (!allComponentsCreated) {
452 return;
453 }
454 add(SwingUtil.boxComponentWithJxLayer(homePrelevementsScrollPane));
455 add(prelevementsPanelButtons, BorderLayout.PAGE_END);
456 }
457
458 protected void addChildrenToPrelevementsPanelButtons() {
459 if (!allComponentsCreated) {
460 return;
461 }
462 prelevementsPanelButtons.add($JPanel0, BorderLayout.LINE_START);
463 prelevementsPanelButtons.add($JPanel1, BorderLayout.LINE_END);
464 }
465
466 protected void addChildrenToTablePopup() {
467 if (!allComponentsCreated) {
468 return;
469 }
470 tablePopup.add(editMesurePrelevement);
471 }
472
473 protected void createBroker() {
474 $objectMap.put("broker", broker = new ReefDbHelpBroker("reefdb.home.help"));
475 }
476
477 protected void createEditMesurePrelevement() {
478 $objectMap.put("editMesurePrelevement", editMesurePrelevement = new JMenuItem());
479
480 editMesurePrelevement.setName("editMesurePrelevement");
481 editMesurePrelevement.setText(t("reefdb.home.samplingOperation.menu.edit.measurement"));
482 editMesurePrelevement.setToolTipText(t("reefdb.home.samplingOperation.menu.edit.measurement.tip"));
483 editMesurePrelevement.putClientProperty("help", "reefdb.main.menu.action.home.help");
484 editMesurePrelevement.putClientProperty("applicationAction", EditOperationMeasurementsAction.class);
485 }
486
487 protected OperationsTableUIHandler createHandler() {
488 return new OperationsTableUIHandler();
489 }
490
491 protected void createHomePrelevementsScrollPane() {
492 $objectMap.put("homePrelevementsScrollPane", homePrelevementsScrollPane = new JScrollPane());
493
494 homePrelevementsScrollPane.setName("homePrelevementsScrollPane");
495 }
496
497 protected void createModel() {
498 $objectMap.put("model", model = getContextValue(OperationsTableUIModel.class));
499 }
500
501 protected void createNextButton() {
502 $objectMap.put("nextButton", nextButton = new JButton());
503
504 nextButton.setName("nextButton");
505 nextButton.setText(t("reefdb.common.next"));
506 nextButton.setToolTipText(t("reefdb.home.samplingOperation.next.tip"));
507 nextButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__nextButton"));
508 nextButton.putClientProperty("help", "reefdb.main.menu.action.home.help");
509 }
510
511 protected void createOperationTable() {
512 $objectMap.put("operationTable", operationTable = new SwingTable());
513
514 operationTable.setName("operationTable");
515 operationTable.addMouseListener(JAXXUtil.getEventListener(MouseListener.class, "mouseClicked", this, "doMouseClicked__on__operationTable"));
516 }
517
518 protected void createPrelevementEditerBouton() {
519 $objectMap.put("prelevementEditerBouton", prelevementEditerBouton = new JButton());
520
521 prelevementEditerBouton.setName("prelevementEditerBouton");
522 prelevementEditerBouton.setVisible(false);
523 prelevementEditerBouton.setText(t("reefdb.common.edit"));
524 }
525
526 protected void createPrelevementEditerMesuresBouton() {
527 $objectMap.put("prelevementEditerMesuresBouton", prelevementEditerMesuresBouton = new JButton());
528
529 prelevementEditerMesuresBouton.setName("prelevementEditerMesuresBouton");
530 prelevementEditerMesuresBouton.setVisible(false);
531 prelevementEditerMesuresBouton.setText(t("reefdb.home.samplingOperation.edit.measurement"));
532 prelevementEditerMesuresBouton.setToolTipText(t("reefdb.home.samplingOperation.edit.measurement.tip"));
533 prelevementEditerMesuresBouton.putClientProperty("applicationAction", EditOperationMeasurementsAction.class);
534 }
535
536 protected void createPrelevementEditerPhotosBouton() {
537 $objectMap.put("prelevementEditerPhotosBouton", prelevementEditerPhotosBouton = new JButton());
538
539 prelevementEditerPhotosBouton.setName("prelevementEditerPhotosBouton");
540 prelevementEditerPhotosBouton.setVisible(false);
541 prelevementEditerPhotosBouton.setText(t("reefdb.home.samplingOperation.edit.photo"));
542 prelevementEditerPhotosBouton.setToolTipText(t("reefdb.home.samplingOperation.edit.photo.tip"));
543 prelevementEditerPhotosBouton.putClientProperty("applicationAction", EditOperationPhotosAction.class);
544 }
545
546 protected void createPrelevementsPanelButtons() {
547 $objectMap.put("prelevementsPanelButtons", prelevementsPanelButtons = new JPanel());
548
549 prelevementsPanelButtons.setName("prelevementsPanelButtons");
550 prelevementsPanelButtons.setLayout(new BorderLayout());
551 }
552
553 protected void createPrelevementsPanelDupliquerBouton() {
554 $objectMap.put("prelevementsPanelDupliquerBouton", prelevementsPanelDupliquerBouton = new JButton());
555
556 prelevementsPanelDupliquerBouton.setName("prelevementsPanelDupliquerBouton");
557 prelevementsPanelDupliquerBouton.setText(t("reefdb.action.duplicate.label"));
558 prelevementsPanelDupliquerBouton.setToolTipText(t("reefdb.action.duplicate.tip"));
559 prelevementsPanelDupliquerBouton.putClientProperty("applicationAction", DuplicateOperationAction.class);
560 }
561
562 protected void createPrelevementsPanelEditerCombobox() {
563 $objectMap.put("prelevementsPanelEditerCombobox", prelevementsPanelEditerCombobox = new JComboBox());
564
565 prelevementsPanelEditerCombobox.setName("prelevementsPanelEditerCombobox");
566 }
567
568 protected void createPrelevementsPanelNouveauBouton() {
569 $objectMap.put("prelevementsPanelNouveauBouton", prelevementsPanelNouveauBouton = new JButton());
570
571 prelevementsPanelNouveauBouton.setName("prelevementsPanelNouveauBouton");
572 prelevementsPanelNouveauBouton.setText(t("reefdb.common.new"));
573 prelevementsPanelNouveauBouton.setToolTipText(t("reefdb.home.samplingOperation.new.tip"));
574 prelevementsPanelNouveauBouton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__prelevementsPanelNouveauBouton"));
575 }
576
577 protected void createPrelevementsPanelSupprimerBouton() {
578 $objectMap.put("prelevementsPanelSupprimerBouton", prelevementsPanelSupprimerBouton = new JButton());
579
580 prelevementsPanelSupprimerBouton.setName("prelevementsPanelSupprimerBouton");
581 prelevementsPanelSupprimerBouton.setText(t("reefdb.common.delete"));
582 prelevementsPanelSupprimerBouton.setToolTipText(t("reefdb.common.delete"));
583 prelevementsPanelSupprimerBouton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__prelevementsPanelSupprimerBouton"));
584 }
585
586 protected void createTableBlockLayer() {
587 $objectMap.put("tableBlockLayer", tableBlockLayer = new WaitBlockingLayerUI());
588 }
589
590 protected void createTablePopup() {
591 $objectMap.put("tablePopup", tablePopup = new JPopupMenu());
592
593 tablePopup.setName("tablePopup");
594 }
595
596
597
598
599
600 private void $completeSetup() {
601 allComponentsCreated = true;
602 if (log.isDebugEnabled()) {
603 log.debug(this);
604 }
605 addChildrenToPrelevementsPanel();
606 addChildrenToHomePrelevementsScrollPane();
607 addChildrenToTablePopup();
608 addChildrenToPrelevementsPanelButtons();
609
610 $JPanel0.add(prelevementsPanelNouveauBouton);
611 $JPanel0.add(prelevementsPanelDupliquerBouton);
612 $JPanel0.add(prelevementsPanelEditerCombobox);
613 $JPanel0.add(prelevementEditerBouton);
614 $JPanel0.add(prelevementEditerMesuresBouton);
615 $JPanel0.add(prelevementEditerPhotosBouton);
616 $JPanel0.add(prelevementsPanelSupprimerBouton);
617
618 $JPanel1.add(nextButton);
619
620
621 JAXXUtil.applyDataBinding(this, $bindings.keySet());
622
623
624 prelevementsPanelNouveauBouton.setAlignmentX(Component.CENTER_ALIGNMENT);
625 prelevementsPanelDupliquerBouton.setAlignmentX(Component.CENTER_ALIGNMENT);
626 prelevementsPanelEditerCombobox.setAlignmentX(Component.CENTER_ALIGNMENT);
627 prelevementsPanelSupprimerBouton.setAlignmentX(Component.CENTER_ALIGNMENT);
628 nextButton.setAlignmentX(Component.CENTER_ALIGNMENT);
629 setBorder(BorderFactory.createTitledBorder(t("reefdb.home.samplingOperation.title")));
630 tableBlockLayer.setBlockingColor(handler.getConfig().getColorBlockingLayer());
631 editMesurePrelevement.setIcon(SwingUtil.createActionIcon("edit"));
632 prelevementsPanelNouveauBouton.setIcon(SwingUtil.createActionIcon("add"));
633 prelevementsPanelDupliquerBouton.setIcon(SwingUtil.createActionIcon("copy"));
634 prelevementsPanelEditerCombobox.setModel(handler.newActionComboBoxModel(prelevementEditerBouton, prelevementEditerMesuresBouton, prelevementEditerPhotosBouton));
635 prelevementEditerBouton.setIcon(SwingUtil.createActionIcon("edit"));
636 prelevementEditerMesuresBouton.setIcon(SwingUtil.createActionIcon("edit"));
637 prelevementEditerPhotosBouton.setIcon(SwingUtil.createActionIcon("edit"));
638 prelevementsPanelSupprimerBouton.setIcon(SwingUtil.createActionIcon("delete"));
639 nextButton.setIcon(SwingUtil.createActionIcon("next"));
640
641
642 ReefDbHelpBroker _broker = getBroker();
643 registerHelpId(_broker, editMesurePrelevement, "reefdb.main.menu.action.home.help");
644 registerHelpId(_broker, nextButton, "reefdb.main.menu.action.home.help");
645 _broker.prepareUI(this);
646 }
647
648 private void $initialize() {
649 if (allComponentsCreated) {
650 return;
651 }
652 if (log.isDebugEnabled()) {
653 log.debug(this);
654 }
655 handler.beforeInit(this);
656 $objectMap.put("prelevementsPanel", prelevementsPanel);
657 createModel();
658 createBroker();
659 createTableBlockLayer();
660 createHomePrelevementsScrollPane();
661 createTablePopup();
662 createEditMesurePrelevement();
663 createOperationTable();
664 createPrelevementsPanelButtons();
665
666 $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
667
668 $JPanel0.setName("$JPanel0");
669 $JPanel0.setLayout(new FlowLayout());
670 createPrelevementsPanelNouveauBouton();
671 createPrelevementsPanelDupliquerBouton();
672 createPrelevementsPanelEditerCombobox();
673 createPrelevementEditerBouton();
674 createPrelevementEditerMesuresBouton();
675 createPrelevementEditerPhotosBouton();
676 createPrelevementsPanelSupprimerBouton();
677
678 $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
679
680 $JPanel1.setName("$JPanel1");
681 $JPanel1.setLayout(new FlowLayout());
682 createNextButton();
683
684 setName("prelevementsPanel");
685 setLayout(new BorderLayout());
686 prelevementsPanel.putClientProperty("panelType", ReefDbUI.EDITION_PANEL_TYPE);
687
688
689 $registerDefaultBindings();
690 $completeSetup();
691 handler.afterInit(this);
692 }
693
694 private void $registerDefaultBindings() {
695
696 registerDataBinding(new DefaultJAXXBinding(this, BINDING_TABLE_BLOCK_LAYER_BLOCK, true) {
697
698 @Override
699 public void applyDataBinding() {
700 if (model != null) {
701 model.addPropertyChangeListener("loading", this);
702 }
703 }
704
705 @Override
706 public void processDataBinding() {
707 if (model != null) {
708 tableBlockLayer.setBlock(model.isLoading());
709 }
710 }
711
712 @Override
713 public void removeDataBinding() {
714 if (model != null) {
715 model.removePropertyChangeListener("loading", this);
716 }
717 }
718 });
719 registerDataBinding(new DefaultJAXXBinding(this, BINDING_EDIT_MESURE_PRELEVEMENT_ENABLED, true) {
720
721 @Override
722 public void applyDataBinding() {
723 if (model != null) {
724 model.addPropertyChangeListener("singleSelectedRow", this);
725 }
726 }
727
728 @Override
729 public void processDataBinding() {
730 if (model != null) {
731 editMesurePrelevement.setEnabled(model.getSingleSelectedRow() != null);
732 }
733 }
734
735 @Override
736 public void removeDataBinding() {
737 if (model != null) {
738 model.removePropertyChangeListener("singleSelectedRow", this);
739 }
740 }
741 });
742 registerDataBinding(new DefaultJAXXBinding(this, BINDING_PRELEVEMENTS_PANEL_NOUVEAU_BOUTON_ENABLED, true) {
743
744 @Override
745 public void applyDataBinding() {
746 if (model != null) {
747 model.addPropertyChangeListener("surveyEditable", this);
748 }
749 }
750
751 @Override
752 public void processDataBinding() {
753 if (model != null) {
754 prelevementsPanelNouveauBouton.setEnabled(model.isSurveyEditable());
755 }
756 }
757
758 @Override
759 public void removeDataBinding() {
760 if (model != null) {
761 model.removePropertyChangeListener("surveyEditable", this);
762 }
763 }
764 });
765 registerDataBinding(new DefaultJAXXBinding(this, BINDING_PRELEVEMENTS_PANEL_DUPLIQUER_BOUTON_ENABLED, true, true) {
766
767 @Override
768 public void applyDataBinding() {
769 if (model != null) {
770 model.addPropertyChangeListener("selectedRows", this);
771 }
772 if (model != null) {
773 model.addPropertyChangeListener("surveyEditable", this);
774 }
775 }
776
777 @Override
778 public void processDataBinding() {
779 if (model != null && model.getSelectedRows() != null) {
780 prelevementsPanelDupliquerBouton.setEnabled(model.getSelectedRows().size() == 1 && model.isSurveyEditable());
781 }
782 }
783
784 @Override
785 public void removeDataBinding() {
786 if (model != null) {
787 model.removePropertyChangeListener("selectedRows", this);
788 }
789 if (model != null) {
790 model.removePropertyChangeListener("surveyEditable", this);
791 }
792 }
793 });
794 registerDataBinding(new DefaultJAXXBinding(this, BINDING_PRELEVEMENTS_PANEL_EDITER_COMBOBOX_ENABLED, true) {
795
796 @Override
797 public void applyDataBinding() {
798 if (model != null) {
799 model.addPropertyChangeListener("selectedRows", this);
800 }
801 }
802
803 @Override
804 public void processDataBinding() {
805 if (model != null && model.getSelectedRows() != null) {
806 prelevementsPanelEditerCombobox.setEnabled(model.getSelectedRows().size() == 1);
807 }
808 }
809
810 @Override
811 public void removeDataBinding() {
812 if (model != null) {
813 model.removePropertyChangeListener("selectedRows", this);
814 }
815 }
816 });
817 registerDataBinding(new DefaultJAXXBinding(this, BINDING_PRELEVEMENTS_PANEL_SUPPRIMER_BOUTON_ENABLED, true, true) {
818
819 @Override
820 public void applyDataBinding() {
821 if (model != null) {
822 model.addPropertyChangeListener("selectedRows", this);
823 }
824 if (model != null) {
825 model.addPropertyChangeListener("surveyEditable", this);
826 }
827 }
828
829 @Override
830 public void processDataBinding() {
831 if (model != null && model.getSelectedRows() != null) {
832 prelevementsPanelSupprimerBouton.setEnabled(!model.getSelectedRows().isEmpty() && model.isSurveyEditable());
833 }
834 }
835
836 @Override
837 public void removeDataBinding() {
838 if (model != null) {
839 model.removePropertyChangeListener("selectedRows", this);
840 }
841 if (model != null) {
842 model.removePropertyChangeListener("surveyEditable", this);
843 }
844 }
845 });
846 registerDataBinding(new DefaultJAXXBinding(this, BINDING_NEXT_BUTTON_ENABLED, true) {
847
848 @Override
849 public void applyDataBinding() {
850 if (model != null) {
851 model.addPropertyChangeListener("survey", this);
852 }
853 }
854
855 @Override
856 public void processDataBinding() {
857 if (model != null) {
858 nextButton.setEnabled(model.getSurvey() != null);
859 }
860 }
861
862 @Override
863 public void removeDataBinding() {
864 if (model != null) {
865 model.removePropertyChangeListener("survey", this);
866 }
867 }
868 });
869 }
870
871 }