View Javadoc
1   package fr.ifremer.reefdb.ui.swing.content.manage.context.filtercontent;
2   
3   /*-
4    * #%L
5    * Reef DB :: UI
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2014 - 2022 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU Affero General Public License as published by
13   * the Free Software Foundation, either version 3 of the License, or
14   * (at your option) any later version.
15   * 
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   * 
21   * You should have received a copy of the GNU Affero General Public License
22   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
23   * #L%
24   */
25  
26  
27  import fr.ifremer.quadrige3.ui.swing.ApplicationUI;
28  import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
29  import fr.ifremer.quadrige3.ui.swing.table.SwingTable;
30  import fr.ifremer.reefdb.ui.swing.ReefDbHelpBroker;
31  import fr.ifremer.reefdb.ui.swing.ReefDbUIContext;
32  import fr.ifremer.reefdb.ui.swing.util.ReefDbUI;
33  import java.awt.BorderLayout;
34  import java.awt.Component;
35  import java.awt.Container;
36  import java.awt.FlowLayout;
37  import java.awt.LayoutManager;
38  import java.util.ArrayList;
39  import java.util.HashMap;
40  import java.util.List;
41  import java.util.Map;
42  import java.util.TreeMap;
43  import javax.swing.Box;
44  import javax.swing.BoxLayout;
45  import javax.swing.JPanel;
46  import javax.swing.JScrollPane;
47  import jaxx.runtime.JAXXBinding;
48  import jaxx.runtime.JAXXContext;
49  import jaxx.runtime.JAXXObject;
50  import jaxx.runtime.JAXXObjectDescriptor;
51  import jaxx.runtime.JAXXUtil;
52  import jaxx.runtime.SwingUtil;
53  import jaxx.runtime.context.DefaultJAXXContext;
54  import jaxx.runtime.swing.help.JAXXHelpUI;
55  import org.apache.commons.logging.Log;
56  import org.apache.commons.logging.LogFactory;
57  
58  public class ManageFilterContentTableUI extends JPanel implements JAXXHelpUI<ReefDbHelpBroker>, ReefDbUI<ManageFilterContentTableUIModel, ManageFilterContentTableUIHandler>, JAXXObject {
59  
60      /*-----------------------------------------------------------------------*/
61      /*------------------------- Other static fields -------------------------*/
62      /*-----------------------------------------------------------------------*/
63  
64      private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAALVTu24TQRS9XrCDHcIjESEII4VHhzRGojSCgCMriWxAMUhRXMCsd2xPmN2dzMySTYP4BD4BehokOipEQU1Bg/gFhChoEXd2Ha9DlkeDC9s7955zz9w95+UXKGoF57doHBMVBYb7jKzd3Ni4426xnllmuqe4NKGC9FNwwOnCtDc+1wYudlsWXhvBa43Ql2HAggl0vQUVbXYF00PGjIFz+xE9rWudcbkey0jtsY5F5bE+//bVeeY9feEAxBLV2ass/g2V3eRwCxzuGZjFSY9pTdBggDIUDwaod8aeNQTV+jb12TY8gakWlCRVSGbgwr9fOeFI8LE0UPVpQAesyYVhqhEGBkFtyoN71BXMwGZfEd5XzGeKKMb6nksiTvQOaiK9tJukDOljbEg/odortg/SJ9T3V6VMVJQMFP3QY8LAg/83rG0nZBNLrgofMWXg8h9GruPzsruCuFtJdwafubTW6alQiLs0YFcMnLbvJh7BJkq2vTxGLeSserRmMiFjO6Ke4gN2NVNibBfp2P8JwBLOSjTX2X3mQtuSzLaZrwpdKKoIj1FD96DT17GUenzhF49bwqT6Y37u45vPr5t7xi7g7FO5rRO5RMNJFUpcM7ejj6eujgwXtTaV9S6UNRMY6iS01RxhnVEZxeG8kxZOLJysUD1EiuLUp7fv5h9+OAROEyoipF6T2v5VKJuhwi2EwovljaVE0dGdI/h9wmrD9y/obhhhbo5d86ihiy4PPFzu9RiXUM1ZwliJW37/fa7zamlyEWd+254to7gJJR4IHrAk46P45mZ6WmoWeWEW07zgFuxvRUr5EyF+Un4xBQAA";
65      private static final Log log = LogFactory.getLog(ManageFilterContentTableUI.class);
66      private static final long serialVersionUID = 1L;
67  
68      /*-----------------------------------------------------------------------*/
69      /*--------------------------- Internal states ---------------------------*/
70      /*-----------------------------------------------------------------------*/
71  
72      protected List<Object> $activeBindings = new ArrayList<Object>();
73      protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
74      protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
75      protected Map<String, Object> $objectMap = new HashMap<String, Object>();
76      protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
77      private boolean allComponentsCreated;
78      protected final JAXXContext delegateContext = new DefaultJAXXContext();
79  
80      /*-----------------------------------------------------------------------*/
81      /*------------------------ Protected components  ------------------------*/
82      /*-----------------------------------------------------------------------*/
83  
84      protected ReefDbHelpBroker broker;
85      protected final ManageFilterContentTableUIHandler handler = createHandler();
86      protected ManageFilterContentTableUI manageFilterContentMainTable = this;
87      protected SwingTable manageFilterContentTable;
88      protected ManageFilterContentTableUIModel model;
89  
90      /*-----------------------------------------------------------------------*/
91      /*------------------------- Private components  -------------------------*/
92      /*-----------------------------------------------------------------------*/
93  
94      private JScrollPane $JScrollPane0;
95  
96      /*-----------------------------------------------------------------------*/
97      /*---------------------------- Constructors  ----------------------------*/
98      /*-----------------------------------------------------------------------*/
99  
100     public ManageFilterContentTableUI(ApplicationUI parentUI) {
101         ApplicationUIUtil.setParentUI(this, parentUI);
102             $initialize();
103     }
104 
105     public ManageFilterContentTableUI(LayoutManager param0, boolean param1) {
106         super(param0 ,param1);
107         $initialize();
108     }
109 
110     public ManageFilterContentTableUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
111         super(param1 ,param2);
112         JAXXUtil.initContext(this, parentContext);
113         $initialize();
114     }
115 
116     public ManageFilterContentTableUI(boolean param0) {
117         super(param0);
118         $initialize();
119     }
120 
121     public ManageFilterContentTableUI(JAXXContext parentContext, boolean param1) {
122         super(param1);
123         JAXXUtil.initContext(this, parentContext);
124         $initialize();
125     }
126 
127     public ManageFilterContentTableUI() {
128         $initialize();
129     }
130 
131     public ManageFilterContentTableUI(JAXXContext parentContext) {
132         JAXXUtil.initContext(this, parentContext);
133         $initialize();
134     }
135 
136     public ManageFilterContentTableUI(LayoutManager param0) {
137         super(param0);
138         $initialize();
139     }
140 
141     public ManageFilterContentTableUI(JAXXContext parentContext, LayoutManager param1) {
142         super(param1);
143         JAXXUtil.initContext(this, parentContext);
144         $initialize();
145     }
146 
147     /*-----------------------------------------------------------------------*/
148     /*--------------------------- Statics methods ---------------------------*/
149     /*-----------------------------------------------------------------------*/
150 
151     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
152         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
153     }
154 
155     /*-----------------------------------------------------------------------*/
156     /*---------------------- JAXXObject implementation ----------------------*/
157     /*-----------------------------------------------------------------------*/
158 
159     @Override
160     public void applyDataBinding(String $binding) {
161         if (allComponentsCreated && $bindings.containsKey($binding)) {
162             getDataBinding($binding).applyDataBinding();
163         }
164         processDataBinding($binding);
165     }
166 
167     @Override
168     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
169         super.firePropertyChange(propertyName, oldValue, newValue);
170     }
171 
172     @Override
173     public Map<String, Object> get$objectMap() {
174         return $objectMap;
175     }
176 
177     @Override
178     public JAXXBinding getDataBinding(String bindingId) {
179         return $bindings.get(bindingId);
180     }
181 
182     @Override
183     public JAXXBinding[] getDataBindings() {
184         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
185     }
186 
187     @Override
188     public Object getObjectById(String id) {
189         return $objectMap.get(id);
190     }
191 
192     @Override
193     public void processDataBinding(String $binding, boolean $force) {
194         if (!$force && $activeBindings.contains($binding)) { 
195             return;
196         }
197         $activeBindings.add($binding);
198         try {
199             if (allComponentsCreated && $bindings.containsKey($binding)) {
200                 getDataBinding($binding).processDataBinding();
201             }
202         } finally {
203             $activeBindings.remove($binding);
204         }
205     }
206 
207     @Override
208     public void processDataBinding(String $binding) {
209         processDataBinding($binding, false);
210     }
211 
212     @Override
213     public void registerDataBinding(JAXXBinding binding) {
214         $bindings.put(binding.getId(), binding);
215     }
216 
217     @Override
218     public void removeDataBinding(String $binding) {
219         if (allComponentsCreated && $bindings.containsKey($binding)) {
220             getDataBinding($binding).removeDataBinding();
221         }
222     }
223 
224     /*-----------------------------------------------------------------------*/
225     /*--------------------- JAXXContext implementation  ---------------------*/
226     /*-----------------------------------------------------------------------*/
227 
228     @Override
229     public <T> T getContextValue(Class<T> clazz) {
230         return delegateContext.getContextValue(clazz, null);
231     }
232 
233     @Override
234     public <T> T getContextValue(Class<T> clazz, String name) {
235         return delegateContext.getContextValue(clazz, name);
236     }
237 
238     @Override
239     public JAXXContext getDelegateContext() {
240         return delegateContext;
241     }
242 
243     @Override
244     public <O extends Container> O getParentContainer(Class<O> clazz) {
245         return SwingUtil.getParentContainer(this, clazz);
246     }
247 
248     @Override
249     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
250         return SwingUtil.getParentContainer(source, clazz);
251     }
252 
253     @Override
254     public <T> void removeContextValue(Class<T> clazz) {
255         delegateContext.removeContextValue(clazz, null);
256     }
257 
258     @Override
259     public <T> void removeContextValue(Class<T> clazz, String name) {
260         delegateContext.removeContextValue(clazz, name);
261     }
262 
263     @Override
264     public <T> void setContextValue(T o) {
265         delegateContext.setContextValue(o, null);
266     }
267 
268     @Override
269     public <T> void setContextValue(T o, String name) {
270         delegateContext.setContextValue(o, name);
271     }
272 
273     /*-----------------------------------------------------------------------*/
274     /*----------------------- Public acessor methods  -----------------------*/
275     /*-----------------------------------------------------------------------*/
276 
277     public ReefDbHelpBroker getBroker() {
278         return broker;
279     }
280 
281     public ManageFilterContentTableUIHandler getHandler() {
282         return handler;
283     }
284 
285     public SwingTable getManageFilterContentTable() {
286         return manageFilterContentTable;
287     }
288 
289     public ManageFilterContentTableUIModel getModel() {
290         return model;
291     }
292 
293     /*-----------------------------------------------------------------------*/
294     /*---------------------------- Other methods ----------------------------*/
295     /*-----------------------------------------------------------------------*/
296 
297     @Override
298     public void registerHelpId(ReefDbHelpBroker broker, Component component, String helpId) {
299         broker.installUI(component, helpId);
300     }
301 
302     @Override
303     public void showHelp(String helpId) {
304         getBroker().showHelp(this, helpId);
305     }
306 
307     /*-----------------------------------------------------------------------*/
308     /*--------------------- Protected acessors methods  ---------------------*/
309     /*-----------------------------------------------------------------------*/
310 
311     protected JScrollPane get$JScrollPane0() {
312         return $JScrollPane0;
313     }
314 
315     /*-----------------------------------------------------------------------*/
316     /*--------------------- Components creation methods ---------------------*/
317     /*-----------------------------------------------------------------------*/
318 
319     protected void addChildrenToManageFilterContentMainTable() {
320         if (!allComponentsCreated) {
321             return;
322         }
323         add($JScrollPane0);
324     }
325 
326     protected void createBroker() {
327         $objectMap.put("broker", broker = new ReefDbHelpBroker("reefdb.home.help"));
328     }
329 
330     protected ManageFilterContentTableUIHandler createHandler() {
331         return new ManageFilterContentTableUIHandler();
332     }
333 
334     protected void createManageFilterContentTable() {
335         $objectMap.put("manageFilterContentTable", manageFilterContentTable = new SwingTable());
336         
337         manageFilterContentTable.setName("manageFilterContentTable");
338     }
339 
340     protected void createModel() {
341         $objectMap.put("model", model = getContextValue(ManageFilterContentTableUIModel.class));
342     }
343 
344     /*-----------------------------------------------------------------------*/
345     /*------------------------ Internal jaxx methods ------------------------*/
346     /*-----------------------------------------------------------------------*/
347 
348     private void $completeSetup() {
349         allComponentsCreated = true;
350         if (log.isDebugEnabled()) {
351             log.debug(this);
352         }
353         addChildrenToManageFilterContentMainTable();
354         // inline complete setup of $JScrollPane0
355         $JScrollPane0.getViewport().add(manageFilterContentTable);
356     }
357 
358     private void $initialize() {
359         if (allComponentsCreated) {
360             return;
361         }
362         if (log.isDebugEnabled()) {
363             log.debug(this);
364         }
365         handler.beforeInit(this);
366         $objectMap.put("manageFilterContentMainTable", manageFilterContentMainTable);
367         createModel();
368         createBroker();
369         // inline creation of $JScrollPane0
370         $objectMap.put("$JScrollPane0", $JScrollPane0 = new JScrollPane());
371         
372         $JScrollPane0.setName("$JScrollPane0");
373         createManageFilterContentTable();
374         // inline creation of manageFilterContentMainTable
375         setName("manageFilterContentMainTable");
376         setLayout(new BorderLayout());
377         
378         $completeSetup();
379         handler.afterInit(this);
380     }
381 
382 }