1 package fr.ifremer.reefdb.ui.swing.content.manage.program.menu;
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.component.bean.ExtendedComboBox;
30 import fr.ifremer.reefdb.dto.BooleanDTO;
31 import fr.ifremer.reefdb.dto.configuration.programStrategy.ProgramDTO;
32 import fr.ifremer.reefdb.ui.swing.ReefDbHelpBroker;
33 import fr.ifremer.reefdb.ui.swing.ReefDbUIContext;
34 import fr.ifremer.reefdb.ui.swing.content.manage.filter.element.menu.ApplyFilterUI;
35 import fr.ifremer.reefdb.ui.swing.content.manage.referential.menu.ReferentialMenuUI;
36 import fr.ifremer.reefdb.ui.swing.util.ReefDbUI;
37 import java.awt.BorderLayout;
38 import java.awt.Component;
39 import java.awt.Container;
40 import java.awt.FlowLayout;
41 import java.awt.GridBagConstraints;
42 import java.awt.Insets;
43 import java.awt.LayoutManager;
44 import java.util.ArrayList;
45 import java.util.HashMap;
46 import java.util.List;
47 import java.util.Map;
48 import java.util.TreeMap;
49 import javax.swing.BorderFactory;
50 import javax.swing.Box;
51 import javax.swing.BoxLayout;
52 import javax.swing.JButton;
53 import javax.swing.JLabel;
54 import javax.swing.JPanel;
55 import javax.swing.SwingConstants;
56 import jaxx.runtime.JAXXBinding;
57 import jaxx.runtime.JAXXContext;
58 import jaxx.runtime.JAXXObject;
59 import jaxx.runtime.JAXXObjectDescriptor;
60 import jaxx.runtime.JAXXUtil;
61 import jaxx.runtime.SwingUtil;
62 import jaxx.runtime.binding.DefaultJAXXBinding;
63 import jaxx.runtime.context.DefaultJAXXContext;
64 import jaxx.runtime.swing.Table;
65 import jaxx.runtime.swing.help.JAXXHelpUI;
66 import org.apache.commons.logging.Log;
67 import org.apache.commons.logging.LogFactory;
68 import static org.nuiton.i18n.I18n.t;
69
70 public class ProgramsMenuUI extends JPanel implements JAXXHelpUI<ReefDbHelpBroker>, ReferentialMenuUI<ProgramsMenuUIModel, ProgramsMenuUIHandler>, JAXXObject {
71
72
73
74
75
76 public static final String BINDING_LOCAL_COMBO_SELECTED_ITEM = "localCombo.selectedItem";
77 public static final String BINDING_PROGRAM_CODE_COMBO_ENABLED = "programCodeCombo.enabled";
78 public static final String BINDING_PROGRAM_CODE_COMBO_SELECTED_ITEM = "programCodeCombo.selectedItem";
79 public static final String BINDING_PROGRAM_MNEMONIC_COMBO_ENABLED = "programMnemonicCombo.enabled";
80 public static final String BINDING_PROGRAM_MNEMONIC_COMBO_SELECTED_ITEM = "programMnemonicCombo.selectedItem";
81
82
83
84
85
86 private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAL1WzW8bRRSfuPlyPkpI0ijQAEnaQwJoHFpxCqHNp+rUgSpJpag5wHh37EwZ725nx2Qtq4g/gT8BzvSCBCdOiAM3JA4ICfEvINQDV8R7s+tdO97YToOIlPXuzHu/93tvZn5vnv1JBnxFFh6zIKCq6mhR4XR3/ejow+Jjbukt7ltKeNpVJPzry5DMMRm143FfkxvHBXTPRe65TbfiuQ53mrxXC2TE1zXJ/RPOtSavtXpYvp87iKdXA6+qGqgxqTTUL5//lfnC/vyrDCGBB+wmIZX5bl5JJv0FkhG2JpMQ6VOWk8wpAw0lnDLwHcexTcl8/wNW4U/IZ2SoQAY9pgBMk8XeUzYYxj/wNBm+ufuAOVyuaLJdUlSUFK9wRRXnJbtIq4L6pxCfWq6jAY5WmMPKnHrKLStWoRXuVOmD8MPfg4+Hec8z4IOaDFRcm0tNdv8T3D0ES8AHi8r9hCtN3uqAvg/fW8V74LdhrBP3LEYwiUO5sbJB5BJWA62ysfE48zxZ2xFSc/Uwr8n93hMqGSfKJRjjKOa13oyGISbjSFd9sLS0cJ2I22zL7glDHLKi5K1+I9K1mIypT+Nj9sxsgRXbszWDaHb9jDXsoKKryVpTqk+qzFaizG83ZxvtM1rkzKHbAeRuc9s4b7hBK3Bjq72TQnEiWvlNWOWY0xv4uJFqYyLg+GKrTSPGrZQY05H/nsMrriOs1jjL59q1xkrsrsWLtVHV2nX81vonqzNqSc5UaKTJVMsChKNomIvtx3wwt06SqdvRvCLXW/YD6BRNdCoRkr5jMqCqMAwb6Lhd2vZhKhS12TOihoBm9p+ZqV+//+PbnYaSzUDsa6mmTUIMCgOl8+BUCgz9UihjVS1kbo95q8ckG1bMqPRcCrGDaBrIQbyX0Z2iO73H/BOAGBj6/YcfZz7+5QrJ7OA+ZfYOQ/s8yeoTBVVwpR14d+4aRmOnw/CcgP9+2NThQcSTo+FbVeFnHOxPt7jlKgYYoFclJn0Yz+L4PvexMUSm/bi9NRmqG0l7GkDp5lJKF/MvZn/6e+rgm7uN8vVBOq+ca56UcOARGRSOFA43rSBS+VTpH/V8XrXdRM3T9J2Awk+cPZWRCq6a5522avWhuLrKRnFdr2+Yt7DMNWopzjQ/FFpyO5xZ0kuLkQaC9JVEOdQ4jSaLy8tQKoySNzXAt/ukTeW8LoQycKwlntUdXKWxeqJPT3GBeADrtBBxiPQ2/NmOVNc4pBFpEsYeSIyFtLmd17wCMhFuBlrmOu8XEGhpGQgNR0egBttFhOPnhzZZXCz/yfpZGUyqMBdVoUEh7qcW2KaxaJPdblyudCpD1LDbyhAFgTfu4AmEK85KPU1kEeSgCX1peX5tbd6pSpm6j9oawsUqOZPKoYdqOnAK0/ikNpj/q6Jvt+2LC1Yzte11Yw/SOvkRXo+ExfBAr5tjDU2uvok9L/ykFkoSpDDCzHceL0nQoRoSa6o9H1U7NKFhC6Smc1IZXl1GtevKQ+EdGofXOzho4aWl2NyIXzSz6fqBidQptf6ScOw4s1dTiabmNJtqek42LdeEbumgqktWc8GYXH3PZprNF4Ek3EHeb8Puw+dUV0Qc/hofz9IR5nrgNIyN9bDm8Q44C5dmcrMnhO86ICxdmsObl+ZAL81hpYcVGWFSlB3sm0cdkG71xOXnDgjv9sClX1jhBfhSLH7rwuJfKUGpOHQQAAA=";
87 private static final Log log = LogFactory.getLog(ProgramsMenuUI.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 ApplyFilterUI applyFilterUI;
107 protected ReefDbHelpBroker broker;
108 protected JButton clearButton;
109 protected final ProgramsMenuUIHandler handler = createHandler();
110 protected ExtendedComboBox<BooleanDTO> localCombo;
111 protected JLabel localLabel;
112 protected JPanel localPanel;
113 protected JPanel menuPanel;
114 protected ProgramsMenuUIModel model;
115 protected ExtendedComboBox<ProgramDTO> programCodeCombo;
116 protected JLabel programCodeLabel;
117 protected ExtendedComboBox<ProgramDTO> programMnemonicCombo;
118 protected JLabel programMnemonicLabel;
119 protected JButton searchButton;
120 protected JPanel selectionButtonsPanel;
121 protected Table selectionPanel;
122
123
124
125
126
127 private ProgramsMenuUI $JPanel0 = this;
128 private JPanel $JPanel1;
129 private JPanel $JPanel2;
130
131
132
133
134
135 public ProgramsMenuUI(ApplicationUI parentUI) {
136 ApplicationUIUtil.setParentUI(this, parentUI);
137 $initialize();
138 }
139
140 public ProgramsMenuUI(LayoutManager param0, boolean param1) {
141 super(param0 ,param1);
142 $initialize();
143 }
144
145 public ProgramsMenuUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
146 super(param1 ,param2);
147 JAXXUtil.initContext(this, parentContext);
148 $initialize();
149 }
150
151 public ProgramsMenuUI(boolean param0) {
152 super(param0);
153 $initialize();
154 }
155
156 public ProgramsMenuUI(JAXXContext parentContext, boolean param1) {
157 super(param1);
158 JAXXUtil.initContext(this, parentContext);
159 $initialize();
160 }
161
162 public ProgramsMenuUI() {
163 $initialize();
164 }
165
166 public ProgramsMenuUI(JAXXContext parentContext) {
167 JAXXUtil.initContext(this, parentContext);
168 $initialize();
169 }
170
171 public ProgramsMenuUI(LayoutManager param0) {
172 super(param0);
173 $initialize();
174 }
175
176 public ProgramsMenuUI(JAXXContext parentContext, LayoutManager param1) {
177 super(param1);
178 JAXXUtil.initContext(this, parentContext);
179 $initialize();
180 }
181
182
183
184
185
186 public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
187 return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
188 }
189
190
191
192
193
194 @Override
195 public void applyDataBinding(String $binding) {
196 if (allComponentsCreated && $bindings.containsKey($binding)) {
197 getDataBinding($binding).applyDataBinding();
198 }
199 processDataBinding($binding);
200 }
201
202 @Override
203 public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
204 super.firePropertyChange(propertyName, oldValue, newValue);
205 }
206
207 @Override
208 public Map<String, Object> get$objectMap() {
209 return $objectMap;
210 }
211
212 @Override
213 public JAXXBinding getDataBinding(String bindingId) {
214 return $bindings.get(bindingId);
215 }
216
217 @Override
218 public JAXXBinding[] getDataBindings() {
219 return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
220 }
221
222 @Override
223 public Object getObjectById(String id) {
224 return $objectMap.get(id);
225 }
226
227 @Override
228 public void processDataBinding(String $binding, boolean $force) {
229 if (!$force && $activeBindings.contains($binding)) {
230 return;
231 }
232 $activeBindings.add($binding);
233 try {
234 if (allComponentsCreated && $bindings.containsKey($binding)) {
235 getDataBinding($binding).processDataBinding();
236 }
237 } finally {
238 $activeBindings.remove($binding);
239 }
240 }
241
242 @Override
243 public void processDataBinding(String $binding) {
244 processDataBinding($binding, false);
245 }
246
247 @Override
248 public void registerDataBinding(JAXXBinding binding) {
249 $bindings.put(binding.getId(), binding);
250 }
251
252 @Override
253 public void removeDataBinding(String $binding) {
254 if (allComponentsCreated && $bindings.containsKey($binding)) {
255 getDataBinding($binding).removeDataBinding();
256 }
257 }
258
259
260
261
262
263 @Override
264 public <T> T getContextValue(Class<T> clazz) {
265 return delegateContext.getContextValue(clazz, null);
266 }
267
268 @Override
269 public <T> T getContextValue(Class<T> clazz, String name) {
270 return delegateContext.getContextValue(clazz, name);
271 }
272
273 @Override
274 public JAXXContext getDelegateContext() {
275 return delegateContext;
276 }
277
278 @Override
279 public <O extends Container> O getParentContainer(Class<O> clazz) {
280 return SwingUtil.getParentContainer(this, clazz);
281 }
282
283 @Override
284 public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
285 return SwingUtil.getParentContainer(source, clazz);
286 }
287
288 @Override
289 public <T> void removeContextValue(Class<T> clazz) {
290 delegateContext.removeContextValue(clazz, null);
291 }
292
293 @Override
294 public <T> void removeContextValue(Class<T> clazz, String name) {
295 delegateContext.removeContextValue(clazz, name);
296 }
297
298 @Override
299 public <T> void setContextValue(T o) {
300 delegateContext.setContextValue(o, null);
301 }
302
303 @Override
304 public <T> void setContextValue(T o, String name) {
305 delegateContext.setContextValue(o, name);
306 }
307
308
309
310
311
312 public ApplyFilterUI getApplyFilterUI() {
313 return applyFilterUI;
314 }
315
316 public ReefDbHelpBroker getBroker() {
317 return broker;
318 }
319
320 public JButton getClearButton() {
321 return clearButton;
322 }
323
324 public ProgramsMenuUIHandler getHandler() {
325 return handler;
326 }
327
328 public ExtendedComboBox<BooleanDTO> getLocalCombo() {
329 return localCombo;
330 }
331
332 public JLabel getLocalLabel() {
333 return localLabel;
334 }
335
336 public JPanel getLocalPanel() {
337 return localPanel;
338 }
339
340 public JPanel getMenuPanel() {
341 return menuPanel;
342 }
343
344 public ProgramsMenuUIModel getModel() {
345 return model;
346 }
347
348 public ExtendedComboBox<ProgramDTO> getProgramCodeCombo() {
349 return programCodeCombo;
350 }
351
352 public JLabel getProgramCodeLabel() {
353 return programCodeLabel;
354 }
355
356 public ExtendedComboBox<ProgramDTO> getProgramMnemonicCombo() {
357 return programMnemonicCombo;
358 }
359
360 public JLabel getProgramMnemonicLabel() {
361 return programMnemonicLabel;
362 }
363
364 public JButton getSearchButton() {
365 return searchButton;
366 }
367
368 public JPanel getSelectionButtonsPanel() {
369 return selectionButtonsPanel;
370 }
371
372 public Table getSelectionPanel() {
373 return selectionPanel;
374 }
375
376
377
378
379
380 @Override
381 public void registerHelpId(ReefDbHelpBroker broker, Component component, String helpId) {
382 broker.installUI(component, helpId);
383 }
384
385 @Override
386 public void showHelp(String helpId) {
387 getBroker().showHelp(this, helpId);
388 }
389
390
391
392
393
394 protected JPanel get$JPanel1() {
395 return $JPanel1;
396 }
397
398 protected JPanel get$JPanel2() {
399 return $JPanel2;
400 }
401
402
403
404
405
406 protected void addChildrenToLocalPanel() {
407 if (!allComponentsCreated) {
408 return;
409 }
410 localPanel.add(localLabel, BorderLayout.PAGE_START);
411 localPanel.add(localCombo, BorderLayout.CENTER);
412 }
413
414 protected void addChildrenToMenuPanel() {
415 if (!allComponentsCreated) {
416 return;
417 }
418 menuPanel.add(applyFilterUI);
419 menuPanel.add(selectionPanel);
420 menuPanel.add(selectionButtonsPanel);
421 }
422
423 protected void addChildrenToSelectionButtonsPanel() {
424 if (!allComponentsCreated) {
425 return;
426 }
427 selectionButtonsPanel.add(clearButton);
428 selectionButtonsPanel.add(searchButton);
429 }
430
431 protected void addChildrenToSelectionPanel() {
432 if (!allComponentsCreated) {
433 return;
434 }
435 selectionPanel.add(localPanel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
436 selectionPanel.add($JPanel1, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
437 selectionPanel.add($JPanel2, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
438 }
439
440 protected void createApplyFilterUI() {
441 $objectMap.put("applyFilterUI", applyFilterUI = new ApplyFilterUI(this));
442
443 applyFilterUI.setName("applyFilterUI");
444 }
445
446 protected void createBroker() {
447 $objectMap.put("broker", broker = new ReefDbHelpBroker("reefdb.home.help"));
448 }
449
450 protected void createClearButton() {
451 $objectMap.put("clearButton", clearButton = new JButton());
452
453 clearButton.setName("clearButton");
454 clearButton.setText(t("reefdb.action.search.clear.label"));
455 clearButton.setToolTipText(t("reefdb.action.search.clear.tip"));
456 clearButton.putClientProperty("applicationAction", ClearAction.class);
457 }
458
459 protected ProgramsMenuUIHandler createHandler() {
460 return new ProgramsMenuUIHandler();
461 }
462
463 protected void createLocalCombo() {
464 $objectMap.put("localCombo", localCombo = new ExtendedComboBox<BooleanDTO>(this));
465
466 localCombo.setName("localCombo");
467 localCombo.setFilterable(true);
468 localCombo.setShowDecorator(false);
469 localCombo.setProperty("isLocal");
470 localCombo.setShowReset(true);
471 }
472
473 protected void createLocalLabel() {
474 $objectMap.put("localLabel", localLabel = new JLabel());
475
476 localLabel.setName("localLabel");
477 localLabel.setText(t("reefdb.filter.filterElement.local"));
478 }
479
480 protected void createLocalPanel() {
481 $objectMap.put("localPanel", localPanel = new JPanel());
482
483 localPanel.setName("localPanel");
484 localPanel.setLayout(new BorderLayout());
485 }
486
487 protected void createMenuPanel() {
488 $objectMap.put("menuPanel", menuPanel = new JPanel());
489
490 menuPanel.setName("menuPanel");
491 menuPanel.setLayout(new BoxLayout(menuPanel, BoxLayout.PAGE_AXIS));
492 }
493
494 protected void createModel() {
495 $objectMap.put("model", model = getContextValue(ProgramsMenuUIModel.class));
496 }
497
498 protected void createProgramCodeCombo() {
499 $objectMap.put("programCodeCombo", programCodeCombo = new ExtendedComboBox<ProgramDTO>(this));
500
501 programCodeCombo.setName("programCodeCombo");
502 programCodeCombo.setFilterable(true);
503 programCodeCombo.setShowDecorator(false);
504 programCodeCombo.setProperty("program");
505 programCodeCombo.setShowReset(true);
506 }
507
508 protected void createProgramCodeLabel() {
509 $objectMap.put("programCodeLabel", programCodeLabel = new JLabel());
510
511 programCodeLabel.setName("programCodeLabel");
512 programCodeLabel.setText(t("reefdb.property.program.code"));
513 }
514
515 protected void createProgramMnemonicCombo() {
516 $objectMap.put("programMnemonicCombo", programMnemonicCombo = new ExtendedComboBox<ProgramDTO>(this));
517
518 programMnemonicCombo.setName("programMnemonicCombo");
519 programMnemonicCombo.setFilterable(true);
520 programMnemonicCombo.setShowDecorator(false);
521 programMnemonicCombo.setProperty("program");
522 programMnemonicCombo.setShowReset(true);
523 }
524
525 protected void createProgramMnemonicLabel() {
526 $objectMap.put("programMnemonicLabel", programMnemonicLabel = new JLabel());
527
528 programMnemonicLabel.setName("programMnemonicLabel");
529 programMnemonicLabel.setText(t("reefdb.property.program.name"));
530 }
531
532 protected void createSearchButton() {
533 $objectMap.put("searchButton", searchButton = new JButton());
534
535 searchButton.setName("searchButton");
536 searchButton.setText(t("reefdb.action.search.label"));
537 searchButton.setToolTipText(t("reefdb.action.search.tip"));
538 searchButton.putClientProperty("applicationAction", SearchAction.class);
539 }
540
541 protected void createSelectionButtonsPanel() {
542 $objectMap.put("selectionButtonsPanel", selectionButtonsPanel = new JPanel());
543
544 selectionButtonsPanel.setName("selectionButtonsPanel");
545 selectionButtonsPanel.setLayout(new FlowLayout());
546 }
547
548 protected void createSelectionPanel() {
549 $objectMap.put("selectionPanel", selectionPanel = new Table());
550
551 selectionPanel.setName("selectionPanel");
552 }
553
554
555
556
557
558 private void $completeSetup() {
559 allComponentsCreated = true;
560 if (log.isDebugEnabled()) {
561 log.debug(this);
562 }
563
564 add(menuPanel);
565 addChildrenToMenuPanel();
566 addChildrenToSelectionPanel();
567 addChildrenToLocalPanel();
568
569 $JPanel1.add(programCodeLabel, BorderLayout.PAGE_START);
570 $JPanel1.add(programCodeCombo, BorderLayout.CENTER);
571
572 $JPanel2.add(programMnemonicLabel, BorderLayout.PAGE_START);
573 $JPanel2.add(programMnemonicCombo, BorderLayout.CENTER);
574 addChildrenToSelectionButtonsPanel();
575
576
577 JAXXUtil.applyDataBinding(this, $bindings.keySet());
578
579
580 localCombo.setBeanType(BooleanDTO.class);
581 programCodeCombo.setBeanType(ProgramDTO.class);
582 programMnemonicCombo.setBeanType(ProgramDTO.class);
583 clearButton.setAlignmentX(Component.CENTER_ALIGNMENT);
584 searchButton.setAlignmentX(Component.CENTER_ALIGNMENT);
585 selectionPanel.setBorder(BorderFactory.createTitledBorder(t("reefdb.config.menu.title")));
586 localLabel.setLabelFor(localCombo);
587 localCombo.setBean(model);
588 programCodeLabel.setLabelFor(programCodeCombo);
589 programCodeCombo.setBean(model);
590 programMnemonicLabel.setLabelFor(programMnemonicCombo);
591 programMnemonicCombo.setBean(model);
592 clearButton.setIcon(SwingUtil.createActionIcon("reset"));
593 searchButton.setIcon(SwingUtil.createActionIcon("find"));
594 }
595
596 private void $initialize() {
597 if (allComponentsCreated) {
598 return;
599 }
600 if (log.isDebugEnabled()) {
601 log.debug(this);
602 }
603 handler.beforeInit(this);
604 $objectMap.put("$JPanel0", $JPanel0);
605 createModel();
606 createBroker();
607 createMenuPanel();
608 createApplyFilterUI();
609 createSelectionPanel();
610 createLocalPanel();
611 createLocalLabel();
612 createLocalCombo();
613
614 $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
615
616 $JPanel1.setName("$JPanel1");
617 $JPanel1.setLayout(new BorderLayout());
618 createProgramCodeLabel();
619 createProgramCodeCombo();
620
621 $objectMap.put("$JPanel2", $JPanel2 = new JPanel());
622
623 $JPanel2.setName("$JPanel2");
624 $JPanel2.setLayout(new BorderLayout());
625 createProgramMnemonicLabel();
626 createProgramMnemonicCombo();
627 createSelectionButtonsPanel();
628 createClearButton();
629 createSearchButton();
630
631 setName("$JPanel0");
632
633
634 $registerDefaultBindings();
635 $completeSetup();
636 handler.afterInit(this);
637 }
638
639 private void $registerDefaultBindings() {
640
641 registerDataBinding(new DefaultJAXXBinding(this, BINDING_LOCAL_COMBO_SELECTED_ITEM, true) {
642
643 @Override
644 public void applyDataBinding() {
645 if (model != null) {
646 model.addPropertyChangeListener("isLocal", this);
647 }
648 }
649
650 @Override
651 public void processDataBinding() {
652 if (model != null) {
653 localCombo.setSelectedItem(model.getIsLocal());
654 }
655 }
656
657 @Override
658 public void removeDataBinding() {
659 if (model != null) {
660 model.removePropertyChangeListener("isLocal", this);
661 }
662 }
663 });
664 registerDataBinding(new DefaultJAXXBinding(this, BINDING_PROGRAM_CODE_COMBO_SELECTED_ITEM, true) {
665
666 @Override
667 public void applyDataBinding() {
668 if (model != null) {
669 model.addPropertyChangeListener("program", this);
670 }
671 }
672
673 @Override
674 public void processDataBinding() {
675 if (model != null) {
676 programCodeCombo.setSelectedItem(model.getProgram());
677 }
678 }
679
680 @Override
681 public void removeDataBinding() {
682 if (model != null) {
683 model.removePropertyChangeListener("program", this);
684 }
685 }
686 });
687 registerDataBinding(new DefaultJAXXBinding(this, BINDING_PROGRAM_CODE_COMBO_ENABLED, true) {
688
689 @Override
690 public void applyDataBinding() {
691 if (programMnemonicCombo != null) {
692 programMnemonicCombo.addPropertyChangeListener("selectedItem", this);
693 }
694 }
695
696 @Override
697 public void processDataBinding() {
698 if (programMnemonicCombo != null) {
699 programCodeCombo.setEnabled(programMnemonicCombo.getSelectedItem() == null);
700 }
701 }
702
703 @Override
704 public void removeDataBinding() {
705 if (programMnemonicCombo != null) {
706 programMnemonicCombo.removePropertyChangeListener("selectedItem", this);
707 }
708 }
709 });
710 registerDataBinding(new DefaultJAXXBinding(this, BINDING_PROGRAM_MNEMONIC_COMBO_SELECTED_ITEM, true) {
711
712 @Override
713 public void applyDataBinding() {
714 if (model != null) {
715 model.addPropertyChangeListener("program", this);
716 }
717 }
718
719 @Override
720 public void processDataBinding() {
721 if (model != null) {
722 programMnemonicCombo.setSelectedItem(model.getProgram());
723 }
724 }
725
726 @Override
727 public void removeDataBinding() {
728 if (model != null) {
729 model.removePropertyChangeListener("program", this);
730 }
731 }
732 });
733 registerDataBinding(new DefaultJAXXBinding(this, BINDING_PROGRAM_MNEMONIC_COMBO_ENABLED, true) {
734
735 @Override
736 public void applyDataBinding() {
737 if (programCodeCombo != null) {
738 programCodeCombo.addPropertyChangeListener("selectedItem", this);
739 }
740 }
741
742 @Override
743 public void processDataBinding() {
744 if (programCodeCombo != null) {
745 programMnemonicCombo.setEnabled(programCodeCombo.getSelectedItem() == null);
746 }
747 }
748
749 @Override
750 public void removeDataBinding() {
751 if (programCodeCombo != null) {
752 programCodeCombo.removePropertyChangeListener("selectedItem", this);
753 }
754 }
755 });
756 }
757
758 }