KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > chart > HighLowDatasetPanel


1 /*
2  * Copyright (C) 2005 - 2006 JasperSoft Corporation. All rights reserved.
3  * http://www.jaspersoft.com.
4  *
5  * Unless you have purchased a commercial license agreement from JasperSoft,
6  * the following license terms apply:
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as published by
10  * the Free Software Foundation.
11  *
12  * This program is distributed WITHOUT ANY WARRANTY; and without the
13  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14  * See the GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
18  * or write to:
19  *
20  * Free Software Foundation, Inc.,
21  * 59 Temple Place - Suite 330,
22  * Boston, MA USA 02111-1307
23  *
24  *
25  *
26  *
27  * HighLowDatasetPanel.java
28  *
29  * Created on 15 agosto 2005, 17.55
30  *
31  */

32
33 package it.businesslogic.ireport.chart;
34
35 import it.businesslogic.ireport.SubDataset;
36 import it.businesslogic.ireport.util.I18n;
37
38 /**
39  *
40  * @author Administrator
41  */

42 public class HighLowDatasetPanel extends javax.swing.JPanel JavaDoc implements ChartDatasetPanel {
43     
44     private HighLowDataset highLowDataset = null;
45     
46     /** Creates new form PieDatasetPanel */
47     public HighLowDatasetPanel() {
48         initComponents();
49         
50         applyI18n();
51         
52         this.jRTextExpressionSeries.getDocument().addDocumentListener( new javax.swing.event.DocumentListener JavaDoc() {
53             public void changedUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
54                 jRTextExpressionSeriesTextChanged();
55             }
56             public void insertUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
57                 jRTextExpressionSeriesTextChanged();
58             }
59             public void removeUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
60                 jRTextExpressionSeriesTextChanged();
61             }
62         });
63         
64         
65         this.jRTextExpressionDate.getDocument().addDocumentListener( new javax.swing.event.DocumentListener JavaDoc() {
66             public void changedUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
67                 jRTextExpressionDateTextChanged();
68             }
69             public void insertUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
70                 jRTextExpressionDateTextChanged();
71             }
72             public void removeUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
73                 jRTextExpressionDateTextChanged();
74             }
75         });
76         
77         this.jRTextExpressionVolume.getDocument().addDocumentListener( new javax.swing.event.DocumentListener JavaDoc() {
78             public void changedUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
79                 jRTextExpressionVolumeTextChanged();
80             }
81             public void insertUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
82                 jRTextExpressionVolumeTextChanged();
83             }
84             public void removeUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
85                 jRTextExpressionVolumeTextChanged();
86             }
87         });
88         
89         this.jRTextExpressionHigh.getDocument().addDocumentListener( new javax.swing.event.DocumentListener JavaDoc() {
90             public void changedUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
91                 jRTextExpressionHighTextChanged();
92             }
93             public void insertUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
94                 jRTextExpressionHighTextChanged();
95             }
96             public void removeUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
97                 jRTextExpressionHighTextChanged();
98             }
99         });
100         
101         this.jRTextExpressionLow.getDocument().addDocumentListener( new javax.swing.event.DocumentListener JavaDoc() {
102             public void changedUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
103                 jRTextExpressionLowTextChanged();
104             }
105             public void insertUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
106                 jRTextExpressionLowTextChanged();
107             }
108             public void removeUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
109                 jRTextExpressionLowTextChanged();
110             }
111         });
112         
113         this.jRTextExpressionOpen.getDocument().addDocumentListener( new javax.swing.event.DocumentListener JavaDoc() {
114             public void changedUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
115                 jRTextExpressionOpenTextChanged();
116             }
117             public void insertUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
118                 jRTextExpressionOpenTextChanged();
119             }
120             public void removeUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
121                 jRTextExpressionOpenTextChanged();
122             }
123         });
124         
125         this.jRTextExpressionClose.getDocument().addDocumentListener( new javax.swing.event.DocumentListener JavaDoc() {
126             public void changedUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
127                 jRTextExpressionCloseTextChanged();
128             }
129             public void insertUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
130                 jRTextExpressionCloseTextChanged();
131             }
132             public void removeUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
133                 jRTextExpressionCloseTextChanged();
134             }
135         });
136     }
137
138     public HighLowDataset getHighLowDataset() {
139         return highLowDataset;
140     }
141     
142     /**
143      * this method is used to pass the correct subdataset to the expression editor
144      */

145     public void setSubDataset( SubDataset sds )
146     {
147         jRTextExpressionSeries.setSubDataset(sds);
148         jRTextExpressionDate.setSubDataset(sds);
149         jRTextExpressionHigh.setSubDataset(sds);
150         jRTextExpressionLow.setSubDataset(sds);
151         jRTextExpressionOpen.setSubDataset(sds);
152         jRTextExpressionClose.setSubDataset(sds);
153         jRTextExpressionVolume.setSubDataset(sds);
154         sectionItemHyperlinkPanel1.setSubDataset(sds);
155     }
156
157     public void setHighLowDataset(HighLowDataset highLowDataset) {
158         this.highLowDataset = highLowDataset;
159         jRTextExpressionSeries.setText( highLowDataset.getSeriesExpression() );
160         jRTextExpressionDate.setText( highLowDataset.getDateExpression() );
161         jRTextExpressionHigh.setText( highLowDataset.getHighExpression() );
162         jRTextExpressionLow.setText( highLowDataset.getLowExpression() );
163         jRTextExpressionOpen.setText( highLowDataset.getOpenExpression() );
164         jRTextExpressionClose.setText( highLowDataset.getCloseExpression() );
165         jRTextExpressionVolume.setText( highLowDataset.getVolumeExpression() );
166         sectionItemHyperlinkPanel1.setSectionItemHyperlink(highLowDataset.getItemHyperLink());
167     }
168     
169     public void jRTextExpressionSeriesTextChanged()
170     {
171         highLowDataset.setSeriesExpression( jRTextExpressionSeries.getText() );
172     }
173     
174     public void jRTextExpressionDateTextChanged()
175     {
176         highLowDataset.setDateExpression( jRTextExpressionDate.getText() );
177     }
178     
179     public void jRTextExpressionHighTextChanged()
180     {
181         highLowDataset.setHighExpression( jRTextExpressionHigh.getText() );
182     }
183     
184     public void jRTextExpressionLowTextChanged()
185     {
186         highLowDataset.setLowExpression( jRTextExpressionLow.getText() );
187     }
188     
189     public void jRTextExpressionOpenTextChanged()
190     {
191         highLowDataset.setOpenExpression( jRTextExpressionOpen.getText() );
192     }
193     
194     public void jRTextExpressionCloseTextChanged()
195     {
196         highLowDataset.setCloseExpression( jRTextExpressionClose.getText() );
197     }
198     
199     public void jRTextExpressionVolumeTextChanged()
200     {
201         highLowDataset.setVolumeExpression( jRTextExpressionVolume.getText() );
202     }
203     
204     /** This method is called from within the constructor to
205      * initialize the form.
206      * WARNING: Do NOT modify this code. The content of this method is
207      * always regenerated by the Form Editor.
208      */

209     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
210
private void initComponents() {
211         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
212
213         jTabbedPane2 = new javax.swing.JTabbedPane JavaDoc();
214         jPanel2 = new javax.swing.JPanel JavaDoc();
215         jLabelSeriesExpression = new javax.swing.JLabel JavaDoc();
216         jLabelDateExpression = new javax.swing.JLabel JavaDoc();
217         jRTextExpressionSeries = new it.businesslogic.ireport.gui.JRTextExpressionArea();
218         jRTextExpressionDate = new it.businesslogic.ireport.gui.JRTextExpressionArea();
219         jTabbedPane1 = new javax.swing.JTabbedPane JavaDoc();
220         jPanelHL = new javax.swing.JPanel JavaDoc();
221         jLabelHighExpression = new javax.swing.JLabel JavaDoc();
222         jRTextExpressionHigh = new it.businesslogic.ireport.gui.JRTextExpressionArea();
223         jLabelLowExpression = new javax.swing.JLabel JavaDoc();
224         jRTextExpressionLow = new it.businesslogic.ireport.gui.JRTextExpressionArea();
225         jPanelOC = new javax.swing.JPanel JavaDoc();
226         jLabelOpenExpression = new javax.swing.JLabel JavaDoc();
227         jRTextExpressionOpen = new it.businesslogic.ireport.gui.JRTextExpressionArea();
228         jLabelCloseExpression = new javax.swing.JLabel JavaDoc();
229         jRTextExpressionClose = new it.businesslogic.ireport.gui.JRTextExpressionArea();
230         jPanel1 = new javax.swing.JPanel JavaDoc();
231         jLabelVolumeExpression = new javax.swing.JLabel JavaDoc();
232         jRTextExpressionVolume = new it.businesslogic.ireport.gui.JRTextExpressionArea();
233         sectionItemHyperlinkPanel1 = new it.businesslogic.ireport.chart.gui.SectionItemHyperlinkPanel();
234
235         setLayout(new java.awt.GridBagLayout JavaDoc());
236
237         jPanel2.setLayout(new java.awt.GridBagLayout JavaDoc());
238
239         jLabelSeriesExpression.setText("Series expression");
240         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
241         gridBagConstraints.gridx = 0;
242         gridBagConstraints.gridy = 0;
243         gridBagConstraints.gridwidth = 2;
244         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
245         gridBagConstraints.weightx = 1.0;
246         jPanel2.add(jLabelSeriesExpression, gridBagConstraints);
247
248         jLabelDateExpression.setText("Date expression");
249         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
250         gridBagConstraints.gridx = 0;
251         gridBagConstraints.gridy = 2;
252         gridBagConstraints.gridwidth = 2;
253         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
254         gridBagConstraints.weightx = 1.0;
255         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 0, 0, 0);
256         jPanel2.add(jLabelDateExpression, gridBagConstraints);
257
258         jRTextExpressionSeries.setBorder(javax.swing.BorderFactory.createEtchedBorder());
259         jRTextExpressionSeries.setElectricScroll(0);
260         jRTextExpressionSeries.setMinimumSize(new java.awt.Dimension JavaDoc(10, 10));
261         jRTextExpressionSeries.setPreferredSize(new java.awt.Dimension JavaDoc(10, 10));
262         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
263         gridBagConstraints.gridx = 0;
264         gridBagConstraints.gridy = 1;
265         gridBagConstraints.gridwidth = 2;
266         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
267         gridBagConstraints.weightx = 1.0;
268         gridBagConstraints.weighty = 0.5;
269         jPanel2.add(jRTextExpressionSeries, gridBagConstraints);
270
271         jRTextExpressionDate.setBorder(javax.swing.BorderFactory.createEtchedBorder());
272         jRTextExpressionDate.setElectricScroll(0);
273         jRTextExpressionDate.setMinimumSize(new java.awt.Dimension JavaDoc(10, 10));
274         jRTextExpressionDate.setPreferredSize(new java.awt.Dimension JavaDoc(10, 10));
275         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
276         gridBagConstraints.gridx = 0;
277         gridBagConstraints.gridy = 3;
278         gridBagConstraints.gridwidth = 2;
279         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
280         gridBagConstraints.weightx = 1.0;
281         gridBagConstraints.weighty = 0.5;
282         jPanel2.add(jRTextExpressionDate, gridBagConstraints);
283
284         jPanelHL.setLayout(new java.awt.GridBagLayout JavaDoc());
285
286         jLabelHighExpression.setText("High expression");
287         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
288         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
289         gridBagConstraints.weightx = 1.0;
290         jPanelHL.add(jLabelHighExpression, gridBagConstraints);
291
292         jRTextExpressionHigh.setBorder(javax.swing.BorderFactory.createEtchedBorder());
293         jRTextExpressionHigh.setElectricScroll(0);
294         jRTextExpressionHigh.setMinimumSize(new java.awt.Dimension JavaDoc(10, 10));
295         jRTextExpressionHigh.setPreferredSize(new java.awt.Dimension JavaDoc(10, 10));
296         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
297         gridBagConstraints.gridy = 1;
298         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
299         gridBagConstraints.weightx = 1.0;
300         gridBagConstraints.weighty = 1.0;
301         jPanelHL.add(jRTextExpressionHigh, gridBagConstraints);
302
303         jLabelLowExpression.setText("Low expression");
304         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
305         gridBagConstraints.gridx = 0;
306         gridBagConstraints.gridy = 5;
307         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
308         gridBagConstraints.weightx = 0.5;
309         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 0, 0);
310         jPanelHL.add(jLabelLowExpression, gridBagConstraints);
311
312         jRTextExpressionLow.setBorder(javax.swing.BorderFactory.createEtchedBorder());
313         jRTextExpressionLow.setElectricScroll(0);
314         jRTextExpressionLow.setMinimumSize(new java.awt.Dimension JavaDoc(10, 10));
315         jRTextExpressionLow.setPreferredSize(new java.awt.Dimension JavaDoc(10, 10));
316         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
317         gridBagConstraints.gridx = 0;
318         gridBagConstraints.gridy = 6;
319         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
320         gridBagConstraints.weightx = 0.5;
321         gridBagConstraints.weighty = 1.0;
322         jPanelHL.add(jRTextExpressionLow, gridBagConstraints);
323
324         jTabbedPane1.addTab("High/Low", jPanelHL);
325
326         jPanelOC.setLayout(new java.awt.GridBagLayout JavaDoc());
327
328         jLabelOpenExpression.setText("Open expression");
329         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
330         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
331         gridBagConstraints.weightx = 1.0;
332         jPanelOC.add(jLabelOpenExpression, gridBagConstraints);
333
334         jRTextExpressionOpen.setBorder(javax.swing.BorderFactory.createEtchedBorder());
335         jRTextExpressionOpen.setElectricScroll(0);
336         jRTextExpressionOpen.setMinimumSize(new java.awt.Dimension JavaDoc(10, 10));
337         jRTextExpressionOpen.setPreferredSize(new java.awt.Dimension JavaDoc(10, 10));
338         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
339         gridBagConstraints.gridy = 1;
340         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
341         gridBagConstraints.weightx = 1.0;
342         gridBagConstraints.weighty = 1.0;
343         jPanelOC.add(jRTextExpressionOpen, gridBagConstraints);
344
345         jLabelCloseExpression.setText("Close expression");
346         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
347         gridBagConstraints.gridx = 0;
348         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
349         gridBagConstraints.weightx = 1.0;
350         jPanelOC.add(jLabelCloseExpression, gridBagConstraints);
351
352         jRTextExpressionClose.setBorder(javax.swing.BorderFactory.createEtchedBorder());
353         jRTextExpressionClose.setElectricScroll(0);
354         jRTextExpressionClose.setMinimumSize(new java.awt.Dimension JavaDoc(10, 10));
355         jRTextExpressionClose.setPreferredSize(new java.awt.Dimension JavaDoc(10, 10));
356         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
357         gridBagConstraints.gridx = 0;
358         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
359         gridBagConstraints.weightx = 1.0;
360         gridBagConstraints.weighty = 1.0;
361         jPanelOC.add(jRTextExpressionClose, gridBagConstraints);
362
363         jTabbedPane1.addTab("Open/Close", jPanelOC);
364
365         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
366
367         jLabelVolumeExpression.setText("Volume expression");
368         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
369         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
370         gridBagConstraints.weightx = 1.0;
371         jPanel1.add(jLabelVolumeExpression, gridBagConstraints);
372
373         jRTextExpressionVolume.setBorder(javax.swing.BorderFactory.createEtchedBorder());
374         jRTextExpressionVolume.setElectricScroll(0);
375         jRTextExpressionVolume.setMinimumSize(new java.awt.Dimension JavaDoc(10, 10));
376         jRTextExpressionVolume.setPreferredSize(new java.awt.Dimension JavaDoc(10, 10));
377         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
378         gridBagConstraints.gridy = 1;
379         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
380         gridBagConstraints.weightx = 1.0;
381         gridBagConstraints.weighty = 1.0;
382         jPanel1.add(jRTextExpressionVolume, gridBagConstraints);
383
384         jTabbedPane1.addTab("Volume", jPanel1);
385
386         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
387         gridBagConstraints.gridy = 5;
388         gridBagConstraints.gridwidth = 2;
389         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
390         gridBagConstraints.weightx = 2.0;
391         gridBagConstraints.weighty = 2.0;
392         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 0, 0, 0);
393         jPanel2.add(jTabbedPane1, gridBagConstraints);
394
395         jTabbedPane2.addTab("Data", jPanel2);
396
397         jTabbedPane2.addTab("Item hyperlink", sectionItemHyperlinkPanel1);
398
399         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
400         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
401         gridBagConstraints.weightx = 1.0;
402         gridBagConstraints.weighty = 1.0;
403         add(jTabbedPane2, gridBagConstraints);
404
405     }// </editor-fold>//GEN-END:initComponents
406

407     
408     // Variables declaration - do not modify//GEN-BEGIN:variables
409
private javax.swing.JLabel JavaDoc jLabelCloseExpression;
410     private javax.swing.JLabel JavaDoc jLabelDateExpression;
411     private javax.swing.JLabel JavaDoc jLabelHighExpression;
412     private javax.swing.JLabel JavaDoc jLabelLowExpression;
413     private javax.swing.JLabel JavaDoc jLabelOpenExpression;
414     private javax.swing.JLabel JavaDoc jLabelSeriesExpression;
415     private javax.swing.JLabel JavaDoc jLabelVolumeExpression;
416     private javax.swing.JPanel JavaDoc jPanel1;
417     private javax.swing.JPanel JavaDoc jPanel2;
418     private javax.swing.JPanel JavaDoc jPanelHL;
419     private javax.swing.JPanel JavaDoc jPanelOC;
420     private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionClose;
421     private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionDate;
422     private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionHigh;
423     private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionLow;
424     private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionOpen;
425     private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionSeries;
426     private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionVolume;
427     private javax.swing.JTabbedPane JavaDoc jTabbedPane1;
428     private javax.swing.JTabbedPane JavaDoc jTabbedPane2;
429     private it.businesslogic.ireport.chart.gui.SectionItemHyperlinkPanel sectionItemHyperlinkPanel1;
430     // End of variables declaration//GEN-END:variables
431

432     public void applyI18n()
433     {
434                 // Start autogenerated code ----------------------
435
// End autogenerated code ----------------------
436
jLabelSeriesExpression.setText(it.businesslogic.ireport.util.I18n.getString("charts.seriesExpression", "Series expression"));
437         jLabelDateExpression.setText(it.businesslogic.ireport.util.I18n.getString("charts.dateExpression", "Date expression"));
438         jLabelHighExpression.setText(it.businesslogic.ireport.util.I18n.getString("charts.highExpression", "High expression"));
439         jLabelLowExpression.setText(it.businesslogic.ireport.util.I18n.getString("charts.lowExpression", "Low expression"));
440         jLabelOpenExpression.setText(it.businesslogic.ireport.util.I18n.getString("charts.openExpression", "Open expression"));
441         jLabelCloseExpression.setText(it.businesslogic.ireport.util.I18n.getString("charts.closeExpression", "Close expression"));
442         jLabelVolumeExpression.setText(it.businesslogic.ireport.util.I18n.getString("charts.volumeExpression", "Volume expression"));
443         
444         jTabbedPane1.setTitleAt(0,I18n.getString("chartSeries.tab.HighLow","High/Low"));
445         jTabbedPane1.setTitleAt(1,I18n.getString("chartSeries.tab.OpenClose","Open/Close"));
446         jTabbedPane1.setTitleAt(2,I18n.getString("chartSeries.tab.Volume","Volume"));
447         
448         jTabbedPane2.setTitleAt(0,I18n.getString("chartSeries.tab.Data","Data"));
449         jTabbedPane2.setTitleAt(1,I18n.getString("chartSeries.tab.ItemHyperlink","Item hyperlink"));
450         
451         this.updateUI();
452         
453     }
454          
455 }
456
Popular Tags