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
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 |
* A�ade 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 inserci�n 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