Revision 1967

View differences:

org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/GenericToolBarModule.java
29 29
import org.gvsig.andami.ui.mdiFrame.MDIFrame;
30 30
import org.gvsig.app.project.documents.view.ViewDocument;
31 31
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
32
import org.gvsig.fmap.dal.coverage.RasterLocator;
32 33
import org.gvsig.fmap.mapcontext.MapContext;
33 34
import org.gvsig.raster.tools.app.basic.RasterToolsUtil;
34 35
import org.gvsig.raster.tools.app.basic.tool.analysisview.ViewRasterAnalysisTocMenuEntry;
......
126 127
		point.append("SelectLayer", "", SelectLayerTocMenuEntry.getSingleton());
127 128
		point.append("HistogramPanel", "", HistogramTocMenuEntry.getSingleton());
128 129
		point.append("ViewColorTable", "",ColorTableTocMenuEntry.getSingleton());
129
		point.append("Overviews", "", OverviewsTocMenuEntry.getSingleton());
130
		if(RasterLocator.getManager().isOverviewBuilderSupported())
131
			point.append("Overviews", "", OverviewsTocMenuEntry.getSingleton());
130 132
		point.append("RoisManager", "", ROIManagerTocMenuEntry.getSingleton());
131 133
		point.append("ViewRasterAnalysis", "", ViewRasterAnalysisTocMenuEntry.getSingleton());
132 134
		point.append("ZoomResolutionLevel", "", ZoomResolutionLevelTocMenuEntry.getSingleton());
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/overview/OverviewsTocMenuEntry.java
30 30
import org.gvsig.andami.PluginServices;
31 31
import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
32 32
import org.gvsig.app.project.documents.view.toc.ITocItem;
33
import org.gvsig.fmap.dal.coverage.RasterLocator;
33 34
import org.gvsig.fmap.dal.coverage.exception.BandAccessException;
34 35
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
35 36
import org.gvsig.fmap.mapcontext.exceptions.ReloadLayerException;
......
106 107
	 * @see com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction#isEnabled(com.iver.cit.gvsig.project.documents.view.toc.ITocItem, com.iver.cit.gvsig.fmap.layers.FLayer[])
107 108
	 */
108 109
	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
110
		if(!RasterLocator.getManager().isOverviewBuilderSupported())
111
			return false;
112
		
109 113
		if ((selectedItems == null) || (selectedItems.length != 1))
110 114
			return false;
111 115

  
......
129 133
	 * @see com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction#isVisible(com.iver.cit.gvsig.project.documents.view.toc.ITocItem, com.iver.cit.gvsig.fmap.layers.FLayer[])
130 134
	 */
131 135
	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
136
		if(!RasterLocator.getManager().isOverviewBuilderSupported())
137
			return false;
138
		
132 139
		if ((selectedItems == null) || (selectedItems.length != 1))
133 140
			return false;
134 141

  
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/process/OverviewsProcess.java
41 41
	private int          value         = 0;
42 42
	private int          resamplingAlg = OverviewBuilder.AVERAGE;
43 43
	private int[]        overviews     = new int[] { 2, 4, 8, 16 };
44
	private String       builder       = "GDAL";
44 45
	
45 46
	/*
46 47
	 * (non-Javadoc)
......
48 49
	 */
49 50
	public void init() {
50 51
		rasterSE = getLayerParam("layer");
52
		builder = getStringParam("builder") != null ? getStringParam("builder") : builder;
51 53

  
52 54
		int overviewsRate = 2;
53 55
		int nOverviews = 4;
......
71 73
	 */
72 74
	public void process() throws ProcessException {
73 75
		insertLineLog(PluginServices.getText(this, "overviews_generating"));
74
		OverviewBuilder overviewBuilder = RasterLocator.getManager().createOverviewBuilder();
76
		OverviewBuilder overviewBuilder = RasterLocator.getManager().getOverviewBuilder(builder);
75 77
		
76 78
		overviewBuilder.setIncrementListener(this);
77 79
		try {
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.api/src/main/java/org/gvsig/fmap/dal/coverage/RasterManager.java
24 24
import java.awt.geom.AffineTransform;
25 25
import java.awt.geom.Dimension2D;
26 26
import java.io.FileNotFoundException;
27
import java.util.Set;
27 28

  
28 29
import org.cresques.cts.IProjection;
29 30
import org.gvsig.fmap.dal.DataStoreParameters;
......
133 134
	 * Gets an instance of the overview builder registered
134 135
	 * @return OverviewBuilder
135 136
	 */
136
	public OverviewBuilder createOverviewBuilder();
137
	public OverviewBuilder getOverviewBuilder(String id);
137 138
	
139
	/**
140
	 * REturns true if the overview builder is supported
141
	 * @return
142
	 */
143
	public boolean isOverviewBuilderSupported();
144
	
145
	/**
146
	 * Gets the list of keys in the overview builder
147
	 * @return
148
	 */
149
	public Set<String> getOverviewBuilderKeyList();
150
	
138 151
    /**
139 152
     * Builds a new service to recover historical objects 
140 153
     * @return
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.api/src/main/java/org/gvsig/fmap/dal/coverage/util/ProviderServices.java
32 32
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
33 33
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
34 34
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException;
35
import org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder;
35 36
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
36 37
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters;
37 38
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation;
......
77 78
	public void registerTileProviderFormats(Class<?> c);
78 79
	
79 80
	/**
81
	 * Registers a implementation to create overviews
82
	 * @param ovBuilder
83
	 */
84
	public void registerOverviewBuilderImplementation(String id, OverviewBuilder ovBuilder);
85
	
86
	/**
80 87
	 * Register a format and a provider which is capable to manage this format
81 88
	 * @param ext Extension
82 89
	 * @param c Provider class
......
172 179
	 * @param value
173 180
	 * @throws RmfSerializerException
174 181
	 */
175
	@SuppressWarnings("unchecked")
176
	public void saveObjectToRmfFile(String file, Class class1, Object value) throws RmfSerializerException;
182
	public void saveObjectToRmfFile(String file, Class<?> class1, Object value) throws RmfSerializerException;
177 183

  
178 184
	/**
179 185
	 * The object passed by parameter is saved in the selected file (in RMF format) 
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/util/DefaultProviderServices.java
47 47
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
48 48
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
49 49
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException;
50
import org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder;
50 51
import org.gvsig.fmap.dal.coverage.store.DataServerWriter;
51 52
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
52 53
import org.gvsig.fmap.dal.coverage.store.RasterWriter;
......
527 528
	public void registerTileProviderFormats(Class<?> c) {
528 529
		getManager().registerTileProviderFormats(c);
529 530
	}
531
	
532
	public void registerOverviewBuilderImplementation(String id, OverviewBuilder ovBuilder) {
533
		DefaultRasterManager.overviewBuilderRegistry.put(id, ovBuilder);
534
	}
530 535
}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/DefaultRasterManager.java
27 27
import java.lang.reflect.InvocationTargetException;
28 28
import java.util.ArrayList;
29 29
import java.util.HashMap;
30
import java.util.Set;
30 31

  
31 32
import org.cresques.cts.IProjection;
32 33
import org.gvsig.fmap.dal.DALLocator;
......
90 91
import org.gvsig.raster.impl.process.DefaultTaskEventManager;
91 92
import org.gvsig.raster.impl.process.RasterTask;
92 93
import org.gvsig.raster.impl.process.RasterTaskQueue;
93
import org.gvsig.raster.impl.process.overview.GdalOverviewBuilder;
94 94
import org.gvsig.raster.impl.process.vector.PotraceVectorization;
95 95
import org.gvsig.raster.impl.provider.DefaultRasterProvider;
96 96
import org.gvsig.raster.impl.provider.RasterProvider;
......
134 134
	private static ArrayList<Class<?>>  tiledProviders    = new ArrayList<Class<?>>(); 
135 135
	private static HashMap<String, ArrayList<Class<?>>>
136 136
                                        formatsRegistry   = new HashMap<String, ArrayList<Class<?>>>();
137
	public static HashMap<String, OverviewBuilder>
138
    									overviewBuilderRegistry   = new HashMap<String, OverviewBuilder>();
137 139
	
138 140
	/**
139 141
	 * Gets an instance of this object for internal use.
......
143 145
		return internalInstance;
144 146
	}
145 147
	
146
	/*
147
	 * (non-Javadoc)
148
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getDataStructFactory()
149
	 */
150 148
	public DataStructFactory getDataStructFactory() {
151 149
		if(dataStructFactory == null)
152 150
			dataStructFactory = new DefaultDataStructFactory();
153 151
		return dataStructFactory;
154 152
	}
155 153
	
156
	/*
157
	 * (non-Javadoc)
158
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getProviderServices()
159
	 */
160 154
	public ProviderServices getProviderServices() {
161 155
		if(pInfo == null)
162 156
			pInfo = new DefaultProviderServices();
163 157
		return pInfo;
164 158
	}
165 159
	
166
	/*
167
	 * (non-Javadoc)
168
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getCRSUtils()
169
	 */
170 160
	public CRSUtils getCRSUtils() {
171 161
		if(crs == null)
172 162
			crs = new DefaultCRSUtils();
173 163
		return crs;
174 164
	}
175 165
	
176
	/*
177
	 * (non-Javadoc)
178
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getFileUtils()
179
	 */
180 166
	public FileUtils getFileUtils() {
181 167
		if(file == null)
182 168
			file = new DefaultFileUtils();
183 169
		return file;
184 170
	}
185 171
	
186
	/*
187
	 * (non-Javadoc)
188
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getRasterUtils()
189
	 */
190 172
	public RasterUtils getRasterUtils() {
191 173
		if(util == null)
192 174
			util = new DefaultRasterUtils();
193 175
		return util;
194 176
	}
195 177
	
196
	/*
197
	 * (non-Javadoc)
198
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getMathUtils()
199
	 */
200 178
	public MathUtils getMathUtils() {
201 179
		if(math == null)
202 180
			math = new DefaultMathUtils();
203 181
		return math;
204 182
	}
205 183
	
206
	/*
207
	 * (non-Javadoc)
208
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getRasterService()
209
	 */
210 184
    public RasterService getRasterService()
211 185
        throws ServiceException {
212 186
        RasterService fc = new DefaultRasterService(this);
213 187
        return fc;
214 188
    }
215 189
    
216
	/*
217
	 * (non-Javadoc)
218
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getLegendFormats()
219
	 */
220 190
	public String[] getLegendFormats() {
221 191
		return RasterLegendIO.formats;
222 192
	}
223 193
	
224
	/*
225
	 * (non-Javadoc)
226
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getRasterLegendIO(java.lang.String)
227
	 */
228 194
	public RasterLegend getRasterLegendIO(String formatName) throws RasterLegendIONotFound {
229 195
		if (formatName.equals(RasterLegendIO.formats[0]))
230 196
			return new LegendgvSIG();
......
243 209
		return new DefaultDataServerWriter();
244 210
	}
245 211
	
246
	/*
247
	 * (non-Javadoc)
248
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#open(org.gvsig.fmap.dal.raster.spi.CoverageStoreProvider, int)
249
	 */
250 212
	public RasterDataStore open(CoverageStoreProvider prov, DataStoreParameters params) throws NotSupportedExtensionException, RasterDriverException {
251 213
		if(prov instanceof RasterProvider) {
252 214
			DefaultRasterStore store = new DefaultRasterStore();
......
261 223
		return null;
262 224
	}
263 225
	
264
	/*
265
	 * (non-Javadoc)
266
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#open(org.cresques.cts.IProjection, java.lang.Object)
267
	 */
268 226
	public RasterDataStore open(DataStoreParameters params) throws NotSupportedExtensionException, RasterDriverException {
269 227
		if(params == null || !(params instanceof AbstractRasterDataParameters))
270 228
			return null;
......
281 239
		return dSet;
282 240
	}
283 241
	
284
	/*
285
	 * (non-Javadoc)
286
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#open(org.cresques.cts.IProjection, java.lang.Object)
287
	 */
288 242
	public RasterDataStore open(Object datasetOpenParam) throws NotSupportedExtensionException, RasterDriverException {
289 243
		DefaultRasterStore dSet = new DefaultRasterStore();
290 244
		
......
332 286
		return null;
333 287
	}
334 288
	
335
	/*
336
	 * (non-Javadoc)
337
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getQuery()
338
	 */
339 289
	public RasterQuery createQuery() {
340 290
		return new DefaultRasterQuery();
341 291
	}
342 292
	
343
	/*
344
	 * (non-Javadoc)
345
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getBuffer(int, int, int, int, boolean)
346
	 */
347 293
	public Buffer createBuffer(int dataType, int width, int height, int bandNr, boolean malloc) {
348 294
		//Opci?n de cachear siempre activada (Solo DEBUG)
349 295
		if(RasterBuffer.forceToLoadInCache)
......
363 309
			return new RasterMemoryBuffer(dataType, width, height, bandNr, malloc);
364 310
	}
365 311
	
366
	/*
367
	 * (non-Javadoc)
368
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getReadOnlyBuffer(int, int, int, int)
369
	 */
370 312
	public Buffer createReadOnlyBuffer(int dataType, int width, int height, int bandNr) {
371 313
		return new RasterReadOnlyBuffer(dataType, width, height, bandNr);
372 314
	}
373 315
	
374
	/*
375
	 * (non-Javadoc)
376
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getMemoryBuffer(int, int, int, int, boolean)
377
	 */
378 316
	public Buffer createMemoryBuffer(int dataType, int width, int height, int bandNr, boolean malloc) {
379 317
		return new RasterMemoryBuffer(dataType, width, height, bandNr, malloc);
380 318
	}
381 319

  
382
	/*
383
	 * (non-Javadoc)
384
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getWriter(java.lang.String)
385
	 */
386 320
	@SuppressWarnings("unchecked")
387 321
	public RasterWriter createWriter(String fName) throws NotSupportedExtensionException, RasterDriverException {
388 322
		String ext = getFileUtils().getExtensionFromFileName(fName);
......
416 350
		return grw;
417 351
	}
418 352

  
419
	/*
420
	 * (non-Javadoc)
421
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getWriter(org.gvsig.fmap.dal.coverage.dataset.DataServerWriter, java.lang.String, int, java.awt.geom.AffineTransform, int, int, int, org.gvsig.fmap.dal.coverage.datastruct.Params, org.cresques.cts.IProjection)
422
	 */
423 353
	public RasterWriter createWriter(DataServerWriter dataWriter,
424 354
												 String outFileName,
425 355
												 int nBands,
......
432 362
		return createWriter(dataWriter, outFileName, nBands, at, outSizeX, outSizeY, dataType, params, proj, true);
433 363
	}
434 364

  
435
	/*
436
	 * (non-Javadoc)
437
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getWriter(org.gvsig.fmap.dal.coverage.dataset.DataServerWriter, java.lang.String, int, java.awt.geom.AffineTransform, int, int, int, org.gvsig.fmap.dal.coverage.datastruct.Params, org.cresques.cts.IProjection, boolean)
438
	 */
439 365
	@SuppressWarnings("unchecked")
440 366
	public RasterWriter createWriter(DataServerWriter dataWriter,
441 367
												 String outFileName,
......
479 405
		return grw;
480 406
	}
481 407
	
482
	/*
483
	 * (non-Javadoc)
484
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getWriterParams(java.lang.String)
485
	 */
486 408
	public Params createWriterParams(String fileName) {
487 409
		try {
488 410
			return createWriter(fileName).getParams();
......
506 428
		return new PotraceVectorization(queryable);
507 429
	}
508 430
	
509
	/*
510
	 * (non-Javadoc)
511
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getOverviewBuilder()
512
	 */
513
	public OverviewBuilder createOverviewBuilder() {
514
		return new GdalOverviewBuilder();
431
	public OverviewBuilder getOverviewBuilder(String id) {
432
		return overviewBuilderRegistry.get(id);
515 433
	}
434
	
435
	public boolean isOverviewBuilderSupported() {
436
		return overviewBuilderRegistry.size() > 0;
437
	}
438
	
516 439

  
517
	/*
518
	 * (non-Javadoc)
519
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#createColorInterpretation()
520
	 */
440
	public Set<String> getOverviewBuilderKeyList() {
441
		return overviewBuilderRegistry.keySet();
442
	}
443

  
521 444
	public ColorInterpretation createColorInterpretation(String[] colorInterp) {
522 445
		return new DataStoreColorInterpretation(colorInterp);
523 446
	}
524 447
	
525
	/*
526
	 * (non-Javadoc)
527
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#createGrid(org.gvsig.fmap.dal.coverage.buffer.RasterDataSource, int[], org.gvsig.fmap.dal.coverage.datastruct.GridExtent)
528
	 */
529 448
	public Grid createGrid(RasterDataStore datasource, int[] bands, GridExtent windowExtent) throws RasterBufferInvalidException {
530 449
		return new GridImpl(datasource, bands, windowExtent);
531 450
	}
532 451
	
533
	/*
534
	 * (non-Javadoc)
535
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#createGrid(org.gvsig.fmap.dal.coverage.buffer.RasterDataSource, int[])
536
	 */
537 452
	public Grid createGrid(RasterDataStore datasource, int[] bands) throws RasterBufferInvalidException {
538 453
		return new GridImpl(datasource, bands);
539 454
	}
540 455
	
541
	/*
542
	 * (non-Javadoc)
543
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#createGrid(org.gvsig.fmap.dal.coverage.buffer.RasterDataSource)
544
	 */
545 456
	public Grid createGrid(RasterDataStore datasource) throws RasterBufferInvalidException {
546 457
		return new GridImpl(datasource);
547 458
	}
548 459
	
549
	/*
550
	 * (non-Javadoc)
551
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#createGrid(org.gvsig.fmap.dal.coverage.datastruct.GridExtent, org.gvsig.fmap.dal.coverage.datastruct.GridExtent, int, int[])
552
	 */
553 460
	public Grid createGrid(GridExtent layerExtent,
554 461
			GridExtent windowExtent,
555 462
			int dataType,
......
557 464
		return new GridImpl(layerExtent, windowExtent, dataType, bands);
558 465
	}
559 466
	
560
	/*
561
	 * (non-Javadoc)
562
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#createGrid(org.gvsig.fmap.dal.coverage.buffer.Buffer, org.gvsig.fmap.dal.coverage.buffer.RasterDataSource, boolean)
563
	 */
564 467
	public Grid createGrid(Buffer buf, RasterDataStore datasource, boolean notInterp) {
565 468
		return new GridImpl(buf, datasource, notInterp);
566 469
	}
567 470
	
568
    /*
569
     * (non-Javadoc)
570
     * @see org.gvsig.fmap.dal.coverage.RasterManager#createHistoricalService()
571
     */
572 471
    public Historical createHistoricalService() {
573 472
    	return new DefaultHistorical();
574 473
    }
575 474
    
576
    /*
577
     * (non-Javadoc)
578
     * @see org.gvsig.fmap.dal.coverage.RasterManager#createViewPortData(org.cresques.cts.IProjection, org.gvsig.fmap.dal.coverage.datastruct.Extent, java.awt.geom.Dimension2D)
579
     */
580 475
    public ViewPortData createViewPortData(IProjection proj, Extent extent, Dimension2D size) {
581 476
    	return new DefaultViewPortData(proj, extent, size);
582 477
    }
583 478
    
584
    /*
585
     * (non-Javadoc)
586
     * @see org.gvsig.fmap.dal.coverage.RasterManager#createViewPortData()
587
     */
588 479
    public ViewPortData createViewPortData() {
589 480
    	return new DefaultViewPortData();
590 481
    }
591 482
    
592
    /*
593
     * (non-Javadoc)
594
     * @see org.gvsig.fmap.dal.coverage.RasterManager#getColorConversion()
595
     */
596 483
    public ColorConversion getColorConversion() {
597 484
    	if(colorConversion == null)
598 485
    		colorConversion = new DefaultColorConversion();
599 486
    	return colorConversion;
600 487
    }
601 488
	
602
	/*
603
	 * (non-Javadoc)
604
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getROIStatistics(org.gvsig.fmap.dal.coverage.grid.AbstractROI)
605
	 */
606 489
	public Statistics createROIStatistics(AbstractROI roi) {
607 490
		return new ROIStatistic(roi);
608 491
	}
609 492
	
610
	/*
611
	 * (non-Javadoc)
612
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#createEmptyFilterList()
613
	 */
614 493
	public RasterFilterList createEmptyFilterList(int type) {
615 494
		DefaultRasterFilterList fl = new DefaultRasterFilterList();
616 495
		fl.setInitDataType(type);
617 496
		return fl;
618 497
	}
619 498
	
620
	/*
621
	 * (non-Javadoc)
622
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getRasterTask()
623
	 */
624 499
	public TaskEventManager getRasterTask() {
625 500
		return DefaultTaskEventManager.get();
626 501
	}
627 502
	
628
	/*
629
	 * (non-Javadoc)
630
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#createRasterTask(java.lang.Object)
631
	 */
632 503
	public TaskEventManager createRasterTask(Object process) {
633 504
		RasterTask task = RasterTaskQueue.getRasterTask(Thread.currentThread().getId() + "");
634 505
		if(task != null) {
......
658 529
		return params;
659 530
	}
660 531
	
661
	/*
662
	 * (non-Javadoc)
663
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#registerTiledProviders(org.gvsig.fmap.dal.raster.spi.CoverageStoreProvider)
664
	 */
665 532
	public void registerFileProvidersTiled(Class<?> provider) {
666 533
		if(!tiledProviders.contains(provider))
667 534
			tiledProviders.add(provider);
668 535
	}
669 536
	
670
	/*
671
	 * (non-Javadoc)
672
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#registerTileProviderFormats(java.lang.Class)
673
	 */
674 537
	public void registerTileProviderFormats(Class<?> c) {
675 538
		if(tileclass == null) {
676 539
			if(RasterProvider.class.isAssignableFrom(c)) {
......
687 550
		}
688 551
	}
689 552
	
690
	/*
691
	 * (non-Javadoc)
692
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#getTiledProviders()
693
	 */
694 553
	@SuppressWarnings("unchecked")
695 554
	private ArrayList<?> getTiledProvidersInstance() {
696 555
		ArrayList list = new ArrayList();
......
716 575
		return list;
717 576
	}
718 577
	
719
	/*
720
	 * (non-Javadoc)
721
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#addFormat(java.lang.String, java.lang.Class)
722
	 */
723 578
	public void addFormat(String ext, Class<?> c) {
724 579
		ArrayList<Class<?>> list = formatsRegistry.get(ext);
725 580
		if(list == null) {
......
732 587
		}
733 588
	}
734 589
	
735
	/*
736
	 * (non-Javadoc)
737
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#isExtensionSupported(java.lang.String, java.lang.Class)
738
	 */
739 590
	public boolean isExtensionSupported(String ext, Class<?> c) {
740 591
		String extension = getFileUtils().getExtensionFromFileName(ext);
741 592
		
......
751 602
		return false;
752 603
	}
753 604
	
754
	/*
755
	 * (non-Javadoc)
756
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#isExtensionSupported(java.lang.String)
757
	 */
758 605
	public boolean isExtensionSupported(String ext) {
759 606
		String extension = getFileUtils().getExtensionFromFileName(ext);
760 607
		
......
770 617
		return formatsRegistry.keySet().toArray(new String[0]);
771 618
	}
772 619
	
773
	/*
774
	 * (non-Javadoc)
775
	 * @see org.gvsig.fmap.dal.coverage.RasterManager#createImageDrawerService()
776
	 */
777 620
	public ImageDrawer createImageDrawerService() {
778 621
		return new ImageDrawerImpl();
779 622
	}
org.gvsig.raster.gdal/trunk/org.gvsig.raster.gdal/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/overview/GdalOverviewBuilder.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.overview;
23

  
24
import org.gvsig.addo.BuildingOverviewsException;
25
import org.gvsig.addo.IOverviewIncrement;
26
import org.gvsig.addo.Jaddo;
27
import org.gvsig.addo.WritingException;
28
import org.gvsig.fmap.dal.coverage.exception.OverviewException;
29
import org.gvsig.fmap.dal.coverage.process.BaseIncrementableTask;
30
import org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder;
31

  
32
/**
33
 * Servicios ofrecidos por el proceso de construcci?n de overviews. Esta
34
 * implementaci?n usa gdal para construir las overviews.
35
 * 
36
 * @author Nacho Brodin (nachobrodin@gmail.com)
37
 */
38
public class GdalOverviewBuilder implements OverviewBuilder {
39
	private Jaddo        build         = new Jaddo();
40
	private int          value         = 0;
41

  
42
	/**
43
	 * Bindings between an IOverviewIncrement and a BaseIncrementableTask
44
	 * @author Nacho Brodin (nachobrodin@gmail.com)
45
	 */
46
	class ProcessBinding implements IOverviewIncrement {
47
		private BaseIncrementableTask  task = null;
48
		
49
		public ProcessBinding(BaseIncrementableTask task) {
50
			this.task = task;	
51
		}
52
		
53
		public int getPercent() {
54
			return task.getPercent();
55
		}
56

  
57
		public void setPercent(int value) {
58
			task.setPercent(value);
59
		}
60
	}
61
	
62
	/*
63
	 * (non-Javadoc)
64
	 * @see org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder#buildOverviews(int, java.lang.String, int[])
65
	 */
66
	public void buildOverviews(int resamplingAlg, String file, int[] overviews)
67
			throws OverviewException {
68
		try {
69
			build.buildOverviews(resamplingAlg, file, overviews);
70
		} catch (BuildingOverviewsException e) {
71
			throw new OverviewException("Error building overviews", e);
72
		} catch (WritingException e) {
73
			throw new OverviewException("Error writing overviews", e);
74
		}
75
	}
76

  
77
	/*
78
	 * (non-Javadoc)
79
	 * @see org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder#getPercent()
80
	 */
81
	public int getPercent() {
82
		return value;
83
	}
84

  
85
	/*
86
	 * (non-Javadoc)
87
	 * @see org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder#setIncrementListener(org.gvsig.addo.IOverviewIncrement)
88
	 */
89
	public void setIncrementListener(BaseIncrementableTask incr) {
90
		build.setIncrementListener(new ProcessBinding(incr));
91
	}
92

  
93
	/*
94
	 * (non-Javadoc)
95
	 * @see org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder#setPercent(int)
96
	 */
97
	public void setPercent(int value) {
98
		this.value = value;
99
	}
100
}
0 101

  
org.gvsig.raster.gdal/trunk/org.gvsig.raster.gdal/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/DefaultGdalIOLibrary.java
23 23

  
24 24
import org.gvsig.fmap.dal.DALFileLibrary;
25 25
import org.gvsig.fmap.dal.DALLibrary;
26
import org.gvsig.fmap.dal.coverage.RasterLocator;
27
import org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder;
28
import org.gvsig.raster.gdal.overview.GdalOverviewBuilder;
26 29
import org.gvsig.raster.impl.store.AbstractNewRasterStoreParameters;
27 30
import org.gvsig.raster.impl.store.AbstractRasterFileDataParameters;
28 31
import org.gvsig.tools.ToolsLibrary;
......
60 63
		JpegWriter.register();
61 64
		PngWriter.register();
62 65
		GdalDataParameters.registerPersistence();
66
		
67
		//Register GdalOverviewBuilder
68
		RasterLocator.getManager().getProviderServices().registerOverviewBuilderImplementation(
69
				"GDAL",
70
				new GdalOverviewBuilder());
63 71
	}
64 72
}

Also available in: Unified diff