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 / FeatureAttributeCellRenderer.java @ 47436

History | View | Annotate | Download (2.2 KB)

1 45779 jjdelcerro
package org.gvsig.fmap.mapcontrol.dal.feature.swing.table;
2
3
import java.awt.Color;
4
import java.awt.Component;
5 47436 fdiaz
import javax.swing.JLabel;
6 45779 jjdelcerro
import javax.swing.JTable;
7
import javax.swing.table.DefaultTableCellRenderer;
8
import org.gvsig.fmap.dal.feature.Feature;
9
import static org.gvsig.fmap.dal.feature.Feature.CHECK_BASIC;
10
import static org.gvsig.fmap.dal.feature.Feature.CHECK_REQUIREDS;
11
import org.gvsig.tools.swing.api.ToolsSwingLocator;
12
13
/**
14
 *
15
 * @author gvSIG Team
16
 */
17
@SuppressWarnings("UseSpecificCatch")
18
public class FeatureAttributeCellRenderer extends DefaultTableCellRenderer {
19
20 47436 fdiaz
    public FeatureAttributeCellRenderer() {
21 45779 jjdelcerro
    }
22
23
    @Override
24
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
25 47436 fdiaz
        JLabel c = (JLabel) super.getTableCellRendererComponent(table,value, isSelected, hasFocus,row, column);
26
        c.setBackground(getBackgroundColor(table, isSelected, row, column));
27
        return c;
28
    }
29
30
    protected Color getBackgroundColor(JTable table, boolean isSelected, int row, int column){
31 45779 jjdelcerro
        try {
32 47436 fdiaz
            if( isSelected ) {
33
                return table.getSelectionBackground();
34
            } else {
35
                FeatureTableModel tableModel = getTableModel(table);
36
                Feature feature = tableModel.getFeatureAt(row);
37
                if(feature.isBroken()){
38
                    return ToolsSwingLocator.getToolsSwingManager().getWarningBackgroundColor();
39
                } else {
40
                    if( tableModel.getFeatureStore().isFeatureModified(feature) ) {
41
                        try {
42
                            feature.validate(Feature.CHECK_RULES_AT_FINISH|CHECK_REQUIREDS|CHECK_BASIC);
43
                        } catch(Exception ex) {
44
                            return ToolsSwingLocator.getToolsSwingManager().getWarningBackgroundColor();
45
                        }
46 45779 jjdelcerro
                    }
47
                }
48
            }
49
        } catch (Exception ex) {
50 47436 fdiaz
            return table.getBackground();
51 45779 jjdelcerro
        }
52 47436 fdiaz
        return table.getBackground();
53 45779 jjdelcerro
    }
54 47436 fdiaz
55
56
    public ConfigurableFeatureTableModel getTableModel(JTable table){
57
        return (ConfigurableFeatureTableModel) table.getModel();
58
    }
59 45779 jjdelcerro
60
}