Revision 19307
trunk/extensions/extRasterTools-SE/config/text.properties | ||
---|---|---|
187 | 187 |
brightness=Brillo |
188 | 188 |
contrast=Contraste |
189 | 189 |
enhanced=Realce |
190 |
enhanced_rad=Realces Radiom?tricos |
|
190 | 191 |
rgbtohsl=RGB->HSL |
191 | 192 |
hsltorgb=HSL->RGB |
192 | 193 |
rgbtocmyk=RGB->CMYK |
trunk/extensions/extRasterTools-SE/src/org/gvsig/raster/beans/previewbase/ParamStruct.java | ||
---|---|---|
1 |
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana |
|
2 |
* |
|
3 |
* Copyright (C) 2007 IVER T.I. and Generalitat Valenciana. |
|
4 |
* |
|
5 |
* This program is free software; you can redistribute it and/or |
|
6 |
* modify it under the terms of the GNU General Public License |
|
7 |
* as published by the Free Software Foundation; either version 2 |
|
8 |
* of the License, or (at your option) any later version. |
|
9 |
* |
|
10 |
* This program is distributed in the hope that it will be useful, |
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 |
* GNU General Public License for more details. |
|
14 |
* |
|
15 |
* You should have received a copy of the GNU General Public License |
|
16 |
* along with this program; if not, write to the Free Software |
|
17 |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA. |
|
18 |
*/ |
|
19 |
package org.gvsig.raster.beans.previewbase; |
|
20 |
|
|
21 |
import org.gvsig.raster.dataset.Params; |
|
22 |
|
|
23 |
/** |
|
24 |
* Estructura para los par?metros de PreviewFiltering. Contiene el nombre del |
|
25 |
* filtro, el par?metro y la clase de este. |
|
26 |
* |
|
27 |
*/ |
|
28 |
public class ParamStruct { |
|
29 |
String filterName = null; |
|
30 |
Params filterParam = null; |
|
31 |
Class filterClass = null; |
|
32 |
|
|
33 |
/** |
|
34 |
* @return the filterName |
|
35 |
*/ |
|
36 |
public String getFilterName() { |
|
37 |
return filterName; |
|
38 |
} |
|
39 |
|
|
40 |
/** |
|
41 |
* @param filterName the filterName to set |
|
42 |
*/ |
|
43 |
public void setFilterName(String filterName) { |
|
44 |
this.filterName = filterName; |
|
45 |
} |
|
46 |
|
|
47 |
/** |
|
48 |
* @return the filterParam |
|
49 |
*/ |
|
50 |
public Params getFilterParam() { |
|
51 |
return filterParam; |
|
52 |
} |
|
53 |
|
|
54 |
/** |
|
55 |
* @param filterParam the filterParam to set |
|
56 |
*/ |
|
57 |
public void setFilterParam(Params filterParam) { |
|
58 |
this.filterParam = filterParam; |
|
59 |
} |
|
60 |
|
|
61 |
/** |
|
62 |
* @return the filterClass |
|
63 |
*/ |
|
64 |
public Class getFilterClass() { |
|
65 |
return filterClass; |
|
66 |
} |
|
67 |
|
|
68 |
/** |
|
69 |
* @param filterClass the filterClass to set |
|
70 |
*/ |
|
71 |
public void setFilterClass(Class filterClass) { |
|
72 |
this.filterClass = filterClass; |
|
73 |
} |
|
74 |
} |
trunk/extensions/extRasterTools-SE/src/org/gvsig/raster/beans/previewbase/PreviewFiltering.java | ||
---|---|---|
1 |
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana |
|
2 |
* |
|
3 |
* Copyright (C) 2007 IVER T.I. and Generalitat Valenciana. |
|
4 |
* |
|
5 |
* This program is free software; you can redistribute it and/or |
|
6 |
* modify it under the terms of the GNU General Public License |
|
7 |
* as published by the Free Software Foundation; either version 2 |
|
8 |
* of the License, or (at your option) any later version. |
|
9 |
* |
|
10 |
* This program is distributed in the hope that it will be useful, |
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 |
* GNU General Public License for more details. |
|
14 |
* |
|
15 |
* You should have received a copy of the GNU General Public License |
|
16 |
* along with this program; if not, write to the Free Software |
|
17 |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA. |
|
18 |
*/ |
|
19 |
package org.gvsig.raster.beans.previewbase; |
|
20 |
|
|
21 |
import java.util.ArrayList; |
|
22 |
|
|
23 |
import org.gvsig.raster.dataset.Params; |
|
24 |
import org.gvsig.raster.grid.filter.FilterTypeException; |
|
25 |
import org.gvsig.raster.grid.filter.IRasterFilterListManager; |
|
26 |
import org.gvsig.raster.grid.filter.RasterFilter; |
|
27 |
import org.gvsig.raster.grid.filter.RasterFilterList; |
|
28 |
import org.gvsig.raster.grid.filter.RasterFilterListManager; |
|
29 |
import org.gvsig.raster.hierarchy.IRasterRendering; |
|
30 |
import org.gvsig.raster.util.RasterToolsUtil; |
|
31 |
|
|
32 |
import com.iver.andami.PluginServices; |
|
33 |
|
|
34 |
/** |
|
35 |
* Procesado de la imagen para la previsualizaci?n. Para poder usar esta clase despu?s de instanciarla |
|
36 |
* habr? que asignarle un valor a showFiltersSelected aunque por defecto est? a true por lo que se |
|
37 |
* visualizaran los cambios sin problemas, asigna una lista de filtros inicial (que ya tenga el raster |
|
38 |
* aplicado) con setFilterStatus y asignar los filtros que queramos aplicar con addNewParam (una llamada |
|
39 |
* por cada filtro). |
|
40 |
* |
|
41 |
* 19/02/2008 |
|
42 |
* @author Nacho Brodin nachobrodin@gmail.com |
|
43 |
*/ |
|
44 |
public class PreviewFiltering implements IPreviewRenderProcess { |
|
45 |
|
|
46 |
private boolean showFiltersSelected = true; |
|
47 |
private ArrayList paramsList = new ArrayList(); |
|
48 |
private ArrayList filtersInit = null; |
|
49 |
|
|
50 |
/** |
|
51 |
* Flag de selecci?n de activaci?n y desactivaci?n |
|
52 |
* @param show |
|
53 |
*/ |
|
54 |
public void showFiltersSelected(boolean show) { |
|
55 |
this.showFiltersSelected = show; |
|
56 |
} |
|
57 |
|
|
58 |
/** |
|
59 |
* Obtiene la lista de par?metros |
|
60 |
* @return the paramsList |
|
61 |
*/ |
|
62 |
public ArrayList getParamsList() { |
|
63 |
return paramsList; |
|
64 |
} |
|
65 |
|
|
66 |
/** |
|
67 |
* Asigna la lista de par?metros |
|
68 |
* @param params |
|
69 |
*/ |
|
70 |
public void setParamsList(ArrayList params) { |
|
71 |
this.paramsList = params; |
|
72 |
} |
|
73 |
|
|
74 |
/** |
|
75 |
* Asigna el arrayList de filtros inicial |
|
76 |
* @param params |
|
77 |
*/ |
|
78 |
public void setFilterStatus(ArrayList filtersInit) { |
|
79 |
this.filtersInit = filtersInit; |
|
80 |
} |
|
81 |
|
|
82 |
/** |
|
83 |
* Devuelve el arrayList de filtros inicial |
|
84 |
* @return |
|
85 |
*/ |
|
86 |
public ArrayList getFilterStatus() { |
|
87 |
return filtersInit; |
|
88 |
} |
|
89 |
|
|
90 |
/** |
|
91 |
* A?adir un nuevo Params a la lista de Params que podemos manejar. Un Params |
|
92 |
* equivale a un filtro cargado. El hecho de trabajar con Params y no con |
|
93 |
* filtros, simplifica totalmente el panel. Sin tener que depender de los |
|
94 |
* filtros nada m?s que para el momento de dibujado o guardado. |
|
95 |
* @param name |
|
96 |
* @param params |
|
97 |
* @param classFilter |
|
98 |
*/ |
|
99 |
public void addNewParam(String name, Params params, Class classFilter) { |
|
100 |
ParamStruct param = new ParamStruct(); |
|
101 |
param.setFilterName(name); |
|
102 |
param.setFilterParam(params); |
|
103 |
param.setFilterClass(classFilter); |
|
104 |
paramsList.add(param); |
|
105 |
} |
|
106 |
|
|
107 |
/** |
|
108 |
* Procesa la imagen con la lista de filtros si el flag showFilterSelected est? a true. |
|
109 |
* Esta funci?n llama a addFilter por cada filtro a?adido pero es applyFilters la encargada |
|
110 |
* de construir la lista. |
|
111 |
*/ |
|
112 |
public void process(IRasterRendering rendering) throws FilterTypeException { |
|
113 |
rendering.getRenderFilterList().clear(); |
|
114 |
|
|
115 |
if (showFiltersSelected) { |
|
116 |
RasterFilterList filterList = rendering.getRenderFilterList(); |
|
117 |
RasterFilterListManager stackManager = new RasterFilterListManager(filterList); |
|
118 |
|
|
119 |
ArrayList listFilterUsed = applyFilters(rendering); |
|
120 |
ArrayList exc = new ArrayList(); |
|
121 |
for (int i = 0; i < listFilterUsed.size(); i++) { |
|
122 |
IRasterFilterListManager filterManager = stackManager.getManagerByFilterClass(((ParamStruct) listFilterUsed.get(i)).getFilterClass()); |
|
123 |
try { |
|
124 |
filterManager.addFilter(((ParamStruct) listFilterUsed.get(i)).getFilterClass(), ((ParamStruct) listFilterUsed.get(i)).getFilterParam()); |
|
125 |
} catch (FilterTypeException e) { |
|
126 |
exc.add(e); |
|
127 |
} |
|
128 |
} |
|
129 |
if(exc.size() != 0) { |
|
130 |
RasterToolsUtil.messageBoxError(PluginServices.getText(this, "error_adding_filters"), this, exc); |
|
131 |
exc.clear(); |
|
132 |
} |
|
133 |
} |
|
134 |
} |
|
135 |
|
|
136 |
/** |
|
137 |
* Aqui se seleccionan que filtros se van a aplicar y se devuelven en forma |
|
138 |
* de ArrayList tanto para el dibujado como cuando aceptan o aplican el panel. |
|
139 |
* @param rendering |
|
140 |
* @return |
|
141 |
*/ |
|
142 |
public ArrayList applyFilters(IRasterRendering rendering) { |
|
143 |
ArrayList listFilterUsed = new ArrayList(); |
|
144 |
|
|
145 |
RasterFilterList filterList = new RasterFilterList(); |
|
146 |
filterList.setEnv(rendering.getRenderFilterList().getEnv()); |
|
147 |
RasterFilterListManager stackManager = new RasterFilterListManager(filterList); |
|
148 |
|
|
149 |
if(filtersInit == null) |
|
150 |
return listFilterUsed; |
|
151 |
|
|
152 |
// Conservamos filtros no visibles ya existentes |
|
153 |
for (int i = 0; i < filtersInit.size(); i++) { |
|
154 |
// Si es visible no hacemos nada |
|
155 |
if (((RasterFilter) filtersInit.get(i)).isVisible()) |
|
156 |
continue; |
|
157 |
|
|
158 |
RasterFilter obj = null; |
|
159 |
for (int j = 0; j < stackManager.getRasterFilterList().size(); j++) { |
|
160 |
Class classFilter = (Class) stackManager.getRasterFilterList().get(j); |
|
161 |
try { |
|
162 |
obj = (RasterFilter) classFilter.newInstance(); |
|
163 |
if (obj.getName().equals(((RasterFilter) filtersInit.get(i)).getName())) |
|
164 |
break; |
|
165 |
} catch (InstantiationException e) { |
|
166 |
RasterToolsUtil.messageBoxError("error_creando_filtro", this, e); |
|
167 |
} catch (IllegalAccessException e) { |
|
168 |
RasterToolsUtil.messageBoxError("error_creando_filtro", this, e); |
|
169 |
} |
|
170 |
} |
|
171 |
|
|
172 |
// Si no encontramos el filtro apropiado, nos olvidamos de el |
|
173 |
if (obj == null) |
|
174 |
continue; |
|
175 |
|
|
176 |
// Si no es visible tenemos que conservar el filtro |
|
177 |
try { |
|
178 |
Params params = (Params) ((RasterFilter) filtersInit.get(i)).getUIParams(((RasterFilter) filtersInit.get(i)).getName()).clone(); |
|
179 |
// A?ado el parametro RenderBands a los parametros del filtro |
|
180 |
String rgb = rendering.getRenderBands()[0] + " " + rendering.getRenderBands()[1] + " " + rendering.getRenderBands()[2]; |
|
181 |
params.setParam("RenderBands", rgb, 0, null); |
|
182 |
|
|
183 |
ParamStruct newParam = new ParamStruct(); |
|
184 |
newParam.setFilterClass(obj.getClass()); |
|
185 |
newParam.setFilterName(((RasterFilter) filtersInit.get(i)).getName()); |
|
186 |
newParam.setFilterParam(params); |
|
187 |
listFilterUsed.add(newParam); |
|
188 |
} catch (CloneNotSupportedException e) { |
|
189 |
} |
|
190 |
} |
|
191 |
return listFilterUsed; |
|
192 |
} |
|
193 |
|
|
194 |
} |
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/enhanced/ui/EnhancedPreviewFiltering.java | ||
---|---|---|
1 |
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana |
|
2 |
* |
|
3 |
* Copyright (C) 2007 IVER T.I. and Generalitat Valenciana. |
|
4 |
* |
|
5 |
* This program is free software; you can redistribute it and/or |
|
6 |
* modify it under the terms of the GNU General Public License |
|
7 |
* as published by the Free Software Foundation; either version 2 |
|
8 |
* of the License, or (at your option) any later version. |
|
9 |
* |
|
10 |
* This program is distributed in the hope that it will be useful, |
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 |
* GNU General Public License for more details. |
|
14 |
* |
|
15 |
* You should have received a copy of the GNU General Public License |
|
16 |
* along with this program; if not, write to the Free Software |
|
17 |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA. |
|
18 |
*/ |
|
19 |
package org.gvsig.rastertools.enhanced.ui; |
|
20 |
|
|
21 |
import org.gvsig.raster.beans.previewbase.IPreviewRenderProcess; |
|
22 |
import org.gvsig.raster.grid.filter.FilterTypeException; |
|
23 |
import org.gvsig.raster.hierarchy.IRasterRendering; |
|
24 |
|
|
25 |
/** |
|
26 |
* Procesado de la imagen para la previsualizaci?n. |
|
27 |
* |
|
28 |
* 19/02/2008 |
|
29 |
* @author Nacho Brodin nachobrodin@gmail.com |
|
30 |
*/ |
|
31 |
public class EnhancedPreviewFiltering implements IPreviewRenderProcess { |
|
32 |
|
|
33 |
public void process(IRasterRendering rendering) throws FilterTypeException { |
|
34 |
} |
|
35 |
|
|
36 |
} |
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/enhanced/ui/EnhancedListener.java | ||
---|---|---|
25 | 25 |
import org.gvsig.raster.IProcessActions; |
26 | 26 |
import org.gvsig.raster.beans.canvas.layers.GraphicHistogram; |
27 | 27 |
import org.gvsig.raster.beans.previewbase.PreviewBasePanel; |
28 |
import org.gvsig.raster.beans.previewbase.PreviewFiltering; |
|
28 | 29 |
import org.gvsig.rastertools.enhanced.graphics.HistogramGraphicBase; |
29 | 30 |
|
30 | 31 |
/** |
... | ... | |
38 | 39 |
private GraphicsPanel graphic = null; |
39 | 40 |
private PreviewBasePanel enhancedPanel = null; |
40 | 41 |
private EnhancedDialog enhancedDialog = null; |
42 |
private PreviewFiltering filteredPreview = null; |
|
41 | 43 |
|
42 | 44 |
/** |
43 | 45 |
* Constructor |
44 | 46 |
* @param selectors Panel con los selectores de opciones |
45 | 47 |
* @param graphic Panel con los gr?ficos |
48 |
* @param enhancedPanel Panel base con la previsualizaci?n |
|
49 |
* @param enhandedDialog Dialogo general |
|
50 |
* @param filteredPreview Preprocesado para la preview |
|
46 | 51 |
*/ |
47 |
public EnhancedListener(SelectorsPanel selector, GraphicsPanel graphic, PreviewBasePanel enhancedPanel, EnhancedDialog enhancedDialog) { |
|
52 |
public EnhancedListener(SelectorsPanel selector, |
|
53 |
GraphicsPanel graphic, |
|
54 |
PreviewBasePanel enhancedPanel, |
|
55 |
EnhancedDialog enhancedDialog, |
|
56 |
PreviewFiltering filteredPreview) { |
|
48 | 57 |
this.selector = selector; |
49 | 58 |
this.graphic = graphic; |
50 | 59 |
this.enhancedPanel = enhancedPanel; |
51 | 60 |
this.enhancedDialog = enhancedDialog; |
61 |
this.filteredPreview = filteredPreview; |
|
52 | 62 |
|
53 | 63 |
selector.getHistogramType().addActionListener(this); |
54 | 64 |
selector.getDrawType().addActionListener(this); |
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/enhanced/ui/EnhancedDialog.java | ||
---|---|---|
27 | 27 |
import org.gvsig.fmap.raster.layers.FLyrRasterSE; |
28 | 28 |
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel; |
29 | 29 |
import org.gvsig.raster.beans.previewbase.PreviewBasePanel; |
30 |
import org.gvsig.raster.beans.previewbase.PreviewFiltering; |
|
30 | 31 |
|
31 | 32 |
import com.iver.andami.PluginServices; |
32 | 33 |
import com.iver.andami.ui.mdiManager.IWindow; |
... | ... | |
44 | 45 |
private PreviewBasePanel enhancedPanel = null; |
45 | 46 |
private GraphicsPanel graphicsPanel = null; |
46 | 47 |
private FLyrRasterSE lyr = null; |
47 |
private EnhancedPreviewFiltering filteredPreview = null;
|
|
48 |
private PreviewFiltering filteredPreview = null;
|
|
48 | 49 |
private SelectorsPanel controlsPanel = null; |
49 | 50 |
|
50 | 51 |
/** |
... | ... | |
60 | 61 |
this.setLayout(new BorderLayout(5, 5)); |
61 | 62 |
|
62 | 63 |
graphicsPanel = new GraphicsPanel(lyr); |
63 |
filteredPreview = new EnhancedPreviewFiltering();
|
|
64 |
filteredPreview = new PreviewFiltering(); |
|
64 | 65 |
controlsPanel = new SelectorsPanel(lyr, lyrs); |
65 | 66 |
|
66 | 67 |
this.lyr = lyr; |
67 | 68 |
this.add(getPreviewBasePanel(), java.awt.BorderLayout.CENTER); |
68 | 69 |
|
69 |
EnhancedListener listener = new EnhancedListener(controlsPanel, graphicsPanel, getPreviewBasePanel(), this); |
|
70 |
EnhancedListener listener = new EnhancedListener(controlsPanel, graphicsPanel, getPreviewBasePanel(), this, filteredPreview);
|
|
70 | 71 |
graphicsPanel.setListener(listener); |
71 | 72 |
|
72 | 73 |
getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL).addActionListener(listener); |
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/enhanced/graphics/InputHistogram.java | ||
---|---|---|
118 | 118 |
|
119 | 119 |
canvas = new GCanvas(Color.BLACK); |
120 | 120 |
canvas.setDrawableElement(new Border(borderColor)); |
121 |
canvas.setDrawableElement(gHist); |
|
122 |
canvas.setDrawableElement(dElement); |
|
121 | 123 |
canvas.setDrawableElement(minMaxLines); |
122 |
canvas.setDrawableElement(gHist); |
|
123 |
canvas.setDrawableElement(dElement); |
|
124 | 124 |
} |
125 | 125 |
return canvas; |
126 | 126 |
} |
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/enhanced/EnhancedTocMenuEntry.java | ||
---|---|---|
94 | 94 |
* @see com.iver.cit.gvsig.project.documents.IContextMenuAction#getText() |
95 | 95 |
*/ |
96 | 96 |
public String getText() { |
97 |
return PluginServices.getText(this, "enhanced"); |
|
97 |
return PluginServices.getText(this, "enhanced_rad");
|
|
98 | 98 |
} |
99 | 99 |
|
100 | 100 |
/* |
Also available in: Unified diff