Statistics
| Revision:

root / org.gvsig.toolbox / trunk / org.gvsig.toolbox / org.gvsig.toolbox.algorithm / src / main / java / es / unex / sextante / vectorTools / InPolygonSpatialJoin / SpatialJoinTableModel.java @ 59

History | View | Annotate | Download (2.55 KB)

1
package es.unex.sextante.vectorTools.InPolygonSpatialJoin;
2

    
3
import javax.swing.table.AbstractTableModel;
4

    
5
import es.unex.sextante.dataObjects.IVectorLayer;
6

    
7
public class SpatialJoinTableModel
8
         extends
9
            AbstractTableModel {
10

    
11
   private final IVectorLayer m_Layer;
12
   private final Object[][]   m_Data;
13

    
14

    
15
   public SpatialJoinTableModel(final IVectorLayer layer) {
16

    
17
      m_Layer = layer;
18
      m_Data = new Object[layer.getFieldCount()][InPolygonSpatialJoinAlgorithm.FUNCTIONS.length + 1];
19
      for (int i = 0; i < layer.getFieldCount(); i++) {
20
         m_Data[i][0] = layer.getFieldName(i);
21
         for (int j = 0; j < InPolygonSpatialJoinAlgorithm.FUNCTIONS.length; j++) {
22
            m_Data[i][j + 1] = new Boolean(false);
23
         }
24
      }
25

    
26
   }
27

    
28

    
29
   public int getColumnCount() {
30

    
31
      return InPolygonSpatialJoinAlgorithm.FUNCTIONS.length + 1;
32

    
33
   }
34

    
35

    
36
   @Override
37
   public String getColumnName(final int col) {
38

    
39
      if (col == 0) {
40
         return "FIELD";
41
      }
42
      else {
43
         return InPolygonSpatialJoinAlgorithm.FUNCTIONS[col - 1];
44
      }
45

    
46

    
47
   }
48

    
49

    
50
   public int getRowCount() {
51

    
52
      return m_Layer.getFieldCount();
53

    
54
   }
55

    
56

    
57
   public Object getValueAt(final int row,
58
                            final int col) {
59

    
60
      return m_Data[row][col];
61

    
62
   }
63

    
64

    
65
   @Override
66
   public boolean isCellEditable(final int row,
67
                                 final int col) {
68

    
69
      if (col == 0) {
70
         return false;
71
      }
72
      else {
73
         return true;
74
      }
75

    
76
   }
77

    
78

    
79
   @Override
80
   public void setValueAt(final Object value,
81
                          final int row,
82
                          final int col) {
83

    
84
      m_Data[row][col] = value;
85
      fireTableCellUpdated(row, col);
86

    
87
   }
88

    
89

    
90
   @Override
91
   public Class getColumnClass(final int columnIndex) {
92

    
93
      if (columnIndex != 0) {
94
         return Boolean.class;
95
      }
96
      else {
97
         return String.class;
98
      }
99

    
100
   }
101

    
102

    
103
   public String getAsString() {
104

    
105
      final StringBuffer sb = new StringBuffer();
106
      boolean bFirst = true;
107
      for (int i = 0; i < m_Data.length; i++) {
108
         for (int j = 1; j < InPolygonSpatialJoinAlgorithm.FUNCTIONS.length + 1; j++) {
109
            final Boolean b = (Boolean) m_Data[i][j];
110
            if (b) {
111
               if (!bFirst) {
112
                  sb.append(",");
113
               }
114
               else {
115
                  bFirst = false;
116
               }
117
               sb.append(Integer.toString(i));
118
               sb.append(",");
119
               sb.append(Integer.toString(j - 1));
120
            }
121
         }
122

    
123
      }
124

    
125
      return sb.toString();
126

    
127
   }
128

    
129

    
130
}