Revision 2303 org.gvsig.raster/branches/org.gvsig.raster_dataaccess_refactoring/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/properties/DataStoreTransparency.java
DataStoreTransparency.java | ||
---|---|---|
98 | 98 |
/** |
99 | 99 |
* Rangos de transparencia aplicados. Lista de TransparencyRange |
100 | 100 |
*/ |
101 |
protected ArrayList<TransparencyRange>
|
|
101 |
protected List<TransparencyRange> |
|
102 | 102 |
transparencyRanges = new ArrayList<TransparencyRange>(); |
103 | 103 |
/** |
104 | 104 |
* Grado de opacidad de todo el raster |
... | ... | |
108 | 108 |
/** |
109 | 109 |
* Array de listeners que ser?n informados cuando cambia la propiedad de transparencia |
110 | 110 |
*/ |
111 |
private ArrayList<PropertyListener>
|
|
111 |
private List<PropertyListener> |
|
112 | 112 |
transparencyPropertyListener = new ArrayList<PropertyListener>(); |
113 | 113 |
/** |
114 | 114 |
* Flag de activaci?n de la transparencia cuando se visualiza o exporta. |
... | ... | |
133 | 133 |
return; |
134 | 134 |
|
135 | 135 |
//TODO: FUNCIONALIDAD: Falta asignar lo necesario para la transparencia por selecci?n |
136 |
this.transparencyRanges = (ArrayList<TransparencyRange>) t.getTransparencyRange().clone();
|
|
136 |
this.transparencyRanges = (List<TransparencyRange>) ((ArrayList<TransparencyRange>)t.getTransparencyRange()).clone();
|
|
137 | 137 |
if(this.mask != null) |
138 | 138 |
this.mask = t.getAlphaBand(); |
139 | 139 |
this.opacity = t.getOpacity(); |
... | ... | |
170 | 170 |
return mask; |
171 | 171 |
} |
172 | 172 |
|
173 |
/* |
|
174 |
* (non-Javadoc) |
|
175 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#setAlphaBand(org.gvsig.fmap.dal.coverage.dataset.Buffer) |
|
176 |
*/ |
|
177 | 173 |
public void setAlphaBand(Buffer b) { |
178 | 174 |
if(b == null && mask != null) { |
179 | 175 |
mask = b; |
... | ... | |
186 | 182 |
} |
187 | 183 |
} |
188 | 184 |
|
189 |
/* |
|
190 |
* (non-Javadoc) |
|
191 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#existAlphaBand() |
|
192 |
*/ |
|
193 | 185 |
public boolean existAlphaBand() { |
194 | 186 |
return (mask != null); |
195 | 187 |
} |
... | ... | |
203 | 195 |
return originalData; |
204 | 196 |
} |
205 | 197 |
|
206 |
/* |
|
207 |
* (non-Javadoc) |
|
208 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#setDataBuffer(org.gvsig.fmap.dal.coverage.dataset.Buffer) |
|
209 |
*/ |
|
210 | 198 |
public void setDataBuffer(Buffer b) { |
211 | 199 |
originalData = b; |
212 | 200 |
} |
... | ... | |
219 | 207 |
return noData; |
220 | 208 |
} |
221 | 209 |
|
222 |
/* |
|
223 |
* (non-Javadoc) |
|
224 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#setNoData(double) |
|
225 |
*/ |
|
226 | 210 |
public void setNoData(NoData noData) { |
227 | 211 |
if(this.noData != noData) |
228 | 212 |
callPropertyChanged(this); |
... | ... | |
233 | 217 |
* Obtiene los rangos de pixels que son transparentes en el raster. |
234 | 218 |
* @return Rangos de transparencias a aplicar |
235 | 219 |
*/ |
236 |
public ArrayList<TransparencyRange> getTransparencyRange() {
|
|
220 |
public List<TransparencyRange> getTransparencyRange() { |
|
237 | 221 |
return transparencyRanges; |
238 | 222 |
} |
239 | 223 |
|
240 |
/* |
|
241 |
* (non-Javadoc) |
|
242 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#setTransparencyRange(org.gvsig.fmap.dal.coverage.datastruct.TransparencyRange) |
|
243 |
*/ |
|
244 | 224 |
public void setTransparencyRange(TransparencyRange range) { |
245 | 225 |
this.transparencyRanges.add(range); |
246 | 226 |
callPropertyChanged(this); |
... | ... | |
250 | 230 |
* Asigna la lista de rangos de transparencia |
251 | 231 |
* @param ranges |
252 | 232 |
*/ |
253 |
public void setTransparencyRangeList(ArrayList<TransparencyRange> ranges) {
|
|
233 |
public void setTransparencyRangeList(List<TransparencyRange> ranges) { |
|
254 | 234 |
this.transparencyRanges = ranges; |
255 | 235 |
callPropertyChanged(this); |
256 | 236 |
} |
257 | 237 |
|
258 |
/* |
|
259 |
* (non-Javadoc) |
|
260 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#clearListOfTransparencyRange() |
|
261 |
*/ |
|
262 | 238 |
public void clearListOfTransparencyRange() { |
263 | 239 |
transparencyRanges.clear(); |
264 | 240 |
callPropertyChanged(this); |
... | ... | |
272 | 248 |
return opacity; |
273 | 249 |
} |
274 | 250 |
|
275 |
/* |
|
276 |
* (non-Javadoc) |
|
277 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#setOpacity(int) |
|
278 |
*/ |
|
279 | 251 |
public void setOpacity(int opacity) { |
280 | 252 |
if(opacity != this.opacity) |
281 | 253 |
callPropertyChanged(this); |
... | ... | |
332 | 304 |
t.setOpacity((int) (op1 * op2 * MAX_OPACITY)); |
333 | 305 |
|
334 | 306 |
// Mezclamos los rangos de transparencia |
335 |
ArrayList<TransparencyRange> tr = transp.getTransparencyRange();
|
|
307 |
List<TransparencyRange> tr = transp.getTransparencyRange(); |
|
336 | 308 |
for (int i = 0; i < tr.size(); i++) |
337 | 309 |
transparencyRanges.add(tr.get(i)); |
338 | 310 |
|
... | ... | |
419 | 391 |
return false; |
420 | 392 |
} |
421 | 393 |
|
422 |
/* |
|
423 |
* (non-Javadoc) |
|
424 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#activeTransparency() |
|
425 |
*/ |
|
426 | 394 |
public void activeTransparency() { |
427 | 395 |
if( existAlphaBand() || |
428 | 396 |
(getNoData() != null && getNoData().isDefined() && getNoData().isNoDataTransparent()) || |
... | ... | |
433 | 401 |
transparencyActive = false; |
434 | 402 |
} |
435 | 403 |
|
436 |
/* |
|
437 |
* (non-Javadoc) |
|
438 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#isTransparencyActive() |
|
439 |
*/ |
|
440 | 404 |
public boolean isTransparencyActive() { |
441 | 405 |
return transparencyActive; |
442 | 406 |
} |
... | ... | |
449 | 413 |
this.transparencyActive = transparencyActive; |
450 | 414 |
} |
451 | 415 |
|
452 |
/* |
|
453 |
* (non-Javadoc) |
|
454 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#processRGB(int, int, int, int, int) |
|
455 |
*/ |
|
456 | 416 |
public int processRGB(int r, int g, int b, int line, int col) { |
457 | 417 |
// Si el valor es noData se pone totalmente transparente y ya no se tiene en |
458 | 418 |
// cuenta nada m?s. |
... | ... | |
532 | 492 |
return 255; |
533 | 493 |
} |
534 | 494 |
|
535 |
/* |
|
536 |
* (non-Javadoc) |
|
537 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#cloneTransparency() |
|
538 |
*/ |
|
539 | 495 |
@SuppressWarnings("unchecked") |
540 | 496 |
public Transparency cloneTransparency() { |
541 | 497 |
DataStoreTransparency t = new DataStoreTransparency(); |
542 | 498 |
|
543 | 499 |
//TODO: FUNCIONALIDAD: Falta asignar lo necesario para la transparencia por selecci?n |
544 |
t.transparencyRanges = (ArrayList<TransparencyRange>) getTransparencyRange().clone();
|
|
500 |
t.transparencyRanges = (ArrayList<TransparencyRange>)((ArrayList<TransparencyRange>) getTransparencyRange()).clone();
|
|
545 | 501 |
t.mask = getAlphaBand(); |
546 | 502 |
t.opacity = getOpacity(); |
547 | 503 |
t.alphaBandNumber = alphaBandNumber; |
... | ... | |
552 | 508 |
return t; |
553 | 509 |
} |
554 | 510 |
|
555 |
/* |
|
556 |
* (non-Javadoc) |
|
557 |
* @see org.gvsig.tools.persistence.Persistent#loadFromState(org.gvsig.tools.persistence.PersistentState) |
|
558 |
*/ |
|
559 | 511 |
@SuppressWarnings("unchecked") |
560 | 512 |
public void loadFromState(PersistentState state) |
561 | 513 |
throws PersistenceException { |
... | ... | |
563 | 515 |
opacity = state.getInt("opacity"); |
564 | 516 |
} |
565 | 517 |
|
566 |
List tr = state.getList("transparencyRange"); |
|
518 |
List<TransparencyRange> tr = state.getList("transparencyRange");
|
|
567 | 519 |
if(tr != null) { |
568 | 520 |
transparencyRanges = new ArrayList<TransparencyRange>(tr); |
569 | 521 |
if (state.hasValue("bandnumber")) { |
... | ... | |
575 | 527 |
//this.noData = state.getDouble("noData"); |
576 | 528 |
} |
577 | 529 |
|
578 |
/* |
|
579 |
* (non-Javadoc) |
|
580 |
* @see org.gvsig.tools.persistence.Persistent#saveToState(org.gvsig.tools.persistence.PersistentState) |
|
581 |
*/ |
|
582 | 530 |
public void saveToState(PersistentState state) throws PersistenceException { |
583 | 531 |
if(getOpacity() != 255) { |
584 | 532 |
state.set("opacity", getOpacity()); |
... | ... | |
611 | 559 |
//definition.addDynFieldDouble("noData").setMandatory(false); |
612 | 560 |
} |
613 | 561 |
|
614 |
/* |
|
615 |
* (non-Javadoc) |
|
616 |
* @see org.gvsig.fmap.dal.coverage.store.props.Transparency#free() |
|
617 |
*/ |
|
618 | 562 |
public void dispose() { |
619 | 563 |
if (mask != null) |
620 | 564 |
mask.dispose(); |
... | ... | |
624 | 568 |
originalData = null; |
625 | 569 |
} |
626 | 570 |
|
627 |
/* |
|
628 |
* (non-Javadoc) |
|
629 |
* @see java.lang.Object#finalize() |
|
630 |
*/ |
|
631 | 571 |
protected void finalize() throws Throwable { |
632 | 572 |
noData = null; |
633 | 573 |
mask = null; |
Also available in: Unified diff