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 | } |