1 package fr.ifremer.dali.ui.swing.content.observation.operation.measurement.ungrouped;
2
3 import fr.ifremer.dali.ui.swing.DaliHelpBroker;
4 import fr.ifremer.dali.ui.swing.DaliUIContext;
5 import fr.ifremer.dali.ui.swing.util.DaliUI;
6 import fr.ifremer.quadrige3.ui.swing.ApplicationUI;
7 import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
8 import fr.ifremer.quadrige3.ui.swing.plaf.WaitBlockingLayerUI;
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.LayoutManager;
14 import java.util.ArrayList;
15 import java.util.HashMap;
16 import java.util.List;
17 import java.util.Map;
18 import java.util.TreeMap;
19 import javax.swing.BorderFactory;
20 import javax.swing.Box;
21 import javax.swing.BoxLayout;
22 import javax.swing.JPanel;
23 import javax.swing.JScrollPane;
24 import jaxx.runtime.JAXXBinding;
25 import jaxx.runtime.JAXXContext;
26 import jaxx.runtime.JAXXObject;
27 import jaxx.runtime.JAXXObjectDescriptor;
28 import jaxx.runtime.JAXXUtil;
29 import jaxx.runtime.SwingUtil;
30 import jaxx.runtime.binding.DefaultJAXXBinding;
31 import jaxx.runtime.context.DefaultJAXXContext;
32 import jaxx.runtime.swing.help.JAXXHelpUI;
33 import org.apache.commons.logging.Log;
34 import org.apache.commons.logging.LogFactory;
35
36 public class OperationMeasurementsUngroupedTableUI extends JPanel implements JAXXHelpUI<DaliHelpBroker>, DaliUI<OperationMeasurementsUngroupedTableUIModel, OperationMeasurementsUngroupedTableUIHandler>, JAXXObject {
37
38
39
40
41
42 public static final String BINDING_TABLE_BLOCK_LAYER_BLOCK = "tableBlockLayer.block";
43
44
45
46
47
48 private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAL1USW8TMRR+SUmgZacqi1qkUhAUBM4BiUsRSzc1KF1EUrHkUJyMm7p1xsb20IkqED+BnwB3LkjcOCEOnDlwQfwFhDhwRTw7y6Q0LCciZeTx8/f5e9+8915+gYzRcGqdxjHRUWh5nZFbN+/eXayss6qdZqaqubJSQ/OXSkO6DHuDzr6xcLpccPBcC56bknUlQxZ2oScKMGBsQzCzxpi1cHI7ompMrtgJT8Qq0m3WjqherM+/fU0/C56+SAPECtVlMZXRv6GSTHYVIM0DC0fwpkc0J2hYQxmahzXUu9/tTQlqzAKts4fwBHYXIKuoRjILY/+esufw+FhZOGRpRTAazdHILtGQCQt6VRO+qlmdaRJQwUnEidlEFaQqQ4ukRFYM04+o5TIkUjHdXNUZNZGD4YkorGkZKRaQxXZ8Pgmb5Xa45G5fzivlFWUtZOoycCI2/7+IeXdzoiRb0XKDaQvnfitlGt/mEDPpTybQg97USSGrGwXacBxXujgeRjTQvMYuJ0RK0FVyh3LrMbjjYd2+DHV9p2JVSyHc17JwzJVF3KK5lUQcrL+DHusY1Em6ywmfvwXyZ41eACm6tQc46iGFFT68rcKxd0jSO0lxp8qQ0RFuWzhe3tlutzHUbLTjvzSaI/TRH0cHP775/Hq23V19ePdQz6NdwwGrXmmXveXu6oPN1oosF7l5qibK0G+YwMniJ8dID2HFVhjF4X2HHZw4OJmjZg0pMrs/vX139MGHPkjPwoCQNJil7nwe+u2aRhekCGJ1/YZXtG9zDz4P4T/tCkzqwBXH2a1Jv2oCG6SqGbWsxK1gQTMyPjZ2/rGFgRXlWrTUUOjs8JYrv+U8mZnOl/KLCytLNxdmCiule0szj2P0caSHj51kKv3vvw8WX91oe5nC3E789njiZ+Y+ZHkoeMj8rGqNoZ6zaa8yLApkMm56DSDoMYFUq+pH/fNML+syFdcnFga3/Lgg3BTQeKzMcWfT/kqri6akkOjvpa01GgYCy7rG7JQMVzmea64xvq3lEB9H7toL3hS3ugg7G/pvElP4dQVtyAhH84GrAbV0tMJDJ/DaDvqUew4g4092Xre6/AYAAA==";
49 private static final Log log = LogFactory.getLog(OperationMeasurementsUngroupedTableUI.class);
50 private static final long serialVersionUID = 1L;
51
52
53
54
55
56 protected List<Object> $activeBindings = new ArrayList<Object>();
57 protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
58 protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
59 protected Map<String, Object> $objectMap = new HashMap<String, Object>();
60 protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
61 private boolean allComponentsCreated;
62 protected final JAXXContext delegateContext = new DefaultJAXXContext();
63
64
65
66
67
68 protected DaliHelpBroker broker;
69 protected final OperationMeasurementsUngroupedTableUIHandler handler = createHandler();
70 protected OperationMeasurementsUngroupedTableUIModel model;
71 protected SwingTable operationUngroupedMeasurementTable;
72 protected WaitBlockingLayerUI tableBlockLayer;
73 protected OperationMeasurementsUngroupedTableUI tableauHautPanel = this;
74 protected JScrollPane tableauHautScrollPane;
75
76
77
78
79
80 public OperationMeasurementsUngroupedTableUI(ApplicationUI parentUI) {
81 ApplicationUIUtil.setParentUI(this, parentUI);
82 $initialize();
83 }
84
85 public OperationMeasurementsUngroupedTableUI() {
86 $initialize();
87 }
88
89 public OperationMeasurementsUngroupedTableUI(JAXXContext parentContext) {
90 JAXXUtil.initContext(this, parentContext);
91 $initialize();
92 }
93
94 public OperationMeasurementsUngroupedTableUI(boolean param0) {
95 super(param0);
96 $initialize();
97 }
98
99 public OperationMeasurementsUngroupedTableUI(JAXXContext parentContext, boolean param1) {
100 super(param1);
101 JAXXUtil.initContext(this, parentContext);
102 $initialize();
103 }
104
105 public OperationMeasurementsUngroupedTableUI(LayoutManager param0) {
106 super(param0);
107 $initialize();
108 }
109
110 public OperationMeasurementsUngroupedTableUI(JAXXContext parentContext, LayoutManager param1) {
111 super(param1);
112 JAXXUtil.initContext(this, parentContext);
113 $initialize();
114 }
115
116 public OperationMeasurementsUngroupedTableUI(LayoutManager param0, boolean param1) {
117 super(param0 ,param1);
118 $initialize();
119 }
120
121 public OperationMeasurementsUngroupedTableUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
122 super(param1 ,param2);
123 JAXXUtil.initContext(this, parentContext);
124 $initialize();
125 }
126
127
128
129
130
131 public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
132 return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
133 }
134
135
136
137
138
139 @Override
140 public void applyDataBinding(String $binding) {
141 if (allComponentsCreated && $bindings.containsKey($binding)) {
142 getDataBinding($binding).applyDataBinding();
143 }
144 processDataBinding($binding);
145 }
146
147 @Override
148 public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
149 super.firePropertyChange(propertyName, oldValue, newValue);
150 }
151
152 @Override
153 public Map<String, Object> get$objectMap() {
154 return $objectMap;
155 }
156
157 @Override
158 public JAXXBinding getDataBinding(String bindingId) {
159 return $bindings.get(bindingId);
160 }
161
162 @Override
163 public JAXXBinding[] getDataBindings() {
164 return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
165 }
166
167 @Override
168 public Object getObjectById(String id) {
169 return $objectMap.get(id);
170 }
171
172 @Override
173 public void processDataBinding(String $binding, boolean $force) {
174 if (!$force && $activeBindings.contains($binding)) {
175 return;
176 }
177 $activeBindings.add($binding);
178 try {
179 if (allComponentsCreated && $bindings.containsKey($binding)) {
180 getDataBinding($binding).processDataBinding();
181 }
182 } finally {
183 $activeBindings.remove($binding);
184 }
185 }
186
187 @Override
188 public void processDataBinding(String $binding) {
189 processDataBinding($binding, false);
190 }
191
192 @Override
193 public void registerDataBinding(JAXXBinding binding) {
194 $bindings.put(binding.getId(), binding);
195 }
196
197 @Override
198 public void removeDataBinding(String $binding) {
199 if (allComponentsCreated && $bindings.containsKey($binding)) {
200 getDataBinding($binding).removeDataBinding();
201 }
202 }
203
204
205
206
207
208 @Override
209 public <T> T getContextValue(Class<T> clazz) {
210 return delegateContext.getContextValue(clazz, null);
211 }
212
213 @Override
214 public <T> T getContextValue(Class<T> clazz, String name) {
215 return delegateContext.getContextValue(clazz, name);
216 }
217
218 @Override
219 public JAXXContext getDelegateContext() {
220 return delegateContext;
221 }
222
223 @Override
224 public <O extends Container> O getParentContainer(Class<O> clazz) {
225 return SwingUtil.getParentContainer(this, clazz);
226 }
227
228 @Override
229 public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
230 return SwingUtil.getParentContainer(source, clazz);
231 }
232
233 @Override
234 public <T> void removeContextValue(Class<T> clazz) {
235 delegateContext.removeContextValue(clazz, null);
236 }
237
238 @Override
239 public <T> void removeContextValue(Class<T> clazz, String name) {
240 delegateContext.removeContextValue(clazz, name);
241 }
242
243 @Override
244 public <T> void setContextValue(T o) {
245 delegateContext.setContextValue(o, null);
246 }
247
248 @Override
249 public <T> void setContextValue(T o, String name) {
250 delegateContext.setContextValue(o, name);
251 }
252
253
254
255
256
257 public DaliHelpBroker getBroker() {
258 return broker;
259 }
260
261 public OperationMeasurementsUngroupedTableUIHandler getHandler() {
262 return handler;
263 }
264
265 public OperationMeasurementsUngroupedTableUIModel getModel() {
266 return model;
267 }
268
269 public SwingTable getOperationUngroupedMeasurementTable() {
270 return operationUngroupedMeasurementTable;
271 }
272
273 public WaitBlockingLayerUI getTableBlockLayer() {
274 return tableBlockLayer;
275 }
276
277 public JScrollPane getTableauHautScrollPane() {
278 return tableauHautScrollPane;
279 }
280
281
282
283
284
285 @Override
286 public void registerHelpId(DaliHelpBroker broker, Component component, String helpId) {
287 broker.installUI(component, helpId);
288 }
289
290 @Override
291 public void showHelp(String helpId) {
292 getBroker().showHelp(this, helpId);
293 }
294
295
296
297
298
299 protected void addChildrenToTableauHautPanel() {
300 if (!allComponentsCreated) {
301 return;
302 }
303 add(SwingUtil.boxComponentWithJxLayer(tableauHautScrollPane));
304 }
305
306 protected void addChildrenToTableauHautScrollPane() {
307 if (!allComponentsCreated) {
308 return;
309 }
310 tableauHautScrollPane.getViewport().add(operationUngroupedMeasurementTable);
311 }
312
313 protected void createBroker() {
314 $objectMap.put("broker", broker = new DaliHelpBroker("dali.home.help"));
315 }
316
317 protected OperationMeasurementsUngroupedTableUIHandler createHandler() {
318 return new OperationMeasurementsUngroupedTableUIHandler();
319 }
320
321 protected void createModel() {
322 $objectMap.put("model", model = getContextValue(OperationMeasurementsUngroupedTableUIModel.class));
323 }
324
325 protected void createOperationUngroupedMeasurementTable() {
326 $objectMap.put("operationUngroupedMeasurementTable", operationUngroupedMeasurementTable = new SwingTable());
327
328 operationUngroupedMeasurementTable.setName("operationUngroupedMeasurementTable");
329 }
330
331 protected void createTableBlockLayer() {
332 $objectMap.put("tableBlockLayer", tableBlockLayer = new WaitBlockingLayerUI());
333 }
334
335 protected void createTableauHautScrollPane() {
336 $objectMap.put("tableauHautScrollPane", tableauHautScrollPane = new JScrollPane());
337
338 tableauHautScrollPane.setName("tableauHautScrollPane");
339 }
340
341
342
343
344
345 private void $completeSetup() {
346 allComponentsCreated = true;
347 if (log.isDebugEnabled()) {
348 log.debug(this);
349 }
350 addChildrenToTableauHautPanel();
351 addChildrenToTableauHautScrollPane();
352
353
354 JAXXUtil.applyDataBinding(this, $bindings.keySet());
355
356
357 setBorder(BorderFactory.createTitledBorder(""));
358 tableBlockLayer.setBlockingColor(handler.getConfig().getColorBlockingLayer());
359 }
360
361 private void $initialize() {
362 if (allComponentsCreated) {
363 return;
364 }
365 if (log.isDebugEnabled()) {
366 log.debug(this);
367 }
368 handler.beforeInit(this);
369 $objectMap.put("tableauHautPanel", tableauHautPanel);
370 createModel();
371 createBroker();
372 createTableBlockLayer();
373 createTableauHautScrollPane();
374 createOperationUngroupedMeasurementTable();
375
376 setName("tableauHautPanel");
377 setLayout(new BorderLayout());
378 tableauHautPanel.putClientProperty("panelType", DaliUI.EDITION_PANEL_TYPE);
379
380
381 $registerDefaultBindings();
382 $completeSetup();
383 handler.afterInit(this);
384 }
385
386 private void $registerDefaultBindings() {
387
388 registerDataBinding(new DefaultJAXXBinding(this, BINDING_TABLE_BLOCK_LAYER_BLOCK, true) {
389
390 @Override
391 public void applyDataBinding() {
392 if (model != null) {
393 model.addPropertyChangeListener("loading", this);
394 }
395 }
396
397 @Override
398 public void processDataBinding() {
399 if (model != null) {
400 tableBlockLayer.setBlock(model.isLoading());
401 }
402 }
403
404 @Override
405 public void removeDataBinding() {
406 if (model != null) {
407 model.removePropertyChangeListener("loading", this);
408 }
409 }
410 });
411 }
412
413 }