Revision 11767 trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/enhancement/BrightnessContrastListManager.java

View differences:

BrightnessContrastListManager.java
61 61
	 * @param removeAll	true si se desea eliminar cualquier filtro de brillo que 
62 62
	 * hubiera en la pila antes y false si se acumula sobre lo que haya
63 63
	 */
64
	public void addBrightnessFilter(int incrBrillo, boolean removeAll){
65
		//Si ya hay un filtro de brillo en la pila lo sobreescribimos
66
		String fName = BrightnessFilter.genericName;
64
	public void addBrightnessFilter(int incrBrillo, int insertionMode){
67 65
		
66
		if(	insertionMode == RasterFilterList.ADD_END_AND_DELETE && filterList.isActive(BrightnessFilter.genericName)) {
67
			filterList.remove(BrightnessFilter.genericName);
68
			filterListManager.controlTypes();
69
		}
70
		
68 71
		RasterFilter filtro = null;
69 72
		
70
		switch(filterList.getDataTypeInFilter(fName)){
73
		switch(filterList.getDataTypeInFilter(BrightnessFilter.genericName, insertionMode)){
71 74
		case RasterBuffer.TYPE_BYTE:
72 75
			filtro = new BrightnessByteFilter();
73 76
			break;
......
82 85
		//Cuando el filtro esta creado, tomamos los valores y lo a�adimos a la pila
83 86
		
84 87
		if(filtro != null){
85
			if(removeAll)
86
				filterList.remove(BrightnessFilter.genericName);
87 88
			filtro.addParam("incrBrillo", new Integer(incrBrillo));
89
			if(insertionMode == RasterFilterList.MODIFY_LAST) {
90
				if(filterList.isActive(BrightnessFilter.genericName)) {
91
					filterList.replace(filtro, BrightnessFilter.genericName);
92
					return;
93
				}
94
			}
88 95
			filterList.add(filtro);
89
			filterListManager.controlTypes();
90 96
		}
91 97
	}
92 98
		
......
94 100
	 * A?ade un filtro de contraste a la pila de filtros.
95 101
	 * @param incrBrillo
96 102
	 */
97
	public void addContrastFilter(int incrContraste, boolean removeAll){
98
		//Si ya hay un filtro de contraste en la pila lo sobreescribimos
99
		String fName = ContrastFilter.genericName;
100
		
103
	public void addContrastFilter(int incrContraste, int insertionMode){		
104
		if(	insertionMode == RasterFilterList.ADD_END_AND_DELETE && filterList.isActive(ContrastFilter.genericName)) {
105
			filterList.remove(ContrastFilter.genericName);
106
			filterListManager.controlTypes();
107
		}
108
				
101 109
		RasterFilter filtro = null;
102 110
		
103
		switch(filterList.getDataTypeInFilter(fName)){
111
		switch(filterList.getDataTypeInFilter(ContrastFilter.genericName, insertionMode)){
104 112
		case RasterBuffer.TYPE_BYTE:
105 113
			filtro = new ContrastByteFilter();
106 114
			break;
......
115 123
		//Cuando el filtro esta creado, tomamos los valores y lo a�adimos a la pila
116 124
		
117 125
		if(filtro != null){
118
			if(removeAll && filterList.isActive(fName))
119
				filterList.remove(fName);
120 126
			filtro.addParam("incrContraste", new Integer(incrContraste));
127
			if(insertionMode == RasterFilterList.MODIFY_LAST) {
128
				if(filterList.isActive(ContrastFilter.genericName)) {
129
					filterList.replace(filtro, ContrastFilter.genericName);
130
					return;
131
				}
132
			}
121 133
			filterList.add(filtro);
122
			filterListManager.controlTypes();
123 134
		}
124 135
	}
125 136
		
......
130 141
	public ArrayList getStringsFromFilterList(ArrayList filterList, RasterFilter rf) {
131 142
		
132 143
		if((rf instanceof BrightnessFilter) || 
133
			(rf instanceof ContrastFilter)){
144
			(rf instanceof ContrastFilter)) {
134 145
			filterList.add("filter.brightCont.active=true");
135 146
		}
136 147
		
137
		if(rf instanceof BrightnessFilter){
148
		if(rf instanceof BrightnessFilter) {
138 149
			BrightnessFilter bright = (BrightnessFilter) rf;
139 150
			filterList.add("filter.brightness.incrBrillo="+bright.incrBrillo);
140 151
        }else if(rf instanceof ContrastFilter){
......
147 158

  
148 159
	public int createFilterListFromStrings(ArrayList filters, String fil, int filteri) {
149 160
		if(	(fil.startsWith("filter.brightCont.active"))&&
150
			(RasterFilterListManager.getValue(fil).equals("true"))){
161
			(RasterFilterListManager.getValue(fil).equals("true"))) {
151 162
			
152 163
			int incrBrillo = 0;
153 164
			int incrContraste = 0;
......
161 172
					prop--;
162 173
				}
163 174
			
164
				if(elem.startsWith("filter.contrast.incrContraste")){
175
				if(elem.startsWith("filter.contrast.incrContraste")) {
165 176
					incrContraste = Integer.parseInt(RasterFilterListManager.getValue(elem));
166 177
					filters.remove(prop);
167 178
					prop--;
168 179
				}
169 180
			}
170
			addBrightnessFilter(incrBrillo, true);
171
			addContrastFilter(incrContraste, true);	
181
			addBrightnessFilter(incrBrillo, RasterFilterList.ADD_END);
182
			addContrastFilter(incrContraste, RasterFilterList.ADD_END);	
172 183
		}
173 184
		return filteri;
174 185
	}
......
188 199
		for (int i=0; i<params.getNumParams(); i++) {
189 200
			if (classFilter.equals(ContrastFilter.class)) {
190 201
				if (params.getParam(i).id.equals("Contrast"))
191
					addContrastFilter(new Integer(params.getParam(i).defaultValue).intValue(), false);
202
					addContrastFilter(new Integer(params.getParam(i).defaultValue).intValue(), RasterFilterList.ADD_END);
192 203
			}
193 204
			if (classFilter.equals(BrightnessFilter.class)) {
194 205
				if (params.getParam(i).id.equals("Brightness"))
195
					addBrightnessFilter(new Integer(params.getParam(i).defaultValue).intValue(), false);
206
					addBrightnessFilter(new Integer(params.getParam(i).defaultValue).intValue(), RasterFilterList.ADD_END);
196 207
			}
197 208
		}
198 209
	}

Also available in: Unified diff