1 package fr.ifremer.dali.ui.swing.content.manage.context.menu;
2
3 import fr.ifremer.dali.dto.configuration.context.ContextDTO;
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.component.bean.ExtendedComboBox;
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.util.ArrayList;
16 import java.util.HashMap;
17 import java.util.List;
18 import java.util.Map;
19 import java.util.TreeMap;
20 import javax.swing.BorderFactory;
21 import javax.swing.Box;
22 import javax.swing.BoxLayout;
23 import javax.swing.JButton;
24 import javax.swing.JLabel;
25 import javax.swing.JPanel;
26 import javax.swing.SwingConstants;
27 import jaxx.runtime.JAXXBinding;
28 import jaxx.runtime.JAXXContext;
29 import jaxx.runtime.JAXXObject;
30 import jaxx.runtime.JAXXObjectDescriptor;
31 import jaxx.runtime.JAXXUtil;
32 import jaxx.runtime.SwingUtil;
33 import jaxx.runtime.context.DefaultJAXXContext;
34 import jaxx.runtime.swing.help.JAXXHelpUI;
35 import org.apache.commons.logging.Log;
36 import org.apache.commons.logging.LogFactory;
37 import static org.nuiton.i18n.I18n.t;
38
39 public class ManageContextsListMenuUI extends JPanel implements JAXXHelpUI<DaliHelpBroker>, DaliUI<ManageContextsListMenuUIModel, ManageContextsListMenuUIHandler>, JAXXObject {
40
41
42
43
44
45 private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAK1UTW8bRRh+7dpp7KSlbZoQRKuGgERzYEyFEIcAbZMQNZUNKAlSqQ90dnfsTDvemc7Mko2iIn4CPwHuXJC4cUIcOHPggvgLCHHginhn1l7byRpHKpY89ryfz7wzz/PtH1A1Gl55TNOU6CS2vMfI/bsPHnwUPGah3WIm1FxZqSH7lMpQbsNclNuNhVfbTZfe6Kc3NmVPyZjFI9nrTagbeySYOWDMWrg+nhEa09jL3eupSvSgag6qqOrXf/1Z/ir68psyQKoQXR2PsjIta3iSShPKPLJwBTt9ThuCxl2EoXncRbwXnG1TUGM+pD32FL6A802YUVRjMQurZz+yr+HzU2Vh9rX7H9OYiTcttDqa8I5mPaZJRAUnCSfmELuTUMYWi5EejWmXZdsUtyxOSMvbNjOTaXJjW2j+ZEcp32TGQrUnIyYs7P6v9Vuu6LDJTKDlE6YtvD6xyxbu7mHOho8cpg5GcAsn74ac9uMzqwuq5bEXDRP4DrmMc+dVt1zJI2oO9bhzMXcuhINz0ICJbD3Z1Rtd/IuT0vB2A2nhvZGTPk1opHmXvTU61P4bIAGjMfkgxRFHLPLJGzId7zAfJNbK2EwCPm8Y1eHBho9CQGOIM6uLvKHwxb889uKRS2TIpeFjL7WhqhM0W1hun6bfLroy4i2fIJ4r6L3/LC38+sPv32+Psm2xMHRELJAFSkuFL4W71i9kVEssF40WVettqGU37JXkWgGwvb4bwWG/yy6duHRyj5oDLFE9/9uPPy09+uUclLehLiSNtqmL34GaPdA4BSmiVN2+4xHNH87iegm/5yzUO1xYpmkgcE4VqxP8uYDxh1sslJpiDeRShwqD9pqz7zLjxMuHpjipawWTyuEGtZ//Xtj77s5gWiVE/9LE8OHEqg9hhseCx8yrU194CtVoThmWRHIoMEWSAyg6l04+xj4Z1/z6xqnhlBy/pY4cv28fb/h/2VSPSKgZtWyfW8GizHPT3lz1zEfWdHg3kxHrAlbX1p6lievxtp+A+/cOjHJWTUFSRrkQjoTb7jYWjwuI+czdCNos3Big8GoWjkgY8TWKoBQpxDRQFZSQz6hSgofUSdNdL1AWrh7vedZmexK6W0B0der3O64TVDo8jnLEyx5x5icZ5TOoFuaslGKfq30fuFQQaLkqOtGYdEw7irtpQY8kBsPFdyNq6UqAAFFm3j9Vu+TW+tSKzvypWx4WV1h67grLZzjVrBPh/SPF/qPO9edGsnIGJBUeZmI9ocYq1vgXgtNYAocJAAA=";
46 private static final Log log = LogFactory.getLog(ManageContextsListMenuUI.class);
47 private static final long serialVersionUID = 1L;
48
49
50
51
52
53 protected List<Object> $activeBindings = new ArrayList<Object>();
54 protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
55 protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
56 protected Map<String, Object> $objectMap = new HashMap<String, Object>();
57 protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
58 private boolean allComponentsCreated;
59 protected final JAXXContext delegateContext = new DefaultJAXXContext();
60
61
62
63
64
65 protected DaliHelpBroker broker;
66 protected JPanel buttonsPanel;
67 protected ExtendedComboBox<ContextDTO> contextsLabelsCombo;
68 protected JLabel contextsLabelsLabel;
69 protected final ManageContextsListMenuUIHandler handler = createHandler();
70 protected JPanel menuPanel;
71 protected ManageContextsListMenuUIModel model;
72 protected JButton searchButton;
73 protected JPanel selectionPanel;
74
75
76
77
78
79 private ManageContextsListMenuUI $JPanel0 = this;
80 private JPanel $JPanel1;
81
82
83
84
85
86 public ManageContextsListMenuUI(ApplicationUI parentUI) {
87 ApplicationUIUtil.setParentUI(this, parentUI);
88 $initialize();
89 }
90
91 public ManageContextsListMenuUI() {
92 $initialize();
93 }
94
95 public ManageContextsListMenuUI(JAXXContext parentContext) {
96 JAXXUtil.initContext(this, parentContext);
97 $initialize();
98 }
99
100 public ManageContextsListMenuUI(boolean param0) {
101 super(param0);
102 $initialize();
103 }
104
105 public ManageContextsListMenuUI(JAXXContext parentContext, boolean param1) {
106 super(param1);
107 JAXXUtil.initContext(this, parentContext);
108 $initialize();
109 }
110
111 public ManageContextsListMenuUI(LayoutManager param0) {
112 super(param0);
113 $initialize();
114 }
115
116 public ManageContextsListMenuUI(JAXXContext parentContext, LayoutManager param1) {
117 super(param1);
118 JAXXUtil.initContext(this, parentContext);
119 $initialize();
120 }
121
122 public ManageContextsListMenuUI(LayoutManager param0, boolean param1) {
123 super(param0 ,param1);
124 $initialize();
125 }
126
127 public ManageContextsListMenuUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
128 super(param1 ,param2);
129 JAXXUtil.initContext(this, parentContext);
130 $initialize();
131 }
132
133
134
135
136
137 public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
138 return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
139 }
140
141
142
143
144
145 @Override
146 public void applyDataBinding(String $binding) {
147 if (allComponentsCreated && $bindings.containsKey($binding)) {
148 getDataBinding($binding).applyDataBinding();
149 }
150 processDataBinding($binding);
151 }
152
153 @Override
154 public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
155 super.firePropertyChange(propertyName, oldValue, newValue);
156 }
157
158 @Override
159 public Map<String, Object> get$objectMap() {
160 return $objectMap;
161 }
162
163 @Override
164 public JAXXBinding getDataBinding(String bindingId) {
165 return $bindings.get(bindingId);
166 }
167
168 @Override
169 public JAXXBinding[] getDataBindings() {
170 return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
171 }
172
173 @Override
174 public Object getObjectById(String id) {
175 return $objectMap.get(id);
176 }
177
178 @Override
179 public void processDataBinding(String $binding, boolean $force) {
180 if (!$force && $activeBindings.contains($binding)) {
181 return;
182 }
183 $activeBindings.add($binding);
184 try {
185 if (allComponentsCreated && $bindings.containsKey($binding)) {
186 getDataBinding($binding).processDataBinding();
187 }
188 } finally {
189 $activeBindings.remove($binding);
190 }
191 }
192
193 @Override
194 public void processDataBinding(String $binding) {
195 processDataBinding($binding, false);
196 }
197
198 @Override
199 public void registerDataBinding(JAXXBinding binding) {
200 $bindings.put(binding.getId(), binding);
201 }
202
203 @Override
204 public void removeDataBinding(String $binding) {
205 if (allComponentsCreated && $bindings.containsKey($binding)) {
206 getDataBinding($binding).removeDataBinding();
207 }
208 }
209
210
211
212
213
214 @Override
215 public <T> T getContextValue(Class<T> clazz) {
216 return delegateContext.getContextValue(clazz, null);
217 }
218
219 @Override
220 public <T> T getContextValue(Class<T> clazz, String name) {
221 return delegateContext.getContextValue(clazz, name);
222 }
223
224 @Override
225 public JAXXContext getDelegateContext() {
226 return delegateContext;
227 }
228
229 @Override
230 public <O extends Container> O getParentContainer(Class<O> clazz) {
231 return SwingUtil.getParentContainer(this, clazz);
232 }
233
234 @Override
235 public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
236 return SwingUtil.getParentContainer(source, clazz);
237 }
238
239 @Override
240 public <T> void removeContextValue(Class<T> clazz) {
241 delegateContext.removeContextValue(clazz, null);
242 }
243
244 @Override
245 public <T> void removeContextValue(Class<T> clazz, String name) {
246 delegateContext.removeContextValue(clazz, name);
247 }
248
249 @Override
250 public <T> void setContextValue(T o) {
251 delegateContext.setContextValue(o, null);
252 }
253
254 @Override
255 public <T> void setContextValue(T o, String name) {
256 delegateContext.setContextValue(o, name);
257 }
258
259
260
261
262
263 public DaliHelpBroker getBroker() {
264 return broker;
265 }
266
267 public JPanel getButtonsPanel() {
268 return buttonsPanel;
269 }
270
271 public ExtendedComboBox<ContextDTO> getContextsLabelsCombo() {
272 return contextsLabelsCombo;
273 }
274
275 public JLabel getContextsLabelsLabel() {
276 return contextsLabelsLabel;
277 }
278
279 public ManageContextsListMenuUIHandler getHandler() {
280 return handler;
281 }
282
283 public JPanel getMenuPanel() {
284 return menuPanel;
285 }
286
287 public ManageContextsListMenuUIModel getModel() {
288 return model;
289 }
290
291 public JButton getSearchButton() {
292 return searchButton;
293 }
294
295 public JPanel getSelectionPanel() {
296 return selectionPanel;
297 }
298
299
300
301
302
303 @Override
304 public void registerHelpId(DaliHelpBroker broker, Component component, String helpId) {
305 broker.installUI(component, helpId);
306 }
307
308 @Override
309 public void showHelp(String helpId) {
310 getBroker().showHelp(this, helpId);
311 }
312
313
314
315
316
317 protected JPanel get$JPanel1() {
318 return $JPanel1;
319 }
320
321
322
323
324
325 protected void addChildrenToButtonsPanel() {
326 if (!allComponentsCreated) {
327 return;
328 }
329 buttonsPanel.add(searchButton);
330 }
331
332 protected void addChildrenToMenuPanel() {
333 if (!allComponentsCreated) {
334 return;
335 }
336 menuPanel.add(contextsLabelsLabel, BorderLayout.PAGE_START);
337 menuPanel.add(contextsLabelsCombo);
338 }
339
340 protected void addChildrenToSelectionPanel() {
341 if (!allComponentsCreated) {
342 return;
343 }
344 selectionPanel.add(menuPanel);
345 selectionPanel.add(buttonsPanel);
346 }
347
348 protected void createBroker() {
349 $objectMap.put("broker", broker = new DaliHelpBroker("dali.home.help"));
350 }
351
352 protected void createButtonsPanel() {
353 $objectMap.put("buttonsPanel", buttonsPanel = new JPanel());
354
355 buttonsPanel.setName("buttonsPanel");
356 buttonsPanel.setLayout(new GridLayout(1,0));
357 }
358
359 protected void createContextsLabelsCombo() {
360 $objectMap.put("contextsLabelsCombo", contextsLabelsCombo = new ExtendedComboBox<ContextDTO>(this));
361
362 contextsLabelsCombo.setName("contextsLabelsCombo");
363 contextsLabelsCombo.setFilterable(true);
364 contextsLabelsCombo.setShowDecorator(false);
365 contextsLabelsCombo.setShowReset(true);
366 }
367
368 protected void createContextsLabelsLabel() {
369 $objectMap.put("contextsLabelsLabel", contextsLabelsLabel = new JLabel());
370
371 contextsLabelsLabel.setName("contextsLabelsLabel");
372 contextsLabelsLabel.setText(t("dali.context.contextsList.label"));
373 }
374
375 protected ManageContextsListMenuUIHandler createHandler() {
376 return new ManageContextsListMenuUIHandler();
377 }
378
379 protected void createMenuPanel() {
380 $objectMap.put("menuPanel", menuPanel = new JPanel());
381
382 menuPanel.setName("menuPanel");
383 menuPanel.setLayout(new BorderLayout());
384 }
385
386 protected void createModel() {
387 $objectMap.put("model", model = getContextValue(ManageContextsListMenuUIModel.class));
388 }
389
390 protected void createSearchButton() {
391 $objectMap.put("searchButton", searchButton = new JButton());
392
393 searchButton.setName("searchButton");
394 searchButton.setText(t("dali.action.search.label"));
395 searchButton.setToolTipText(t("dali.action.search.tip"));
396 searchButton.putClientProperty("applicationAction", SearchAction.class);
397 }
398
399 protected void createSelectionPanel() {
400 $objectMap.put("selectionPanel", selectionPanel = new JPanel());
401
402 selectionPanel.setName("selectionPanel");
403 selectionPanel.setLayout(new BoxLayout(selectionPanel, BoxLayout.PAGE_AXIS));
404 }
405
406
407
408
409
410 private void $completeSetup() {
411 allComponentsCreated = true;
412 if (log.isDebugEnabled()) {
413 log.debug(this);
414 }
415
416 add($JPanel1, BorderLayout.PAGE_START);
417
418 $JPanel1.add(selectionPanel);
419 addChildrenToSelectionPanel();
420 addChildrenToMenuPanel();
421 addChildrenToButtonsPanel();
422
423
424 contextsLabelsCombo.setBeanType(ContextDTO.class);
425 menuPanel.setBorder(BorderFactory.createTitledBorder(t("dali.config.menu.title")));
426 contextsLabelsLabel.setLabelFor(contextsLabelsCombo);
427 searchButton.setIcon(SwingUtil.createActionIcon("find"));
428 }
429
430 private void $initialize() {
431 if (allComponentsCreated) {
432 return;
433 }
434 if (log.isDebugEnabled()) {
435 log.debug(this);
436 }
437 handler.beforeInit(this);
438 $objectMap.put("$JPanel0", $JPanel0);
439 createModel();
440 createBroker();
441
442 $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
443
444 $JPanel1.setName("$JPanel1");
445 createSelectionPanel();
446 createMenuPanel();
447 createContextsLabelsLabel();
448 createContextsLabelsCombo();
449 createButtonsPanel();
450 createSearchButton();
451
452 setName("$JPanel0");
453 setLayout(new BorderLayout());
454
455 $completeSetup();
456 handler.afterInit(this);
457 }
458
459 }