Revision 38409 branches/v2_0_0_prep/libraries/libFMap_controls/src/org/gvsig/fmap/mapcontrol/dal/feature/swing/table/ConfigurableFeatureTableModel.java

View differences:

ConfigurableFeatureTableModel.java
61 61

  
62 62
    private List<String> visibleColumnNames;
63 63

  
64
    private List<String> visibleColumnNamesOriginal;
65

  
64 66
    private Map<String, String> name2Alias;
65 67

  
68
    private Map<String, String> name2AliasOriginal;
69

  
66 70
    /**
67 71
     * @see FeatureTableModel#FeatureTableModel(FeatureStore, FeatureQuery)
68 72
     */
......
168 172
            if (!visibleColumnNames.contains(colName) && newColumns.contains(colName)) {
169 173
                // Add new columns
170 174
                visibleColumnNames.add(colName);
175
                visibleColumnNamesOriginal.add(colName);
171 176
            }
172 177
        }
173 178

  
174 179
        // remove from visible columns removed columns
175 180
        visibleColumnNames.retainAll(columnNames);
181
        visibleColumnNamesOriginal.retainAll(columnNames);
176 182

  
177 183
        // remove from alias map removed columns
178
        name2Alias.keySet().retainAll(visibleColumnNames);
184
        name2Alias.keySet().retainAll(columnNames);
185
        name2AliasOriginal.keySet().retainAll(columnNames);
179 186

  
180 187
        super.setFeatureType(featureType);
181 188

  
......
260 267
    private void initializeAliases() {
261 268
        int columns = super.getColumnCount();
262 269
        name2Alias = new HashMap<String, String>(columns);
270
        name2AliasOriginal = new HashMap<String, String>(columns);
263 271
        //
264 272
        // for (int i = 0; i < columns; i++) {
265 273
        // String columnName = super.getColumnName(i);
......
286 294
                visibleColumnNames.add(columnName);
287 295
            }
288 296
        }
297
        
298
        visibleColumnNamesOriginal = new ArrayList<String>(visibleColumnNames);
289 299
    }
290 300

  
291 301
    /**
......
324 334
        int realColumnIndex = getOriginalColumnIndex(columnIndex);
325 335
        return super.setFeatureValue(feature, realColumnIndex, value);
326 336
    }
337
    
338
    /**
339
     * Make current changes in configuration (visible columns and aliases)
340
     * as definitive.
341
     */
342
    public void acceptChanges() {
343
    	visibleColumnNamesOriginal = new ArrayList<String>(visibleColumnNames);
344
    	name2AliasOriginal = new HashMap<String, String>(name2Alias);
345
    }
346
    
347
    /**
348
     * Cancel current changes in configuration (visible columns and aliases)
349
     * and return to previous status.
350
     */
351
    public void cancelChanges() {
352
    	visibleColumnNames = new ArrayList<String>(visibleColumnNamesOriginal);
353
    	name2Alias = new HashMap<String, String>(name2AliasOriginal);
354
    	fireTableStructureChanged();
355
    }
327 356
}

Also available in: Unified diff