Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.fmap.control / src / main / java / org / gvsig / fmap / mapcontrol / dal / feature / swing / table / FormattedCellRenderer.java @ 45779

History | View | Annotate | Download (2.21 KB)

1
package org.gvsig.fmap.mapcontrol.dal.feature.swing.table;
2

    
3
import java.awt.Component;
4
import java.text.DateFormat;
5
import java.text.DecimalFormat;
6
import java.text.NumberFormat;
7
import java.text.SimpleDateFormat;
8
import java.util.Date;
9
import javax.swing.JTable;
10
import javax.swing.SwingConstants;
11
import org.apache.commons.lang3.StringUtils;
12

    
13
@SuppressWarnings("UseSpecificCatch")
14
public class FormattedCellRenderer extends FeatureAttributeCellRenderer {
15

    
16
    private final DecimalFormat decimalFormat;
17
    private final SimpleDateFormat dateFormat;
18

    
19
    public FormattedCellRenderer(ConfigurableFeatureTableModel tableModel) {
20
        super(tableModel);
21
        this.decimalFormat = (DecimalFormat) NumberFormat.getInstance(this.tableModel.getLocaleOfData());
22
        this.dateFormat = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.MEDIUM, this.tableModel.getLocaleOfData());
23
    }
24

    
25
    @Override
26
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
27
        super.getTableCellRendererComponent(table,value, isSelected, hasFocus,row, column);
28
        try {
29
            if ( value instanceof Number ) {
30
                String pattern = this.tableModel.getFormattingPattern(column);
31
                if ( !StringUtils.isBlank(pattern) ) {
32
                    this.decimalFormat.applyPattern(pattern);
33
                    String formated = this.decimalFormat.format(value);
34
                    this.setHorizontalAlignment(SwingConstants.RIGHT);
35
                    this.setText(formated);
36
                    return this;
37
                }
38
            }
39
            if ( value instanceof Date ) {
40
                String pattern = this.tableModel.getFormattingPattern(column);
41
                if ( !StringUtils.isBlank(pattern) ) {
42
                    this.dateFormat.applyPattern(pattern);
43
                    String formated = this.dateFormat.format(value);
44
                    this.setHorizontalAlignment(SwingConstants.RIGHT);
45
                    this.setText(formated);
46
                    return this;
47
                }
48
            }
49
        } catch (Exception ex) {
50
            // Do nothing, use values from default renderer
51
        }
52
        return this;
53
    }
54

    
55
}