View Javadoc
1   package fr.ifremer.reefdb.ui.swing.content.manage.referential.department.national;
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.content.manage.referential.department.menu.DepartmentMenuUI;
33  import fr.ifremer.reefdb.ui.swing.util.ReefDbUI;
34  import java.awt.BorderLayout;
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 org.apache.commons.logging.Log;
55  import org.apache.commons.logging.LogFactory;
56  import static org.nuiton.i18n.I18n.t;
57  
58  public class ManageDepartmentsNationalUI extends JPanel implements ReefDbUI<ManageDepartmentsNationalUIModel, ManageDepartmentsNationalUIHandler>, JAXXObject {
59  
60      /*-----------------------------------------------------------------------*/
61      /*------------------------- Other static fields -------------------------*/
62      /*-----------------------------------------------------------------------*/
63  
64      private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAL1Uz08TQRR+XW2hIIoSECMmKCRGiVONR4yiNARIq4aKIfbibHdaBmdnh9lZWS7GP8E/Qe9eTLx5Mh48e/Bi/BeM8eDV+Gbb7lKoPxITe5jdvve+933v7bz38gvkQw1nt2gcEx1Jw31GVm9ubNxxt1jDlFnY0FyZQEP7l3PAqcOwl9pDAzP1ioWXOvDSYuCrQDK5Bz1fgaHQ7AoWbjJmDJzpRTTCsFRL3fOxinQ3ayqqX9bn3746z7ynLxyAWKG6ASxl+k+orJLDFXC4Z+AEMj2mJUFlC2VoLluod8TaFgUNw9vUZ9vwBAYqUFBUYzID5/6+5CRHgo+VgcHZ1btUMnHZAGtqwpua+UwTzVjTc0nESbiD/KQRSIPpiE8lbTF0N5kl5lQQj6EI41uvpIYHEm3VJKycelBz27O+olRCXjCQ9wOPCQNb/4W3asky8oKrg0dMG5j7Dfsa/i+7y4i7lURn8NGMvcpktL5i4P4/l4FHRMr7ElvCYsrb/VxX8JbYCxF3CNrW3tiR2dVaQwdCWB9+35M9gMxlw8dT1KR3sHv3qCuYAbKnwu2Iepq32NWsSGOjSM2+JwCbcFLhCJzuGQEcLpINV3b7c3XI6wjNqKF+cB7X0NWexMl9k2gTJt4fE2Mf33x+vdQdPwe5x/uG7tkeOBZKBwqvArfUx9qzFxkuSlWq5utQDJnA1ZOslqk+wmodN4pDvuMWTiycLNNwE1PkBz69fTfx8MMhcJZgSATUW6I2fgWKZlNjFwLhxerGQqLoyM4gnqNWG95RQXeDCKf76DWPGjrtculhc6/H2ISpPk1IlbjF99/Haq8Wuo3IobBTvwzPmpF/AAUuBZcs2USdJdN38wyrkEVekC2TfuslZ59DqjM2M8l5/mCl1nzBHhfjyD7mEsn27VLim8AMPwGR33mNGQYAAA==";
65      private static final Log log = LogFactory.getLog(ManageDepartmentsNationalUI.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 DepartmentMenuUI departmentMenuUI;
86      protected SwingTable departmentsNationalTable;
87      protected final ManageDepartmentsNationalUIHandler handler = createHandler();
88      protected ManageDepartmentsNationalUIModel model;
89  
90      /*-----------------------------------------------------------------------*/
91      /*------------------------- Private components  -------------------------*/
92      /*-----------------------------------------------------------------------*/
93  
94      private ManageDepartmentsNationalUI $JPanel0 = this;
95      private JPanel $JPanel1;
96      private JScrollPane $JScrollPane0;
97  
98      /*-----------------------------------------------------------------------*/
99      /*---------------------------- Constructors  ----------------------------*/
100     /*-----------------------------------------------------------------------*/
101 
102     public ManageDepartmentsNationalUI(ApplicationUI parentUI) {
103         ApplicationUIUtil.setParentUI(this, parentUI);
104             $initialize();
105     }
106 
107     public ManageDepartmentsNationalUI(LayoutManager param0, boolean param1) {
108         super(param0 ,param1);
109         $initialize();
110     }
111 
112     public ManageDepartmentsNationalUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
113         super(param1 ,param2);
114         JAXXUtil.initContext(this, parentContext);
115         $initialize();
116     }
117 
118     public ManageDepartmentsNationalUI(boolean param0) {
119         super(param0);
120         $initialize();
121     }
122 
123     public ManageDepartmentsNationalUI(JAXXContext parentContext, boolean param1) {
124         super(param1);
125         JAXXUtil.initContext(this, parentContext);
126         $initialize();
127     }
128 
129     public ManageDepartmentsNationalUI() {
130         $initialize();
131     }
132 
133     public ManageDepartmentsNationalUI(JAXXContext parentContext) {
134         JAXXUtil.initContext(this, parentContext);
135         $initialize();
136     }
137 
138     public ManageDepartmentsNationalUI(LayoutManager param0) {
139         super(param0);
140         $initialize();
141     }
142 
143     public ManageDepartmentsNationalUI(JAXXContext parentContext, LayoutManager param1) {
144         super(param1);
145         JAXXUtil.initContext(this, parentContext);
146         $initialize();
147     }
148 
149     /*-----------------------------------------------------------------------*/
150     /*--------------------------- Statics methods ---------------------------*/
151     /*-----------------------------------------------------------------------*/
152 
153     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
154         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
155     }
156 
157     /*-----------------------------------------------------------------------*/
158     /*---------------------- JAXXObject implementation ----------------------*/
159     /*-----------------------------------------------------------------------*/
160 
161     @Override
162     public void applyDataBinding(String $binding) {
163         if (allComponentsCreated && $bindings.containsKey($binding)) {
164             getDataBinding($binding).applyDataBinding();
165         }
166         processDataBinding($binding);
167     }
168 
169     @Override
170     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
171         super.firePropertyChange(propertyName, oldValue, newValue);
172     }
173 
174     @Override
175     public Map<String, Object> get$objectMap() {
176         return $objectMap;
177     }
178 
179     @Override
180     public JAXXBinding getDataBinding(String bindingId) {
181         return $bindings.get(bindingId);
182     }
183 
184     @Override
185     public JAXXBinding[] getDataBindings() {
186         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
187     }
188 
189     @Override
190     public Object getObjectById(String id) {
191         return $objectMap.get(id);
192     }
193 
194     @Override
195     public void processDataBinding(String $binding, boolean $force) {
196         if (!$force && $activeBindings.contains($binding)) { 
197             return;
198         }
199         $activeBindings.add($binding);
200         try {
201             if (allComponentsCreated && $bindings.containsKey($binding)) {
202                 getDataBinding($binding).processDataBinding();
203             }
204         } finally {
205             $activeBindings.remove($binding);
206         }
207     }
208 
209     @Override
210     public void processDataBinding(String $binding) {
211         processDataBinding($binding, false);
212     }
213 
214     @Override
215     public void registerDataBinding(JAXXBinding binding) {
216         $bindings.put(binding.getId(), binding);
217     }
218 
219     @Override
220     public void removeDataBinding(String $binding) {
221         if (allComponentsCreated && $bindings.containsKey($binding)) {
222             getDataBinding($binding).removeDataBinding();
223         }
224     }
225 
226     /*-----------------------------------------------------------------------*/
227     /*--------------------- JAXXContext implementation  ---------------------*/
228     /*-----------------------------------------------------------------------*/
229 
230     @Override
231     public <T> T getContextValue(Class<T> clazz) {
232         return delegateContext.getContextValue(clazz, null);
233     }
234 
235     @Override
236     public <T> T getContextValue(Class<T> clazz, String name) {
237         return delegateContext.getContextValue(clazz, name);
238     }
239 
240     @Override
241     public JAXXContext getDelegateContext() {
242         return delegateContext;
243     }
244 
245     @Override
246     public <O extends Container> O getParentContainer(Class<O> clazz) {
247         return SwingUtil.getParentContainer(this, clazz);
248     }
249 
250     @Override
251     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
252         return SwingUtil.getParentContainer(source, clazz);
253     }
254 
255     @Override
256     public <T> void removeContextValue(Class<T> clazz) {
257         delegateContext.removeContextValue(clazz, null);
258     }
259 
260     @Override
261     public <T> void removeContextValue(Class<T> clazz, String name) {
262         delegateContext.removeContextValue(clazz, name);
263     }
264 
265     @Override
266     public <T> void setContextValue(T o) {
267         delegateContext.setContextValue(o, null);
268     }
269 
270     @Override
271     public <T> void setContextValue(T o, String name) {
272         delegateContext.setContextValue(o, name);
273     }
274 
275     /*-----------------------------------------------------------------------*/
276     /*----------------------- Public acessor methods  -----------------------*/
277     /*-----------------------------------------------------------------------*/
278 
279     public ReefDbHelpBroker getBroker() {
280         return broker;
281     }
282 
283     public DepartmentMenuUI getDepartmentMenuUI() {
284         return departmentMenuUI;
285     }
286 
287     public SwingTable getDepartmentsNationalTable() {
288         return departmentsNationalTable;
289     }
290 
291     public ManageDepartmentsNationalUIHandler getHandler() {
292         return handler;
293     }
294 
295     public ManageDepartmentsNationalUIModel getModel() {
296         return model;
297     }
298 
299     /*-----------------------------------------------------------------------*/
300     /*--------------------- Protected acessors methods  ---------------------*/
301     /*-----------------------------------------------------------------------*/
302 
303     protected JPanel get$JPanel1() {
304         return $JPanel1;
305     }
306 
307     protected JScrollPane get$JScrollPane0() {
308         return $JScrollPane0;
309     }
310 
311     /*-----------------------------------------------------------------------*/
312     /*--------------------- Components creation methods ---------------------*/
313     /*-----------------------------------------------------------------------*/
314 
315     protected void createBroker() {
316         $objectMap.put("broker", broker = new ReefDbHelpBroker("reefdb.home.help"));
317     }
318 
319     protected void createDepartmentMenuUI() {
320         $objectMap.put("departmentMenuUI", departmentMenuUI = new DepartmentMenuUI(this));
321         
322         departmentMenuUI.setName("departmentMenuUI");
323     }
324 
325     protected void createDepartmentsNationalTable() {
326         $objectMap.put("departmentsNationalTable", departmentsNationalTable = new SwingTable());
327         
328         departmentsNationalTable.setName("departmentsNationalTable");
329     }
330 
331     protected ManageDepartmentsNationalUIHandler createHandler() {
332         return new ManageDepartmentsNationalUIHandler();
333     }
334 
335     protected void createModel() {
336         $objectMap.put("model", model = getContextValue(ManageDepartmentsNationalUIModel.class));
337     }
338 
339     /*-----------------------------------------------------------------------*/
340     /*------------------------ Internal jaxx methods ------------------------*/
341     /*-----------------------------------------------------------------------*/
342 
343     private void $completeSetup() {
344         allComponentsCreated = true;
345         if (log.isDebugEnabled()) {
346             log.debug(this);
347         }
348         // inline complete setup of $JPanel0
349         add(departmentMenuUI, BorderLayout.LINE_START);
350         add($JPanel1, BorderLayout.CENTER);
351         // inline complete setup of $JPanel1
352         $JPanel1.add($JScrollPane0);
353         // inline complete setup of $JScrollPane0
354         $JScrollPane0.getViewport().add(departmentsNationalTable);
355     }
356 
357     private void $initialize() {
358         if (allComponentsCreated) {
359             return;
360         }
361         if (log.isDebugEnabled()) {
362             log.debug(this);
363         }
364         handler.beforeInit(this);
365         $objectMap.put("$JPanel0", $JPanel0);
366         createModel();
367         createBroker();
368         createDepartmentMenuUI();
369         // inline creation of $JPanel1
370         $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
371         
372         $JPanel1.setName("$JPanel1");
373         $JPanel1.setLayout(new BorderLayout());
374         // inline creation of $JScrollPane0
375         $objectMap.put("$JScrollPane0", $JScrollPane0 = new JScrollPane());
376         
377         $JScrollPane0.setName("$JScrollPane0");
378         createDepartmentsNationalTable();
379         // inline creation of $JPanel0
380         setName("$JPanel0");
381         setLayout(new BorderLayout());
382         
383         $completeSetup();
384         handler.afterInit(this);
385     }
386 
387 }