Revision 11067 trunk/libraries/libRaster/src/org/gvsig/raster/dataset/properties/DatasetListHistogram.java
DatasetListHistogram.java | ||
---|---|---|
19 | 19 |
package org.gvsig.raster.dataset.properties; |
20 | 20 |
|
21 | 21 |
import org.gvsig.raster.dataset.FileNotOpenException; |
22 |
import org.gvsig.raster.dataset.IBuffer; |
|
23 |
import org.gvsig.raster.dataset.RasterDataset; |
|
24 | 22 |
import org.gvsig.raster.dataset.RasterDriverException; |
25 | 23 |
import org.gvsig.raster.dataset.RasterMultiDataset; |
26 | 24 |
import org.gvsig.raster.util.DataClassList; |
... | ... | |
37 | 35 |
/** |
38 | 36 |
* clases en las que se divide el histograma |
39 | 37 |
*/ |
40 |
private DataClassList classes = null;
|
|
38 |
private DataClassList classes = null; |
|
41 | 39 |
|
42 | 40 |
/** |
43 | 41 |
* Histograma de la imagen completa |
44 | 42 |
*/ |
45 |
private Histogram histogram = null; |
|
43 |
private Histogram histogram = null;
|
|
46 | 44 |
/** |
47 | 45 |
* Dataset del cual se calcula el histograma |
48 | 46 |
*/ |
49 |
private RasterMultiDataset multiDataset = null;
|
|
47 |
private RasterMultiDataset multiDataset = null; |
|
50 | 48 |
|
51 | 49 |
/** |
50 |
* Variable para saber si se ha parado el proceso |
|
51 |
*/ |
|
52 |
private boolean canceled = false; |
|
53 |
|
|
54 |
/** |
|
52 | 55 |
* Constructor |
53 | 56 |
* @param dataset |
54 | 57 |
*/ |
... | ... | |
78 | 81 |
int nBands = 0; |
79 | 82 |
Histogram[] hList = new Histogram[multiDataset.getDatasetCount()]; |
80 | 83 |
for (int i = 0; i < hList.length; i++) { |
84 |
if (canceled) return null; |
|
81 | 85 |
multiDataset.getDataset(i).getHistogram().setClasses(classes); |
82 | 86 |
hList[i] = multiDataset.getDataset(i).getHistogram().getHistogram(); |
83 | 87 |
nBands += hList[i].getNumBands(); |
... | ... | |
92 | 96 |
for (int iDataset = 0; iDataset < hList.length; iDataset++) { |
93 | 97 |
for (int iBand = 0; iBand < hList[iDataset].getNumBands(); iBand++) { |
94 | 98 |
for (int iPxValue = 0; iPxValue < hList[iDataset].getBandLenght(iBand); iPxValue ++) { |
99 |
if (isCanceled()) return null; |
|
95 | 100 |
histogram.setHistogramValue(band, iPxValue, hList[iDataset].getHistogramValue(iBand, iPxValue)); |
96 | 101 |
} |
97 | 102 |
band ++; |
... | ... | |
117 | 122 |
percent = percent / multiDataset.getDatasetCount(); |
118 | 123 |
return percent; |
119 | 124 |
} |
125 |
|
|
126 |
/** |
|
127 |
* Metodo para poder cancelar el proceso. |
|
128 |
*/ |
|
129 |
public void cancel() { |
|
130 |
canceled = true; |
|
131 |
} |
|
132 |
|
|
133 |
/** |
|
134 |
* Metodo para saber si se ha cancelado un proceso |
|
135 |
* @return boolean |
|
136 |
*/ |
|
137 |
public boolean isCanceled() { |
|
138 |
return canceled; |
|
139 |
} |
|
120 | 140 |
} |
Also available in: Unified diff