View Javadoc
1   package fr.ifremer.dali.ui.swing.content.manage.campaign.menu;
2   
3   import fr.ifremer.dali.dto.SearchDateDTO;
4   import fr.ifremer.dali.dto.data.survey.CampaignDTO;
5   import fr.ifremer.dali.ui.swing.DaliHelpBroker;
6   import fr.ifremer.dali.ui.swing.DaliUIContext;
7   import fr.ifremer.dali.ui.swing.content.manage.filter.element.menu.ApplyFilterUI;
8   import fr.ifremer.dali.ui.swing.content.manage.referential.menu.ReferentialMenuUI;
9   import fr.ifremer.dali.ui.swing.util.DaliUI;
10  import fr.ifremer.quadrige3.ui.swing.ApplicationUI;
11  import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
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.KeyEvent;
24  import java.awt.event.KeyListener;
25  import java.util.ArrayList;
26  import java.util.HashMap;
27  import java.util.List;
28  import java.util.Map;
29  import java.util.TreeMap;
30  import javax.swing.BorderFactory;
31  import javax.swing.Box;
32  import javax.swing.BoxLayout;
33  import javax.swing.JButton;
34  import javax.swing.JLabel;
35  import javax.swing.JPanel;
36  import javax.swing.JTextField;
37  import javax.swing.SwingConstants;
38  import jaxx.runtime.JAXXBinding;
39  import jaxx.runtime.JAXXContext;
40  import jaxx.runtime.JAXXObject;
41  import jaxx.runtime.JAXXObjectDescriptor;
42  import jaxx.runtime.JAXXUtil;
43  import jaxx.runtime.SwingUtil;
44  import jaxx.runtime.binding.DefaultJAXXBinding;
45  import jaxx.runtime.context.DefaultJAXXContext;
46  import jaxx.runtime.swing.Table;
47  import jaxx.runtime.swing.help.JAXXHelpUI;
48  import org.apache.commons.logging.Log;
49  import org.apache.commons.logging.LogFactory;
50  import static org.nuiton.i18n.I18n.t;
51  
52  public class CampaignsMenuUI extends JPanel implements JAXXHelpUI<DaliHelpBroker>, ReferentialMenuUI<CampaignsMenuUIModel, CampaignsMenuUIHandler>, JAXXObject {
53  
54      /*-----------------------------------------------------------------------*/
55      /*------------------ Constants for all public bindings ------------------*/
56      /*-----------------------------------------------------------------------*/
57  
58      public static final String BINDING_END_DATE1_EDITOR_DATE = "endDate1Editor.date";
59      public static final String BINDING_END_DATE2_EDITOR_DATE = "endDate2Editor.date";
60      public static final String BINDING_END_DATE_COMBO_SELECTED_ITEM = "endDateCombo.selectedItem";
61      public static final String BINDING_NAME_EDITOR_TEXT = "nameEditor.text";
62      public static final String BINDING_START_DATE1_EDITOR_DATE = "startDate1Editor.date";
63      public static final String BINDING_START_DATE2_EDITOR_DATE = "startDate2Editor.date";
64      public static final String BINDING_START_DATE_COMBO_SELECTED_ITEM = "startDateCombo.selectedItem";
65  
66      /*-----------------------------------------------------------------------*/
67      /*------------------------- Other static fields -------------------------*/
68      /*-----------------------------------------------------------------------*/
69  
70      private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAM1XzW8bRRQfm3w532lISEIKbUA0KdWkSQEBKeTTURMSWjVBCuQA492JM2W9u50dE5uoiD+BPwHuXJC4cUIcOPfABSHBP1AhDnBEvDdr73rttb3BHEiVbXbmvd/8fm/evDf79RPS7Uly9QErlags2koUON1dPzq6m3vADbXFPUMKVzmS+D+pNEkfkwEzGPcUeeF4D90XK+6Lm07BdWxu13iv7JF+T5Ut7p1yrhS5HPUwPG/xIJheKblFWUUNSMWhfvnH7+kvzM+/ShNScoHdNEi50s4rVNK1R9LCVOQSrPQJW7SYnQcaUth54DuEY5sW87x3WYE/JJ+R3j3S4zIJYIrMJZesMbR/yVVkxGAFl4m87e1zu/jejiLZE0nFieQFLqnJLEGLgnpnQIIajq0AkxaYzfKcVj1pATzpZhTHdfUaPYp0FxyTW4rs/ie4+wgWgvfkpPMxl4pca4q+BW93wGdDW4auQ8x1rfK2sBSXqHsnKb8T7UK5BaY4iizXa7FwgUywzrAHloYSjn2P2RiIqUhG+EscspzFo359L+5qh5uQELj3pYqpP4pGE4Ftxoac2GM5hI8a60G0mgqM+9E4awpICkUmI9aHvKS2BbfMqEeVyhK+z0SXHvYUk2qLKR4sdRkfV2MsIC1zjiJv1UT6YZGZUuT5rdpwV5KX5jizabYEwTe5qZ03nFIUfDQAX6pKej0pvAledBd97wkDciOKXBW9HCM6w2xTy10K9L4cQ2nZp4Tj16M2VfBbMeCDILcxnksN8zogOHYtOj9cmV+qW32pYfVXWklbDpZ+owG6XlhoMRFk+0ZRKcf2gmydiab3gGFxJn0jRcYjaeiPouFqqNoDc+M0nNqszEvybORAQfGmYfEOq2vqmHTLIgzDCTxurPf3Ycqv9FN1lR4B9ezfk+M/fffLt9vV8v48rD0Ra1rTnaDsutJxoUYJXHrEr+1FJazFfeauHJOMHzHdumZjiB1UpoEcrDeG7hTd6R3mnQJEd+/P3/8w+dHjp0h6m/RbDjO3GdrvkIw6lRAFxzJL7uqaZjR41gfPUfjtgkLgVzIsPQreZRH+GwL7sy1uOJLpw9R9wiwPxjM4fp972C0rpl14PBXpPdcF/lEJQjcbE7qAfy7z45/jB9+sVcOXAjnTTc3DEHZ/QHqEbQmb6/5YaX2x/XDA9XjRdMIWF9f0CLS90fqqUukL7+jn3YZopbDVONLEVrN6vqH/8sNcpobkcCQOhbK46c/Mq/k53UKgc5yIvN8iFBrMLSxAoHCN93UE8K9j0tAk3DZ00nCGLTyk27hHg+dhRX+E2wNVHPqAZlDJvTJFk7iVw9bRbtFUAD3mbznNc4XBn4/XVNNnkkNPRVnrEq3raXzUIr0nQdQG/Thzc0fxApy3UMiBLi8HVUDQBDGu8oBz60XnW9PRWZVENOpT5JkaGkE7axLVhoaXQHWQutdjUzdbcFW5krk3b+C/VxfCPBqL7gi0h9g0CjpiZ7KX28pevmhKTcakFI9XEWm9F0+nmfp0yvpw9ck05NXOtiJywUSaCAlUwJulUd0l4X+WRMudSG6WQnWXl3ZLQIO89CF+IwiDYWFe1+UZrirnm3hz8V+pgY0FdPYz/b6D3wpwz6g2Si3+OS3eN6D+1lN9+6GWf2UfUI5jHQr3UJvPNjVXwo0TVnuV+reqnj73M7aVrK4TYZt1lTpKM1bPZIxhEyWRS16CHOixWNkBYzJ8G7KBXckBQbhBvt2AncJnf1tEHP4VH7/FI0x3jDCXQFUfXqwOyy5vgfNSx0xuJGAyfupI8SnsPbPWLfgIxw/eFpC0Y1LtDz4OP2mB8FrHHN5MhPBXC4TbHXNYS7A5/ay6JUctkDaScEmNtEDIJinGwvC/yjpiMdWGxT+Ic4tuHhQAAA==";
71      private static final Log log = LogFactory.getLog(CampaignsMenuUI.class);
72      private static final long serialVersionUID = 1L;
73  
74      /*-----------------------------------------------------------------------*/
75      /*--------------------------- Internal states ---------------------------*/
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      /*------------------------ Protected components  ------------------------*/
88      /*-----------------------------------------------------------------------*/
89  
90      protected JLabel andLabel1;
91      protected JLabel andLabel2;
92      protected ApplyFilterUI applyFilterUI;
93      protected DaliHelpBroker broker;
94      protected CampaignsMenuUI campaignsMenuUI = this;
95      protected JButton clearButton;
96      protected JDatePicker endDate1Editor;
97      protected JDatePicker endDate2Editor;
98      protected ExtendedComboBox<SearchDateDTO> endDateCombo;
99      protected JLabel endDateLabel;
100     protected final CampaignsMenuUIHandler handler = createHandler();
101     protected CampaignsMenuUIModel model;
102     protected JTextField nameEditor;
103     protected JLabel nameLabel;
104     protected JButton searchButton;
105     protected JPanel selectionButtonsPanel;
106     protected Table selectionPanel;
107     protected JDatePicker startDate1Editor;
108     protected JDatePicker startDate2Editor;
109     protected ExtendedComboBox<SearchDateDTO> startDateCombo;
110     protected JLabel startDateLabel;
111 
112     /*-----------------------------------------------------------------------*/
113     /*------------------------- Private components  -------------------------*/
114     /*-----------------------------------------------------------------------*/
115 
116     private JPanel $JPanel0;
117     private JPanel $JPanel1;
118     private JPanel $JPanel2;
119     private JPanel $JPanel3;
120     private JPanel $JPanel4;
121 
122     /*-----------------------------------------------------------------------*/
123     /*---------------------------- Constructors  ----------------------------*/
124     /*-----------------------------------------------------------------------*/
125 
126     public CampaignsMenuUI(ApplicationUI parentUI) {
127         ApplicationUIUtil.setParentUI(this, parentUI);
128             $initialize();
129     }
130 
131     public CampaignsMenuUI() {
132         $initialize();
133     }
134 
135     public CampaignsMenuUI(JAXXContext parentContext) {
136         JAXXUtil.initContext(this, parentContext);
137         $initialize();
138     }
139 
140     public CampaignsMenuUI(boolean param0) {
141         super(param0);
142         $initialize();
143     }
144 
145     public CampaignsMenuUI(JAXXContext parentContext, boolean param1) {
146         super(param1);
147         JAXXUtil.initContext(this, parentContext);
148         $initialize();
149     }
150 
151     public CampaignsMenuUI(LayoutManager param0) {
152         super(param0);
153         $initialize();
154     }
155 
156     public CampaignsMenuUI(JAXXContext parentContext, LayoutManager param1) {
157         super(param1);
158         JAXXUtil.initContext(this, parentContext);
159         $initialize();
160     }
161 
162     public CampaignsMenuUI(LayoutManager param0, boolean param1) {
163         super(param0 ,param1);
164         $initialize();
165     }
166 
167     public CampaignsMenuUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
168         super(param1 ,param2);
169         JAXXUtil.initContext(this, parentContext);
170         $initialize();
171     }
172 
173     /*-----------------------------------------------------------------------*/
174     /*--------------------------- Statics methods ---------------------------*/
175     /*-----------------------------------------------------------------------*/
176 
177     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
178         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
179     }
180 
181     /*-----------------------------------------------------------------------*/
182     /*---------------------- JAXXObject implementation ----------------------*/
183     /*-----------------------------------------------------------------------*/
184 
185     @Override
186     public void applyDataBinding(String $binding) {
187         if (allComponentsCreated && $bindings.containsKey($binding)) {
188             getDataBinding($binding).applyDataBinding();
189         }
190         processDataBinding($binding);
191     }
192 
193     @Override
194     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
195         super.firePropertyChange(propertyName, oldValue, newValue);
196     }
197 
198     @Override
199     public Map<String, Object> get$objectMap() {
200         return $objectMap;
201     }
202 
203     @Override
204     public JAXXBinding getDataBinding(String bindingId) {
205         return $bindings.get(bindingId);
206     }
207 
208     @Override
209     public JAXXBinding[] getDataBindings() {
210         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
211     }
212 
213     @Override
214     public Object getObjectById(String id) {
215         return $objectMap.get(id);
216     }
217 
218     @Override
219     public void processDataBinding(String $binding, boolean $force) {
220         if (!$force && $activeBindings.contains($binding)) { 
221             return;
222         }
223         $activeBindings.add($binding);
224         try {
225             if (allComponentsCreated && $bindings.containsKey($binding)) {
226                 getDataBinding($binding).processDataBinding();
227             }
228         } finally {
229             $activeBindings.remove($binding);
230         }
231     }
232 
233     @Override
234     public void processDataBinding(String $binding) {
235         processDataBinding($binding, false);
236     }
237 
238     @Override
239     public void registerDataBinding(JAXXBinding binding) {
240         $bindings.put(binding.getId(), binding);
241     }
242 
243     @Override
244     public void removeDataBinding(String $binding) {
245         if (allComponentsCreated && $bindings.containsKey($binding)) {
246             getDataBinding($binding).removeDataBinding();
247         }
248     }
249 
250     /*-----------------------------------------------------------------------*/
251     /*--------------------- JAXXContext implementation  ---------------------*/
252     /*-----------------------------------------------------------------------*/
253 
254     @Override
255     public <T> T getContextValue(Class<T> clazz) {
256         return delegateContext.getContextValue(clazz, null);
257     }
258 
259     @Override
260     public <T> T getContextValue(Class<T> clazz, String name) {
261         return delegateContext.getContextValue(clazz, name);
262     }
263 
264     @Override
265     public JAXXContext getDelegateContext() {
266         return delegateContext;
267     }
268 
269     @Override
270     public <O extends Container> O getParentContainer(Class<O> clazz) {
271         return SwingUtil.getParentContainer(this, clazz);
272     }
273 
274     @Override
275     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
276         return SwingUtil.getParentContainer(source, clazz);
277     }
278 
279     @Override
280     public <T> void removeContextValue(Class<T> clazz) {
281         delegateContext.removeContextValue(clazz, null);
282     }
283 
284     @Override
285     public <T> void removeContextValue(Class<T> clazz, String name) {
286         delegateContext.removeContextValue(clazz, name);
287     }
288 
289     @Override
290     public <T> void setContextValue(T o) {
291         delegateContext.setContextValue(o, null);
292     }
293 
294     @Override
295     public <T> void setContextValue(T o, String name) {
296         delegateContext.setContextValue(o, name);
297     }
298 
299     /*-----------------------------------------------------------------------*/
300     /*---------------------------- Event methods ----------------------------*/
301     /*-----------------------------------------------------------------------*/
302 
303     public void doActionPerformed__on__endDate1Editor(ActionEvent event) {
304         if (log.isDebugEnabled()) {
305             log.debug(event);
306         }
307         handler.setDate(event, "endDate1");
308     }
309 
310     public void doActionPerformed__on__endDate2Editor(ActionEvent event) {
311         if (log.isDebugEnabled()) {
312             log.debug(event);
313         }
314         handler.setDate(event, "endDate2");
315     }
316 
317     public void doActionPerformed__on__startDate1Editor(ActionEvent event) {
318         if (log.isDebugEnabled()) {
319             log.debug(event);
320         }
321         handler.setDate(event, "startDate1");
322     }
323 
324     public void doActionPerformed__on__startDate2Editor(ActionEvent event) {
325         if (log.isDebugEnabled()) {
326             log.debug(event);
327         }
328         handler.setDate(event, "startDate2");
329     }
330 
331     public void doKeyReleased__on__nameEditor(KeyEvent event) {
332         if (log.isDebugEnabled()) {
333             log.debug(event);
334         }
335         handler.setText(event, "name");
336     }
337 
338     /*-----------------------------------------------------------------------*/
339     /*----------------------- Public acessor methods  -----------------------*/
340     /*-----------------------------------------------------------------------*/
341 
342     public JLabel getAndLabel1() {
343         return andLabel1;
344     }
345 
346     public JLabel getAndLabel2() {
347         return andLabel2;
348     }
349 
350     public ApplyFilterUI getApplyFilterUI() {
351         return applyFilterUI;
352     }
353 
354     public DaliHelpBroker getBroker() {
355         return broker;
356     }
357 
358     public JButton getClearButton() {
359         return clearButton;
360     }
361 
362     public JDatePicker getEndDate1Editor() {
363         return endDate1Editor;
364     }
365 
366     public JDatePicker getEndDate2Editor() {
367         return endDate2Editor;
368     }
369 
370     public ExtendedComboBox<SearchDateDTO> getEndDateCombo() {
371         return endDateCombo;
372     }
373 
374     public JLabel getEndDateLabel() {
375         return endDateLabel;
376     }
377 
378     public CampaignsMenuUIHandler getHandler() {
379         return handler;
380     }
381 
382     public CampaignsMenuUIModel getModel() {
383         return model;
384     }
385 
386     public JTextField getNameEditor() {
387         return nameEditor;
388     }
389 
390     public JLabel getNameLabel() {
391         return nameLabel;
392     }
393 
394     public JButton getSearchButton() {
395         return searchButton;
396     }
397 
398     public JPanel getSelectionButtonsPanel() {
399         return selectionButtonsPanel;
400     }
401 
402     public Table getSelectionPanel() {
403         return selectionPanel;
404     }
405 
406     public JDatePicker getStartDate1Editor() {
407         return startDate1Editor;
408     }
409 
410     public JDatePicker getStartDate2Editor() {
411         return startDate2Editor;
412     }
413 
414     public ExtendedComboBox<SearchDateDTO> getStartDateCombo() {
415         return startDateCombo;
416     }
417 
418     public JLabel getStartDateLabel() {
419         return startDateLabel;
420     }
421 
422     /*-----------------------------------------------------------------------*/
423     /*---------------------------- Other methods ----------------------------*/
424     /*-----------------------------------------------------------------------*/
425 
426     @Override
427     public void registerHelpId(DaliHelpBroker broker, Component component, String helpId) {
428         broker.installUI(component, helpId);
429     }
430 
431     @Override
432     public void showHelp(String helpId) {
433         getBroker().showHelp(this, helpId);
434     }
435 
436     /*-----------------------------------------------------------------------*/
437     /*--------------------- Protected acessors methods  ---------------------*/
438     /*-----------------------------------------------------------------------*/
439 
440     protected JPanel get$JPanel0() {
441         return $JPanel0;
442     }
443 
444     protected JPanel get$JPanel1() {
445         return $JPanel1;
446     }
447 
448     protected JPanel get$JPanel2() {
449         return $JPanel2;
450     }
451 
452     protected JPanel get$JPanel3() {
453         return $JPanel3;
454     }
455 
456     protected JPanel get$JPanel4() {
457         return $JPanel4;
458     }
459 
460     /*-----------------------------------------------------------------------*/
461     /*--------------------- Components creation methods ---------------------*/
462     /*-----------------------------------------------------------------------*/
463 
464     protected void addChildrenToCampaignsMenuUI() {
465         if (!allComponentsCreated) {
466             return;
467         }
468         add(applyFilterUI);
469         add(selectionPanel);
470         add(selectionButtonsPanel);
471     }
472 
473     protected void addChildrenToSelectionButtonsPanel() {
474         if (!allComponentsCreated) {
475             return;
476         }
477         selectionButtonsPanel.add(clearButton);
478         selectionButtonsPanel.add(searchButton);
479     }
480 
481     protected void addChildrenToSelectionPanel() {
482         if (!allComponentsCreated) {
483             return;
484         }
485         selectionPanel.add($JPanel0, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
486         selectionPanel.add($JPanel1, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
487         selectionPanel.add($JPanel2, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
488         selectionPanel.add($JPanel3, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
489         selectionPanel.add($JPanel4, new GridBagConstraints(0, 4, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
490     }
491 
492     protected void createAndLabel1() {
493         $objectMap.put("andLabel1", andLabel1 = new JLabel());
494         
495         andLabel1.setName("andLabel1");
496         andLabel1.setText(t("dali.property.and"));
497     }
498 
499     protected void createAndLabel2() {
500         $objectMap.put("andLabel2", andLabel2 = new JLabel());
501         
502         andLabel2.setName("andLabel2");
503         andLabel2.setText(t("dali.property.and"));
504     }
505 
506     protected void createApplyFilterUI() {
507         $objectMap.put("applyFilterUI", applyFilterUI = new ApplyFilterUI(this));
508         
509         applyFilterUI.setName("applyFilterUI");
510     }
511 
512     protected void createBroker() {
513         $objectMap.put("broker", broker = new DaliHelpBroker("dali.home.help"));
514     }
515 
516     protected void createClearButton() {
517         $objectMap.put("clearButton", clearButton = new JButton());
518         
519         clearButton.setName("clearButton");
520         clearButton.setText(t("dali.action.search.clear.label"));
521         clearButton.setToolTipText(t("dali.action.search.clear.tip"));
522         clearButton.putClientProperty("applicationAction", ClearAction.class);
523     }
524 
525     protected void createEndDate1Editor() {
526         $objectMap.put("endDate1Editor", endDate1Editor = new JDatePicker());
527         
528         endDate1Editor.setName("endDate1Editor");
529         endDate1Editor.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__endDate1Editor"));
530     }
531 
532     protected void createEndDate2Editor() {
533         $objectMap.put("endDate2Editor", endDate2Editor = new JDatePicker());
534         
535         endDate2Editor.setName("endDate2Editor");
536         endDate2Editor.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__endDate2Editor"));
537     }
538 
539     protected void createEndDateCombo() {
540         $objectMap.put("endDateCombo", endDateCombo = new ExtendedComboBox<SearchDateDTO>(this));
541         
542         endDateCombo.setName("endDateCombo");
543         endDateCombo.setFilterable(true);
544         endDateCombo.setShowDecorator(false);
545         endDateCombo.setProperty("searchEndDate");
546         endDateCombo.setShowReset(true);
547     }
548 
549     protected void createEndDateLabel() {
550         $objectMap.put("endDateLabel", endDateLabel = new JLabel());
551         
552         endDateLabel.setName("endDateLabel");
553         endDateLabel.setText(t("dali.property.date.end"));
554     }
555 
556     protected CampaignsMenuUIHandler createHandler() {
557         return new CampaignsMenuUIHandler();
558     }
559 
560     protected void createModel() {
561         $objectMap.put("model", model = getContextValue(CampaignsMenuUIModel.class));
562     }
563 
564     protected void createNameEditor() {
565         $objectMap.put("nameEditor", nameEditor = new JTextField());
566         
567         nameEditor.setName("nameEditor");
568         nameEditor.setColumns(15);
569         nameEditor.addKeyListener(JAXXUtil.getEventListener(KeyListener.class, "keyReleased", this, "doKeyReleased__on__nameEditor"));
570     }
571 
572     protected void createNameLabel() {
573         $objectMap.put("nameLabel", nameLabel = new JLabel());
574         
575         nameLabel.setName("nameLabel");
576         nameLabel.setText(t("dali.property.name"));
577     }
578 
579     protected void createSearchButton() {
580         $objectMap.put("searchButton", searchButton = new JButton());
581         
582         searchButton.setName("searchButton");
583         searchButton.setText(t("dali.action.search.label"));
584         searchButton.setToolTipText(t("dali.action.search.tip"));
585         searchButton.putClientProperty("applicationAction", SearchAction.class);
586     }
587 
588     protected void createSelectionButtonsPanel() {
589         $objectMap.put("selectionButtonsPanel", selectionButtonsPanel = new JPanel());
590         
591         selectionButtonsPanel.setName("selectionButtonsPanel");
592         selectionButtonsPanel.setLayout(new GridLayout(1,0));
593     }
594 
595     protected void createSelectionPanel() {
596         $objectMap.put("selectionPanel", selectionPanel = new Table());
597         
598         selectionPanel.setName("selectionPanel");
599     }
600 
601     protected void createStartDate1Editor() {
602         $objectMap.put("startDate1Editor", startDate1Editor = new JDatePicker());
603         
604         startDate1Editor.setName("startDate1Editor");
605         startDate1Editor.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__startDate1Editor"));
606     }
607 
608     protected void createStartDate2Editor() {
609         $objectMap.put("startDate2Editor", startDate2Editor = new JDatePicker());
610         
611         startDate2Editor.setName("startDate2Editor");
612         startDate2Editor.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__startDate2Editor"));
613     }
614 
615     protected void createStartDateCombo() {
616         $objectMap.put("startDateCombo", startDateCombo = new ExtendedComboBox<SearchDateDTO>(this));
617         
618         startDateCombo.setName("startDateCombo");
619         startDateCombo.setFilterable(true);
620         startDateCombo.setShowDecorator(false);
621         startDateCombo.setProperty("searchStartDate");
622         startDateCombo.setShowReset(true);
623     }
624 
625     protected void createStartDateLabel() {
626         $objectMap.put("startDateLabel", startDateLabel = new JLabel());
627         
628         startDateLabel.setName("startDateLabel");
629         startDateLabel.setText(t("dali.property.date.start"));
630     }
631 
632     /*-----------------------------------------------------------------------*/
633     /*------------------------ Internal jaxx methods ------------------------*/
634     /*-----------------------------------------------------------------------*/
635 
636     private void $completeSetup() {
637         allComponentsCreated = true;
638         if (log.isDebugEnabled()) {
639             log.debug(this);
640         }
641         addChildrenToCampaignsMenuUI();
642         addChildrenToSelectionPanel();
643         // inline complete setup of $JPanel0
644         $JPanel0.add(nameLabel, BorderLayout.PAGE_START);
645         $JPanel0.add(nameEditor);
646         // inline complete setup of $JPanel1
647         $JPanel1.add(startDateLabel, BorderLayout.PAGE_START);
648         $JPanel1.add(startDateCombo, BorderLayout.LINE_START);
649         $JPanel1.add(startDate1Editor);
650         // inline complete setup of $JPanel2
651         $JPanel2.add(andLabel1);
652         $JPanel2.add(startDate2Editor, BorderLayout.LINE_END);
653         // inline complete setup of $JPanel3
654         $JPanel3.add(endDateLabel, BorderLayout.PAGE_START);
655         $JPanel3.add(endDateCombo, BorderLayout.LINE_START);
656         $JPanel3.add(endDate1Editor);
657         // inline complete setup of $JPanel4
658         $JPanel4.add(andLabel2);
659         $JPanel4.add(endDate2Editor, BorderLayout.LINE_END);
660         addChildrenToSelectionButtonsPanel();
661         
662         // apply 7 data bindings
663         JAXXUtil.applyDataBinding(this, $bindings.keySet());
664         
665         // apply 21 property setters
666         startDateCombo.setBeanType(SearchDateDTO.class);
667         andLabel1.setHorizontalAlignment(JLabel.RIGHT);
668         endDateCombo.setBeanType(SearchDateDTO.class);
669         andLabel2.setHorizontalAlignment(JLabel.RIGHT);
670         clearButton.setAlignmentX(Component.CENTER_ALIGNMENT);
671         searchButton.setAlignmentX(Component.CENTER_ALIGNMENT);
672         selectionPanel.setBorder(BorderFactory.createTitledBorder(t("dali.config.menu.title")));
673         nameLabel.setLabelFor(nameEditor);
674         startDateCombo.setBean(model);
675         andLabel1.setBorder(BorderFactory.createEmptyBorder(0,0,0,5));
676         endDateCombo.setBean(model);
677         andLabel2.setBorder(BorderFactory.createEmptyBorder(0,0,0,5));
678         clearButton.setIcon(SwingUtil.createActionIcon("reset"));
679         searchButton.setIcon(SwingUtil.createActionIcon("find"));
680     }
681 
682     private void $initialize() {
683         if (allComponentsCreated) {
684             return;
685         }
686         if (log.isDebugEnabled()) {
687             log.debug(this);
688         }
689         handler.beforeInit(this);
690         $objectMap.put("campaignsMenuUI", campaignsMenuUI);
691         createModel();
692         createBroker();
693         createApplyFilterUI();
694         createSelectionPanel();
695         // inline creation of $JPanel0
696         $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
697         
698         $JPanel0.setName("$JPanel0");
699         $JPanel0.setLayout(new BorderLayout());
700         createNameLabel();
701         createNameEditor();
702         // inline creation of $JPanel1
703         $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
704         
705         $JPanel1.setName("$JPanel1");
706         $JPanel1.setLayout(new BorderLayout());
707         createStartDateLabel();
708         createStartDateCombo();
709         createStartDate1Editor();
710         // inline creation of $JPanel2
711         $objectMap.put("$JPanel2", $JPanel2 = new JPanel());
712         
713         $JPanel2.setName("$JPanel2");
714         $JPanel2.setLayout(new BorderLayout());
715         createAndLabel1();
716         createStartDate2Editor();
717         // inline creation of $JPanel3
718         $objectMap.put("$JPanel3", $JPanel3 = new JPanel());
719         
720         $JPanel3.setName("$JPanel3");
721         $JPanel3.setLayout(new BorderLayout());
722         createEndDateLabel();
723         createEndDateCombo();
724         createEndDate1Editor();
725         // inline creation of $JPanel4
726         $objectMap.put("$JPanel4", $JPanel4 = new JPanel());
727         
728         $JPanel4.setName("$JPanel4");
729         $JPanel4.setLayout(new BorderLayout());
730         createAndLabel2();
731         createEndDate2Editor();
732         createSelectionButtonsPanel();
733         createClearButton();
734         createSearchButton();
735         // inline creation of campaignsMenuUI
736         setName("campaignsMenuUI");
737         setLayout(new BoxLayout(campaignsMenuUI, BoxLayout.PAGE_AXIS));
738         
739         // registers 7 data bindings
740         $registerDefaultBindings();
741         $completeSetup();
742         handler.afterInit(this);
743     }
744 
745     private void $registerDefaultBindings() {
746         // register 7 data bindings
747         registerDataBinding(new DefaultJAXXBinding(this, BINDING_NAME_EDITOR_TEXT, true) {
748         
749             @Override
750             public void applyDataBinding() {
751                 if (model != null) {
752                     model.addPropertyChangeListener("name", this);
753                 }
754             }
755         
756             @Override
757             public void processDataBinding() {
758                 if (model != null) {
759                     SwingUtil.setText(nameEditor, model.getName());
760                 }
761             }
762         
763             @Override
764             public void removeDataBinding() {
765                 if (model != null) {
766                     model.removePropertyChangeListener("name", this);
767                 }
768             }
769         });
770         registerDataBinding(new DefaultJAXXBinding(this, BINDING_START_DATE_COMBO_SELECTED_ITEM, true) {
771         
772             @Override
773             public void applyDataBinding() {
774                 if (model != null) {
775                     model.addPropertyChangeListener("searchStartDate", this);
776                 }
777             }
778         
779             @Override
780             public void processDataBinding() {
781                 if (model != null) {
782                     startDateCombo.setSelectedItem(model.getSearchStartDate());
783                 }
784             }
785         
786             @Override
787             public void removeDataBinding() {
788                 if (model != null) {
789                     model.removePropertyChangeListener("searchStartDate", this);
790                 }
791             }
792         });
793         registerDataBinding(new DefaultJAXXBinding(this, BINDING_START_DATE1_EDITOR_DATE, true) {
794         
795             @Override
796             public void applyDataBinding() {
797                 if (model != null) {
798                     model.addPropertyChangeListener("startDate1", this);
799                 }
800             }
801         
802             @Override
803             public void processDataBinding() {
804                 if (model != null) {
805                     startDate1Editor.setDate(model.getStartDate1());
806                 }
807             }
808         
809             @Override
810             public void removeDataBinding() {
811                 if (model != null) {
812                     model.removePropertyChangeListener("startDate1", this);
813                 }
814             }
815         });
816         registerDataBinding(new DefaultJAXXBinding(this, BINDING_START_DATE2_EDITOR_DATE, true) {
817         
818             @Override
819             public void applyDataBinding() {
820                 if (model != null) {
821                     model.addPropertyChangeListener("startDate2", this);
822                 }
823             }
824         
825             @Override
826             public void processDataBinding() {
827                 if (model != null) {
828                     startDate2Editor.setDate(model.getStartDate2());
829                 }
830             }
831         
832             @Override
833             public void removeDataBinding() {
834                 if (model != null) {
835                     model.removePropertyChangeListener("startDate2", this);
836                 }
837             }
838         });
839         registerDataBinding(new DefaultJAXXBinding(this, BINDING_END_DATE_COMBO_SELECTED_ITEM, true) {
840         
841             @Override
842             public void applyDataBinding() {
843                 if (model != null) {
844                     model.addPropertyChangeListener("searchEndDate", this);
845                 }
846             }
847         
848             @Override
849             public void processDataBinding() {
850                 if (model != null) {
851                     endDateCombo.setSelectedItem(model.getSearchEndDate());
852                 }
853             }
854         
855             @Override
856             public void removeDataBinding() {
857                 if (model != null) {
858                     model.removePropertyChangeListener("searchEndDate", this);
859                 }
860             }
861         });
862         registerDataBinding(new DefaultJAXXBinding(this, BINDING_END_DATE1_EDITOR_DATE, true) {
863         
864             @Override
865             public void applyDataBinding() {
866                 if (model != null) {
867                     model.addPropertyChangeListener("endDate1", this);
868                 }
869             }
870         
871             @Override
872             public void processDataBinding() {
873                 if (model != null) {
874                     endDate1Editor.setDate(model.getEndDate1());
875                 }
876             }
877         
878             @Override
879             public void removeDataBinding() {
880                 if (model != null) {
881                     model.removePropertyChangeListener("endDate1", this);
882                 }
883             }
884         });
885         registerDataBinding(new DefaultJAXXBinding(this, BINDING_END_DATE2_EDITOR_DATE, true) {
886         
887             @Override
888             public void applyDataBinding() {
889                 if (model != null) {
890                     model.addPropertyChangeListener("endDate2", this);
891                 }
892             }
893         
894             @Override
895             public void processDataBinding() {
896                 if (model != null) {
897                     endDate2Editor.setDate(model.getEndDate2());
898                 }
899             }
900         
901             @Override
902             public void removeDataBinding() {
903                 if (model != null) {
904                     model.removePropertyChangeListener("endDate2", this);
905                 }
906             }
907         });
908     }
909 
910 }