Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.swing / org.gvsig.fmap.dal.swing.api / src / main / java / org / gvsig / fmap / dal / swing / report / AbstractReportAction.java @ 47049

History | View | Annotate | Download (3.06 KB)

1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.fmap.dal.swing.report;
7

    
8
import javax.swing.AbstractAction;
9
import javax.swing.Action;
10
import org.apache.commons.lang3.StringUtils;
11
import org.apache.commons.text.StringEscapeUtils;
12
import org.gvsig.fmap.dal.feature.Feature;
13
import org.gvsig.fmap.dal.feature.FeatureSet;
14
import static org.gvsig.fmap.dal.feature.FeatureSet.EMPTY_FEATURESET;
15
import org.gvsig.tools.ToolsLocator;
16
import org.gvsig.tools.task.SimpleTaskStatus;
17
import org.slf4j.Logger;
18
import org.slf4j.LoggerFactory;
19

    
20
/**
21
 *
22
 * @author jjdelcerro
23
 */
24
public abstract class AbstractReportAction extends AbstractAction implements ReportAction{
25

    
26
    protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractReportAction.class);
27
    
28
    private final ReportActionFactory factory;
29
    private SimpleTaskStatus status;
30

    
31

    
32
    @SuppressWarnings("OverridableMethodCallInConstructor")
33
    protected AbstractReportAction(ReportActionFactory factory, String label) {
34
        this.status = null;
35
        this.factory = factory;
36
        if( label == null ) {
37
            this.putValue(Action.NAME, factory.getName());
38
        } else {
39
            this.putValue(Action.NAME, label);
40
        }
41
    }
42

    
43
    @Override
44
    public ReportActionFactory getFactory() {
45
        return this.factory;
46
    }
47

    
48
    @Override
49
    public String getName() {
50
        return this.factory.getName();
51
    }
52

    
53
    @Override
54
    public String getLabel() {
55
        return (String) this.getValue(Action.NAME);
56
    }
57

    
58
    protected void setLabel(String label) {
59
        this.putValue(Action.NAME, label);
60
    }
61
    
62
    @Override
63
    public ReportAction getValue() {
64
        return this;
65
    }
66
    
67
    @Override
68
    public boolean isEnabled() {
69
        return true;
70
    }
71

    
72
    @Override
73
    public String toString() {
74
        return this.getLabel();
75
    }
76
    
77
    @Override
78
    public SimpleTaskStatus getStatus() {
79
        if( this.status == null ) {
80
            this.status = ToolsLocator.getTaskStatusManager().createDefaultSimpleTaskStatus("Report "+this.getLabel());
81
        }
82
        return this.status;
83
    }    
84

    
85
    @Override
86
    public FeatureSet rows() {
87
        return EMPTY_FEATURESET;
88
    }
89

    
90
    @Override
91
    public String formatFieldValue(Feature feature, String fieldname) {
92
        if( StringUtils.isBlank(fieldname) ) {
93
            LOGGER.warn("Illegal fieldname value (null)");
94
            return "NULL";
95
        }
96
        if( feature == null ) {
97
            LOGGER.warn("Can't access attribute '"+fieldname+"', feature is null.");
98
            return "NULL";
99
        }
100
        String v = null;
101
        try {
102
            v = feature.getLabelOfValue(fieldname);
103
        } catch(Exception ex) {
104
            LOGGER.debug("Esto no deberia estar pasando (1)!!!",ex);
105
        }
106
        try {
107
            v = StringEscapeUtils.escapeHtml4(v);
108
        } catch(Exception ex) {
109
            LOGGER.debug("Esto no deberia estar pasando (2)!!!",ex);
110
        }
111
        return v;
112
    }
113
}