1 package fr.ifremer.dali.ui.swing.content.synchro.program;
2
3 import fr.ifremer.dali.dto.SearchDateDTO;
4 import fr.ifremer.dali.dto.configuration.programStrategy.ProgramDTO;
5 import fr.ifremer.dali.service.StatusFilter;
6 import fr.ifremer.dali.ui.swing.DaliHelpBroker;
7 import fr.ifremer.dali.ui.swing.DaliUIContext;
8 import fr.ifremer.dali.ui.swing.util.DaliUI;
9 import fr.ifremer.quadrige3.ui.swing.ApplicationUI;
10 import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
11 import fr.ifremer.quadrige3.ui.swing.component.bean.ExtendedBeanDoubleList;
12 import fr.ifremer.quadrige3.ui.swing.component.bean.ExtendedComboBox;
13 import fr.ifremer.quadrige3.ui.swing.component.date.JDatePicker;
14 import java.awt.BorderLayout;
15 import java.awt.Component;
16 import java.awt.Container;
17 import java.awt.GridBagConstraints;
18 import java.awt.GridLayout;
19 import java.awt.Insets;
20 import java.awt.LayoutManager;
21 import java.awt.event.ActionEvent;
22 import java.awt.event.ActionListener;
23 import java.awt.event.ItemEvent;
24 import java.awt.event.ItemListener;
25 import java.util.ArrayList;
26 import java.util.Collection;
27 import java.util.HashMap;
28 import java.util.List;
29 import java.util.Map;
30 import java.util.TreeMap;
31 import javax.swing.BorderFactory;
32 import javax.swing.BoxLayout;
33 import javax.swing.JButton;
34 import javax.swing.JCheckBox;
35 import javax.swing.JLabel;
36 import javax.swing.JPanel;
37 import javax.swing.JSeparator;
38 import javax.swing.SwingConstants;
39 import jaxx.runtime.JAXXBinding;
40 import jaxx.runtime.JAXXContext;
41 import jaxx.runtime.JAXXObject;
42 import jaxx.runtime.JAXXObjectDescriptor;
43 import jaxx.runtime.JAXXUtil;
44 import jaxx.runtime.SwingUtil;
45 import jaxx.runtime.binding.DefaultJAXXBinding;
46 import jaxx.runtime.context.DefaultJAXXContext;
47 import jaxx.runtime.swing.Table;
48 import jaxx.runtime.swing.help.JAXXHelpUI;
49 import org.apache.commons.logging.Log;
50 import org.apache.commons.logging.LogFactory;
51 import static org.nuiton.i18n.I18n.t;
52
53 public class ProgramSelectUI extends JPanel implements JAXXHelpUI<DaliHelpBroker>, DaliUI<ProgramSelectUIModel, ProgramSelectUIHandler>, JAXXObject {
54
55
56
57
58
59 public static final String BINDING_ENABLE_PHOTO_CHECK_BOX_SELECTED = "enablePhotoCheckBox.selected";
60 public static final String BINDING_END_DATE_EDITOR_DATE = "endDateEditor.date";
61 public static final String BINDING_ONLY_DIRTY_CHECK_BOX_SELECTED = "onlyDirtyCheckBox.selected";
62 public static final String BINDING_SEARCH_DATE_COMBO_SELECTED_ITEM = "searchDateCombo.selectedItem";
63 public static final String BINDING_SELECT_BOUTON_ENABLED = "selectBouton.enabled";
64 public static final String BINDING_START_DATE_EDITOR_DATE = "startDateEditor.date";
65
66
67
68
69
70 private static final String $jaxxObjectDescriptor = "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";
71 private static final Log log = LogFactory.getLog(ProgramSelectUI.class);
72 private static final long serialVersionUID = 1L;
73
74
75
76
77
78 protected List<Object> $activeBindings = new ArrayList<Object>();
79 protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
80 protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
81 protected Map<String, Object> $objectMap = new HashMap<String, Object>();
82 protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
83 private boolean allComponentsCreated;
84 protected final JAXXContext delegateContext = new DefaultJAXXContext();
85
86
87
88
89
90 protected JLabel andLabel;
91 protected JLabel availableProgramLabel;
92 protected DaliHelpBroker broker;
93 protected JButton cancelBouton;
94 protected JLabel dateLabel;
95 protected JPanel datesPanel;
96 protected JCheckBox enablePhotoCheckBox;
97 protected JDatePicker endDateEditor;
98 protected Boolean fileSynchro;
99 protected final ProgramSelectUIHandler handler = createHandler();
100 protected Collection<String> initialProgramCodes;
101 protected ProgramSelectUIModel model;
102 protected JCheckBox onlyDirtyCheckBox;
103 protected Table optionsPanel;
104 protected Boolean photoSynchro;
105 protected ExtendedBeanDoubleList<ProgramDTO> programDoubleList;
106 protected ProgramSelectUI programSelectUI = this;
107 protected StatusFilter programStatusFilter;
108 protected ExtendedComboBox<SearchDateDTO> searchDateCombo;
109 protected JButton selectBouton;
110 protected JLabel selectedProgramLabel;
111 protected JDatePicker startDateEditor;
112
113
114
115
116
117 private JPanel $JPanel0;
118 private JPanel $JPanel1;
119 private JSeparator $JSeparator0;
120 private Table $Table0;
121
122
123
124
125
126 public ProgramSelectUI(ApplicationUI parentUI, StatusFilter programStatusFilter, Collection initialProgramCodes, boolean fileSynchro, boolean photoSynchro) {
127 ApplicationUIUtil.setParentUI(this, parentUI);
128 this.programStatusFilter = programStatusFilter;
129 this.initialProgramCodes = initialProgramCodes;
130 this.fileSynchro = fileSynchro;
131 this.photoSynchro = photoSynchro;
132 $initialize();
133 }
134
135 public ProgramSelectUI() {
136 $initialize();
137 }
138
139 public ProgramSelectUI(JAXXContext parentContext) {
140 JAXXUtil.initContext(this, parentContext);
141 $initialize();
142 }
143
144 public ProgramSelectUI(boolean param0) {
145 super(param0);
146 $initialize();
147 }
148
149 public ProgramSelectUI(JAXXContext parentContext, boolean param1) {
150 super(param1);
151 JAXXUtil.initContext(this, parentContext);
152 $initialize();
153 }
154
155 public ProgramSelectUI(LayoutManager param0) {
156 super(param0);
157 $initialize();
158 }
159
160 public ProgramSelectUI(JAXXContext parentContext, LayoutManager param1) {
161 super(param1);
162 JAXXUtil.initContext(this, parentContext);
163 $initialize();
164 }
165
166 public ProgramSelectUI(LayoutManager param0, boolean param1) {
167 super(param0 ,param1);
168 $initialize();
169 }
170
171 public ProgramSelectUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
172 super(param1 ,param2);
173 JAXXUtil.initContext(this, parentContext);
174 $initialize();
175 }
176
177
178
179
180
181 public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
182 return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
183 }
184
185
186
187
188
189 @Override
190 public void applyDataBinding(String $binding) {
191 if (allComponentsCreated && $bindings.containsKey($binding)) {
192 getDataBinding($binding).applyDataBinding();
193 }
194 processDataBinding($binding);
195 }
196
197 @Override
198 public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
199 super.firePropertyChange(propertyName, oldValue, newValue);
200 }
201
202 @Override
203 public Map<String, Object> get$objectMap() {
204 return $objectMap;
205 }
206
207 @Override
208 public JAXXBinding getDataBinding(String bindingId) {
209 return $bindings.get(bindingId);
210 }
211
212 @Override
213 public JAXXBinding[] getDataBindings() {
214 return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
215 }
216
217 @Override
218 public Object getObjectById(String id) {
219 return $objectMap.get(id);
220 }
221
222 @Override
223 public void processDataBinding(String $binding, boolean $force) {
224 if (!$force && $activeBindings.contains($binding)) {
225 return;
226 }
227 $activeBindings.add($binding);
228 try {
229 if (allComponentsCreated && $bindings.containsKey($binding)) {
230 getDataBinding($binding).processDataBinding();
231 }
232 } finally {
233 $activeBindings.remove($binding);
234 }
235 }
236
237 @Override
238 public void processDataBinding(String $binding) {
239 processDataBinding($binding, false);
240 }
241
242 @Override
243 public void registerDataBinding(JAXXBinding binding) {
244 $bindings.put(binding.getId(), binding);
245 }
246
247 @Override
248 public void removeDataBinding(String $binding) {
249 if (allComponentsCreated && $bindings.containsKey($binding)) {
250 getDataBinding($binding).removeDataBinding();
251 }
252 }
253
254
255
256
257
258 @Override
259 public <T> T getContextValue(Class<T> clazz) {
260 return delegateContext.getContextValue(clazz, null);
261 }
262
263 @Override
264 public <T> T getContextValue(Class<T> clazz, String name) {
265 return delegateContext.getContextValue(clazz, name);
266 }
267
268 @Override
269 public JAXXContext getDelegateContext() {
270 return delegateContext;
271 }
272
273 @Override
274 public <O extends Container> O getParentContainer(Class<O> clazz) {
275 return SwingUtil.getParentContainer(this, clazz);
276 }
277
278 @Override
279 public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
280 return SwingUtil.getParentContainer(source, clazz);
281 }
282
283 @Override
284 public <T> void removeContextValue(Class<T> clazz) {
285 delegateContext.removeContextValue(clazz, null);
286 }
287
288 @Override
289 public <T> void removeContextValue(Class<T> clazz, String name) {
290 delegateContext.removeContextValue(clazz, name);
291 }
292
293 @Override
294 public <T> void setContextValue(T o) {
295 delegateContext.setContextValue(o, null);
296 }
297
298 @Override
299 public <T> void setContextValue(T o, String name) {
300 delegateContext.setContextValue(o, name);
301 }
302
303
304
305
306
307 public void doActionPerformed__on__cancelBouton(ActionEvent event) {
308 if (log.isDebugEnabled()) {
309 log.debug(event);
310 }
311 handler.cancel();
312 }
313
314 public void doActionPerformed__on__endDateEditor(ActionEvent event) {
315 if (log.isDebugEnabled()) {
316 log.debug(event);
317 }
318 handler.setDate(event, "endDate");
319 }
320
321 public void doActionPerformed__on__selectBouton(ActionEvent event) {
322 if (log.isDebugEnabled()) {
323 log.debug(event);
324 }
325 handler.select();
326 }
327
328 public void doActionPerformed__on__startDateEditor(ActionEvent event) {
329 if (log.isDebugEnabled()) {
330 log.debug(event);
331 }
332 handler.setDate(event, "startDate");
333 }
334
335 public void doItemStateChanged__on__enablePhotoCheckBox(ItemEvent event) {
336 if (log.isDebugEnabled()) {
337 log.debug(event);
338 }
339 handler.setBoolean(event, ProgramSelectUIModel.PROPERTY_ENABLE_PHOTO);
340 }
341
342 public void doItemStateChanged__on__onlyDirtyCheckBox(ItemEvent event) {
343 if (log.isDebugEnabled()) {
344 log.debug(event);
345 }
346 handler.setBoolean(event, ProgramSelectUIModel.PROPERTY_DIRTY_ONLY);
347 }
348
349
350
351
352
353 public JLabel getAndLabel() {
354 return andLabel;
355 }
356
357 public JLabel getAvailableProgramLabel() {
358 return availableProgramLabel;
359 }
360
361 public DaliHelpBroker getBroker() {
362 return broker;
363 }
364
365 public JButton getCancelBouton() {
366 return cancelBouton;
367 }
368
369 public JLabel getDateLabel() {
370 return dateLabel;
371 }
372
373 public JPanel getDatesPanel() {
374 return datesPanel;
375 }
376
377 public JCheckBox getEnablePhotoCheckBox() {
378 return enablePhotoCheckBox;
379 }
380
381 public JDatePicker getEndDateEditor() {
382 return endDateEditor;
383 }
384
385 public Boolean getFileSynchro() {
386 return fileSynchro;
387 }
388
389 public ProgramSelectUIHandler getHandler() {
390 return handler;
391 }
392
393 public Collection<String> getInitialProgramCodes() {
394 return initialProgramCodes;
395 }
396
397 public ProgramSelectUIModel getModel() {
398 return model;
399 }
400
401 public JCheckBox getOnlyDirtyCheckBox() {
402 return onlyDirtyCheckBox;
403 }
404
405 public Table getOptionsPanel() {
406 return optionsPanel;
407 }
408
409 public Boolean getPhotoSynchro() {
410 return photoSynchro;
411 }
412
413 public ExtendedBeanDoubleList<ProgramDTO> getProgramDoubleList() {
414 return programDoubleList;
415 }
416
417 public StatusFilter getProgramStatusFilter() {
418 return programStatusFilter;
419 }
420
421 public ExtendedComboBox<SearchDateDTO> getSearchDateCombo() {
422 return searchDateCombo;
423 }
424
425 public JButton getSelectBouton() {
426 return selectBouton;
427 }
428
429 public JLabel getSelectedProgramLabel() {
430 return selectedProgramLabel;
431 }
432
433 public JDatePicker getStartDateEditor() {
434 return startDateEditor;
435 }
436
437
438
439
440
441 @Override
442 public void registerHelpId(DaliHelpBroker broker, Component component, String helpId) {
443 broker.installUI(component, helpId);
444 }
445
446 @Override
447 public void showHelp(String helpId) {
448 getBroker().showHelp(this, helpId);
449 }
450
451
452
453
454
455 protected JPanel get$JPanel0() {
456 return $JPanel0;
457 }
458
459 protected JPanel get$JPanel1() {
460 return $JPanel1;
461 }
462
463 protected JSeparator get$JSeparator0() {
464 return $JSeparator0;
465 }
466
467 protected Table get$Table0() {
468 return $Table0;
469 }
470
471
472
473
474
475 protected void addChildrenToDatesPanel() {
476 if (!allComponentsCreated) {
477 return;
478 }
479 datesPanel.add(dateLabel, BorderLayout.PAGE_START);
480 datesPanel.add(searchDateCombo, BorderLayout.LINE_START);
481 datesPanel.add(startDateEditor);
482 datesPanel.add(andLabel);
483 datesPanel.add(endDateEditor, BorderLayout.LINE_END);
484 }
485
486 protected void addChildrenToOptionsPanel() {
487 if (!allComponentsCreated) {
488 return;
489 }
490 optionsPanel.add($JSeparator0, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
491 optionsPanel.add(enablePhotoCheckBox, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
492 optionsPanel.add(onlyDirtyCheckBox, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
493 optionsPanel.add(datesPanel, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
494 }
495
496 protected void addChildrenToProgramSelectUI() {
497 if (!allComponentsCreated) {
498 return;
499 }
500 add($JPanel0);
501 add($JPanel1, BorderLayout.PAGE_END);
502 }
503
504 protected void createAndLabel() {
505 $objectMap.put("andLabel", andLabel = new JLabel());
506
507 andLabel.setName("andLabel");
508 andLabel.setText(t("dali.property.and"));
509 }
510
511 protected void createAvailableProgramLabel() {
512 $objectMap.put("availableProgramLabel", availableProgramLabel = new JLabel());
513
514 availableProgramLabel.setName("availableProgramLabel");
515 availableProgramLabel.setText(t("dali.synchro.program.available"));
516 }
517
518 protected void createBroker() {
519 $objectMap.put("broker", broker = new DaliHelpBroker("dali.home.help"));
520 }
521
522 protected void createCancelBouton() {
523 $objectMap.put("cancelBouton", cancelBouton = new JButton());
524
525 cancelBouton.setName("cancelBouton");
526 cancelBouton.setText(t("dali.common.cancel"));
527 cancelBouton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__cancelBouton"));
528 }
529
530 protected void createDateLabel() {
531 $objectMap.put("dateLabel", dateLabel = new JLabel());
532
533 dateLabel.setName("dateLabel");
534 dateLabel.setText(t("dali.property.date"));
535 }
536
537 protected void createDatesPanel() {
538 $objectMap.put("datesPanel", datesPanel = new JPanel());
539
540 datesPanel.setName("datesPanel");
541 datesPanel.setLayout(new BoxLayout(datesPanel, BoxLayout.LINE_AXIS));
542 }
543
544 protected void createEnablePhotoCheckBox() {
545 $objectMap.put("enablePhotoCheckBox", enablePhotoCheckBox = new JCheckBox());
546
547 enablePhotoCheckBox.setName("enablePhotoCheckBox");
548 enablePhotoCheckBox.setText(t("dali.synchro.photo.enable.label"));
549 enablePhotoCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__enablePhotoCheckBox"));
550 }
551
552 protected void createEndDateEditor() {
553 $objectMap.put("endDateEditor", endDateEditor = new JDatePicker());
554
555 endDateEditor.setName("endDateEditor");
556 endDateEditor.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__endDateEditor"));
557 endDateEditor.putClientProperty("selectOnFocus", true);
558 }
559
560 protected void createFileSynchro() {
561 $objectMap.put("fileSynchro", fileSynchro = this.fileSynchro);
562 }
563
564 protected ProgramSelectUIHandler createHandler() {
565 return new ProgramSelectUIHandler();
566 }
567
568 protected void createInitialProgramCodes() {
569 $objectMap.put("initialProgramCodes", initialProgramCodes = this.initialProgramCodes);
570 }
571
572 protected void createModel() {
573 $objectMap.put("model", model = getContextValue(ProgramSelectUIModel.class));
574 }
575
576 protected void createOnlyDirtyCheckBox() {
577 $objectMap.put("onlyDirtyCheckBox", onlyDirtyCheckBox = new JCheckBox());
578
579 onlyDirtyCheckBox.setName("onlyDirtyCheckBox");
580 onlyDirtyCheckBox.setText(t("dali.synchro.export.dirtyOnly.label"));
581 onlyDirtyCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__onlyDirtyCheckBox"));
582 }
583
584 protected void createOptionsPanel() {
585 $objectMap.put("optionsPanel", optionsPanel = new Table());
586
587 optionsPanel.setName("optionsPanel");
588 }
589
590 protected void createPhotoSynchro() {
591 $objectMap.put("photoSynchro", photoSynchro = this.photoSynchro);
592 }
593
594 protected void createProgramDoubleList() {
595 $objectMap.put("programDoubleList", programDoubleList = new ExtendedBeanDoubleList<ProgramDTO>());
596
597 programDoubleList.setName("programDoubleList");
598 programDoubleList.setFilterable(true);
599 programDoubleList.setShowDecorator(false);
600 programDoubleList.setShowSelectPopupEnabled(true);
601 programDoubleList.setProperty("selectedPrograms");
602 programDoubleList.setShowReset(true);
603 programDoubleList.setHighlightFilterText(true);
604 programDoubleList.setUseMultiSelect(false);
605 programDoubleList.setToolTipText(t("dali.synchro.program.available.filter"));
606 }
607
608 protected void createProgramStatusFilter() {
609 $objectMap.put("programStatusFilter", programStatusFilter = this.programStatusFilter);
610 }
611
612 protected void createSearchDateCombo() {
613 $objectMap.put("searchDateCombo", searchDateCombo = new ExtendedComboBox<SearchDateDTO>(this));
614
615 searchDateCombo.setName("searchDateCombo");
616 searchDateCombo.setFilterable(true);
617 searchDateCombo.setShowDecorator(false);
618 searchDateCombo.setProperty("searchDate");
619 searchDateCombo.setShowReset(true);
620 }
621
622 protected void createSelectBouton() {
623 $objectMap.put("selectBouton", selectBouton = new JButton());
624
625 selectBouton.setName("selectBouton");
626 selectBouton.setText(t("dali.common.select"));
627 selectBouton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__selectBouton"));
628 }
629
630 protected void createSelectedProgramLabel() {
631 $objectMap.put("selectedProgramLabel", selectedProgramLabel = new JLabel());
632
633 selectedProgramLabel.setName("selectedProgramLabel");
634 selectedProgramLabel.setText(t("dali.synchro.program.selected"));
635 }
636
637 protected void createStartDateEditor() {
638 $objectMap.put("startDateEditor", startDateEditor = new JDatePicker());
639
640 startDateEditor.setName("startDateEditor");
641 startDateEditor.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__startDateEditor"));
642 startDateEditor.putClientProperty("selectOnFocus", true);
643 }
644
645
646
647
648
649 private void $completeSetup() {
650 allComponentsCreated = true;
651 if (log.isDebugEnabled()) {
652 log.debug(this);
653 }
654 addChildrenToProgramSelectUI();
655
656 $JPanel0.add($Table0, BorderLayout.CENTER);
657 $JPanel0.add(optionsPanel, BorderLayout.PAGE_END);
658
659 $Table0.add(availableProgramLabel, new GridBagConstraints(0, 0, 1, 1, 0.5, 0.0, 10, 2, new Insets(3, 3, 3, 3), 0, 0));
660 $Table0.add(selectedProgramLabel, new GridBagConstraints(1, 0, 1, 1, 0.5, 0.0, 10, 2, new Insets(3, 3, 3, 3), 0, 0));
661 $Table0.add(programDoubleList, new GridBagConstraints(0, 1, 2, 1, 1.0, 1.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
662 addChildrenToOptionsPanel();
663 addChildrenToDatesPanel();
664
665 $JPanel1.add(cancelBouton);
666 $JPanel1.add(selectBouton);
667
668
669 JAXXUtil.applyDataBinding(this, $bindings.keySet());
670
671
672 programDoubleList.setBeanType(ProgramDTO.class);
673 searchDateCombo.setBeanType(SearchDateDTO.class);
674 andLabel.setHorizontalAlignment(JLabel.RIGHT);
675 cancelBouton.setAlignmentX(Component.CENTER_ALIGNMENT);
676 selectBouton.setAlignmentX(Component.CENTER_ALIGNMENT);
677 availableProgramLabel.setHorizontalAlignment(SwingConstants.CENTER);
678 selectedProgramLabel.setHorizontalAlignment(SwingConstants.CENTER);
679 programDoubleList.setBean(model);
680 enablePhotoCheckBox.setBorder(BorderFactory.createEmptyBorder(10,0,10,0));
681 enablePhotoCheckBox.setHorizontalAlignment(SwingConstants.LEFT);
682 onlyDirtyCheckBox.setBorder(BorderFactory.createEmptyBorder(10,0,0,0));
683 onlyDirtyCheckBox.setHorizontalAlignment(SwingConstants.LEFT);
684 datesPanel.setBorder(BorderFactory.createEmptyBorder(0,0,10,0));
685 searchDateCombo.setBean(model);
686 cancelBouton.setMnemonic(SwingUtil.getFirstCharAt(t("dali.common.cancel.mnemonic"),'Z'));
687 cancelBouton.setIcon(SwingUtil.createActionIcon("cancel"));
688 selectBouton.setMnemonic(SwingUtil.getFirstCharAt(t("dali.common.select.mnemonic"),'Z'));
689 selectBouton.setIcon(SwingUtil.createActionIcon("validate"));
690 }
691
692 private void $initialize() {
693 if (allComponentsCreated) {
694 return;
695 }
696 if (log.isDebugEnabled()) {
697 log.debug(this);
698 }
699 handler.beforeInit(this);
700 $objectMap.put("programSelectUI", programSelectUI);
701 createModel();
702 createBroker();
703 createProgramStatusFilter();
704 createInitialProgramCodes();
705 createFileSynchro();
706 createPhotoSynchro();
707
708 $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
709
710 $JPanel0.setName("$JPanel0");
711 $JPanel0.setLayout(new BorderLayout());
712
713 $objectMap.put("$Table0", $Table0 = new Table());
714
715 $Table0.setName("$Table0");
716 createAvailableProgramLabel();
717 createSelectedProgramLabel();
718 createProgramDoubleList();
719 createOptionsPanel();
720
721 $objectMap.put("$JSeparator0", $JSeparator0 = new JSeparator(SwingConstants.HORIZONTAL));
722
723 $JSeparator0.setName("$JSeparator0");
724 createEnablePhotoCheckBox();
725 createOnlyDirtyCheckBox();
726 createDatesPanel();
727 createDateLabel();
728 createSearchDateCombo();
729 createStartDateEditor();
730 createAndLabel();
731 createEndDateEditor();
732
733 $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
734
735 $JPanel1.setName("$JPanel1");
736 $JPanel1.setLayout(new GridLayout(1,0));
737 createCancelBouton();
738 createSelectBouton();
739
740 setName("programSelectUI");
741 setLayout(new BorderLayout());
742
743
744 $registerDefaultBindings();
745 $completeSetup();
746 handler.afterInit(this);
747 }
748
749 private void $registerDefaultBindings() {
750
751 registerDataBinding(new DefaultJAXXBinding(this, BINDING_ENABLE_PHOTO_CHECK_BOX_SELECTED, true) {
752
753 @Override
754 public void applyDataBinding() {
755 if (model != null) {
756 model.addPropertyChangeListener("enablePhoto", this);
757 }
758 }
759
760 @Override
761 public void processDataBinding() {
762 if (model != null) {
763 enablePhotoCheckBox.setSelected(model.isEnablePhoto());
764 }
765 }
766
767 @Override
768 public void removeDataBinding() {
769 if (model != null) {
770 model.removePropertyChangeListener("enablePhoto", this);
771 }
772 }
773 });
774 registerDataBinding(new DefaultJAXXBinding(this, BINDING_ONLY_DIRTY_CHECK_BOX_SELECTED, true) {
775
776 @Override
777 public void applyDataBinding() {
778 if (model != null) {
779 model.addPropertyChangeListener("dirtyOnly", this);
780 }
781 }
782
783 @Override
784 public void processDataBinding() {
785 if (model != null) {
786 onlyDirtyCheckBox.setSelected(model.isDirtyOnly());
787 }
788 }
789
790 @Override
791 public void removeDataBinding() {
792 if (model != null) {
793 model.removePropertyChangeListener("dirtyOnly", this);
794 }
795 }
796 });
797 registerDataBinding(new DefaultJAXXBinding(this, BINDING_SEARCH_DATE_COMBO_SELECTED_ITEM, true) {
798
799 @Override
800 public void applyDataBinding() {
801 if (model != null) {
802 model.addPropertyChangeListener("searchDate", this);
803 }
804 }
805
806 @Override
807 public void processDataBinding() {
808 if (model != null) {
809 searchDateCombo.setSelectedItem(model.getSearchDate());
810 }
811 }
812
813 @Override
814 public void removeDataBinding() {
815 if (model != null) {
816 model.removePropertyChangeListener("searchDate", this);
817 }
818 }
819 });
820 registerDataBinding(new DefaultJAXXBinding(this, BINDING_START_DATE_EDITOR_DATE, true) {
821
822 @Override
823 public void applyDataBinding() {
824 if (model != null) {
825 model.addPropertyChangeListener("startDate", this);
826 }
827 }
828
829 @Override
830 public void processDataBinding() {
831 if (model != null) {
832 startDateEditor.setDate(model.getStartDate());
833 }
834 }
835
836 @Override
837 public void removeDataBinding() {
838 if (model != null) {
839 model.removePropertyChangeListener("startDate", this);
840 }
841 }
842 });
843 registerDataBinding(new DefaultJAXXBinding(this, BINDING_END_DATE_EDITOR_DATE, true) {
844
845 @Override
846 public void applyDataBinding() {
847 if (model != null) {
848 model.addPropertyChangeListener("endDate", this);
849 }
850 }
851
852 @Override
853 public void processDataBinding() {
854 if (model != null) {
855 endDateEditor.setDate(model.getEndDate());
856 }
857 }
858
859 @Override
860 public void removeDataBinding() {
861 if (model != null) {
862 model.removePropertyChangeListener("endDate", this);
863 }
864 }
865 });
866 registerDataBinding(new DefaultJAXXBinding(this, BINDING_SELECT_BOUTON_ENABLED, true) {
867
868 @Override
869 public void applyDataBinding() {
870 if (model != null) {
871 model.addPropertyChangeListener("selectedPrograms", this);
872 }
873 }
874
875 @Override
876 public void processDataBinding() {
877 if (model != null && model.getSelectedPrograms() != null) {
878 selectBouton.setEnabled(!model.getSelectedPrograms().isEmpty());
879 }
880 }
881
882 @Override
883 public void removeDataBinding() {
884 if (model != null) {
885 model.removePropertyChangeListener("selectedPrograms", this);
886 }
887 }
888 });
889 }
890
891 }