Revision 6665

View differences:

org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster.wms2/org.gvsig.raster.wms2.provider/src/main/java/org/gvsig/raster/wms/provider/WMSRasterProvider.java
6 6
import java.io.File;
7 7
import java.io.IOException;
8 8
import java.net.URL;
9
import java.util.ArrayList;
10 9
import java.util.HashMap;
11 10
import java.util.Iterator;
12 11
import java.util.List;
......
32 31
import org.gvsig.fmap.dal.exception.OpenException;
33 32
import org.gvsig.fmap.dal.exception.ReadException;
34 33
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
35
import org.gvsig.fmap.dal.raster.api.BandAttributeDescriptor;
36
import org.gvsig.fmap.dal.raster.api.BandDescriptor;
37 34
import org.gvsig.fmap.dal.raster.api.BandQuery;
38 35
import org.gvsig.fmap.dal.raster.api.RasterQuery;
39 36
import org.gvsig.fmap.dal.raster.spi.AbstractRasterStoreProvider;
37
import org.gvsig.fmap.dal.raster.spi.BandDescriptorServices;
40 38
import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
41 39
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
42 40
import org.gvsig.fmap.geom.Geometry.DIMENSIONS;
......
61 59
import org.gvsig.remoteclient.wms.WMSClient;
62 60
import org.gvsig.remoteclient.wms.WMSStatus;
63 61
import org.gvsig.remoteclient.wms.WMSStyle;
62
import org.gvsig.tools.dataTypes.DataTypes;
64 63
import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException;
65 64
import org.gvsig.tools.locator.LocatorException;
66 65

  
......
168 167

  
169 168
            for (BandQuery bandQuery : bands) {
170 169
                int band = bandQuery.getBand();
171
                bandDataTypes[band] = BufferManager.TYPE_BYTE;
170
                bandDataTypes[band] = this.getBandDescriptor(band).getDataType();
172 171
                bandNoData[band] = null;
173 172
            }
174 173
        } else {
......
176 175
            bandDataTypes = new int[bands];
177 176
            bandNoData = new NoData[bands];
178 177
            for (int i = 0; i < bands; i++) {
179
                bandDataTypes[i] = BufferManager.TYPE_BYTE;
178
                bandDataTypes[i] = this.getBandDescriptor(i).getDataType();
180 179
                bandNoData[i] = null;
181 180
            }
182 181
        }
......
231 230
    }
232 231

  
233 232
    @Override
234
    public BandInfo getBandInfo(int band) {
235
        BufferManager manager = BufferLocator.getBufferManager();
236
        switch (band) {
237
        case 0:
238
            return manager.createBandInfo(band, "RED", "RED", BufferManager.TYPE_BYTE, null);
239
        case 1:
240
            return manager.createBandInfo(band, "GREEN", "GREEN", BufferManager.TYPE_BYTE, null);
241
        case 2:
242
            return manager.createBandInfo(band, "BLUE", "BLUE", BufferManager.TYPE_BYTE, null);
243
        case 3:
244
            return manager.createBandInfo(band, "ALPHA", "ALPHA", BufferManager.TYPE_BYTE, null);
245
        }
246
        return null;
247
    }
233
    public BandDescriptorServices getBandDescriptor(int band) {
234
        BandDescriptorServices descriptor = super.getBandDescriptor(band);
235
      switch (band) {
236
      case 0:
237
          descriptor.setName("RED");
238
          descriptor.setDescription("RED");
239
          descriptor.setDataType(BufferManager.TYPE_BYTE);
240
      case 1:
241
          descriptor.setName("GREEN");
242
          descriptor.setDescription("GREEN");
243
          descriptor.setDataType(BufferManager.TYPE_BYTE);
244
      case 2:
245
          descriptor.setName("BLUE");
246
          descriptor.setDescription("BLUE");
247
          descriptor.setDataType(BufferManager.TYPE_BYTE);
248
      case 3:
249
          descriptor.setName("ALPHA");
250
          descriptor.setDescription("ALPHA");
251
          descriptor.setDataType(BufferManager.TYPE_BYTE);
252
      }
253
      return descriptor;
248 254

  
249
    @Override
250
    public BandDescriptor getBandDescriptor(int band) {
251
        if (band > this.getBands()) {
252
            throw new IllegalArgumentException("Invalid band");
253
        }
254
        // FIXME: Si convertimos cualquier raster a un buffer RGBA, esto no
255
        // ser?a correcto
256
        return getStoreServices().createBandDescriptor(band, new ArrayList<BandAttributeDescriptor>());
257 255
    }
258 256

  
259 257
    @Override
......
279 277

  
280 278
    @Override
281 279
    public void open() throws OpenException {
282

  
280
        for(int i=0; i<getBands(); i++){
281
            this.getBandDescriptor(i).setDataType(DataTypes.BYTE);
282
        }
283 283
    }
284 284

  
285 285
    @Override

Also available in: Unified diff