Revision 2328 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/grid/filter/enhancement/EnhancementStretchListManager.java

View differences:

EnhancementStretchListManager.java
30 30
import org.gvsig.fmap.dal.coverage.exception.FilterTypeException;
31 31
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
32 32
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
33
import org.gvsig.fmap.dal.coverage.grid.AbstractRasterFilterManager;
33 34
import org.gvsig.fmap.dal.coverage.grid.RasterFilter;
34 35
import org.gvsig.fmap.dal.coverage.grid.RasterFilterList;
35
import org.gvsig.fmap.dal.coverage.grid.RasterFilterListManager;
36 36
import org.gvsig.fmap.dal.coverage.store.props.Statistics;
37 37
import org.gvsig.raster.impl.datastruct.DefaultStretch;
38 38
import org.gvsig.raster.impl.grid.filter.RasterFilterListManagerImpl;
39 39
import org.gvsig.raster.impl.grid.filter.statistics.StatisticsListManager;
40 40
import org.gvsig.raster.impl.store.ParamImpl;
41
import org.gvsig.tools.ToolsLocator;
42
import org.gvsig.tools.extensionpoint.ExtensionPoint;
43
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
44 41
/**
45 42
 * Gestor de la pila de filtros para el filtro de realce por intervalos.
46 43
 *
47 44
 * @author Nacho Brodin (nachobrodin@gmail.com)
48 45
 */
49
public class EnhancementStretchListManager implements RasterFilterListManager {
50
	protected RasterFilterList          filterList        = null;
46
public class EnhancementStretchListManager extends AbstractRasterFilterManager {
47
	private static String               ID                = "EnhancementStretch";
51 48
	private RasterFilterListManagerImpl filterListManager = null;
52 49
	private Statistics                  stats             = null;
53 50

  
54 51
	/**
55
	 * Constructor
56
	 * @param filterListManager
52
	 * Default constructor. Sets the filter list.
53
	 * @param filterList
57 54
	 */
58 55
	public EnhancementStretchListManager(RasterFilterList filterList) {
59
		this.filterList = filterList;
56
		super(filterList);
60 57
		stats = (Statistics)filterList.getEnvParam("SrcStatistics");
61 58
	}
62
	
59

  
60
	public String getManagerID() {
61
		return ID;
62
	}
63

  
64
	public static void register() {
65
		AbstractRasterFilterManager.register(ID, EnhancementStretchListManager.class);
66
	}
67

  
63 68
	/**
64 69
	 * Constructor
65 70
	 * @param filterListManager
66 71
	 */
67 72
	public EnhancementStretchListManager(RasterFilterListManagerImpl filterListManager) {
73
		super(filterListManager.getFilterList());
68 74
		this.filterListManager = filterListManager;
69
		this.filterList = filterListManager.getFilterList();
70
		stats = (Statistics)filterList.getEnvParam("SrcStatistics");
75
		stats = (Statistics)getFilterList().getEnvParam("SrcStatistics");
71 76
	}
72 77
	
73 78
	public Class<?> getFilterClassByID(String id) {
......
84 89
		this.stats = stats;
85 90
	}
86 91

  
87
	/**
88
	 * Registra EnhancementStretchListManager en los puntos de extension de RasterFilter
89
	 */
90
	public static void register() {
91
		ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager();
92
		ExtensionPoint point = extensionPoints.get("RasterFilter");
93
		point.append("EnhancementStretch", "", EnhancementStretchListManager.class);
94
	}
95
	
96 92
	public boolean isDataTypeSupported(int dataType) {
97 93
		return true;
98 94
	}
99 95

  
100 96
	/**
101
	 * Aade un filtro de realce.
102
	 * La forma de inserci�n del filtro es fija ya que la inserci�n de un realce lleva implicita
103
	 * la insercin de un filtro de recorte de colas (tailtrim), aunque no en todos los casos.
97
	 * A?ade un filtro de realce.
98
	 * La forma de insercion del filtro es fija ya que la insercion de un realce lleva implicita
99
	 * la insercion de un filtro de recorte de colas (tailtrim), aunque no en todos los casos.
104 100
	 * Si ya existe un filtro de realce en la lista se obtiene la posici�n de este.
105 101
	 * Si es necesario un recorte de colas entonces se comprueba si existe un uno reemplazandose
106 102
	 * por el nuevo y sino se insertar? uno. Al final reemplazamos el realce que existia.
......
131 127
				if(filterListManager !=  null)
132 128
					slm = new StatisticsListManager(filterListManager, stats);
133 129
				else
134
					slm = new StatisticsListManager(filterList);
130
					slm = new StatisticsListManager(getFilterList());
135 131
				slm.addTailFilter(leParams.getTailTrimList(), 0D, removeEnds, stats);
136 132
			}
137 133

  
138 134
			RasterFilter filter = createEnhancedFilter(leParams, stats, renderBands, removeEnds);
139 135
			if (filter != null)
140
				filterList.add(filter);
136
				getFilterList().add(filter);
141 137
		} catch (ProcessInterruptedException e) {
142 138
			//Si se ha interrumpido no a�adimos el filtro
143 139
		}
144 140
	}
145 141
	
146
	/*
147
	 * (non-Javadoc)
148
	 * @see org.gvsig.fmap.dal.coverage.grid.RasterFilterListManager#addFilter(org.gvsig.fmap.dal.coverage.datastruct.Params)
149
	 */
150 142
	public void addFilter(Params params) throws FilterTypeException {
151 143
		int[] renderBands = (int[])params.getParamById("renderBands").getDefaultValue();
152 144
		Statistics stats = (Statistics)params.getParamById("stats").getDefaultValue();
......
373 365
		return false;
374 366
	}
375 367

  
376
	/*
377
	 * (non-Javadoc)
378
	 * @see org.gvsig.raster.grid.filter.IRasterFilterListManager#createFilterListFromStrings(java.util.ArrayList, java.lang.String, int)
379
	 */
380 368
	public int createFilterListFromStrings(List<String> filters, String fil, int filteri) throws FilterTypeException {
381 369
		String pkgBase = "filter.linearstretchenhancement.";
382 370
		if (fil.startsWith(pkgBase + "active")) {
......
416 404
					continue;
417 405
			}
418 406

  
419
			filterList.remove(LinearStretchEnhancementFilter.class);
407
			getFilterList().remove(LinearStretchEnhancementFilter.class);
420 408
			addEnhancedStretchFilter(stretchParams, stats, renderBands,
421 409
					removeEnds);
422 410

  
423
			LinearStretchEnhancementFilter lsef = (LinearStretchEnhancementFilter) filterList.getFilterByBaseClass(LinearStretchEnhancementFilter.class);
411
			LinearStretchEnhancementFilter lsef = (LinearStretchEnhancementFilter) getFilterList().getFilterByBaseClass(LinearStretchEnhancementFilter.class);
424 412
			lsef.setExec(exec);
425 413
		}
426 414
		return filteri;
......
575 563
					leParams.blue.scale = ((double[]) ((ParamImpl)params.getParam(i)).getDefaultValue());
576 564
			}
577 565

  
578
			addEnhancedStretchFilter(leParams, (Statistics) filterList.getEnvParam("SrcStatistics"), renderBands, removeEnds);
566
			addEnhancedStretchFilter(leParams, (Statistics) getFilterList().getEnvParam("SrcStatistics"), renderBands, removeEnds);
579 567
		}
580 568
	}
581 569
	
582
	/*
583
	 * (non-Javadoc)
584
	 * @see org.gvsig.fmap.dal.coverage.grid.RasterFilterListManager#getFilterList()
585
	 */
586
	public RasterFilterList getFilterList() {
587
		return filterList;
588
	}
589
	
590
	/*
591
	 * (non-Javadoc)
592
	 * @see org.gvsig.fmap.dal.coverage.grid.RasterFilterListManager#setFilterList(org.gvsig.fmap.dal.coverage.grid.RasterFilterList)
593
	 */
594
	public void setFilterList(RasterFilterList filterList) {
595
		this.filterList = filterList;
596
	}
597
	
598
	/*
599
	 * (non-Javadoc)
600
	 * @see org.gvsig.fmap.dal.coverage.grid.RasterFilterListManager#createFilter(org.gvsig.fmap.dal.coverage.datastruct.Params)
601
	 */
602 570
	public RasterFilter createFilter(Params params) throws FilterTypeException {
603 571
		int[] renderBands = null;
604 572
		Statistics stats = null;

Also available in: Unified diff