Revision 1717
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/src/main/java/org/gvsig/raster/georeferencing/app/georeferencingclient/TableWrapper.java | ||
---|---|---|
1 |
package org.gvsig.raster.georeferencing.app.georeferencingclient; |
|
2 |
|
|
3 |
import org.gvsig.fmap.dal.coverage.datastruct.GeoPoint; |
|
4 |
import org.gvsig.fmap.dal.coverage.datastruct.GeoPointList; |
|
5 |
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException; |
|
6 |
import org.gvsig.i18n.Messages; |
|
7 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.CheckBoxColumnEditor; |
|
8 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.CheckBoxColumnRenderer; |
|
9 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.ColorColumnRenderer; |
|
10 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.GCPModel; |
|
11 |
import org.gvsig.raster.georeferencing.lib.impl.GeoTransformDataResult; |
|
12 |
import org.gvsig.raster.georeferencing.swing.GeoreferencingOptionsDataModel; |
|
13 |
import org.gvsig.raster.georeferencing.swing.control.GeorefControlPanel; |
|
14 |
import org.gvsig.raster.georeferencing.swing.impl.GeoreferencingSwingImplLibrary; |
|
15 |
import org.gvsig.raster.swing.RasterSwingLocator; |
|
16 |
import org.gvsig.raster.swing.RasterSwingManager; |
|
17 |
import org.gvsig.raster.swing.impl.pagedtable.NotInitializeException; |
|
18 |
import org.gvsig.raster.swing.pagedtable.ModelLoader; |
|
19 |
import org.gvsig.raster.swing.pagedtable.PagedTable; |
|
20 |
import org.gvsig.raster.tools.algorithm.base.RasterBaseAlgorithmLibrary; |
|
21 |
import org.gvsig.raster.tools.algorithm.base.process.ProcessException; |
|
22 |
import org.gvsig.raster.tools.algorithm.base.process.RasterProcess; |
|
23 |
import org.gvsig.raster.tools.app.basic.RasterToolsUtil; |
|
24 |
|
|
25 |
/** |
|
26 |
* API for the table to manage ground control points. This table |
|
27 |
* has a specific structure. |
|
28 |
* |
|
29 |
* @author Nacho Brodin nachobrodin@gmail.com |
|
30 |
*/ |
|
31 |
public class TableWrapper { |
|
32 |
private PagedTable table = null; |
|
33 |
private RasterProcess process = null; |
|
34 |
private GeoPointList gpList = null; |
|
35 |
private GeoreferencingOptionsDataModel dataModel = null; |
|
36 |
private GeorefControlPanel controlPanel = null; |
|
37 |
|
|
38 |
public TableWrapper( |
|
39 |
GeoPointList gpList, |
|
40 |
GeoreferencingOptionsDataModel dataModel, |
|
41 |
GeorefControlPanel controlPanel) { |
|
42 |
this.gpList = gpList; |
|
43 |
this.dataModel = dataModel; |
|
44 |
this.controlPanel = controlPanel; |
|
45 |
try { |
|
46 |
process = RasterBaseAlgorithmLibrary.getManager().createRasterTask("GeoreferencingProcess"); |
|
47 |
} catch (ProcessException e) { |
|
48 |
GeoreferencingSwingImplLibrary.messageBoxError("process_not_registered", null, e); |
|
49 |
} |
|
50 |
} |
|
51 |
|
|
52 |
public PagedTable getTable() { |
|
53 |
if(table == null) { |
|
54 |
RasterSwingManager manager = RasterSwingLocator.getSwingManager(); |
|
55 |
String[] columnNames = { |
|
56 |
"-", |
|
57 |
Messages.getText("num"), |
|
58 |
Messages.getText("worldx"), |
|
59 |
Messages.getText("worldy"), |
|
60 |
Messages.getText("imagex"), |
|
61 |
Messages.getText("imagey"), |
|
62 |
"Error X", "Error Y", "RMS", ""}; |
|
63 |
int[] columnSizes = {40, 37, -1, -1, -1, -1, -1, -1, -1, 0}; |
|
64 |
|
|
65 |
GCPModel model = new GCPModel(columnNames); |
|
66 |
ModelLoader loader = manager.createModelLoader(model); |
|
67 |
CheckBoxColumnRenderer render = new CheckBoxColumnRenderer(null); |
|
68 |
CheckBoxColumnEditor editor = new CheckBoxColumnEditor(); |
|
69 |
loader.setRenderForColumn(0, render); |
|
70 |
loader.setCellEditorForColumn(0, editor); |
|
71 |
loader.setColumnNames(columnNames); |
|
72 |
loader.setColumnWidths(columnSizes); |
|
73 |
|
|
74 |
table = manager.createPagedTable(loader); |
|
75 |
} |
|
76 |
return table; |
|
77 |
} |
|
78 |
|
|
79 |
/** |
|
80 |
* Inicializa una fila de la tabla con los valores a 0, el n?mero de punto |
|
81 |
* y el identificador. Esto es util para la inserci?n de un nuevo punto antes |
|
82 |
* de introducir sus coordenadas. |
|
83 |
* @param row Fila a inicializar |
|
84 |
* @param id Identificador |
|
85 |
*/ |
|
86 |
public void initializeRow(int row, long id) { |
|
87 |
getTable().setValueAt(new Integer(row), row, 1); |
|
88 |
for (int i = 2; i <= 9; i++) |
|
89 |
getTable().setValueAt(new Double(0), row, i); |
|
90 |
getTable().setValueAt(new Long(id), row, getTable().getColumnCount() - 1); |
|
91 |
} |
|
92 |
|
|
93 |
/** |
|
94 |
* Actualiza los errores de toda la tabla. Esta funci?n debe ser llamada cuando ha |
|
95 |
* habido alg?n cambio en los valores de los puntos. |
|
96 |
* @throws NotInitializeException |
|
97 |
*/ |
|
98 |
public void updateErrors() { |
|
99 |
process.addParam("gpcs", gpList); |
|
100 |
int degree = 1; |
|
101 |
if(dataModel.getAlgorithm() == Georeferencing.POLYNOMIAL) |
|
102 |
degree = dataModel.getDegree(); |
|
103 |
process.addParam("orden", new Integer(degree)); |
|
104 |
try { |
|
105 |
process.execute(); |
|
106 |
} catch (ProcessException e) { |
|
107 |
return; |
|
108 |
} catch(RuntimeException e) { |
|
109 |
//Matriz singular |
|
110 |
return; |
|
111 |
} catch (ProcessInterruptedException e) { |
|
112 |
} |
|
113 |
GeoTransformDataResult result = (GeoTransformDataResult)process.getResult(); |
|
114 |
if(result == null) |
|
115 |
return; |
|
116 |
|
|
117 |
//Actualizamos los errores de toda la tabla |
|
118 |
ColorColumnRenderer cr = new ColorColumnRenderer(); |
|
119 |
for (int i = 0; i < gpList.size(); i++) { |
|
120 |
GeoPoint point = gpList.get(i); |
|
121 |
getTable().setValueAt(new Double(point.getErrorX()), point.getNumber(), 6); |
|
122 |
getTable().setValueAt(new Double(point.getErrorY()), point.getNumber(), 7); |
|
123 |
getTable().setValueAt(new Double(point.getRms()), point.getNumber(), 8); |
|
124 |
if (point.getRms() > dataModel.getThreshold()) |
|
125 |
cr.addRowToColor1(point.getNumber()); |
|
126 |
else |
|
127 |
cr.addRowToColor2(point.getNumber()); |
|
128 |
} |
|
129 |
getTable().getJTable().getColumnModel().getColumn(8).setCellRenderer(cr); |
|
130 |
controlPanel.getError().setValue(result.getRmsTotal() + ""); |
|
131 |
} |
|
132 |
|
|
133 |
/** |
|
134 |
* Obtiene las coordenadas de una fila |
|
135 |
* @param row Fila de la que se quieren obtener las coordenadas |
|
136 |
* @return Array con 4 valores coordenadas real X, coordenada real Y, coordenadas raster X y coordenada raste Y |
|
137 |
*/ |
|
138 |
public double[] getCoordinates(int row) { |
|
139 |
double xMap = 0, yMap = 0, xRaster = 0, yRaster = 0; |
|
140 |
boolean numberFormatException = false; |
|
141 |
|
|
142 |
Object value = getTable().getValueAt(row, 2); |
|
143 |
try { |
|
144 |
if(value instanceof Double) |
|
145 |
xMap = ((Double)value).doubleValue(); |
|
146 |
else if(value instanceof String) |
|
147 |
xMap = Double.valueOf(((String)value)).doubleValue(); |
|
148 |
} catch (NumberFormatException ex1) { |
|
149 |
numberFormatException = true; |
|
150 |
} |
|
151 |
|
|
152 |
value = getTable().getValueAt(row, 3); |
|
153 |
try { |
|
154 |
if(value instanceof Double) |
|
155 |
yMap = ((Double)value).doubleValue(); |
|
156 |
else if(value instanceof String) |
|
157 |
yMap = Double.valueOf(((String)value)).doubleValue(); |
|
158 |
} catch (NumberFormatException ex1) { |
|
159 |
numberFormatException = true; |
|
160 |
} |
|
161 |
|
|
162 |
try { |
|
163 |
value = getTable().getValueAt(row, 4); |
|
164 |
if(value instanceof Double) |
|
165 |
xRaster = ((Double)value).doubleValue(); |
|
166 |
else if(value instanceof String) |
|
167 |
xRaster = Double.valueOf(((String)value)).doubleValue(); |
|
168 |
} catch (NumberFormatException ex1) { |
|
169 |
numberFormatException = true; |
|
170 |
} |
|
171 |
|
|
172 |
try { |
|
173 |
value = getTable().getValueAt(row, 5); |
|
174 |
if(value instanceof Double) |
|
175 |
yRaster = ((Double)value).doubleValue(); |
|
176 |
else if(value instanceof String) |
|
177 |
yRaster = Double.valueOf(((String)value)).doubleValue(); |
|
178 |
} catch (NumberFormatException ex1) { |
|
179 |
numberFormatException = true; |
|
180 |
} |
|
181 |
|
|
182 |
//Esto es necesario porque aunque se produzca una excepci?n en la lectura |
|
183 |
//de un valor deben leerse los dem?s campos antes de terminar. |
|
184 |
if(numberFormatException) { |
|
185 |
RasterToolsUtil.messageBoxError("value_not_valid", table); |
|
186 |
getTable().setValueAt(new String(xMap + ""), row, 2); |
|
187 |
getTable().setValueAt(new String(yMap + ""), row, 3); |
|
188 |
getTable().setValueAt(new String(xRaster + ""), row, 4); |
|
189 |
getTable().setValueAt(new String(yRaster + ""), row, 5); |
|
190 |
|
|
191 |
} |
|
192 |
|
|
193 |
return new double[]{xMap, yMap, xRaster, yRaster}; |
|
194 |
} |
|
195 |
|
|
196 |
/** |
|
197 |
* Obtiene el resultado de aplicar el algoritmo de transformaci?n |
|
198 |
* @return |
|
199 |
*/ |
|
200 |
public GeoTransformDataResult getGeoTransformDataResult() { |
|
201 |
if(process != null) |
|
202 |
return (GeoTransformDataResult)process.getResult(); |
|
203 |
return null; |
|
204 |
} |
|
205 |
} |
|
0 | 206 |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/src/main/java/org/gvsig/raster/georeferencing/app/georeferencingclient/Georeferencing.java | ||
---|---|---|
26 | 26 |
import java.util.List; |
27 | 27 |
|
28 | 28 |
import javax.swing.JPanel; |
29 |
import javax.swing.table.DefaultTableModel; |
|
29 | 30 |
|
30 | 31 |
import org.gvsig.andami.PluginServices; |
31 | 32 |
import org.gvsig.andami.ui.mdiManager.IWindow; |
... | ... | |
40 | 41 |
import org.gvsig.fmap.geom.primitive.Envelope; |
41 | 42 |
import org.gvsig.fmap.mapcontrol.MapControl; |
42 | 43 |
import org.gvsig.i18n.Messages; |
43 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.CheckBoxColumnEditor; |
|
44 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.CheckBoxColumnRenderer; |
|
45 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.GCPModel; |
|
46 | 44 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.ApplicationControlsListener; |
47 | 45 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.LauncherDialogListener; |
48 | 46 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.ViewDialogListener; |
... | ... | |
59 | 57 |
import org.gvsig.raster.georeferencing.swing.control.GeorefControlPanel; |
60 | 58 |
import org.gvsig.raster.georeferencing.swing.exception.InvalidRequestException; |
61 | 59 |
import org.gvsig.raster.georeferencing.swing.impl.GeoreferencingSwingImplLibrary; |
62 |
import org.gvsig.raster.georeferencing.swing.impl.tool.SelectPointTool; |
|
63 | 60 |
import org.gvsig.raster.georeferencing.swing.view.GeoreferencingView; |
64 | 61 |
import org.gvsig.raster.georeferencing.swing.view.IViewRequestManager; |
65 | 62 |
import org.gvsig.raster.georeferencing.swing.view.SynchronizedViews; |
66 |
import org.gvsig.raster.swing.RasterSwingLocator; |
|
67 |
import org.gvsig.raster.swing.RasterSwingManager; |
|
68 |
import org.gvsig.raster.swing.pagedtable.ModelLoader; |
|
69 | 63 |
import org.gvsig.raster.swing.pagedtable.PagedTable; |
70 | 64 |
|
71 | 65 |
/** |
... | ... | |
97 | 91 |
fManager = null; |
98 | 92 |
private GeoreferencingSwingManager sManager = null; |
99 | 93 |
|
100 |
private RasterDataStore storeToGeoref = null; |
|
101 |
private String selectedView = null; |
|
102 |
|
|
103 | 94 |
//Dialogos |
104 | 95 |
private GeoreferencingLauncher launcher = null; |
105 | 96 |
private GeoreferencingView viewRaster = null; |
... | ... | |
109 | 100 |
|
110 | 101 |
private ViewRasterRequestManager zoomRasterRequestManager = null; |
111 | 102 |
private ViewMapRequestManager zoomMapRequestManager = null; |
112 |
|
|
113 |
//Herramientas de selecci?n |
|
114 |
private SelectPointTool viewRasterSelectPointTool = null; |
|
115 |
private SelectPointTool viewMapSelectPointTool = null; |
|
116 |
private SelectPointTool zoomRasterSelectPointTool = null; |
|
117 |
private SelectPointTool zoomMapSelectPointTool = null; |
|
118 | 103 |
|
119 | 104 |
private GeorefControlPanel georefControlPanel = null; |
120 | 105 |
|
121 |
private PagedTable table = null; |
|
122 |
private ApplicationControlsListener buttonsListener = null; |
|
106 |
private TableWrapper table = null; |
|
123 | 107 |
|
124 | 108 |
private MapControl mapCtrl = null; |
125 | 109 |
private GeoreferencingOptionsDataModel |
... | ... | |
128 | 112 |
private SynchronizedViews syncViews = null; |
129 | 113 |
private ViewDialogListener listener = null; |
130 | 114 |
private GeoreferencingProcessActions processActions = null; |
115 |
private ApplicationControlsListener appControlsListener = null; |
|
131 | 116 |
|
132 |
//private LayersPointManager layersPointManager = null; |
|
133 | 117 |
class GeoPointListImpl extends ArrayList<GeoPoint> implements GeoPointList { |
134 | 118 |
private static final long serialVersionUID = 1L; |
135 | 119 |
} |
... | ... | |
139 | 123 |
sManager = GeoreferencingSwingLocator.getSwingManager(); |
140 | 124 |
listener = new ViewDialogListener(this); |
141 | 125 |
processActions = new GeoreferencingProcessActions(); |
142 |
//getLayerPointManager(); |
|
143 |
//getViewsManager(); |
|
144 | 126 |
launcher(); |
145 | 127 |
} |
146 | 128 |
|
... | ... | |
165 | 147 |
fManager.showWindow(launcher.getComponent(), 400, 420, Messages.getText("georeferencing")); |
166 | 148 |
} |
167 | 149 |
|
168 |
/** |
|
169 |
* Obtiene el gestor para capas de puntos de la aplicaci?n, |
|
170 |
* @return LayersPointManager |
|
171 |
*/ |
|
172 |
/* if(layersPointManager == null) |
|
173 |
layersPointManager = new LayersPointManager(this); |
|
174 |
return layersPointManager; |
|
175 |
}*/ |
|
176 |
|
|
177 |
/** |
|
178 |
* Obtiene el gestor para las vistas de la aplicaci?n, |
|
179 |
* @return ViewsManager |
|
180 |
*/ |
|
181 |
/*public ViewsManager getViewsManager() { |
|
182 |
if(viewsManager == null) |
|
183 |
viewsManager = new ViewsManager(); |
|
184 |
return viewsManager; |
|
185 |
}*/ |
|
186 |
|
|
187 |
public void setSelectedView(String selectedView) { |
|
188 |
this.selectedView = selectedView; |
|
189 |
} |
|
190 |
|
|
191 |
/** |
|
192 |
* Obtiene la lista de capas de la vista de gvSIG |
|
193 |
* @return |
|
194 |
*/ |
|
195 |
/*public FLayers getLayers() { |
|
196 |
MapControl mapControl = null; |
|
197 |
IWindow[] windowList = PluginServices.getMDIManager().getAllWindows(); |
|
198 |
for (int i = 0; i < windowList.length; i++) { |
|
199 |
if(windowList[i] instanceof IView) |
|
200 |
mapControl = ((IView)windowList[i]).getMapControl(); |
|
201 |
} |
|
202 |
if(mapControl != null) |
|
203 |
return mapControl.getMapContext().getLayers(); |
|
204 |
return null; |
|
205 |
}*/ |
|
206 |
|
|
207 |
private MapControl getMapCtrl() { |
|
150 |
public MapControl getMapCtrl() { |
|
208 | 151 |
if(mapCtrl == null) { |
209 | 152 |
IWindow[] windowList = PluginServices.getMDIManager().getAllWindows(); |
210 | 153 |
for (int i = 0; i < windowList.length; i++) { |
... | ... | |
225 | 168 |
initWindowsWithMap(dataModel); |
226 | 169 |
if(dataModel.getType() == Georeferencing.WITHOUT_MAP) |
227 | 170 |
initWindowsWithoutMap(dataModel); |
171 |
createAppControlsListener(); |
|
228 | 172 |
} |
229 | 173 |
|
230 | 174 |
/** |
... | ... | |
234 | 178 |
private void initWindowsWithoutMap(GeoreferencingOptionsDataModel dataModel) { |
235 | 179 |
RasterDataStore store = dataModel.getDataStore(); |
236 | 180 |
|
237 |
getOptionsDataModel().setType(WITHOUT_MAP);
|
|
181 |
getDataModel().setType(WITHOUT_MAP); |
|
238 | 182 |
|
239 | 183 |
//Inicializaci?n de la ventana con la vista raster |
240 | 184 |
viewRaster = sManager.createView(true, false, true, listener); |
241 | 185 |
ViewRasterRequestManager viewRasterRequestManager = new ViewRasterRequestManager(viewRaster, store); |
186 |
viewRaster.setMinxMaxyUL(false); |
|
242 | 187 |
viewRaster.setViewListener(listener); |
243 | 188 |
viewRaster.setRequestListener(viewRasterRequestManager); |
244 | 189 |
viewRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener); |
... | ... | |
246 | 191 |
//Inicializaci?n de la ventana del zoom de la vista raster |
247 | 192 |
zoomRaster = sManager.createZoom(true, false); |
248 | 193 |
zoomRasterRequestManager = new ViewRasterRequestManager(zoomRaster, store); |
194 |
zoomRaster.setMinxMaxyUL(false); |
|
249 | 195 |
zoomRaster.setRequestListener(zoomRasterRequestManager); |
250 | 196 |
zoomRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener); |
251 | 197 |
|
252 |
PagedTable pt = getTable(); |
|
198 |
PagedTable pt = getTableWrapper().getTable();
|
|
253 | 199 |
|
254 | 200 |
//Creamos el layout |
255 | 201 |
|
... | ... | |
290 | 236 |
} |
291 | 237 |
} |
292 | 238 |
|
293 |
public PagedTable getTable() {
|
|
239 |
public TableWrapper getTableWrapper() {
|
|
294 | 240 |
if(table == null) { |
295 |
RasterSwingManager manager = RasterSwingLocator.getSwingManager(); |
|
296 |
String[] columnNames = { |
|
297 |
"-", |
|
298 |
Messages.getText("num"), |
|
299 |
Messages.getText("worldx"), |
|
300 |
Messages.getText("worldy"), |
|
301 |
Messages.getText("imagex"), |
|
302 |
Messages.getText("imagey"), |
|
303 |
"Error X", "Error Y", "RMS"}; |
|
304 |
int[] columnSizes = {40, 37, -1, -1, -1, -1, -1, -1, -1}; |
|
305 |
|
|
306 |
GCPModel model = new GCPModel(columnNames); |
|
307 |
ModelLoader loader = manager.createModelLoader(model); |
|
308 |
CheckBoxColumnRenderer render = new CheckBoxColumnRenderer(null); |
|
309 |
CheckBoxColumnEditor editor = new CheckBoxColumnEditor(); |
|
310 |
loader.setRenderForColumn(0, render); |
|
311 |
loader.setCellEditorForColumn(0, editor); |
|
312 |
loader.setColumnNames(columnNames); |
|
313 |
loader.setColumnWidths(columnSizes); |
|
314 |
|
|
315 |
table = manager.createPagedTable(loader); |
|
241 |
table = new TableWrapper(getGeoPointList(), getDataModel(), getGeorefControlPanel()); |
|
316 | 242 |
} |
317 | 243 |
return table; |
318 | 244 |
} |
319 | 245 |
|
246 |
public void createAppControlsListener() { |
|
247 |
if(appControlsListener == null) { |
|
248 |
appControlsListener = new ApplicationControlsListener(getTableWrapper(), this); |
|
249 |
((DefaultTableModel)getTableWrapper().getTable().getTableModel()).addTableModelListener(appControlsListener); |
|
250 |
getGeorefControlPanel().setListener(appControlsListener); |
|
251 |
} |
|
252 |
} |
|
253 |
|
|
320 | 254 |
/** |
321 | 255 |
* Colocaci?n inicial de las ventanas del espacio de trabajo. Carga la configuraci?n |
322 | 256 |
* de ventanas con cartograf?a de referencia. |
... | ... | |
324 | 258 |
private void initWindowsWithMap(GeoreferencingOptionsDataModel dataModel) { |
325 | 259 |
RasterDataStore store = dataModel.getDataStore(); |
326 | 260 |
|
327 |
getOptionsDataModel().setType(WITH_MAP);
|
|
261 |
getDataModel().setType(WITH_MAP); |
|
328 | 262 |
|
329 | 263 |
//Inicializaci?n de la ventana con la vista raster |
330 | 264 |
viewRaster = sManager.createView(true, false, true, listener); |
331 | 265 |
ViewRasterRequestManager viewRasterRequestManager = new ViewRasterRequestManager(viewRaster, store); |
266 |
viewRaster.setMinxMaxyUL(false); |
|
332 | 267 |
viewRaster.setViewListener(listener); |
333 | 268 |
viewRaster.setRequestListener(viewRasterRequestManager); |
334 | 269 |
viewRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener); |
335 | 270 |
|
336 | 271 |
//Inicializaci?n de la ventana del zoom de la vista raster |
337 | 272 |
zoomRaster = sManager.createZoom(true, false); |
273 |
zoomRaster.setMinxMaxyUL(false); |
|
338 | 274 |
zoomRasterRequestManager = new ViewRasterRequestManager(zoomRaster, store); |
339 | 275 |
zoomRaster.setRequestListener(zoomRasterRequestManager); |
340 | 276 |
zoomRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener); |
341 | 277 |
|
342 | 278 |
//Inicializaci?n de la ventana con la vista del terreno |
343 | 279 |
viewMap = sManager.createView(true, false, false, listener); |
280 |
viewMap.setMinxMaxyUL(true); |
|
344 | 281 |
ViewMapRequestManager viewMapRequestManager = new ViewMapRequestManager(viewMap, getMapCtrl()); |
345 | 282 |
viewMap.setViewListener(listener); |
346 | 283 |
viewMap.setRequestListener(viewMapRequestManager); |
... | ... | |
348 | 285 |
|
349 | 286 |
//Inicializaci?n de la ventana del zoom de la vista del terreno |
350 | 287 |
zoomMap = sManager.createZoom(true, false); |
288 |
zoomMap.setMinxMaxyUL(true); |
|
351 | 289 |
zoomMapRequestManager = new ViewMapRequestManager(zoomMap, getMapCtrl()); |
352 | 290 |
zoomMap.setRequestListener(zoomMapRequestManager); |
353 | 291 |
zoomMap.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener); |
354 | 292 |
|
355 |
PagedTable pt = getTable(); |
|
293 |
PagedTable pt = getTableWrapper().getTable();
|
|
356 | 294 |
|
357 | 295 |
//Creamos el layout |
358 | 296 |
LayoutEnvironment layoutEnv = fManager.createLayoutEnvironment(); |
... | ... | |
368 | 306 |
IViewRequestManager[] rm = new IViewRequestManager[]{viewMapRequestManager, viewRasterRequestManager, zoomMapRequestManager, zoomRasterRequestManager}; |
369 | 307 |
syncViews = sManager.createSyncViews(v, rm, getGeoPointList(), pt, listener); |
370 | 308 |
|
371 |
getOptionsDataModel().setType(WITH_MAP);
|
|
309 |
getDataModel().setType(WITH_MAP); |
|
372 | 310 |
// |
373 | 311 |
// viewsManager.setViews(viewRaster, viewMap, zoomRaster, zoomMap); |
374 | 312 |
// viewsManager.setRequestsManager(viewRasterRequestManager, viewMapRequestManager, zoomRasterRequestManager, zoomMapRequestManager); |
... | ... | |
412 | 350 |
fManager.closeAllWindows(); |
413 | 351 |
} |
414 | 352 |
} |
415 |
|
|
416 |
/** |
|
417 |
* A?ade una capa en la vista del mapa para previsualizar el resultado |
|
418 |
* @param lyr |
|
419 |
*/ |
|
420 |
/*public void addTestRasterLayer(FLyrRaster lyr) { |
|
421 |
viewsManager.addTestRasterLayer(lyr, |
|
422 |
getOptions().getAlgorithm(), |
|
423 |
getOptions().getInterpolationMethod(), |
|
424 |
getOptions().getDegree(), |
|
425 |
getOptions().getOutFile()); |
|
426 |
}*/ |
|
427 |
|
|
428 |
/** |
|
429 |
* Elimina la capa de test de la vista de mapa |
|
430 |
* @throws InvalidRequestException |
|
431 |
*/ |
|
432 |
/*public void removeTestRasterLayer() { |
|
433 |
viewsManager.removeTestRasterLayer(); |
|
434 |
}*/ |
|
435 |
|
|
436 |
/** |
|
437 |
* Obtiene la ?ltima capa procesada con los puntos de control |
|
438 |
* @return FLyrRaterSE |
|
439 |
*/ |
|
440 |
/*public FLyrRaster getLastTestLayer() { |
|
441 |
return viewsManager.getLastTestLayer(); |
|
442 |
}*/ |
|
443 |
|
|
444 |
/** |
|
445 |
* Gets the georeferencing options data model |
|
446 |
* @return |
|
447 |
*/ |
|
448 |
public GeoreferencingOptionsDataModel getOptionsDataModel() { |
|
449 |
GeoreferencingSwingManager manager = GeoreferencingSwingLocator.getSwingManager(); |
|
450 |
return manager.getDataModel(); |
|
451 |
//options = manager.createWindowOptions(Georeferencing.DEFAULT_DEGREE, this); |
|
452 |
} |
|
453 | 353 |
|
454 | 354 |
public GeoreferencingView getViewRaster() { |
455 | 355 |
return viewRaster; |
... | ... | |
499 | 399 |
public RasterDataStore getLayer() { |
500 | 400 |
return launcher.getDataModel().getDataStore(); |
501 | 401 |
} |
402 |
|
|
403 |
public GeoreferencingProcessActions getProcessActions() { |
|
404 |
return processActions; |
|
405 |
} |
|
406 |
|
|
407 |
public GeoreferencingOptionsDataModel getDataModel() { |
|
408 |
return launcher.getDataModel(); |
|
409 |
} |
|
502 | 410 |
|
503 | 411 |
} |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/src/main/java/org/gvsig/raster/georeferencing/app/georeferencingclient/GeoreferencingProcessActions.java | ||
---|---|---|
23 | 23 |
|
24 | 24 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
25 | 25 |
import org.gvsig.fmap.dal.coverage.datastruct.GeoPointList; |
26 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
|
26 | 27 |
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException; |
27 | 28 |
import org.gvsig.i18n.Messages; |
28 | 29 |
import org.gvsig.raster.fmap.layers.DefaultFLyrRaster; |
... | ... | |
50 | 51 |
|
51 | 52 |
//?ltima capa procesada con los puntos de control. Al cerrar la aplicaci?n |
52 | 53 |
//esta ser? la que se use como resultado |
53 |
private FLyrRaster lastTestLayer = null;
|
|
54 |
private FLyrRaster lastTestLyr = null;
|
|
54 | 55 |
|
55 | 56 |
public void setViewMapRequest(ViewMapRequestManager vMap) { |
56 | 57 |
viewMapRequestManager = vMap; |
... | ... | |
68 | 69 |
* A?ade una capa en la vista del mapa para previsualizar el resultado |
69 | 70 |
* @param lyr |
70 | 71 |
* @param algorithm Algoritmo con el que se realiza la transformaci?n |
72 |
* @throws LoadLayerException |
|
71 | 73 |
*/ |
72 |
public void addTestRasterLayer( FLyrRaster lyr,
|
|
74 |
public void addTestRasterLayer( RasterDataStore store,
|
|
73 | 75 |
int algorithm, |
74 | 76 |
int method, |
75 | 77 |
int order, |
76 | 78 |
String file, |
77 | 79 |
double cellsizeX, |
78 | 80 |
double cellsizeY, |
79 |
GeoTransformDataResult result) { |
|
81 |
GeoTransformDataResult result) throws LoadLayerException {
|
|
80 | 82 |
if(!testNumberOfPoints(order)) |
81 | 83 |
return; |
82 | 84 |
|
83 | 85 |
fileName = file; |
84 |
FLyrRaster lyrClon = null;
|
|
86 |
RasterDataStore storeClon = null;
|
|
85 | 87 |
try { |
86 |
lyrClon = (FLyrRaster)lyr.cloneLayer();
|
|
88 |
storeClon = store.cloneDataStore();
|
|
87 | 89 |
} catch (Exception e1) { |
88 | 90 |
RasterToolsUtil.messageBoxError("error_clone_layer", this, e1); |
89 | 91 |
return; |
... | ... | |
95 | 97 |
return; |
96 | 98 |
} |
97 | 99 |
|
98 |
AffineTransform at = new AffineTransform( result.getPixelToMapCoefX()[1], |
|
100 |
AffineTransform at = new AffineTransform( |
|
101 |
result.getPixelToMapCoefX()[1], |
|
99 | 102 |
result.getPixelToMapCoefY()[1], |
100 | 103 |
result.getPixelToMapCoefX()[2], |
101 | 104 |
result.getPixelToMapCoefY()[2], |
102 | 105 |
result.getPixelToMapCoefX()[0], |
103 | 106 |
result.getPixelToMapCoefY()[0]); |
104 |
lyrClon.setAffineTransform(at);
|
|
105 |
lastTestLayer = lyrClon; |
|
107 |
storeClon.setAffineTransform(at);
|
|
108 |
|
|
106 | 109 |
} |
107 |
|
|
110 |
|
|
111 |
DefaultFLyrRaster lyr = new DefaultFLyrRaster(); |
|
112 |
lyr.setDataStore(storeClon); |
|
113 |
lastTestLyr = lyr; |
|
114 |
|
|
108 | 115 |
if(algorithm == Georeferencing.POLYNOMIAL) { |
109 | 116 |
RasterProcess process; |
110 | 117 |
try { |
... | ... | |
127 | 134 |
if(viewMapRequestManager != null) { |
128 | 135 |
if(algorithm == Georeferencing.AFFINE) { |
129 | 136 |
try { |
130 |
viewMapRequestManager.addTestRasterLayer(lyrClon);
|
|
137 |
viewMapRequestManager.addTestRasterLayer(lyr); |
|
131 | 138 |
} catch (InvalidRequestException e) { |
132 | 139 |
GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e); |
133 | 140 |
} |
... | ... | |
143 | 150 |
private boolean testNumberOfPoints(int order) { |
144 | 151 |
if (gpList != null) { |
145 | 152 |
if(gpList.size() <= 0) { |
146 |
GeoreferencingSwingImplLibrary.messageBoxError("no_selected_point", null); |
|
153 |
GeoreferencingSwingImplLibrary.messageBoxError("no_selected_points", null);
|
|
147 | 154 |
return false; |
148 | 155 |
} |
149 | 156 |
|
... | ... | |
186 | 193 |
String f = RasterLocator.getManager().getFileUtils().getLastPart(fileName, File.separator); |
187 | 194 |
FLyrRaster lyr = DefaultFLyrRaster.createLayer(fileName, new File(f)); |
188 | 195 |
viewMapRequestManager.addTestRasterLayer(lyr); |
189 |
lastTestLayer = lyr;
|
|
196 |
lastTestLyr = lyr;
|
|
190 | 197 |
} catch (InvalidRequestException e) { |
191 | 198 |
GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e); |
192 | 199 |
} catch (LoadLayerException e) { |
... | ... | |
203 | 210 |
* @return FLyrRaterSE |
204 | 211 |
*/ |
205 | 212 |
public FLyrRaster getLastTestLayer() { |
206 |
return lastTestLayer;
|
|
213 |
return lastTestLyr;
|
|
207 | 214 |
} |
208 | 215 |
|
209 | 216 |
} |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/src/main/java/org/gvsig/raster/georeferencing/app/georeferencingclient/gui/ColorColumnRenderer.java | ||
---|---|---|
1 |
package org.gvsig.raster.georeferencing.app.georeferencingclient.gui; |
|
2 |
|
|
3 |
import java.awt.Color; |
|
4 |
import java.awt.Component; |
|
5 |
import java.util.ArrayList; |
|
6 |
|
|
7 |
import javax.swing.JTable; |
|
8 |
import javax.swing.table.DefaultTableCellRenderer; |
|
9 |
|
|
10 |
/** |
|
11 |
* Renderer para cambiar el color a la columna de la tabla |
|
12 |
* 06/02/2008 |
|
13 |
* @author Nacho Brodin nachobrodin@gmail.com |
|
14 |
*/ |
|
15 |
public class ColorColumnRenderer extends DefaultTableCellRenderer { |
|
16 |
private static final long serialVersionUID = 1L; |
|
17 |
private Color back = Color.red; |
|
18 |
private Color fore = Color.white; |
|
19 |
private Color back2 = Color.white; |
|
20 |
private Color fore2 = Color.black; |
|
21 |
private ArrayList<Integer> color1 = null; |
|
22 |
private ArrayList<Integer> color2 = null; |
|
23 |
|
|
24 |
public ColorColumnRenderer() { |
|
25 |
super(); |
|
26 |
color1 = new ArrayList<Integer>(); |
|
27 |
color2 = new ArrayList<Integer>(); |
|
28 |
} |
|
29 |
|
|
30 |
/** |
|
31 |
* A?ade una fila al tipo de color 1 |
|
32 |
* @param row |
|
33 |
*/ |
|
34 |
public void addRowToColor1(int row) { |
|
35 |
color1.add(new Integer(row)); |
|
36 |
} |
|
37 |
|
|
38 |
/** |
|
39 |
* A?ade una fila al tipo de color 2 |
|
40 |
* @param row |
|
41 |
*/ |
|
42 |
public void addRowToColor2(int row) { |
|
43 |
color2.add(new Integer(row)); |
|
44 |
} |
|
45 |
|
|
46 |
public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected, |
|
47 |
boolean hasFocus, int row, int column) { |
|
48 |
Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); |
|
49 |
for (int i = 0; i < color1.size(); i++) { |
|
50 |
if(((Integer)color1.get(i)).intValue() == row) { |
|
51 |
cell.setBackground(back); |
|
52 |
cell.setForeground(fore); |
|
53 |
} |
|
54 |
} |
|
55 |
for (int i = 0; i < color2.size(); i++) { |
|
56 |
if(((Integer)color2.get(i)).intValue() == row) { |
|
57 |
cell.setBackground(back2); |
|
58 |
cell.setForeground(fore2); |
|
59 |
} |
|
60 |
} |
|
61 |
return cell; |
|
62 |
} |
|
63 |
} |
|
0 | 64 |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/src/main/java/org/gvsig/raster/georeferencing/app/georeferencingclient/listener/ViewMapRequestManager.java | ||
---|---|---|
39 | 39 |
import org.gvsig.raster.fmap.layers.FLyrRaster; |
40 | 40 |
import org.gvsig.raster.georeferencing.swing.exception.InvalidRequestException; |
41 | 41 |
import org.gvsig.raster.georeferencing.swing.view.GeoreferencingView; |
42 |
import org.gvsig.raster.georeferencing.swing.view.IGraphicLayer; |
|
42 | 43 |
import org.gvsig.raster.georeferencing.swing.view.IViewRequestManager; |
43 |
import org.gvsig.raster.georeferencing.swing.view.IGraphicLayer; |
|
44 | 44 |
import org.gvsig.tools.task.Cancellable; |
45 | 45 |
|
46 | 46 |
/** |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/src/main/java/org/gvsig/raster/georeferencing/app/georeferencingclient/listener/ApplicationControlsListener.java | ||
---|---|---|
23 | 23 |
|
24 | 24 |
import java.awt.event.ActionEvent; |
25 | 25 |
import java.awt.geom.Point2D; |
26 |
import java.io.IOException; |
|
27 | 26 |
|
28 | 27 |
import javax.swing.event.TableModelEvent; |
29 | 28 |
|
30 | 29 |
import org.gvsig.andami.PluginServices; |
31 |
import org.gvsig.andami.ui.mdiManager.IWindow; |
|
32 | 30 |
import org.gvsig.fmap.dal.coverage.datastruct.GeoPoint; |
33 | 31 |
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException; |
32 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
|
33 |
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException; |
|
34 | 34 |
import org.gvsig.fmap.mapcontext.layers.FLayers; |
35 |
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel; |
|
35 | 36 |
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent; |
36 | 37 |
import org.gvsig.i18n.Messages; |
37 | 38 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.Georeferencing; |
39 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.TableWrapper; |
|
38 | 40 |
import org.gvsig.raster.georeferencing.framework.GeoreferencingFrameworkLocator; |
39 | 41 |
import org.gvsig.raster.georeferencing.framework.GeoreferencingFrameworkManager; |
42 |
import org.gvsig.raster.georeferencing.swing.GeoreferencingOptionsDataModel; |
|
43 |
import org.gvsig.raster.georeferencing.swing.GeoreferencingSwingLibrary; |
|
40 | 44 |
import org.gvsig.raster.georeferencing.swing.control.GeorefControlPanel; |
41 | 45 |
import org.gvsig.raster.georeferencing.swing.control.GeorefControlPanelListener; |
42 | 46 |
import org.gvsig.raster.georeferencing.swing.impl.option.GeorefOptionsDialog; |
43 |
import org.gvsig.raster.swing.impl.pagedtable.NotInitializeException; |
|
44 |
import org.gvsig.raster.swing.pagedtable.PagedTable; |
|
47 |
import org.gvsig.raster.georeferencing.swing.view.SynchronizedViews; |
|
45 | 48 |
import org.gvsig.raster.tools.app.basic.RasterToolsUtil; |
46 |
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel; |
|
47 | 49 |
|
48 | 50 |
/** |
49 | 51 |
* Listener para los botones de control de la aplicaci?n de georreferenciaci?n. |
... | ... | |
54 | 56 |
*/ |
55 | 57 |
public class ApplicationControlsListener implements GeorefControlPanelListener { |
56 | 58 |
|
57 |
private PagedTable tablePanel = null;
|
|
59 |
private TableWrapper tableWrapper = null;
|
|
58 | 60 |
private Georeferencing appMain = null; |
59 | 61 |
private boolean enableTableEvent = true; |
60 | 62 |
private GeorefControlPanel controlPanel = null; |
... | ... | |
74 | 76 |
* Constructor. Asigna el panel con los controles |
75 | 77 |
* @param tablePanel |
76 | 78 |
*/ |
77 |
public ApplicationControlsListener(PagedTable tablePanel, Georeferencing appMain) {
|
|
78 |
this.tablePanel = tablePanel;
|
|
79 |
public ApplicationControlsListener(TableWrapper tableWrapper, Georeferencing appMain) {
|
|
80 |
this.tableWrapper = tableWrapper;
|
|
79 | 81 |
this.appMain = appMain; |
80 | 82 |
this.controlPanel = appMain.getGeorefControlPanel(); |
81 | 83 |
this.controlPanel.setListener(this); |
82 | 84 |
this.fManager = GeoreferencingFrameworkLocator.getManager(); |
83 | 85 |
} |
86 |
|
|
87 |
private SynchronizedViews getSyncViews() { |
|
88 |
return appMain.getSyncViews(); |
|
89 |
} |
|
90 |
|
|
91 |
private GeoreferencingOptionsDataModel getDataModel() { |
|
92 |
return appMain.getDataModel(); |
|
93 |
} |
|
84 | 94 |
|
85 | 95 |
/** |
86 | 96 |
* Eventos de los botones del cuadro de tabla y selecci?n de fila de tabla |
... | ... | |
94 | 104 |
//----------------------------------------- |
95 | 105 |
//Centrar la vista en el punto seleccionado |
96 | 106 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bCenterView) { |
97 |
try { |
|
98 |
appMain.getSyncViews().centerToPoint(tablePanel.getSelectedRows()[0]); |
|
99 |
} catch (NotInitializeException e1) { |
|
100 |
RasterToolsUtil.messageBoxYesOrNot("table_not_initialize", tablePanel, e1); |
|
101 |
} |
|
107 |
getSyncViews().centerToPoint(tableWrapper.getTable().getSelectedRows()[0]); |
|
102 | 108 |
} |
103 | 109 |
|
104 | 110 |
//--------------------------------- |
105 | 111 |
//Selecci?n de una fila de la tabla |
106 | 112 |
if(e.getActionCommand().equals("SELECT_ROW")) { |
107 |
if(appMain.getOptionsDataModel().isCenterView() && !newPointCreated)
|
|
108 |
appMain.getSyncViews().centerToPoint(e.getID());
|
|
113 |
if(getDataModel().isCenterView() && !newPointCreated)
|
|
114 |
getSyncViews().centerToPoint(e.getID()); |
|
109 | 115 |
newPointCreated = false; |
110 | 116 |
} |
111 | 117 |
|
... | ... | |
114 | 120 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bOptions) { |
115 | 121 |
if(optionsDialog == null) |
116 | 122 |
optionsDialog = new GeorefOptionsDialog(Georeferencing.DEFAULT_DEGREE, this); |
117 |
optionsDialog.setDegree(appMain.getOptionsDataModel().getDegree());
|
|
118 |
optionsDialog.setAlgorithm(appMain.getOptionsDataModel().getAlgorithm());
|
|
119 |
optionsDialog.setBackGroundColor(appMain.getOptionsDataModel().getBackgroundColor());
|
|
120 |
optionsDialog.setTextColor(appMain.getOptionsDataModel().getTextColor());
|
|
121 |
optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getAddErrorsCSVCheck().setSelected(getOptions().isAddErrorsCSV());
|
|
122 |
optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getCenterViewCheck().setSelected(getOptions().isCenterView());
|
|
123 |
optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getShowNumberCheck().setSelected(getOptions().isShowNumber());
|
|
124 |
optionsDialog.setThresholdError(appMain.getOptionsDataModel().getThreshold());
|
|
125 |
optionsDialog.setInterpolationMethod(appMain.getOptionsDataModel().getInterpolationMethod());
|
|
126 |
optionsDialog.setOutFile(appMain.getOptionsDataModel().getOutFile());
|
|
127 |
optionsDialog.setXCellSize(appMain.getOptionsDataModel().getXCellSize());
|
|
128 |
optionsDialog.setYCellSize(appMain.getOptionsDataModel().getYCellSize());
|
|
123 |
optionsDialog.setDegree(getDataModel().getDegree());
|
|
124 |
optionsDialog.setAlgorithm(getDataModel().getAlgorithm());
|
|
125 |
optionsDialog.setBackGroundColor(getDataModel().getBackgroundColor());
|
|
126 |
optionsDialog.setTextColor(getDataModel().getTextColor());
|
|
127 |
optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getAddErrorsCSVCheck().setSelected(getDataModel().isAddErrorsCSV());
|
|
128 |
optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getCenterViewCheck().setSelected(getDataModel().isCenterView());
|
|
129 |
optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getShowNumberCheck().setSelected(getDataModel().isShowNumber());
|
|
130 |
optionsDialog.setThresholdError(getDataModel().getThreshold());
|
|
131 |
optionsDialog.setInterpolationMethod(getDataModel().getInterpolationMethod());
|
|
132 |
optionsDialog.setOutFile(getDataModel().getOutFile());
|
|
133 |
optionsDialog.setXCellSize(getDataModel().getXCellSize());
|
|
134 |
optionsDialog.setYCellSize(getDataModel().getYCellSize());
|
|
129 | 135 |
fManager.showWindow(optionsDialog, 400, 420, Messages.getText("georeferencing")); |
130 | 136 |
} |
131 | 137 |
|
132 | 138 |
//------------------------------ |
133 | 139 |
//Selecci?n de puntos de control |
134 |
if(controlPanel.getButtonIDPressed(e.getSource()) == tablePanel.getToolSelectPointButton()) { |
|
135 |
if( tablePanel.getToolSelectPointButton().isSelected()) { |
|
136 |
try { |
|
137 |
if(!getPointManager().isSelectPointToolSelected()) { |
|
138 |
//No hay filas en la tabla |
|
139 |
if(tablePanel.getTable().getRowCount() == 0) { |
|
140 |
RasterToolsUtil.messageBoxError("no_rows", tablePanel); |
|
141 |
tablePanel.getToolSelectPointButton().setSelected(false); |
|
142 |
return; |
|
143 |
} |
|
140 |
if(e.getSource() == appMain.getGeorefControlPanel().getToolSelectPointButton()) { |
|
141 |
if(appMain.getGeorefControlPanel().getToolSelectPointButton().isSelected()) { |
|
142 |
if(appMain.getViewRaster().getToolSelected() != GeoreferencingSwingLibrary.SELECT_POINT_TOOL) { |
|
143 |
//No hay filas en la tabla |
|
144 |
if(tableWrapper.getTable().getRowCount() == 0) { |
|
145 |
RasterToolsUtil.messageBoxError("no_rows", tableWrapper.getTable()); |
|
146 |
appMain.getGeorefControlPanel().getToolSelectPointButton().setSelected(false); |
|
147 |
return; |
|
148 |
} |
|
144 | 149 |
|
145 |
//No hay filas seleccionadas en la tabla |
|
146 |
if(tablePanel.getTable().getSelectedRow() == -1) { |
|
147 |
RasterToolsUtil.messageBoxError("no_rows_selected", tablePanel); |
|
148 |
tablePanel.getToolSelectPointButton().setSelected(false); |
|
149 |
return; |
|
150 |
} |
|
151 |
getViewsManager().selectPointTool(true); |
|
150 |
//No hay filas seleccionadas en la tabla |
|
151 |
if(tableWrapper.getTable().getSelectedRows() == null) { |
|
152 |
RasterToolsUtil.messageBoxError("no_rows_selected", tableWrapper.getTable()); |
|
153 |
appMain.getGeorefControlPanel().getToolSelectPointButton().setSelected(false); |
|
154 |
return; |
|
152 | 155 |
} |
153 |
} catch (NotInitializeException e1) { |
|
154 |
RasterToolsUtil.messageBoxYesOrNot("table_not_initialize", tablePanel, e1); |
|
156 |
getSyncViews().selectPointTool(true); |
|
155 | 157 |
} |
156 | 158 |
} else { |
157 |
getViewsManager().selectPointTool(false);
|
|
159 |
getSyncViews().selectPointTool(false);
|
|
158 | 160 |
} |
159 | 161 |
} |
160 | 162 |
|
161 | 163 |
//------- |
162 | 164 |
//Testear |
163 | 165 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bTest) { |
164 |
appMain.addTestRasterLayer(appMain.getLayer()); |
|
166 |
try { |
|
167 |
appMain.getProcessActions().addTestRasterLayer( |
|
168 |
appMain.getLayer(), |
|
169 |
getDataModel().getAlgorithm(), |
|
170 |
getDataModel().getInterpolationMethod(), |
|
171 |
getDataModel().getDegree(), |
|
172 |
getDataModel().getOutFile(), |
|
173 |
getDataModel().getXCellSize(), |
|
174 |
getDataModel().getYCellSize(), |
|
175 |
tableWrapper.getGeoTransformDataResult()); |
|
176 |
} catch (LoadLayerException e1) { |
|
177 |
RasterToolsUtil.messageBoxError("error_loading_layer", tableWrapper.getTable(), e1); |
|
178 |
} |
|
165 | 179 |
} |
166 | 180 |
|
167 | 181 |
//------------ |
168 | 182 |
//Fin del Test |
169 | 183 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bEndTest) { |
170 |
if(appMain != null && appMain.getLastTestLayer() != null) { |
|
171 |
appMain.getLastTestLayer().setRemoveRasterFlag(false); |
|
172 |
appMain.removeTestRasterLayer(); |
|
184 |
if(appMain != null && appMain.getProcessActions().getLastTestLayer() != null) {
|
|
185 |
appMain.getProcessActions().getLastTestLayer().setRemoveRasterFlag(false);
|
|
186 |
appMain.getProcessActions().removeTestRasterLayer();
|
|
173 | 187 |
} |
174 | 188 |
} |
175 | 189 |
|
... | ... | |
213 | 227 |
private void endGeoref() { |
214 | 228 |
if(RasterToolsUtil.messageBoxYesOrNot("ask_end_georef", null)) { |
215 | 229 |
boolean saveTransform = false; |
216 |
if(appMain.getOptionsDataModel().getAlgorithm() == Georeferencing.AFFINE) {
|
|
230 |
if(getDataModel().getAlgorithm() == Georeferencing.AFFINE) {
|
|
217 | 231 |
if(RasterToolsUtil.messageBoxYesOrNot("ask_save_transformation", null)) |
218 | 232 |
saveTransform = true; |
219 | 233 |
else { |
220 |
appMain.removeTestRasterLayer(); |
|
221 |
appMain.closeAllWindows();
|
|
234 |
appMain.getProcessActions().removeTestRasterLayer();
|
|
235 |
fManager.closeAllWindows();
|
|
222 | 236 |
return; |
223 | 237 |
} |
224 | 238 |
} |
225 | 239 |
|
226 |
if(appMain.getOptionsDataModel().getType() == Georeferencing.WITH_MAP) {
|
|
227 |
if(appMain.getLastTestLayer() != null) |
|
228 |
appMain.getLastTestLayer().setRemoveRasterFlag(false); |
|
240 |
if(getDataModel().getType() == Georeferencing.WITH_MAP) {
|
|
241 |
if(appMain.getProcessActions().getLastTestLayer() != null)
|
|
242 |
appMain.getProcessActions().getLastTestLayer().setRemoveRasterFlag(false);
|
|
229 | 243 |
|
230 | 244 |
if(RasterToolsUtil.messageBoxYesOrNot("ask_load_view", null)) { |
231 |
FLayers lyrs = appMain.getLayers(); |
|
245 |
FLayers lyrs = appMain.getMapCtrl().getMapContext().getLayers();
|
|
232 | 246 |
if(lyrs != null) { |
233 | 247 |
try { |
234 |
if(appMain.getLastTestLayer() != null){ |
|
235 |
lyrs.removeLayer(appMain.getLastTestLayer()); |
|
248 |
if(appMain.getProcessActions().getLastTestLayer() != null){
|
|
249 |
lyrs.removeLayer(appMain.getProcessActions().getLastTestLayer());
|
|
236 | 250 |
PluginServices.getMainFrame().enableControls(); |
237 | 251 |
} |
238 | 252 |
} catch(NullPointerException ex){ |
... | ... | |
241 | 255 |
} |
242 | 256 |
|
243 | 257 |
//Cargar en la vista |
244 |
if(appMain.getOptionsDataModel().getAlgorithm() == Georeferencing.AFFINE) { |
|
245 |
appMain.addTestRasterLayer(appMain.getLayer()); |
|
258 |
if(getDataModel().getAlgorithm() == Georeferencing.AFFINE) { |
|
259 |
try { |
|
260 |
appMain.getProcessActions().addTestRasterLayer( |
|
261 |
appMain.getLayer(), |
|
262 |
getDataModel().getAlgorithm(), |
|
263 |
getDataModel().getInterpolationMethod(), |
|
264 |
getDataModel().getDegree(), |
|
265 |
getDataModel().getOutFile(), |
|
266 |
getDataModel().getXCellSize(), |
|
267 |
getDataModel().getYCellSize(), |
|
268 |
tableWrapper.getGeoTransformDataResult()); |
|
269 |
} catch (LoadLayerException e) { |
|
270 |
RasterToolsUtil.messageBoxError("error_loading_layer", null, e); |
|
271 |
} |
|
246 | 272 |
} |
247 |
if(appMain.getOptionsDataModel().getAlgorithm() == Georeferencing.POLYNOMIAL) {
|
|
248 |
if(appMain.getLastTestLayer() != null && lyrs != null) { |
|
249 |
appMain.getLayers().addLayer(appMain.getLastTestLayer());
|
|
273 |
if(getDataModel().getAlgorithm() == Georeferencing.POLYNOMIAL) {
|
|
274 |
if(appMain.getProcessActions().getLastTestLayer() != null && lyrs != null) {
|
|
275 |
appMain.getMapCtrl().getMapContext().getLayers().addLayer(appMain.getProcessActions().getLastTestLayer());
|
|
250 | 276 |
} else { |
251 | 277 |
RasterToolsUtil.messageBoxInfo("raster_not_created", null); |
252 | 278 |
return; |
253 | 279 |
} |
254 | 280 |
} |
255 | 281 |
} else { |
256 |
appMain.removeTestRasterLayer(); |
|
282 |
appMain.getProcessActions().removeTestRasterLayer();
|
|
257 | 283 |
} |
258 | 284 |
} |
259 | 285 |
|
260 | 286 |
if (saveTransform) { |
261 | 287 |
// Salvar transformaci?n |
262 |
if (appMain.getLastTestLayer() == null) { |
|
288 |
if (appMain.getProcessActions().getLastTestLayer() == null) {
|
|
263 | 289 |
RasterToolsUtil.messageBoxInfo("raster_not_created", null); |
264 | 290 |
return; |
265 | 291 |
} |
266 | 292 |
|
267 |
// Guardamos la GeoReferenciacion de cada dataset |
|
268 |
IRasterDataSource dataSource = appMain.getLastTestLayer().getDataSource(); |
|
293 |
RasterDataStore store = appMain.getProcessActions().getLastTestLayer().getDataStore(); |
|
269 | 294 |
try { |
270 |
for (int i = 0; i < dataSource.getDatasetCount(); i++) { |
|
271 |
dataSource.saveObjectToRmf(i, RasterDataset.class, dataSource.getDataset(i)[0]); |
|
272 |
RasterUtilities.createWorldFile(dataSource.getNameDatasetStringList(0, 0)[i], dataSource.getAffineTransform(0), (int)dataSource.getWidth(), (int)dataSource.getHeight()); |
|
273 |
} |
|
295 |
store.saveGeoreferencingToRmf(); |
|
274 | 296 |
} catch (RmfSerializerException e) { |
275 | 297 |
RasterToolsUtil.messageBoxError("error_salvando_rmf", null, e); |
276 |
} catch (IOException e) { |
|
277 |
RasterToolsUtil.messageBoxError("error_salvando_rmf", null, e); |
|
278 |
} |
|
298 |
} |
|
279 | 299 |
} |
280 | 300 |
|
281 |
appMain.closeAllWindows();
|
|
301 |
fManager.closeAllWindows();
|
|
282 | 302 |
} |
283 | 303 |
} |
284 | 304 |
|
... | ... | |
291 | 311 |
if(!enableTableEvent) |
292 | 312 |
return; |
293 | 313 |
setEnableTableEvent(false); |
294 |
try{ |
|
314 |
//----------------------------------- |
|
315 |
//Inserci?n de nueva fila en la tabla |
|
316 |
if(e.getType() == TableModelEvent.INSERT) { |
|
317 |
long id = getSyncViews().addPoint(new Point2D.Double(0, 0), new Point2D.Double(0, 0)); |
|
318 |
tableWrapper.initializeRow(e.getFirstRow(), id); |
|
319 |
getSyncViews().calcPointsNumeration(); |
|
295 | 320 |
|
296 |
//----------------------------------- |
|
297 |
//Inserci?n de nuevo fila en la tabla |
|
298 |
if(e.getType() == TableModelEvent.INSERT) { |
|
299 |
long id = appMain.getSyncViews().addPoint(new Point2D.Double(0, 0), new Point2D.Double(0, 0)); |
|
300 |
tablePanel.initializeRow(e.getFirstRow(), id); |
|
301 |
appMain.getSyncViews().calcPointsNumeration(); |
|
321 |
//Activamos la herramienta de pinchar punto en la vista al a?adir punto |
|
322 |
appMain.getGeorefControlPanel().getToolSelectPointButton().setSelected(true); |
|
323 |
getSyncViews().selectPointTool(true); |
|
302 | 324 |
|
303 |
//Activamos la herramienta de pinchar punto en la vista al a?adir punto |
|
304 |
tablePanel.getToolSelectPointButton().setSelected(true); |
|
305 |
appMain.getSyncViews().selectPointTool(true); |
|
325 |
newPointCreated = true; |
|
326 |
} |
|
306 | 327 |
|
307 |
newPointCreated = true; |
|
308 |
} |
|
328 |
//----------------------------- |
|
329 |
//Eliminado de fila de la tabla |
|
330 |
if(e.getType() == TableModelEvent.DELETE) { |
|
331 |
for (int i = e.getLastRow(); i >= e.getFirstRow(); i--) |
|
332 |
appMain.getSyncViews().removePoint(i); |
|
333 |
getSyncViews().calcPointsNumeration(); |
|
334 |
tableWrapper.updateErrors(); |
|
335 |
} |
|
309 | 336 |
|
310 |
//----------------------------- |
|
311 |
//Eliminado de fila de la tabla |
|
312 |
if(e.getType() == TableModelEvent.DELETE) { |
|
313 |
for (int i = e.getLastRow(); i >= e.getFirstRow(); i--) |
|
314 |
appMain.getSyncViews().removePoint(i); |
|
315 |
appMain.getSyncViews().calcPointsNumeration(); |
|
316 |
tablePanel.updateErrors(); |
|
317 |
} |
|
337 |
//------------------------------------- |
|
338 |
//Actualizaci?n de una fila de la tabla |
|
339 |
if(e.getType() == TableModelEvent.UPDATE) { |
|
340 |
getSyncViews().calcPointsNumeration(); |
|
341 |
//Revisamos el flag de activo de cada punto poniendo el valor que pone en la entrada de la tabla |
|
342 |
for (int i = 0; i < tableWrapper.getTable().getRowCount(); i++) { |
|
343 |
boolean active = ((Boolean) tableWrapper.getTable().getValueAt(i, 0)).booleanValue(); |
|
344 |
int position = appMain.getSyncViews().getPointPositionByNumber(i); |
|
345 |
if (position < 0) |
|
346 |
return; |
|
347 |
GeoPoint pt = appMain.getGeoPointList().get(position); |
|
348 |
pt.setActive(active); |
|
349 |
getSyncViews().setVisiblePoint(active, position); |
|
318 | 350 |
|
319 |
//------------------------------------- |
|
320 |
//Actualizaci?n de una fila de la tabla |
|
321 |
if(e.getType() == TableModelEvent.UPDATE) { |
|
322 |
appMain.getSyncViews().calcPointsNumeration(); |
|
323 |
//Revisamos el flag de activo de cada punto poniendo el valor que pone en la entrada de la tabla |
|
324 |
for (int i = 0; i < tablePanel.getRowCount(); i++) { |
|
325 |
boolean active = ((Boolean) tablePanel.getValueAt(i, 0)).booleanValue(); |
|
326 |
int position = appMain.getSyncViews().getPointPositionByNumber(i); |
|
327 |
if (position < 0) |
|
328 |
return; |
|
329 |
GeoPoint pt = appMain.getGeoPointList().get(position); |
|
330 |
pt.setActive(active); |
|
331 |
appMain.getSyncViews().setVisiblePoint(active, position); |
|
351 |
//Para la funcionalidad de cambio de coordenadas desde la tabla: reasignamos el valor |
|
352 |
//de las coordenadas por si han cambiado estas |
|
353 |
double[] values = tableWrapper.getCoordinates(i); |
|
332 | 354 |
|
333 |
//Para la funcionalidad de cambio de coordenadas desde la tabla: reasignamos el valor |
|
334 |
//de las coordenadas por si han cambiado estas |
|
335 |
double[] values = tablePanel.getCoordinates(i); |
|
336 |
|
|
337 |
appMain.getSyncViews().setCoordinates(position, values[0], values[1], values[2], values[3]); |
|
338 |
} |
|
339 |
tablePanel.updateErrors(); |
|
355 |
getSyncViews().setCoordinates(position, values[0], values[1], values[2], values[3]); |
|
340 | 356 |
} |
357 |
tableWrapper.updateErrors(); |
|
358 |
} |
|
341 | 359 |
|
342 |
}catch (NotInitializeException ex) { |
|
343 |
RasterToolsUtil.messageBoxError("table_not_initialize", tablePanel, ex); |
|
344 |
} |
|
345 | 360 |
setEnableTableEvent(true); |
346 | 361 |
} |
347 | 362 |
|
... | ... | |
356 | 371 |
if(optionsDialog != null) { |
357 | 372 |
|
358 | 373 |
//Asignamos las propiedades seleccionadas |
359 |
appMain.getOptionsDataModel().setAlgorithm(optionsDialog.getAlgorithm());
|
|
360 |
appMain.getOptionsDataModel().setBackGroundColor(optionsDialog.getBackGroundColor());
|
|
361 |
appMain.getOptionsDataModel().setTextColor(optionsDialog.getTextColor());
|
|
362 |
appMain.getOptionsDataModel().setAddErrorsCSV(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getAddErrorsCSVCheck().isSelected());
|
|
363 |
appMain.getOptionsDataModel().setCenterView(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getCenterViewCheck().isSelected());
|
|
364 |
appMain.getOptionsDataModel().setShowNumber(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getShowNumberCheck().isSelected());
|
|
365 |
appMain.getOptionsDataModel().setInterpolationMethod(optionsDialog.getInterpolationMethod());
|
|
366 |
appMain.getOptionsDataModel().setOutFile(optionsDialog.getOptionsPanel(this).getOutFileSelectionPanel().getOutFile());
|
|
374 |
getDataModel().setAlgorithm(optionsDialog.getAlgorithm());
|
|
375 |
getDataModel().setBackGroundColor(optionsDialog.getBackGroundColor());
|
|
376 |
getDataModel().setTextColor(optionsDialog.getTextColor());
|
|
377 |
getDataModel().setAddErrorsCSV(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getAddErrorsCSVCheck().isSelected());
|
|
378 |
getDataModel().setCenterView(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getCenterViewCheck().isSelected());
|
|
379 |
getDataModel().setShowNumber(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getShowNumberCheck().isSelected());
|
|
380 |
getDataModel().setInterpolationMethod(optionsDialog.getInterpolationMethod());
|
|
381 |
getDataModel().setOutFile(optionsDialog.getOptionsPanel(this).getOutFileSelectionPanel().getOutFile());
|
|
367 | 382 |
|
368 | 383 |
//Recalculamos los errores si ha cambiado el grado |
369 |
if(optionsDialog.getDegree() != appMain.getOptionsDataModel().getDegree()) {
|
|
370 |
appMain.getOptionsDataModel().setDegree(optionsDialog.getDegree());
|
|
371 |
tablePanel.updateErrors();
|
|
384 |
if(optionsDialog.getDegree() != getDataModel().getDegree()) {
|
|
385 |
getDataModel().setDegree(optionsDialog.getDegree());
|
|
386 |
tableWrapper.updateErrors();
|
|
372 | 387 |
} |
373 | 388 |
|
374 | 389 |
try { |
375 |
appMain.getOptionsDataModel().setThreshold(Double.valueOf(optionsDialog.getThresholdError().getValue()).doubleValue());
|
|
376 |
appMain.getOptionsDataModel().setXCellSize(optionsDialog.getOptionsPanel(this).getCellSizePanel().getXCellSizeValue());
|
|
377 |
appMain.getOptionsDataModel().setYCellSize(optionsDialog.getOptionsPanel(this).getCellSizePanel().getYCellSizeValue());
|
|
390 |
getDataModel().setThreshold(optionsDialog.getThresholdError());
|
|
391 |
getDataModel().setXCellSize(optionsDialog.getOptionsPanel(this).getCellSizePanel().getXCellSizeValue());
|
|
392 |
getDataModel().setYCellSize(optionsDialog.getOptionsPanel(this).getCellSizePanel().getYCellSizeValue());
|
|
378 | 393 |
} catch(NumberFormatException exc) { |
379 | 394 |
RasterToolsUtil.messageBoxError("error_numeric_format", null, exc); |
380 | 395 |
} |
381 | 396 |
|
382 |
appMain.getSyncViews().setGraphicsColor(appMain.getOptionsDataModel().getTextColor());
|
|
383 |
appMain.getSyncViews().setBackgroundColor(appMain.getOptionsDataModel().getBackGroundColor());
|
|
384 |
appMain.getSyncViews().setActiveNumberPoint(appMain.getOptionsDataModel().isShowNumber());
|
|
397 |
getSyncViews().setGraphicsColor(getDataModel().getTextColor());
|
|
398 |
getSyncViews().setBackgroundColor(getDataModel().getBackgroundColor());
|
|
399 |
getSyncViews().setActiveNumberPoint(getDataModel().isShowNumber());
|
|
385 | 400 |
|
386 | 401 |
} |
387 | 402 |
} |
... | ... | |
395 | 410 |
} |
396 | 411 |
} |
397 | 412 |
|
398 |
/*private GeorefOptionsDialog getOptions() { |
|
399 |
if(georefOptions == null) |
|
400 |
georefOptions = GeoreferencingSwingLocator.getSwingManager().createWindowOptions(appMain.getOptionsDataModel().getDegree(), this); |
|
401 |
return georefOptions; |
|
402 |
}*/ |
|
403 |
|
|
404 | 413 |
/** |
405 | 414 |
* Consulta si est?n activos los eventos de tabla o no |
406 | 415 |
* @return true si est?n activos y false si no lo est?n |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/src/main/java/org/gvsig/raster/georeferencing/app/georeferencingclient/listener/ViewRasterRequestManager.java | ||
---|---|---|
162 | 162 |
} |
163 | 163 |
|
164 | 164 |
//Ajustamos el extent al del raster |
165 |
Extent ext = RasterLocator.getManager().getDataStructFactory().createExtent(extent.getMinX(), extent.getMaxY(), extent.getMaxX(), extent.getMinY());
|
|
166 |
/*if(view.getCanvas().getMinxMaxyUL()) {
|
|
165 |
Extent ext = null;
|
|
166 |
if(view.getMinxMaxyUL()) {
|
|
167 | 167 |
ext = RasterLocator.getManager().getDataStructFactory().createExtent(extent); |
168 | 168 |
} else { |
169 | 169 |
ext = RasterLocator.getManager().getDataStructFactory().createExtent(extent.getMinX(), extent.getMinY(), extent.getMaxX(), extent.getMaxY()); |
170 |
}*/
|
|
170 |
} |
|
171 | 171 |
|
172 | 172 |
try { |
173 | 173 |
ViewPort vp = new ViewPort(); |
... | ... | |
196 | 196 |
} |
197 | 197 |
return extent; |
198 | 198 |
} |
199 |
|
|
200 |
public void setGCPsGraphicLayer(IGraphicLayer gl) { |
|
201 |
this.graphicLayer = gl; |
|
202 |
} |
|
199 | 203 |
} |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.api/src/main/java/org/gvsig/raster/georeferencing/swing/GeoreferencingOptionsDataModel.java | ||
---|---|---|
135 | 135 |
* Obtiene el color de fondo |
136 | 136 |
* @return |
137 | 137 |
*/ |
138 |
public Color getBackGroundColor();
|
|
138 |
public Color getBackgroundColor();
|
|
139 | 139 |
|
140 | 140 |
/** |
141 | 141 |
* Asigna el color del texto |
... | ... | |
210 | 210 |
* @return true si se muestra y false si no |
211 | 211 |
*/ |
212 | 212 |
public boolean isShowNumber(); |
213 |
|
|
214 |
/** |
|
215 |
* Obtiene el umbral de error a partir del cual se iluminan en rojo en la tabla |
|
216 |
* @return double con el valor del umbral |
|
217 |
*/ |
|
218 |
public double getThreshold(); |
|
219 |
|
|
220 |
/** |
|
221 |
* Consulta si los errores se escriben en el fichero CSV |
|
222 |
* @return true si se escriben en el fichero y false si no se hace |
|
223 |
*/ |
|
224 |
public boolean isAddErrorsCSV(); |
|
225 |
|
|
226 |
/** |
|
227 |
* Asigna el umbral de error a partir del cual se iluminan en rojo en la tabla |
|
228 |
* @param double con el valor del umbral |
|
229 |
*/ |
|
230 |
public void setThreshold(double threshold); |
|
213 | 231 |
} |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.api/src/main/java/org/gvsig/raster/georeferencing/swing/view/GeoreferencingView.java | ||
---|---|---|
105 | 105 |
*/ |
106 | 106 |
public void selectTool(int tool, boolean select); |
107 | 107 |
|
108 |
/** |
|
109 |
* Gets the selected tool |
|
110 |
* @return |
|
111 |
*/ |
|
112 |
public int getToolSelected(); |
|
113 |
|
|
108 | 114 |
public void setSelectZoomAreaButtonSelected(boolean select); |
109 | 115 |
|
110 | 116 |
public void setMoveButtonSelected(boolean select); |
117 |
|
|
118 |
/** |
|
119 |
* Asigna el valor para el flag minxMaxyUL. Este flag informa de que la esquina |
|
120 |
* superior izquierda corresponde con el valor de m?nimo X y m?ximo Y. En caso |
|
121 |
* de ser false esta esquina ser?a de m?nimo X y m?nimo Y. |
|
122 |
* @param v |
|
123 |
*/ |
|
124 |
public void setMinxMaxyUL(boolean v); |
|
125 |
|
|
126 |
public boolean getMinxMaxyUL(); |
|
111 | 127 |
} |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.api/src/main/java/org/gvsig/raster/georeferencing/swing/view/SynchronizedViews.java | ||
---|---|---|
4 | 4 |
import java.awt.geom.Point2D; |
5 | 5 |
|
6 | 6 |
import org.gvsig.fmap.dal.coverage.datastruct.GeoPoint; |
7 |
import org.gvsig.gui.beans.table.exceptions.NotInitializeException; |
|
8 | 7 |
|
9 | 8 |
|
10 | 9 |
public interface SynchronizedViews { |
... | ... | |
74 | 73 |
* a los GeoPuntos |
75 | 74 |
* @throws NotInitializeException |
76 | 75 |
*/ |
77 |
public void calcPointsNumeration() throws NotInitializeException;
|
|
76 |
public void calcPointsNumeration(); |
|
78 | 77 |
|
79 | 78 |
/** |
80 | 79 |
* Obtiene un punto (GeoPoint) a partir de su n?mero. Hay que tener en cuenta que el n?mero de |
... | ... | |
114 | 113 |
* @return identificador del punto a?adido |
115 | 114 |
*/ |
116 | 115 |
public long addPoint(Point2D map, Point2D raster); |
116 |
|
|
117 |
/** |
|
118 |
* Selecciona o deselecciona la tool de selecci?n de punto para cada vista |
|
119 |
* @param true para activar y false para desactivar |
|
120 |
*/ |
|
121 |
public void selectPointTool(boolean select); |
|
117 | 122 |
} |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.api/src/main/java/org/gvsig/raster/georeferencing/swing/view/GeorefCanvas.java | ||
---|---|---|
174 | 174 |
* de ser false esta esquina ser?a de m?nimo X y m?nimo Y. |
175 | 175 |
* @param v |
176 | 176 |
*/ |
177 |
//public void setMinxMaxyUL(boolean v);
|
|
177 |
public void setMinxMaxyUL(boolean v); |
|
178 | 178 |
|
179 | 179 |
/** |
180 | 180 |
* Obtiene el valor para el flag minxMaxyUL. Este flag informa de que la esquina |
... | ... | |
182 | 182 |
* de ser false esta esquina ser?a de m?nimo X y m?nimo Y. |
183 | 183 |
* @param v |
184 | 184 |
*/ |
185 |
//public boolean getMinxMaxyUL();
|
|
185 |
public boolean getMinxMaxyUL(); |
|
186 | 186 |
|
187 | 187 |
/** |
188 | 188 |
* Asigna el color del texto |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.api/src/main/java/org/gvsig/raster/georeferencing/swing/view/IViewRequestManager.java | ||
---|---|---|
53 | 53 |
* @param backGroundColor |
54 | 54 |
*/ |
55 | 55 |
public void setBackGroundColor(Color backGroundColor); |
56 |
|
|
57 |
/** |
|
58 |
* Asigna la capa de puntos de control |
|
59 |
* @param gl |
|
60 |
*/ |
|
61 |
public void setGCPsGraphicLayer(IGraphicLayer gl); |
|
56 | 62 |
} |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/tool/ZoomRectangleTool.java | ||
---|---|---|
152 | 152 |
|
153 | 153 |
Point2D pInit = canvas.viewCoordsToWorld(new Point2D.Double(x, y)); |
154 | 154 |
Point2D pEnd = canvas.viewCoordsToWorld(new Point2D.Double(x + w, y + h)); |
155 |
/*if(canvas.getMinxMaxyUL())
|
|
155 |
if(canvas.getMinxMaxyUL()) |
|
156 | 156 |
result = new Rectangle2D.Double(pInit.getX(), pEnd.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY())); |
157 |
else*/
|
|
157 |
else |
|
158 | 158 |
result = new Rectangle2D.Double(pInit.getX(), pEnd.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY())); |
159 | 159 |
initPoint = null; |
160 | 160 |
x = y = w = h = 0; |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/tool/PanTool.java | ||
---|---|---|
108 | 108 |
|
109 | 109 |
Point2D pInit = canvas.viewCoordsToWorld(new Point2D.Double(distance.getX(), distance.getY())); |
110 | 110 |
Point2D pEnd = canvas.viewCoordsToWorld(new Point2D.Double(distance.getX() + canvas.getVisibleRect().width, distance.getY() + canvas.getVisibleRect().height)); |
111 |
//if(canvas.getMinxMaxyUL())
|
|
111 |
if(canvas.getMinxMaxyUL()) |
|
112 | 112 |
result = new Rectangle2D.Double(pInit.getX(), pEnd.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY())); |
113 |
//else
|
|
114 |
//result = new Rectangle2D.Double(pInit.getX(), pInit.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY()));
|
|
113 |
else |
|
114 |
result = new Rectangle2D.Double(pInit.getX(), pInit.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY())); |
|
115 | 115 |
initPoint = null; |
116 | 116 |
for (int i = 0; i < listeners.size(); i++) |
117 | 117 |
((ToolListener)listeners.get(i)).endAction(new ToolEvent(this)); |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/control/GeorefControlPanelImpl.java | ||
---|---|---|
60 | 60 |
private JButton bCenterView = null; |
61 | 61 |
private JToggleButton bAddPoint = null; |
62 | 62 |
private DataInputContainer error = null; |
63 |
private GeorefControlPanelListener buttonsListener = null; |
|
64 | 63 |
|
65 | 64 |
private String pathToImagesForTest = "/src/main/resources/image/"; |
66 | 65 |
|
... | ... | |
101 | 100 |
} |
102 | 101 |
|
103 | 102 |
public void setListener(GeorefControlPanelListener listener) { |
104 |
this.buttonsListener = listener; |
|
103 |
getSaveToXMLButton().addActionListener(listener); |
|
104 |
getLoadFromXMLButton().addActionListener(listener); |
|
105 |
getExporToCSVButton().addActionListener(listener); |
|
106 |
getLoadFromCSVButton().addActionListener(listener); |
|
107 |
getOptionsButton().addActionListener(listener); |
|
108 |
getCenterButton().addActionListener(listener); |
|
109 |
getToolSelectPointButton().addActionListener(listener); |
|
110 |
getEndGeorefButton().addActionListener(listener); |
|
111 |
getTestButton().addActionListener(listener); |
|
112 |
getEndTestButton().addActionListener(listener); |
|
105 | 113 |
} |
106 | 114 |
|
107 | 115 |
private void init() { |
... | ... | |
210 | 218 |
bEndGeoref.setPreferredSize(new Dimension(22, 22)); |
211 | 219 |
bEndGeoref.setIcon(loadIcon("exit-icon")); |
212 | 220 |
bEndGeoref.setToolTipText(Messages.getText("end_georef")); |
213 |
bEndGeoref.addActionListener(buttonsListener); |
|
214 | 221 |
} |
215 | 222 |
return bEndGeoref; |
216 | 223 |
} |
... | ... | |
224 | 231 |
bTest = new JButton(); |
225 | 232 |
bTest.setPreferredSize(new Dimension(22, 22)); |
226 | 233 |
bTest.setToolTipText(Messages.getText("test_georef")); |
227 |
bTest.addActionListener(buttonsListener); |
|
228 | 234 |
bTest.setIcon(loadIcon("process-icon")); |
229 | 235 |
} |
230 | 236 |
return bTest; |
... | ... | |
239 | 245 |
bEndTest = new JButton(); |
240 | 246 |
bEndTest.setPreferredSize(new Dimension(22, 22)); |
241 | 247 |
bEndTest.setToolTipText(Messages.getText("end_test_georef")); |
242 |
bEndTest.addActionListener(buttonsListener); |
|
243 | 248 |
bEndTest.setIcon(loadIcon("endprocess-icon")); |
244 | 249 |
} |
245 | 250 |
return bEndTest; |
... | ... | |
254 | 259 |
bLoadFromAscii = new JButton(); |
255 | 260 |
bLoadFromAscii.setPreferredSize(new Dimension(22, 22)); |
256 | 261 |
bLoadFromAscii.setToolTipText(Messages.getText("load_from_ascii")); |
257 |
bLoadFromAscii.addActionListener(buttonsListener); |
|
258 | 262 |
bLoadFromAscii.setIcon(loadIcon("importfromcsv-icon")); |
259 | 263 |
} |
260 | 264 |
return bLoadFromAscii; |
... | ... | |
269 | 273 |
bSaveToAscii = new JButton(); |
270 | 274 |
bSaveToAscii.setPreferredSize(new Dimension(22, 22)); |
271 | 275 |
bSaveToAscii.setToolTipText(Messages.getText("save_to_ascii")); |
272 |
bSaveToAscii.addActionListener(buttonsListener); |
|
273 | 276 |
bSaveToAscii.setIcon(loadIcon("exporttocsv-icon")); |
274 | 277 |
} |
275 | 278 |
return bSaveToAscii; |
... | ... | |
284 | 287 |
bLoadFromXml = new JButton(); |
285 | 288 |
bLoadFromXml.setPreferredSize(new Dimension(22, 22)); |
286 | 289 |
bLoadFromXml.setToolTipText(Messages.getText("load_from_xml")); |
287 |
bLoadFromXml.addActionListener(buttonsListener); |
|
288 | 290 |
bLoadFromXml.setIcon(loadIcon("tfwload-icon")); |
289 | 291 |
} |
290 | 292 |
return bLoadFromXml; |
... | ... | |
316 | 318 |
bSaveToXml = new JButton(); |
317 | 319 |
bSaveToXml.setPreferredSize(new Dimension(22, 22)); |
318 | 320 |
bSaveToXml.setToolTipText(Messages.getText("save_gcp_to_xml")); |
319 |
bSaveToXml.addActionListener(buttonsListener); |
|
320 | 321 |
bSaveToXml.setIcon(loadIcon("save-icon")); |
321 | 322 |
} |
322 | 323 |
return bSaveToXml; |
... | ... | |
331 | 332 |
bOptions = new JButton(); |
332 | 333 |
bOptions.setPreferredSize(new Dimension(22, 22)); |
333 | 334 |
bOptions.setToolTipText(Messages.getText("options")); |
334 |
bOptions.addActionListener(buttonsListener); |
|
335 | 335 |
bOptions.setIcon(loadIcon("options-icon")); |
336 | 336 |
} |
337 | 337 |
return bOptions; |
... | ... | |
347 | 347 |
bAddPoint = new JToggleButton(); |
348 | 348 |
bAddPoint.setPreferredSize(new Dimension(22, 22)); |
349 | 349 |
bAddPoint.setToolTipText(Messages.getText("move-point")); |
350 |
bAddPoint.addActionListener(buttonsListener); |
|
351 | 350 |
bAddPoint.setIcon(loadIcon("add-icon")); |
352 | 351 |
} |
353 | 352 |
return bAddPoint; |
... | ... | |
362 | 361 |
bCenterView = new JButton(); |
Also available in: Unified diff