1 package fr.ifremer.dali.ui.swing.content.config;
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 java.awt.BorderLayout;
9 import java.awt.Component;
10 import java.awt.Container;
11 import java.awt.LayoutManager;
12 import java.util.ArrayList;
13 import java.util.HashMap;
14 import java.util.List;
15 import java.util.Map;
16 import java.util.TreeMap;
17 import javax.swing.JPanel;
18 import jaxx.runtime.JAXXBinding;
19 import jaxx.runtime.JAXXContext;
20 import jaxx.runtime.JAXXObject;
21 import jaxx.runtime.JAXXObjectDescriptor;
22 import jaxx.runtime.JAXXUtil;
23 import jaxx.runtime.SwingUtil;
24 import jaxx.runtime.context.DefaultJAXXContext;
25 import jaxx.runtime.swing.help.JAXXHelpUI;
26 import org.apache.commons.logging.Log;
27 import org.apache.commons.logging.LogFactory;
28
29 public class DaliConfigUI extends JPanel implements JAXXHelpUI<DaliHelpBroker>, DaliUI<DaliUIContext, DaliConfigUIHandler>, JAXXObject {
30
31
32
33
34
35 private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAI1TPW9TMRS9eSUpaaF8FEpRi2iDBJuzsAVBIVXUoPAhQqWKDODkOYmL82xsP/oqBOIn8BNgZ0FiY0IMzAwsiL+AEAMr4tr5aukrkMF68r3n+NxzT15/g6zRsLxJk4ToOLK8x8j1qxsbt5qbrGVXmWlprqzU0P9lAggaMB2O7o2Fc42agxcH8GJZ9pSMWLQDXarBlLHbgpkuY9bCmd2IljHF+qhcSlSsh6wjUWmsL398D16Ez18FAIlCdRM4ytK/UONJDtQg4KGF4/jSY1oUNOqgDM2jDuo97O7Kghpzk/bYI3gGkzXIKaqRzELh/0f2HB6fKAszLRm1eeeuVLdpxISFi21NeFuzHtMkpIKTmBOzhRoIdlqkJH0EWcVi2X+uV5XyjDkL2Z4MHc35fWkcbr1admSJHQNzTS0fMm3hwl+Ra0yoa74ToRoWdrmLeyPjvY2NzTQgq2O8tjDf2LvqO1jqL3n+jyU7Ql/9NTf7+d3Xt5XhZgN8+2Rq645gouNKS4VDcff0kf5aY8tF8QZVpQbkDROYap/axRRh9UEZxeF7xxycODhZo6aLFNnJL+8/zD34NAFBBaaEpGGFuv4q5G1XowtShIm6suIVHdo6iOdRpw3XdL+LRlo48aTgPR7s1F0WniboxGKKEyM5zfzHn7P1NytDNzKo7vS+7WNHsvcgxyPBI+aTPghxarKnlWFxKMdhTYsv7MmvGgTqlD8X0kbPCbotY/zPzFwKqaVLTR6FmK7LSewgZ/047ms5484pZPwNL0z7fZUEAAA=";
36 private static final Log log = LogFactory.getLog(DaliConfigUI.class);
37 private static final long serialVersionUID = 1L;
38
39
40
41
42
43 protected List<Object> $activeBindings = new ArrayList<Object>();
44 protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
45 protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
46 protected Map<String, Object> $objectMap = new HashMap<String, Object>();
47 protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
48 private boolean allComponentsCreated;
49 protected final JAXXContext delegateContext = new DefaultJAXXContext();
50
51
52
53
54
55 protected DaliHelpBroker broker;
56 protected DaliConfigUI configTopPanel = this;
57 protected final DaliConfigUIHandler handler = createHandler();
58 protected DaliUIContext model;
59
60
61
62
63
64 public DaliConfigUI(ApplicationUI parentUI) {
65 ApplicationUIUtil.setParentUI(this, parentUI);
66 $initialize();
67 }
68
69 public DaliConfigUI() {
70 $initialize();
71 }
72
73 public DaliConfigUI(JAXXContext parentContext) {
74 JAXXUtil.initContext(this, parentContext);
75 $initialize();
76 }
77
78 public DaliConfigUI(boolean param0) {
79 super(param0);
80 $initialize();
81 }
82
83 public DaliConfigUI(JAXXContext parentContext, boolean param1) {
84 super(param1);
85 JAXXUtil.initContext(this, parentContext);
86 $initialize();
87 }
88
89 public DaliConfigUI(LayoutManager param0) {
90 super(param0);
91 $initialize();
92 }
93
94 public DaliConfigUI(JAXXContext parentContext, LayoutManager param1) {
95 super(param1);
96 JAXXUtil.initContext(this, parentContext);
97 $initialize();
98 }
99
100 public DaliConfigUI(LayoutManager param0, boolean param1) {
101 super(param0 ,param1);
102 $initialize();
103 }
104
105 public DaliConfigUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
106 super(param1 ,param2);
107 JAXXUtil.initContext(this, parentContext);
108 $initialize();
109 }
110
111
112
113
114
115 public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
116 return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
117 }
118
119
120
121
122
123 @Override
124 public void applyDataBinding(String $binding) {
125 if (allComponentsCreated && $bindings.containsKey($binding)) {
126 getDataBinding($binding).applyDataBinding();
127 }
128 processDataBinding($binding);
129 }
130
131 @Override
132 public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
133 super.firePropertyChange(propertyName, oldValue, newValue);
134 }
135
136 @Override
137 public Map<String, Object> get$objectMap() {
138 return $objectMap;
139 }
140
141 @Override
142 public JAXXBinding getDataBinding(String bindingId) {
143 return $bindings.get(bindingId);
144 }
145
146 @Override
147 public JAXXBinding[] getDataBindings() {
148 return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
149 }
150
151 @Override
152 public Object getObjectById(String id) {
153 return $objectMap.get(id);
154 }
155
156 @Override
157 public void processDataBinding(String $binding, boolean $force) {
158 if (!$force && $activeBindings.contains($binding)) {
159 return;
160 }
161 $activeBindings.add($binding);
162 try {
163 if (allComponentsCreated && $bindings.containsKey($binding)) {
164 getDataBinding($binding).processDataBinding();
165 }
166 } finally {
167 $activeBindings.remove($binding);
168 }
169 }
170
171 @Override
172 public void processDataBinding(String $binding) {
173 processDataBinding($binding, false);
174 }
175
176 @Override
177 public void registerDataBinding(JAXXBinding binding) {
178 $bindings.put(binding.getId(), binding);
179 }
180
181 @Override
182 public void removeDataBinding(String $binding) {
183 if (allComponentsCreated && $bindings.containsKey($binding)) {
184 getDataBinding($binding).removeDataBinding();
185 }
186 }
187
188
189
190
191
192 @Override
193 public <T> T getContextValue(Class<T> clazz) {
194 return delegateContext.getContextValue(clazz, null);
195 }
196
197 @Override
198 public <T> T getContextValue(Class<T> clazz, String name) {
199 return delegateContext.getContextValue(clazz, name);
200 }
201
202 @Override
203 public JAXXContext getDelegateContext() {
204 return delegateContext;
205 }
206
207 @Override
208 public <O extends Container> O getParentContainer(Class<O> clazz) {
209 return SwingUtil.getParentContainer(this, clazz);
210 }
211
212 @Override
213 public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
214 return SwingUtil.getParentContainer(source, clazz);
215 }
216
217 @Override
218 public <T> void removeContextValue(Class<T> clazz) {
219 delegateContext.removeContextValue(clazz, null);
220 }
221
222 @Override
223 public <T> void removeContextValue(Class<T> clazz, String name) {
224 delegateContext.removeContextValue(clazz, name);
225 }
226
227 @Override
228 public <T> void setContextValue(T o) {
229 delegateContext.setContextValue(o, null);
230 }
231
232 @Override
233 public <T> void setContextValue(T o, String name) {
234 delegateContext.setContextValue(o, name);
235 }
236
237
238
239
240
241 public DaliHelpBroker getBroker() {
242 return broker;
243 }
244
245 public DaliConfigUIHandler getHandler() {
246 return handler;
247 }
248
249 public DaliUIContext getModel() {
250 return model;
251 }
252
253
254
255
256
257 @Override
258 public void registerHelpId(DaliHelpBroker broker, Component component, String helpId) {
259 broker.installUI(component, helpId);
260 }
261
262 @Override
263 public void showHelp(String helpId) {
264 getBroker().showHelp(this, helpId);
265 }
266
267
268
269
270
271 protected void createBroker() {
272 $objectMap.put("broker", broker = new DaliHelpBroker("dali.config.help"));
273 }
274
275 protected DaliConfigUIHandler createHandler() {
276 return new DaliConfigUIHandler();
277 }
278
279 protected void createModel() {
280 $objectMap.put("model", model = getContextValue(DaliUIContext.class));
281 }
282
283
284
285
286
287 private void $completeSetup() {
288 allComponentsCreated = true;
289 if (log.isDebugEnabled()) {
290 log.debug(this);
291 }
292
293
294 DaliHelpBroker _broker = getBroker();
295 registerHelpId(_broker, configTopPanel, "dali.config.help");
296 _broker.prepareUI(this);
297 }
298
299 private void $initialize() {
300 if (allComponentsCreated) {
301 return;
302 }
303 if (log.isDebugEnabled()) {
304 log.debug(this);
305 }
306 handler.beforeInit(this);
307 $objectMap.put("configTopPanel", configTopPanel);
308 createModel();
309 createBroker();
310
311 setName("configTopPanel");
312 setLayout(new BorderLayout());
313 configTopPanel.putClientProperty("help", "dali.config.help");
314
315 $completeSetup();
316 handler.afterInit(this);
317 }
318
319 }