View Javadoc
1   package fr.ifremer.dali.ui.swing.content.manage.program.strategiesByLocation.programs;
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.table.SwingTable;
9   import java.awt.BorderLayout;
10  import java.awt.Component;
11  import java.awt.Container;
12  import java.awt.LayoutManager;
13  import java.util.ArrayList;
14  import java.util.HashMap;
15  import java.util.List;
16  import java.util.Map;
17  import java.util.TreeMap;
18  import javax.swing.BorderFactory;
19  import javax.swing.Box;
20  import javax.swing.BoxLayout;
21  import javax.swing.JPanel;
22  import javax.swing.JScrollPane;
23  import jaxx.runtime.JAXXBinding;
24  import jaxx.runtime.JAXXContext;
25  import jaxx.runtime.JAXXObject;
26  import jaxx.runtime.JAXXObjectDescriptor;
27  import jaxx.runtime.JAXXUtil;
28  import jaxx.runtime.SwingUtil;
29  import jaxx.runtime.context.DefaultJAXXContext;
30  import jaxx.runtime.swing.help.JAXXHelpUI;
31  import org.apache.commons.logging.Log;
32  import org.apache.commons.logging.LogFactory;
33  import static org.nuiton.i18n.I18n.t;
34  
35  public class StrategiesProgrammeTableUI extends JPanel implements JAXXHelpUI<DaliHelpBroker>, DaliUI<StrategiesProgrammeTableUIModel, StrategiesProgrammeTableUIHandler>, JAXXObject {
36  
37      /*-----------------------------------------------------------------------*/
38      /*------------------------- Other static fields -------------------------*/
39      /*-----------------------------------------------------------------------*/
40  
41      private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAL1Uz08UMRR+O7qLu4g/ICJGSAA1wKVr4hGjCIQAWZC4mBD3Ynem7BY709J2ZDZG45/gn6B3LybePBkPnj14Mf4Lxnjwamy7uzOLLNGTc2g6fe9733uv3+vrb5BXEqb2cJIgGUeahgSt39nZuVvfI75eJsqXVGguof3lPPBqMBik50rDlVrFwssdeHmJh4JHJOpBz1egpHSLEdUkRGuYOIzwlSpXU/N8ImLZjZom1S/qyx/fvRfB81ceQCJMdraUyb+hskpOVsCjgYZhw/QYlxmOGiYNSaOGyXfIni0xrNQmDsk+PIOBChQEliaYhul/L9nFcPhEaChpXGdkC0eEaWjuSkR3JQmJRAFmFMUUqQPDj3weaRMOhTjCDYKE5A2JQ6S0xJo0KFGLrQr3saY86hoVqqbWrfZRSLYt2/01IVwGBQ35kAeWOvxf1BuWL+Mv1CV/RKSGmWMTWDZ/qwaz6Dwz6NDV9aovOWO2e9c1XLQ3lHRAPSbrXkxRA67hONaAehj3YxxI2iA3Mlrnh6p271K3+GFhFHX5kKKMVlGm1UxMuRrkZWyONYzVjsr7njG1hT32h7BtQGf9NTry+d3XtytdNXuG+0Jf155hNCozlyBMR6mlPtuWcqwpK29gMV+DoiLMTLKb1PE+iVU7ZpOc4Ttv4cjC0SpWTRMiP/Dl/YfRh59OgLcCJcZxsIKt/xoUdVOaLnAWJOL2gsvo9MEps56zudmr5jKwV735ZNHt2sAW8iUxYtmmmpGgbZnVs9NOBEfVlh5pqiWZnpt7mpgmjvdpYlpJvfjx50j1zUK3kTlT2KVj3bNm5h9AgUaMRsQ9DJ2Z7/sQDApF4oBns91v2uHQuIuOkifcOtW3Ywy3eGyelzM3A6zxZJ1GgZHjrSS2kGuuFLubydm1ZCL+Bks7hv/ABQAA";
42      private static final Log log = LogFactory.getLog(StrategiesProgrammeTableUI.class);
43      private static final long serialVersionUID = 1L;
44  
45      /*-----------------------------------------------------------------------*/
46      /*--------------------------- Internal states ---------------------------*/
47      /*-----------------------------------------------------------------------*/
48  
49      protected List<Object> $activeBindings = new ArrayList<Object>();
50      protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
51      protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
52      protected Map<String, Object> $objectMap = new HashMap<String, Object>();
53      protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
54      private boolean allComponentsCreated;
55      protected final JAXXContext delegateContext = new DefaultJAXXContext();
56  
57      /*-----------------------------------------------------------------------*/
58      /*------------------------ Protected components  ------------------------*/
59      /*-----------------------------------------------------------------------*/
60  
61      protected DaliHelpBroker broker;
62      protected final StrategiesProgrammeTableUIHandler handler = createHandler();
63      protected StrategiesProgrammeTableUIModel model;
64      protected StrategiesProgrammeTableUI tablePanel = this;
65      protected SwingTable tableau;
66  
67      /*-----------------------------------------------------------------------*/
68      /*------------------------- Private components  -------------------------*/
69      /*-----------------------------------------------------------------------*/
70  
71      private JScrollPane $JScrollPane0;
72  
73      /*-----------------------------------------------------------------------*/
74      /*---------------------------- Constructors  ----------------------------*/
75      /*-----------------------------------------------------------------------*/
76  
77      public StrategiesProgrammeTableUI(ApplicationUI parentUI) {
78          ApplicationUIUtil.setParentUI(this, parentUI);
79              $initialize();
80      }
81  
82      public StrategiesProgrammeTableUI() {
83          $initialize();
84      }
85  
86      public StrategiesProgrammeTableUI(JAXXContext parentContext) {
87          JAXXUtil.initContext(this, parentContext);
88          $initialize();
89      }
90  
91      public StrategiesProgrammeTableUI(boolean param0) {
92          super(param0);
93          $initialize();
94      }
95  
96      public StrategiesProgrammeTableUI(JAXXContext parentContext, boolean param1) {
97          super(param1);
98          JAXXUtil.initContext(this, parentContext);
99          $initialize();
100     }
101 
102     public StrategiesProgrammeTableUI(LayoutManager param0) {
103         super(param0);
104         $initialize();
105     }
106 
107     public StrategiesProgrammeTableUI(JAXXContext parentContext, LayoutManager param1) {
108         super(param1);
109         JAXXUtil.initContext(this, parentContext);
110         $initialize();
111     }
112 
113     public StrategiesProgrammeTableUI(LayoutManager param0, boolean param1) {
114         super(param0 ,param1);
115         $initialize();
116     }
117 
118     public StrategiesProgrammeTableUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
119         super(param1 ,param2);
120         JAXXUtil.initContext(this, parentContext);
121         $initialize();
122     }
123 
124     /*-----------------------------------------------------------------------*/
125     /*--------------------------- Statics methods ---------------------------*/
126     /*-----------------------------------------------------------------------*/
127 
128     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
129         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
130     }
131 
132     /*-----------------------------------------------------------------------*/
133     /*---------------------- JAXXObject implementation ----------------------*/
134     /*-----------------------------------------------------------------------*/
135 
136     @Override
137     public void applyDataBinding(String $binding) {
138         if (allComponentsCreated && $bindings.containsKey($binding)) {
139             getDataBinding($binding).applyDataBinding();
140         }
141         processDataBinding($binding);
142     }
143 
144     @Override
145     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
146         super.firePropertyChange(propertyName, oldValue, newValue);
147     }
148 
149     @Override
150     public Map<String, Object> get$objectMap() {
151         return $objectMap;
152     }
153 
154     @Override
155     public JAXXBinding getDataBinding(String bindingId) {
156         return $bindings.get(bindingId);
157     }
158 
159     @Override
160     public JAXXBinding[] getDataBindings() {
161         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
162     }
163 
164     @Override
165     public Object getObjectById(String id) {
166         return $objectMap.get(id);
167     }
168 
169     @Override
170     public void processDataBinding(String $binding, boolean $force) {
171         if (!$force && $activeBindings.contains($binding)) { 
172             return;
173         }
174         $activeBindings.add($binding);
175         try {
176             if (allComponentsCreated && $bindings.containsKey($binding)) {
177                 getDataBinding($binding).processDataBinding();
178             }
179         } finally {
180             $activeBindings.remove($binding);
181         }
182     }
183 
184     @Override
185     public void processDataBinding(String $binding) {
186         processDataBinding($binding, false);
187     }
188 
189     @Override
190     public void registerDataBinding(JAXXBinding binding) {
191         $bindings.put(binding.getId(), binding);
192     }
193 
194     @Override
195     public void removeDataBinding(String $binding) {
196         if (allComponentsCreated && $bindings.containsKey($binding)) {
197             getDataBinding($binding).removeDataBinding();
198         }
199     }
200 
201     /*-----------------------------------------------------------------------*/
202     /*--------------------- JAXXContext implementation  ---------------------*/
203     /*-----------------------------------------------------------------------*/
204 
205     @Override
206     public <T> T getContextValue(Class<T> clazz) {
207         return delegateContext.getContextValue(clazz, null);
208     }
209 
210     @Override
211     public <T> T getContextValue(Class<T> clazz, String name) {
212         return delegateContext.getContextValue(clazz, name);
213     }
214 
215     @Override
216     public JAXXContext getDelegateContext() {
217         return delegateContext;
218     }
219 
220     @Override
221     public <O extends Container> O getParentContainer(Class<O> clazz) {
222         return SwingUtil.getParentContainer(this, clazz);
223     }
224 
225     @Override
226     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
227         return SwingUtil.getParentContainer(source, clazz);
228     }
229 
230     @Override
231     public <T> void removeContextValue(Class<T> clazz) {
232         delegateContext.removeContextValue(clazz, null);
233     }
234 
235     @Override
236     public <T> void removeContextValue(Class<T> clazz, String name) {
237         delegateContext.removeContextValue(clazz, name);
238     }
239 
240     @Override
241     public <T> void setContextValue(T o) {
242         delegateContext.setContextValue(o, null);
243     }
244 
245     @Override
246     public <T> void setContextValue(T o, String name) {
247         delegateContext.setContextValue(o, name);
248     }
249 
250     /*-----------------------------------------------------------------------*/
251     /*----------------------- Public acessor methods  -----------------------*/
252     /*-----------------------------------------------------------------------*/
253 
254     public DaliHelpBroker getBroker() {
255         return broker;
256     }
257 
258     public StrategiesProgrammeTableUIHandler getHandler() {
259         return handler;
260     }
261 
262     public StrategiesProgrammeTableUIModel getModel() {
263         return model;
264     }
265 
266     public SwingTable getTableau() {
267         return tableau;
268     }
269 
270     /*-----------------------------------------------------------------------*/
271     /*---------------------------- Other methods ----------------------------*/
272     /*-----------------------------------------------------------------------*/
273 
274     @Override
275     public void registerHelpId(DaliHelpBroker broker, Component component, String helpId) {
276         broker.installUI(component, helpId);
277     }
278 
279     @Override
280     public void showHelp(String helpId) {
281         getBroker().showHelp(this, helpId);
282     }
283 
284     /*-----------------------------------------------------------------------*/
285     /*--------------------- Protected acessors methods  ---------------------*/
286     /*-----------------------------------------------------------------------*/
287 
288     protected JScrollPane get$JScrollPane0() {
289         return $JScrollPane0;
290     }
291 
292     /*-----------------------------------------------------------------------*/
293     /*--------------------- Components creation methods ---------------------*/
294     /*-----------------------------------------------------------------------*/
295 
296     protected void addChildrenToTablePanel() {
297         if (!allComponentsCreated) {
298             return;
299         }
300         add($JScrollPane0, BorderLayout.CENTER);
301     }
302 
303     protected void createBroker() {
304         $objectMap.put("broker", broker = new DaliHelpBroker("dali.home.help"));
305     }
306 
307     protected StrategiesProgrammeTableUIHandler createHandler() {
308         return new StrategiesProgrammeTableUIHandler();
309     }
310 
311     protected void createModel() {
312         $objectMap.put("model", model = getContextValue(StrategiesProgrammeTableUIModel.class));
313     }
314 
315     protected void createTableau() {
316         $objectMap.put("tableau", tableau = new SwingTable());
317         
318         tableau.setName("tableau");
319     }
320 
321     /*-----------------------------------------------------------------------*/
322     /*------------------------ Internal jaxx methods ------------------------*/
323     /*-----------------------------------------------------------------------*/
324 
325     private void $completeSetup() {
326         allComponentsCreated = true;
327         if (log.isDebugEnabled()) {
328             log.debug(this);
329         }
330         addChildrenToTablePanel();
331         // inline complete setup of $JScrollPane0
332         $JScrollPane0.getViewport().add(tableau);
333         
334         // apply 2 property setters
335         setBorder(BorderFactory.createTitledBorder(t("dali.program.strategies.program.titre")));
336     }
337 
338     private void $initialize() {
339         if (allComponentsCreated) {
340             return;
341         }
342         if (log.isDebugEnabled()) {
343             log.debug(this);
344         }
345         handler.beforeInit(this);
346         $objectMap.put("tablePanel", tablePanel);
347         createModel();
348         createBroker();
349         // inline creation of $JScrollPane0
350         $objectMap.put("$JScrollPane0", $JScrollPane0 = new JScrollPane());
351         
352         $JScrollPane0.setName("$JScrollPane0");
353         createTableau();
354         // inline creation of tablePanel
355         setName("tablePanel");
356         setLayout(new BorderLayout());
357         
358         $completeSetup();
359         handler.afterInit(this);
360     }
361 
362 }