1 package fr.ifremer.dali.ui.swing.content.synchro.changes;
2
3 import fr.ifremer.dali.dto.system.synchronization.SynchroTableDTO;
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.swing.ApplicationUI;
8 import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
9 import fr.ifremer.quadrige3.ui.swing.table.SwingTable;
10 import java.awt.BorderLayout;
11 import java.awt.Component;
12 import java.awt.Container;
13 import java.awt.GridLayout;
14 import java.awt.LayoutManager;
15 import java.awt.event.ActionEvent;
16 import java.awt.event.ActionListener;
17 import java.util.ArrayList;
18 import java.util.HashMap;
19 import java.util.List;
20 import java.util.Map;
21 import java.util.TreeMap;
22 import javax.swing.Box;
23 import javax.swing.BoxLayout;
24 import javax.swing.JButton;
25 import javax.swing.JLabel;
26 import javax.swing.JList;
27 import javax.swing.JPanel;
28 import javax.swing.JScrollPane;
29 import jaxx.runtime.JAXXBinding;
30 import jaxx.runtime.JAXXContext;
31 import jaxx.runtime.JAXXObject;
32 import jaxx.runtime.JAXXObjectDescriptor;
33 import jaxx.runtime.JAXXUtil;
34 import jaxx.runtime.SwingUtil;
35 import jaxx.runtime.context.DefaultJAXXContext;
36 import jaxx.runtime.swing.help.JAXXHelpUI;
37 import org.apache.commons.logging.Log;
38 import org.apache.commons.logging.LogFactory;
39 import static org.nuiton.i18n.I18n.t;
40
41 public class SynchroChangesUI extends JPanel implements JAXXHelpUI<DaliHelpBroker>, DaliUI<SynchroChangesUIModel, SynchroChangesUIHandler>, JAXXObject {
42
43
44
45
46
47 private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAKVVz28bRRR+cWs3dpI2JDRt1VQqtKgIxJjSA0jhR5tUVhM5UOEiRfjCeHdiT5md3c7MtmsQCIl/gD8B7lyQuHFCHDhz4IL4FxDiwBXxZtbZ9dqbxJJ9GO2+ed/3vvf2vefv/4KqVvDCY5okRMXS8ICRvXsHBx/0HjPP3GfaUzwyoYL0t1CBSheW/MyuDdzoti28OYI3d8IgCiWTY+itNjS0GQqmB4wZA9eKCE/rZie73kqiWB2xZqLKWL/95+/KN/5X31UAkgjVncdUrp+GyjM524YK9w2sYaSntCmo7KMMxWUf9a5Y246gWr9PA/YEvoRzbahFVCGZgRdnT9lxOHwSGVjVQ+kNVLgzwGhMf7Rr4N6hIvxQsYAp4lPBScyJfoYqiBdKg6RkhCFeCiKdCY4ocgFqBqpB6DNhoDU3574lyolrPRV+ypSBW8cy38e3B4jZdp45dJklkaBctmnPSluzhU1GmD1ntI71zH/x5t5DKpl4fdLXWYu+FzAVboaPhhHLmJ63x8XM5fyYC9f47Z4rCkBbEbBkaE+wh6Mvfang3fFUKIQVUtRRdRgDZKw6T2LqK95nd/ISOS/Ssc+P7KNFX5tK/LZ9v1QMUB9gZYsp3pgCvpEB87tlj0qPie0wNvjlYb2QznZs0Go9b2WAFeyQQ66CFGGNr44cFFwtDBeOLcnHNp+rhS5UVYxmA5e705P+IV6lM355YsYtobv9b2P995/+/LF1NNgrGPtiqevYXsKBi1QYYZNyG/pCOtWx4aK5T6OtLtQ1E7jU3NLaLBHWGV2jOIzn2oRYOHlA9QApquf++PmXjU9+OwOVFjRESP0Wtf67UDcDhVUIhZ9E7911ipafLeK5arUZOGtYgr206QZmcvICpjXtswQLsllSkExVr/7rv+udH+4eFWUBRV451j0vTPVjqHEpuGRu341WWel+W4o0i/0wX1llSwwmRjoajfodd755Qv5XSvO3nZ3EFrvlsrJP78B4y58WoYIjIKxjK8QNtfp5ceK/yOK/VBo/9yaOpEzLaM9YupkUncEa8dtvyX3JglByz8BVF9sLA3wnHP8ulCFBdtvARuKh3LXbGRafoqtPDcuEr02Dy1QWR3dOjeneOE5jLb0uV5jelSksbKMZGqcm6BB9cYu/jQWh13tc+ri53p3iXrBn41RGax7Yg5czbMzNcHNuhpdnqEsDq92XAXblwQlMr8yk5bMTGF6bZbi5l/5PzKXi61NU/A99oO0LqgoAAA==";
48 private static final Log log = LogFactory.getLog(SynchroChangesUI.class);
49 private static final long serialVersionUID = 1L;
50
51
52
53
54
55 protected List<Object> $activeBindings = new ArrayList<Object>();
56 protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
57 protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
58 protected Map<String, Object> $objectMap = new HashMap<String, Object>();
59 protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
60 private boolean allComponentsCreated;
61 protected final JAXXContext delegateContext = new DefaultJAXXContext();
62
63
64
65
66
67 protected DaliHelpBroker broker;
68 protected JButton cancelBouton;
69 protected JButton confirmBouton;
70 protected JLabel entityTypeLabel;
71 protected JList<SynchroTableDTO> entityTypeList;
72 protected JLabel explainLabel;
73 protected final SynchroChangesUIHandler handler = createHandler();
74 protected JLabel helpLabel;
75 protected SynchroChangesUIModel model;
76 protected SynchroChangesUI synchroChangesUI = this;
77 protected SwingTable table;
78 protected JScrollPane tableParent;
79
80
81
82
83
84 private JPanel $JPanel0;
85 private JPanel $JPanel1;
86 private JPanel $JPanel2;
87
88
89
90
91
92 public SynchroChangesUI(ApplicationUI parentUI) {
93 ApplicationUIUtil.setParentUI(this, parentUI);
94 $initialize();
95 }
96
97 public SynchroChangesUI() {
98 $initialize();
99 }
100
101 public SynchroChangesUI(JAXXContext parentContext) {
102 JAXXUtil.initContext(this, parentContext);
103 $initialize();
104 }
105
106 public SynchroChangesUI(boolean param0) {
107 super(param0);
108 $initialize();
109 }
110
111 public SynchroChangesUI(JAXXContext parentContext, boolean param1) {
112 super(param1);
113 JAXXUtil.initContext(this, parentContext);
114 $initialize();
115 }
116
117 public SynchroChangesUI(LayoutManager param0) {
118 super(param0);
119 $initialize();
120 }
121
122 public SynchroChangesUI(JAXXContext parentContext, LayoutManager param1) {
123 super(param1);
124 JAXXUtil.initContext(this, parentContext);
125 $initialize();
126 }
127
128 public SynchroChangesUI(LayoutManager param0, boolean param1) {
129 super(param0 ,param1);
130 $initialize();
131 }
132
133 public SynchroChangesUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
134 super(param1 ,param2);
135 JAXXUtil.initContext(this, parentContext);
136 $initialize();
137 }
138
139
140
141
142
143 public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
144 return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
145 }
146
147
148
149
150
151 @Override
152 public void applyDataBinding(String $binding) {
153 if (allComponentsCreated && $bindings.containsKey($binding)) {
154 getDataBinding($binding).applyDataBinding();
155 }
156 processDataBinding($binding);
157 }
158
159 @Override
160 public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
161 super.firePropertyChange(propertyName, oldValue, newValue);
162 }
163
164 @Override
165 public Map<String, Object> get$objectMap() {
166 return $objectMap;
167 }
168
169 @Override
170 public JAXXBinding getDataBinding(String bindingId) {
171 return $bindings.get(bindingId);
172 }
173
174 @Override
175 public JAXXBinding[] getDataBindings() {
176 return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
177 }
178
179 @Override
180 public Object getObjectById(String id) {
181 return $objectMap.get(id);
182 }
183
184 @Override
185 public void processDataBinding(String $binding, boolean $force) {
186 if (!$force && $activeBindings.contains($binding)) {
187 return;
188 }
189 $activeBindings.add($binding);
190 try {
191 if (allComponentsCreated && $bindings.containsKey($binding)) {
192 getDataBinding($binding).processDataBinding();
193 }
194 } finally {
195 $activeBindings.remove($binding);
196 }
197 }
198
199 @Override
200 public void processDataBinding(String $binding) {
201 processDataBinding($binding, false);
202 }
203
204 @Override
205 public void registerDataBinding(JAXXBinding binding) {
206 $bindings.put(binding.getId(), binding);
207 }
208
209 @Override
210 public void removeDataBinding(String $binding) {
211 if (allComponentsCreated && $bindings.containsKey($binding)) {
212 getDataBinding($binding).removeDataBinding();
213 }
214 }
215
216
217
218
219
220 @Override
221 public <T> T getContextValue(Class<T> clazz) {
222 return delegateContext.getContextValue(clazz, null);
223 }
224
225 @Override
226 public <T> T getContextValue(Class<T> clazz, String name) {
227 return delegateContext.getContextValue(clazz, name);
228 }
229
230 @Override
231 public JAXXContext getDelegateContext() {
232 return delegateContext;
233 }
234
235 @Override
236 public <O extends Container> O getParentContainer(Class<O> clazz) {
237 return SwingUtil.getParentContainer(this, clazz);
238 }
239
240 @Override
241 public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
242 return SwingUtil.getParentContainer(source, clazz);
243 }
244
245 @Override
246 public <T> void removeContextValue(Class<T> clazz) {
247 delegateContext.removeContextValue(clazz, null);
248 }
249
250 @Override
251 public <T> void removeContextValue(Class<T> clazz, String name) {
252 delegateContext.removeContextValue(clazz, name);
253 }
254
255 @Override
256 public <T> void setContextValue(T o) {
257 delegateContext.setContextValue(o, null);
258 }
259
260 @Override
261 public <T> void setContextValue(T o, String name) {
262 delegateContext.setContextValue(o, name);
263 }
264
265
266
267
268
269 public void doActionPerformed__on__cancelBouton(ActionEvent event) {
270 if (log.isDebugEnabled()) {
271 log.debug(event);
272 }
273 handler.cancel();
274 }
275
276 public void doActionPerformed__on__confirmBouton(ActionEvent event) {
277 if (log.isDebugEnabled()) {
278 log.debug(event);
279 }
280 handler.confirm();
281 }
282
283
284
285
286
287 public DaliHelpBroker getBroker() {
288 return broker;
289 }
290
291 public JButton getCancelBouton() {
292 return cancelBouton;
293 }
294
295 public JButton getConfirmBouton() {
296 return confirmBouton;
297 }
298
299 public JLabel getEntityTypeLabel() {
300 return entityTypeLabel;
301 }
302
303 public JList<SynchroTableDTO> getEntityTypeList() {
304 return entityTypeList;
305 }
306
307 public JLabel getExplainLabel() {
308 return explainLabel;
309 }
310
311 public SynchroChangesUIHandler getHandler() {
312 return handler;
313 }
314
315 public JLabel getHelpLabel() {
316 return helpLabel;
317 }
318
319 public SynchroChangesUIModel getModel() {
320 return model;
321 }
322
323 public SwingTable getTable() {
324 return table;
325 }
326
327 public JScrollPane getTableParent() {
328 return tableParent;
329 }
330
331
332
333
334
335 @Override
336 public void registerHelpId(DaliHelpBroker broker, Component component, String helpId) {
337 broker.installUI(component, helpId);
338 }
339
340 @Override
341 public void showHelp(String helpId) {
342 getBroker().showHelp(this, helpId);
343 }
344
345
346
347
348
349 protected JPanel get$JPanel0() {
350 return $JPanel0;
351 }
352
353 protected JPanel get$JPanel1() {
354 return $JPanel1;
355 }
356
357 protected JPanel get$JPanel2() {
358 return $JPanel2;
359 }
360
361
362
363
364
365 protected void addChildrenToSynchroChangesUI() {
366 if (!allComponentsCreated) {
367 return;
368 }
369 add(explainLabel, BorderLayout.PAGE_START);
370 add($JPanel0, BorderLayout.WEST);
371 add(tableParent, BorderLayout.CENTER);
372 add($JPanel1, BorderLayout.PAGE_END);
373 }
374
375 protected void addChildrenToTableParent() {
376 if (!allComponentsCreated) {
377 return;
378 }
379 tableParent.getViewport().add(table);
380 }
381
382 protected void createBroker() {
383 $objectMap.put("broker", broker = new DaliHelpBroker("dali.home.help"));
384 }
385
386 protected void createCancelBouton() {
387 $objectMap.put("cancelBouton", cancelBouton = new JButton());
388
389 cancelBouton.setName("cancelBouton");
390 cancelBouton.setText(t("dali.common.cancel"));
391 cancelBouton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__cancelBouton"));
392 }
393
394 protected void createConfirmBouton() {
395 $objectMap.put("confirmBouton", confirmBouton = new JButton());
396
397 confirmBouton.setName("confirmBouton");
398 confirmBouton.setText(t("dali.common.import"));
399 confirmBouton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__confirmBouton"));
400 }
401
402 protected void createEntityTypeLabel() {
403 $objectMap.put("entityTypeLabel", entityTypeLabel = new JLabel());
404
405 entityTypeLabel.setName("entityTypeLabel");
406 }
407
408 protected void createEntityTypeList() {
409 $objectMap.put("entityTypeList", entityTypeList = new JList<SynchroTableDTO>());
410
411 entityTypeList.setName("entityTypeList");
412 }
413
414 protected void createExplainLabel() {
415 $objectMap.put("explainLabel", explainLabel = new JLabel());
416
417 explainLabel.setName("explainLabel");
418 explainLabel.setText(t("dali.synchro.changes.message"));
419 }
420
421 protected SynchroChangesUIHandler createHandler() {
422 return new SynchroChangesUIHandler();
423 }
424
425 protected void createHelpLabel() {
426 $objectMap.put("helpLabel", helpLabel = new JLabel());
427
428 helpLabel.setName("helpLabel");
429 helpLabel.setText(t("dali.synchro.changes.help"));
430 }
431
432 protected void createModel() {
433 $objectMap.put("model", model = getContextValue(SynchroChangesUIModel.class));
434 }
435
436 protected void createTable() {
437 $objectMap.put("table", table = new SwingTable());
438
439 table.setName("table");
440 }
441
442 protected void createTableParent() {
443 $objectMap.put("tableParent", tableParent = new JScrollPane());
444
445 tableParent.setName("tableParent");
446 }
447
448
449
450
451
452 private void $completeSetup() {
453 allComponentsCreated = true;
454 if (log.isDebugEnabled()) {
455 log.debug(this);
456 }
457 addChildrenToSynchroChangesUI();
458
459 $JPanel0.add(entityTypeLabel, BorderLayout.PAGE_START);
460 $JPanel0.add(entityTypeList, BorderLayout.CENTER);
461 addChildrenToTableParent();
462
463 $JPanel1.add(helpLabel);
464 $JPanel1.add($JPanel2, BorderLayout.PAGE_END);
465
466 $JPanel2.add(cancelBouton);
467 $JPanel2.add(confirmBouton);
468
469
470 cancelBouton.setAlignmentX(Component.CENTER_ALIGNMENT);
471 confirmBouton.setAlignmentX(Component.CENTER_ALIGNMENT);
472 cancelBouton.setMnemonic(SwingUtil.getFirstCharAt(t("dali.common.cancel.mnemonic"),'Z'));
473 cancelBouton.setIcon(SwingUtil.createActionIcon("cancel"));
474 confirmBouton.setMnemonic(SwingUtil.getFirstCharAt(t("dali.common.import.mnemonic"),'Z'));
475 confirmBouton.setIcon(SwingUtil.createActionIcon("validate"));
476 }
477
478 private void $initialize() {
479 if (allComponentsCreated) {
480 return;
481 }
482 if (log.isDebugEnabled()) {
483 log.debug(this);
484 }
485 handler.beforeInit(this);
486 $objectMap.put("synchroChangesUI", synchroChangesUI);
487 createModel();
488 createBroker();
489 createExplainLabel();
490
491 $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
492
493 $JPanel0.setName("$JPanel0");
494 $JPanel0.setLayout(new BorderLayout());
495 createEntityTypeLabel();
496 createEntityTypeList();
497 createTableParent();
498 createTable();
499
500 $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
501
502 $JPanel1.setName("$JPanel1");
503 $JPanel1.setLayout(new BorderLayout());
504 createHelpLabel();
505
506 $objectMap.put("$JPanel2", $JPanel2 = new JPanel());
507
508 $JPanel2.setName("$JPanel2");
509 $JPanel2.setLayout(new GridLayout(1,0));
510 createCancelBouton();
511 createConfirmBouton();
512
513 setName("synchroChangesUI");
514 setLayout(new BorderLayout());
515
516 $completeSetup();
517 handler.afterInit(this);
518 }
519
520 }