1 package fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.fraction.menu;
2
3 import fr.ifremer.dali.dto.referential.pmfm.FractionDTO;
4 import fr.ifremer.dali.ui.swing.DaliHelpBroker;
5 import fr.ifremer.dali.ui.swing.DaliUIContext;
6 import fr.ifremer.dali.ui.swing.util.DaliUI;
7 import fr.ifremer.quadrige3.ui.core.dto.referential.StatusDTO;
8 import fr.ifremer.quadrige3.ui.swing.ApplicationUI;
9 import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
10 import fr.ifremer.quadrige3.ui.swing.component.bean.ExtendedComboBox;
11 import java.awt.BorderLayout;
12 import java.awt.Component;
13 import java.awt.Container;
14 import java.awt.GridBagConstraints;
15 import java.awt.GridLayout;
16 import java.awt.Insets;
17 import java.awt.LayoutManager;
18 import java.util.ArrayList;
19 import java.util.HashMap;
20 import java.util.List;
21 import java.util.Map;
22 import java.util.TreeMap;
23 import javax.swing.BorderFactory;
24 import javax.swing.Box;
25 import javax.swing.BoxLayout;
26 import javax.swing.JButton;
27 import javax.swing.JLabel;
28 import javax.swing.JPanel;
29 import javax.swing.SwingConstants;
30 import jaxx.runtime.JAXXBinding;
31 import jaxx.runtime.JAXXContext;
32 import jaxx.runtime.JAXXObject;
33 import jaxx.runtime.JAXXObjectDescriptor;
34 import jaxx.runtime.JAXXUtil;
35 import jaxx.runtime.SwingUtil;
36 import jaxx.runtime.binding.DefaultJAXXBinding;
37 import jaxx.runtime.context.DefaultJAXXContext;
38 import jaxx.runtime.swing.Table;
39 import jaxx.runtime.swing.help.JAXXHelpUI;
40 import org.apache.commons.logging.Log;
41 import org.apache.commons.logging.LogFactory;
42 import static org.nuiton.i18n.I18n.t;
43
44 public class ManageFractionsMenuUI extends JPanel implements JAXXHelpUI<DaliHelpBroker>, DaliUI<ManageFractionsMenuUIModel, ManageFractionsMenuUIHandler>, JAXXObject {
45
46
47
48
49
50 public static final String BINDING_LABEL_COMBO_SELECTED_ITEM = "labelCombo.selectedItem";
51 public static final String BINDING_STATUS_COMBO_SELECTED_ITEM = "statusCombo.selectedItem";
52
53
54
55
56
57 private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAALVWTW8bRRgeGzuJ4yQUO4lSEUoaPpogNIYicQnQ1AlWUzm0qo0UYSQY746dKePd7ewsWcsq4geAxIkznLhwAIkbJ8SBMwcuiL9QIQ5cEe/MrndtZ/1RIiJlsvvO+/G8zzvzbL59hLKuQFfvE9/HwrMk61B8++bJyZ3mfWrIQ+oagjnSFij4SaVRuoHyZmR3JXquUVXhpTC8dGB3HNui1kD0XhUturLLqXtKqZTomeEIw3VLtWh7z3c80c8agUrK+tVff6a/MD/9Oo2Q7wC6FWhla1pU3EmmitLMlKgAlT4mJU6sNsAQzGoD3mVlO+DEdd8hHfoAfYLmq2jOIQKSSbQ9e8s6h473HYkWnr99l1iUvyLR+y2BWUvQDhXYJJxhj2H3DKpjw7YkJMMdYpE2xYK2qCrLCMdOp9XBLUEMyWwLd6jl4WPtVQlt7jHY3j1yHF1zTqJsxzYpl4j8n+WOVY245lxT2B9RIdG1sUUP4e0WxJS1ZxyaU0U0RTAYNQM/DAh4U165yHnFpZxqHGHExtD0g8A6aXI9wEIU15/Cq+p9VS1r0d4iJ03Kq2oZRaCNym1jxBvm37QlenOg2wceMQVr09cGeQ5PCW5SYuG3fWDdpKYOLtv+cOI+xOsJEPOuJNJzIzibatka3dZ5lenZ4e21iLSyJyWMMCJ2dZilvMEpEYGTRMUhKgKrcnwx8l9ywd04jbdeCvcFenpoLnDfcXzf4wuZaqCs8MAMg2ycl4h7sBWIw8aIOKiEevef9eJvP/7xQ6WvCAWovZboOiBocFMdYTtwXpkq/WQgB55kvHRMnL0GygWMabXbTABWC7cBHNR7SoVjFY5vEfcUUmTnf//p5/UPf30CpStwYmxiVojyP0I5eSqABZubvnNjXyNaOluA9RL8ZuB4tRiXVKgTLOFdePBnGfzPDqlhCwI54IK3CHfBnlP2e9RVAhu6ZtRBk2i+pzXgoQ/UbSZQF+Fv5n75u1j7fr9PXwrauTzWPaYw+x6aYxZnFtWSGqplooTmHZd6ph2rYpJOIlDKS6P3I9SI63p9/RxbKSU7tjCV7NzolfVTQHMXG4ISSetMcmoGOztyZ1sLEohfi7UDaZPKYXt3F4hSNfY1A+qpjM5pjTMFThqusNaGiprRUi/WiYdqPNSHKRU0gvDsdbEFLCVVHlCkGaouBTipeSRpB257MHvcprKv2Tu7AGGhXxYe+wI/vrgG/ngtL/cGZCjueXW458AnqfCgyD1+28W47ZrOM9r03NTKM/UMd7TwAXEczgyiKLypiVT1D5R4Bq/YUGcb6i8GPB+pLy5IXf+uamKuaGLCL22gpFgLMObBtygvbZvXmVPX7ptj3SVzErsaUPP/2tVqr6YrTWor02KWGXW1kQAzsZ/1BMcxnQx9Z6a1omSBk64NzmjlDZNIstUEgPARe+tc7pRai1MzKvNnavk8OcPlGTAtKGWudx06Ic+VCyO5OlOGLydkeOHCGK7NwMYizL5tgQbLkwmZdmfC8s2EDC/PgCXDjOC/lwuh+G4Kin8BzWQa6XkNAAA=";
58 private static final Log log = LogFactory.getLog(ManageFractionsMenuUI.class);
59 private static final long serialVersionUID = 1L;
60
61
62
63
64
65 protected List<Object> $activeBindings = new ArrayList<Object>();
66 protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
67 protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
68 protected Map<String, Object> $objectMap = new HashMap<String, Object>();
69 protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
70 private boolean allComponentsCreated;
71 protected final JAXXContext delegateContext = new DefaultJAXXContext();
72
73
74
75
76
77 protected DaliHelpBroker broker;
78 protected JButton clearButton;
79 protected final ManageFractionsMenuUIHandler handler = createHandler();
80 protected ExtendedComboBox<FractionDTO> labelCombo;
81 protected JLabel labelLabel;
82 protected JPanel menuPanel;
83 protected ManageFractionsMenuUIModel model;
84 protected JButton searchButton;
85 protected JPanel selectionButtonsPanel;
86 protected Table selectionPanel;
87 protected ExtendedComboBox<StatusDTO> statusCombo;
88 protected JLabel statusLabel;
89
90
91
92
93
94 private ManageFractionsMenuUI $JPanel0 = this;
95 private JPanel $JPanel1;
96 private JPanel $JPanel2;
97
98
99
100
101
102 public ManageFractionsMenuUI(ApplicationUI parentUI) {
103 ApplicationUIUtil.setParentUI(this, parentUI);
104 $initialize();
105 }
106
107 public ManageFractionsMenuUI() {
108 $initialize();
109 }
110
111 public ManageFractionsMenuUI(JAXXContext parentContext) {
112 JAXXUtil.initContext(this, parentContext);
113 $initialize();
114 }
115
116 public ManageFractionsMenuUI(boolean param0) {
117 super(param0);
118 $initialize();
119 }
120
121 public ManageFractionsMenuUI(JAXXContext parentContext, boolean param1) {
122 super(param1);
123 JAXXUtil.initContext(this, parentContext);
124 $initialize();
125 }
126
127 public ManageFractionsMenuUI(LayoutManager param0) {
128 super(param0);
129 $initialize();
130 }
131
132 public ManageFractionsMenuUI(JAXXContext parentContext, LayoutManager param1) {
133 super(param1);
134 JAXXUtil.initContext(this, parentContext);
135 $initialize();
136 }
137
138 public ManageFractionsMenuUI(LayoutManager param0, boolean param1) {
139 super(param0 ,param1);
140 $initialize();
141 }
142
143 public ManageFractionsMenuUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
144 super(param1 ,param2);
145 JAXXUtil.initContext(this, parentContext);
146 $initialize();
147 }
148
149
150
151
152
153 public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
154 return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
155 }
156
157
158
159
160
161 @Override
162 public void applyDataBinding(String $binding) {
163 if (allComponentsCreated && $bindings.containsKey($binding)) {
164 getDataBinding($binding).applyDataBinding();
165 }
166 processDataBinding($binding);
167 }
168
169 @Override
170 public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
171 super.firePropertyChange(propertyName, oldValue, newValue);
172 }
173
174 @Override
175 public Map<String, Object> get$objectMap() {
176 return $objectMap;
177 }
178
179 @Override
180 public JAXXBinding getDataBinding(String bindingId) {
181 return $bindings.get(bindingId);
182 }
183
184 @Override
185 public JAXXBinding[] getDataBindings() {
186 return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
187 }
188
189 @Override
190 public Object getObjectById(String id) {
191 return $objectMap.get(id);
192 }
193
194 @Override
195 public void processDataBinding(String $binding, boolean $force) {
196 if (!$force && $activeBindings.contains($binding)) {
197 return;
198 }
199 $activeBindings.add($binding);
200 try {
201 if (allComponentsCreated && $bindings.containsKey($binding)) {
202 getDataBinding($binding).processDataBinding();
203 }
204 } finally {
205 $activeBindings.remove($binding);
206 }
207 }
208
209 @Override
210 public void processDataBinding(String $binding) {
211 processDataBinding($binding, false);
212 }
213
214 @Override
215 public void registerDataBinding(JAXXBinding binding) {
216 $bindings.put(binding.getId(), binding);
217 }
218
219 @Override
220 public void removeDataBinding(String $binding) {
221 if (allComponentsCreated && $bindings.containsKey($binding)) {
222 getDataBinding($binding).removeDataBinding();
223 }
224 }
225
226
227
228
229
230 @Override
231 public <T> T getContextValue(Class<T> clazz) {
232 return delegateContext.getContextValue(clazz, null);
233 }
234
235 @Override
236 public <T> T getContextValue(Class<T> clazz, String name) {
237 return delegateContext.getContextValue(clazz, name);
238 }
239
240 @Override
241 public JAXXContext getDelegateContext() {
242 return delegateContext;
243 }
244
245 @Override
246 public <O extends Container> O getParentContainer(Class<O> clazz) {
247 return SwingUtil.getParentContainer(this, clazz);
248 }
249
250 @Override
251 public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
252 return SwingUtil.getParentContainer(source, clazz);
253 }
254
255 @Override
256 public <T> void removeContextValue(Class<T> clazz) {
257 delegateContext.removeContextValue(clazz, null);
258 }
259
260 @Override
261 public <T> void removeContextValue(Class<T> clazz, String name) {
262 delegateContext.removeContextValue(clazz, name);
263 }
264
265 @Override
266 public <T> void setContextValue(T o) {
267 delegateContext.setContextValue(o, null);
268 }
269
270 @Override
271 public <T> void setContextValue(T o, String name) {
272 delegateContext.setContextValue(o, name);
273 }
274
275
276
277
278
279 public DaliHelpBroker getBroker() {
280 return broker;
281 }
282
283 public JButton getClearButton() {
284 return clearButton;
285 }
286
287 public ManageFractionsMenuUIHandler getHandler() {
288 return handler;
289 }
290
291 public ExtendedComboBox<FractionDTO> getLabelCombo() {
292 return labelCombo;
293 }
294
295 public JLabel getLabelLabel() {
296 return labelLabel;
297 }
298
299 public JPanel getMenuPanel() {
300 return menuPanel;
301 }
302
303 public ManageFractionsMenuUIModel getModel() {
304 return model;
305 }
306
307 public JButton getSearchButton() {
308 return searchButton;
309 }
310
311 public JPanel getSelectionButtonsPanel() {
312 return selectionButtonsPanel;
313 }
314
315 public Table getSelectionPanel() {
316 return selectionPanel;
317 }
318
319 public ExtendedComboBox<StatusDTO> getStatusCombo() {
320 return statusCombo;
321 }
322
323 public JLabel getStatusLabel() {
324 return statusLabel;
325 }
326
327
328
329
330
331 @Override
332 public void registerHelpId(DaliHelpBroker broker, Component component, String helpId) {
333 broker.installUI(component, helpId);
334 }
335
336 @Override
337 public void showHelp(String helpId) {
338 getBroker().showHelp(this, helpId);
339 }
340
341
342
343
344
345 protected JPanel get$JPanel1() {
346 return $JPanel1;
347 }
348
349 protected JPanel get$JPanel2() {
350 return $JPanel2;
351 }
352
353
354
355
356
357 protected void addChildrenToMenuPanel() {
358 if (!allComponentsCreated) {
359 return;
360 }
361 menuPanel.add(selectionPanel);
362 menuPanel.add(selectionButtonsPanel);
363 }
364
365 protected void addChildrenToSelectionButtonsPanel() {
366 if (!allComponentsCreated) {
367 return;
368 }
369 selectionButtonsPanel.add(clearButton);
370 selectionButtonsPanel.add(searchButton);
371 }
372
373 protected void addChildrenToSelectionPanel() {
374 if (!allComponentsCreated) {
375 return;
376 }
377 selectionPanel.add($JPanel1, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
378 selectionPanel.add($JPanel2, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
379 }
380
381 protected void createBroker() {
382 $objectMap.put("broker", broker = new DaliHelpBroker("dali.home.help"));
383 }
384
385 protected void createClearButton() {
386 $objectMap.put("clearButton", clearButton = new JButton());
387
388 clearButton.setName("clearButton");
389 clearButton.setText(t("dali.action.search.clear.label"));
390 clearButton.setToolTipText(t("dali.action.search.clear.tip"));
391 clearButton.putClientProperty("applicationAction", ClearAction.class);
392 }
393
394 protected ManageFractionsMenuUIHandler createHandler() {
395 return new ManageFractionsMenuUIHandler();
396 }
397
398 protected void createLabelCombo() {
399 $objectMap.put("labelCombo", labelCombo = new ExtendedComboBox<FractionDTO>(this));
400
401 labelCombo.setName("labelCombo");
402 labelCombo.setFilterable(true);
403 labelCombo.setShowDecorator(false);
404 labelCombo.setProperty("fraction");
405 labelCombo.setShowReset(true);
406 }
407
408 protected void createLabelLabel() {
409 $objectMap.put("labelLabel", labelLabel = new JLabel());
410
411 labelLabel.setName("labelLabel");
412 labelLabel.setText(t("dali.property.name"));
413 }
414
415 protected void createMenuPanel() {
416 $objectMap.put("menuPanel", menuPanel = new JPanel());
417
418 menuPanel.setName("menuPanel");
419 menuPanel.setLayout(new BoxLayout(menuPanel, BoxLayout.PAGE_AXIS));
420 }
421
422 protected void createModel() {
423 $objectMap.put("model", model = getContextValue(ManageFractionsMenuUIModel.class));
424 }
425
426 protected void createSearchButton() {
427 $objectMap.put("searchButton", searchButton = new JButton());
428
429 searchButton.setName("searchButton");
430 searchButton.setText(t("dali.action.search.label"));
431 searchButton.setToolTipText(t("dali.action.search.tip"));
432 searchButton.putClientProperty("applicationAction", SearchAction.class);
433 }
434
435 protected void createSelectionButtonsPanel() {
436 $objectMap.put("selectionButtonsPanel", selectionButtonsPanel = new JPanel());
437
438 selectionButtonsPanel.setName("selectionButtonsPanel");
439 selectionButtonsPanel.setLayout(new GridLayout(1,0));
440 }
441
442 protected void createSelectionPanel() {
443 $objectMap.put("selectionPanel", selectionPanel = new Table());
444
445 selectionPanel.setName("selectionPanel");
446 }
447
448 protected void createStatusCombo() {
449 $objectMap.put("statusCombo", statusCombo = new ExtendedComboBox<StatusDTO>(this));
450
451 statusCombo.setName("statusCombo");
452 statusCombo.setFilterable(true);
453 statusCombo.setShowDecorator(false);
454 statusCombo.setProperty("status");
455 statusCombo.setShowReset(true);
456 }
457
458 protected void createStatusLabel() {
459 $objectMap.put("statusLabel", statusLabel = new JLabel());
460
461 statusLabel.setName("statusLabel");
462 statusLabel.setText(t("dali.property.status"));
463 }
464
465
466
467
468
469 private void $completeSetup() {
470 allComponentsCreated = true;
471 if (log.isDebugEnabled()) {
472 log.debug(this);
473 }
474
475 add(menuPanel);
476 addChildrenToMenuPanel();
477 addChildrenToSelectionPanel();
478
479 $JPanel1.add(labelLabel, BorderLayout.PAGE_START);
480 $JPanel1.add(labelCombo, BorderLayout.CENTER);
481
482 $JPanel2.add(statusLabel, BorderLayout.PAGE_START);
483 $JPanel2.add(statusCombo, BorderLayout.CENTER);
484 addChildrenToSelectionButtonsPanel();
485
486
487 JAXXUtil.applyDataBinding(this, $bindings.keySet());
488
489
490 labelCombo.setBeanType(FractionDTO.class);
491 statusCombo.setBeanType(StatusDTO.class);
492 clearButton.setAlignmentX(Component.CENTER_ALIGNMENT);
493 searchButton.setAlignmentX(Component.CENTER_ALIGNMENT);
494 selectionPanel.setBorder(BorderFactory.createTitledBorder(t("dali.config.menu.title")));
495 labelLabel.setLabelFor(labelCombo);
496 labelCombo.setBean(model);
497 statusLabel.setLabelFor(statusCombo);
498 statusCombo.setBean(model);
499 clearButton.setIcon(SwingUtil.createActionIcon("reset"));
500 searchButton.setIcon(SwingUtil.createActionIcon("find"));
501 }
502
503 private void $initialize() {
504 if (allComponentsCreated) {
505 return;
506 }
507 if (log.isDebugEnabled()) {
508 log.debug(this);
509 }
510 handler.beforeInit(this);
511 $objectMap.put("$JPanel0", $JPanel0);
512 createModel();
513 createBroker();
514 createMenuPanel();
515 createSelectionPanel();
516
517 $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
518
519 $JPanel1.setName("$JPanel1");
520 $JPanel1.setLayout(new BorderLayout());
521 createLabelLabel();
522 createLabelCombo();
523
524 $objectMap.put("$JPanel2", $JPanel2 = new JPanel());
525
526 $JPanel2.setName("$JPanel2");
527 $JPanel2.setLayout(new BorderLayout());
528 createStatusLabel();
529 createStatusCombo();
530 createSelectionButtonsPanel();
531 createClearButton();
532 createSearchButton();
533
534 setName("$JPanel0");
535
536
537 $registerDefaultBindings();
538 $completeSetup();
539 handler.afterInit(this);
540 }
541
542 private void $registerDefaultBindings() {
543
544 registerDataBinding(new DefaultJAXXBinding(this, BINDING_LABEL_COMBO_SELECTED_ITEM, true) {
545
546 @Override
547 public void applyDataBinding() {
548 if (model != null) {
549 model.addPropertyChangeListener("fraction", this);
550 }
551 }
552
553 @Override
554 public void processDataBinding() {
555 if (model != null) {
556 labelCombo.setSelectedItem(model.getFraction());
557 }
558 }
559
560 @Override
561 public void removeDataBinding() {
562 if (model != null) {
563 model.removePropertyChangeListener("fraction", this);
564 }
565 }
566 });
567 registerDataBinding(new DefaultJAXXBinding(this, BINDING_STATUS_COMBO_SELECTED_ITEM, true) {
568
569 @Override
570 public void applyDataBinding() {
571 if (model != null) {
572 model.addPropertyChangeListener("status", this);
573 }
574 }
575
576 @Override
577 public void processDataBinding() {
578 if (model != null) {
579 statusCombo.setSelectedItem(model.getStatus());
580 }
581 }
582
583 @Override
584 public void removeDataBinding() {
585 if (model != null) {
586 model.removePropertyChangeListener("status", this);
587 }
588 }
589 });
590 }
591
592 }