Revision 12166 trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/enhancement/EnhancementListManager.java

View differences:

EnhancementListManager.java
21 21
import java.util.ArrayList;
22 22

  
23 23
import org.gvsig.raster.dataset.FileNotOpenException;
24
import org.gvsig.raster.dataset.IBuffer;
25 24
import org.gvsig.raster.dataset.IStatistics;
26 25
import org.gvsig.raster.dataset.Params;
27 26
import org.gvsig.raster.dataset.RasterDriverException;
......
80 79
	 * @param insertionMode Modo de inserci?n 
81 80
	 * @param renderBands bandas RGB mostradas en la visualizaci?n.
82 81
	 */
83
	public void addEnhancedFilter(boolean removeEnds, IStatistics stats, double tailTrim, int insertionMode, int[] renderBands) {
84
		String fName = LinearEnhancementFilter.names[0];
82
	public void addEnhancedFilter(boolean removeEnds, IStatistics stats, double tailTrim, int[] renderBands) {
85 83

  
86
		int	insertPos = filterList.getPosition(LinearEnhancementFilter.class);
87

  
88 84
		if (tailTrim == 0) { // En este caso siempre es necesario el m?ximo y
89 85
													// m?nimo
90 86
			if (!stats.isCalculated()) {
......
100 96
			}
101 97
		} else {
102 98
			StatisticsListManager slm = new StatisticsListManager(filterListManager, stats);
103
			slm.addTailFilter(tailTrim, 0D, removeEnds, stats, insertionMode);
99
			slm.addTailFilter(tailTrim, 0D, removeEnds, stats);
104 100
		}
105 101

  
106
		RasterFilter filter = null;
107

  
108
		switch (filterList.getDataTypeInFilter(fName, insertionMode)) {
109
			case IBuffer.TYPE_BYTE:
110
				filter = new LinearEnhancementByteFilter();
111
				break;
112
			case IBuffer.TYPE_USHORT:
113
			case IBuffer.TYPE_SHORT:
114
				filter = new LinearEnhancementShortFilter();
115
				break;
116
			case IBuffer.TYPE_INT:
117
				filter = new LinearEnhancementIntegerFilter();
118
				break;
119
			case IBuffer.TYPE_FLOAT:
120
				filter = new LinearEnhancementFloatFilter();
121
				break;
122
			case IBuffer.TYPE_DOUBLE:
123
				filter = new LinearEnhancementDoubleFilter();
124
				break;
125
		}
126

  
102
		RasterFilter filter = new LinearEnhancementByteFilter();
127 103
		if (filter != null) {
128 104
			filter.addParam("stats", stats);
129 105
			if (removeEnds) {
......
134 110
			filter.addParam("tailTrim", new Double(tailTrim));
135 111
			filter.addParam("renderBands", renderBands);
136 112

  
137
			if(insertPos == -1)
138
				filterList.add(filter);
139
			else
140
				filterList.replace(filter, fName);
113
			filterList.add(filter);
141 114
		}
142 115
	}
143 116

  
......
199 172
				}
200 173

  
201 174
				if (elem.startsWith("filter.enhanced.remove")) {
202
					addEnhancedFilter(Boolean.valueOf(RasterFilterListManager.getValue(elem)).booleanValue(), stats, tailTrim, RasterFilterList.ADD_END, renderBands);
175
					addEnhancedFilter(Boolean.valueOf(RasterFilterListManager.getValue(elem)).booleanValue(), stats, tailTrim, renderBands);
203 176
					filters.remove(propFilter);
204 177
					propFilter--;
205 178
				}
......
242 215
					tailTrim = Double.parseDouble(params.getParam(i).defaultValue) / 100.0;
243 216
			}
244 217

  
245
			addEnhancedFilter(removeEnds, (IStatistics) filterList.getParam("IStatistics"),
246
					tailTrim, RasterFilterList.ADD_END, renderBands);
218
			addEnhancedFilter(removeEnds, (IStatistics) filterList.getParam("IStatistics"), tailTrim, renderBands);
247 219
		}
248 220
	}
249 221
}

Also available in: Unified diff