Revision 1724
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.framework/org.gvsig.raster.georeferencing.framework.andami/src/main/java/org/gvsig/raster/georeferencing/framework/andami/GeoreferencingAndamiFrameworkManagerImpl.java | ||
---|---|---|
64 | 64 |
} |
65 | 65 |
|
66 | 66 |
public void closeWindow(JPanel panel) { |
67 |
AndamiWindow window = windows.get(panel);
|
|
67 |
AndamiWindow window = windows.remove(panel);
|
|
68 | 68 |
PluginServices.getMDIManager().closeWindow(window); |
69 |
windows.remove(panel); |
|
70 | 69 |
} |
71 | 70 |
|
72 | 71 |
public int getPreferredViewHeight() { |
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 | ||
---|---|---|
174 | 174 |
if(viewRaster == null) { |
175 | 175 |
viewRaster = sManager.createView(true, false, true, listener); |
176 | 176 |
viewRasterRequestManager = new ViewRasterRequestManager(viewRaster, dataModel.getDataStore()); |
177 |
viewRaster.setMinxMaxyUL(false);
|
|
177 |
viewRaster.setMinxMaxyUL(true);
|
|
178 | 178 |
viewRaster.setViewListener(listener); |
179 | 179 |
viewRaster.setRequestListener(viewRasterRequestManager); |
180 | 180 |
viewRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener); |
... | ... | |
242 | 242 |
|
243 | 243 |
PagedTable pt = getTableWrapper().getTable(); |
244 | 244 |
|
245 |
getDataModel().getGCPList().buildNewList(getDataModel().getDataStore().getGeoPointList()); |
|
246 |
|
|
245 | 247 |
//Creamos el layout |
246 | 248 |
LayoutEnvironment layoutEnv = fManager.createLayoutEnvironment(); |
247 | 249 |
layoutEnv.setTable((JPanel)pt.getComponent()); |
... | ... | |
288 | 290 |
if(appControlsListener == null) { |
289 | 291 |
appControlsListener = new ApplicationControlsListener(getTableWrapper(), this); |
290 | 292 |
getTableWrapper().getTable().addListener(appControlsListener); |
291 |
getGeorefControlPanel().setListener(appControlsListener); |
|
292 | 293 |
} |
293 | 294 |
} |
294 | 295 |
|
... | ... | |
308 | 309 |
|
309 | 310 |
PagedTable pt = getTableWrapper().getTable(); |
310 | 311 |
|
312 |
getDataModel().getGCPList().buildNewList(getDataModel().getDataStore().getGeoPointList()); |
|
313 |
|
|
311 | 314 |
//Creamos el layout |
312 | 315 |
LayoutEnvironment layoutEnv = fManager.createLayoutEnvironment(); |
313 | 316 |
layoutEnv.setTable((JPanel)pt.getComponent()); |
... | ... | |
378 | 381 |
public SynchronizedViews getSyncViews() { |
379 | 382 |
return syncViews; |
380 | 383 |
} |
381 |
|
|
382 |
/** |
|
383 |
* Obtiene la capa a georreferenciar |
|
384 |
* @return FLyrRaster |
|
385 |
*/ |
|
386 |
public RasterDataStore getLayer() { |
|
387 |
return launcher.getDataModel().getDataStore(); |
|
388 |
} |
|
389 | 384 |
|
390 | 385 |
public GeoreferencingProcessActions getProcessActions() { |
391 | 386 |
return processActions; |
392 | 387 |
} |
393 | 388 |
|
394 | 389 |
public GeoreferencingOptionsDataModel getDataModel() { |
395 |
return launcher.getDataModel();
|
|
390 |
return GeoreferencingSwingLocator.getSwingManager().getDataModel();
|
|
396 | 391 |
} |
397 | 392 |
|
398 | 393 |
} |
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/OptionsDialogListener.java | ||
---|---|---|
1 |
/* gvSIG. Geographic Information System of the Valencian Government |
|
2 |
* |
|
3 |
* Copyright (C) 2007-2008 Infrastructures and Transports Department |
|
4 |
* of the Valencian Government (CIT) |
|
5 |
* |
|
6 |
* This program is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU General Public License |
|
8 |
* as published by the Free Software Foundation; either version 2 |
|
9 |
* of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This program is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
* GNU General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU General Public License |
|
17 |
* along with this program; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
|
19 |
* MA 02110-1301, USA. |
|
20 |
* |
|
21 |
*/ |
|
22 |
package org.gvsig.raster.georeferencing.app.georeferencingclient.listener; |
|
23 |
|
|
24 |
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent; |
|
25 |
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener; |
|
26 |
|
|
27 |
/** |
|
28 |
* @author Nacho Brodin (nachobrodin@gmail.com) |
|
29 |
*/ |
|
30 |
public class OptionsDialogListener implements ButtonsPanelListener { |
|
31 |
|
|
32 |
public OptionsDialogListener() { |
|
33 |
} |
|
34 |
|
|
35 |
public void actionButtonPressed(ButtonsPanelEvent e) { |
|
36 |
} |
|
37 |
|
|
38 |
} |
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 | ||
---|---|---|
28 | 28 |
import java.awt.geom.Rectangle2D; |
29 | 29 |
import java.awt.image.BufferedImage; |
30 | 30 |
|
31 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
|
32 |
import org.gvsig.fmap.dal.coverage.datastruct.Extent; |
|
33 | 31 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
34 | 32 |
import org.gvsig.fmap.dal.exception.ReadException; |
35 | 33 |
import org.gvsig.fmap.geom.GeometryLocator; |
... | ... | |
54 | 52 |
private GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
55 | 53 |
private GeoreferencingView view = null; |
56 | 54 |
private RasterDataStore store = null; |
57 |
private IGraphicLayer graphicLayer = null; |
|
58 | 55 |
private Color backGroundColor = null; |
59 | 56 |
private FLyrRaster lyr = null; |
60 | 57 |
|
... | ... | |
200 | 197 |
} |
201 | 198 |
|
202 | 199 |
public void setGCPsGraphicLayer(IGraphicLayer gl) { |
203 |
this.graphicLayer = gl; |
|
204 | 200 |
} |
205 | 201 |
} |
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/ViewDialogListener.java | ||
---|---|---|
95 | 95 |
if(!Georeferencing.enableTableEvent) |
96 | 96 |
return; |
97 | 97 |
Georeferencing.enableTableEvent = false; |
98 |
|
|
99 |
//----------------- |
|
100 |
//Operaci?n de zoom |
|
101 |
if(ev.getSource() instanceof ZoomCursorGraphicLayer) { |
|
102 |
try { |
|
103 |
Rectangle2D ext = null; |
|
104 |
if(app.getViewRaster() != null) { |
|
105 |
ext = app.getViewRaster().getCursorAdjustedWorldCoordinates(app.getZoomRaster().getCanvasWidth(), app.getZoomRaster().getCanvasHeight()); |
|
106 |
app.getZoomRasterRequestManager().request(ext); |
|
98 |
|
|
99 |
try { |
|
100 |
//----------------- |
|
101 |
//Operaci?n de zoom |
|
102 |
if(ev.getSource() instanceof ZoomCursorGraphicLayer) { |
|
103 |
try { |
|
104 |
Rectangle2D ext = null; |
|
105 |
if(app.getViewRaster() != null) { |
|
106 |
ext = app.getViewRaster().getCursorAdjustedWorldCoordinates(app.getZoomRaster().getCanvasWidth(), app.getZoomRaster().getCanvasHeight()); |
|
107 |
app.getZoomRasterRequestManager().request(ext); |
|
108 |
} |
|
109 |
if(app.getViewMap() != null) { |
|
110 |
ext = app.getViewMap().getCursorAdjustedWorldCoordinates(app.getZoomMap().getCanvasWidth(), app.getZoomMap().getCanvasHeight()); |
|
111 |
app.getZoomMapRequestManager().request(ext); |
|
112 |
} |
|
113 |
} catch (InvalidRequestException e1) { |
|
114 |
GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1); |
|
107 | 115 |
} |
108 |
if(app.getViewMap() != null) { |
|
109 |
ext = app.getViewMap().getCursorAdjustedWorldCoordinates(app.getZoomMap().getCanvasWidth(), app.getZoomMap().getCanvasHeight()); |
|
110 |
app.getZoomMapRequestManager().request(ext); |
|
116 |
} |
|
117 |
|
|
118 |
//----------- |
|
119 |
//Mover punto |
|
120 |
if(ev.getSource() instanceof GCPsGraphicLayer) { |
|
121 |
//buttonsListener.setEnableTableEvent(false); |
|
122 |
//Se redibujan, se obtienen las coordenadas del punto y se actualiza la tabla |
|
123 |
if(app.getSyncViews() != null) |
|
124 |
app.getSyncViews().redrawPoints(); |
|
125 |
GPGraphic gPoint = ((GCPsGraphicLayer)ev.getSource()).getLastPoint(); |
|
126 |
Point2D pRaster = gPoint.getGeoPoint().getPixelPoint(); |
|
127 |
Point2D pMap = gPoint.getGeoPoint().getMapPoint(); |
|
128 |
try { |
|
129 |
app.getTableWrapper().updatePoint(new Double(pMap.getX()), |
|
130 |
new Double(pMap.getY()), |
|
131 |
new Double(pRaster.getX()), |
|
132 |
new Double(pRaster.getY()), |
|
133 |
gPoint.getGeoPoint().getNumber()); |
|
134 |
app.getTableWrapper().getTable().getJTable().setRowSelectionInterval(gPoint.getGeoPoint().getNumber(), gPoint.getGeoPoint().getNumber()); |
|
135 |
} catch (ArrayIndexOutOfBoundsException e) { |
|
136 |
RasterToolsUtil.messageBoxError("no_rows_selected", app.getTableWrapper().getTable(), e); |
|
111 | 137 |
} |
112 |
} catch (InvalidRequestException e1) { |
|
113 |
GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1); |
|
138 |
if(app.getDataModel().isCenterView()) |
|
139 |
app.getSyncViews().centerToPoint(gPoint.getGeoPoint().getNumber()); |
|
140 |
//buttonsListener.setEnableTableEvent(true); |
|
114 | 141 |
} |
115 |
} |
|
116 |
|
|
117 |
//----------- |
|
118 |
//Mover punto |
|
119 |
if(ev.getSource() instanceof GCPsGraphicLayer) { |
|
120 |
//buttonsListener.setEnableTableEvent(false); |
|
121 |
//Se redibujan, se obtienen las coordenadas del punto y se actualiza la tabla |
|
122 |
if(app.getSyncViews() != null) |
|
123 |
app.getSyncViews().redrawPoints(); |
|
124 |
GPGraphic gPoint = ((GCPsGraphicLayer)ev.getSource()).getLastPoint(); |
|
125 |
Point2D pRaster = gPoint.getGeoPoint().getPixelPoint(); |
|
126 |
Point2D pMap = gPoint.getGeoPoint().getMapPoint(); |
|
127 |
try { |
|
128 |
app.getTableWrapper().updatePoint(new Double(pMap.getX()), |
|
129 |
new Double(pMap.getY()), |
|
130 |
new Double(pRaster.getX()), |
|
131 |
new Double(pRaster.getY()), |
|
132 |
gPoint.getGeoPoint().getNumber()); |
|
133 |
app.getTableWrapper().getTable().getJTable().setRowSelectionInterval(gPoint.getGeoPoint().getNumber(), gPoint.getGeoPoint().getNumber()); |
|
134 |
} catch (ArrayIndexOutOfBoundsException e) { |
|
135 |
RasterToolsUtil.messageBoxError("no_rows_selected", app.getTableWrapper().getTable(), e); |
|
136 |
} |
|
137 |
if(app.getDataModel().isCenterView()) |
|
138 |
app.getSyncViews().centerToPoint(gPoint.getGeoPoint().getNumber()); |
|
139 |
//buttonsListener.setEnableTableEvent(true); |
|
140 |
} |
|
141 |
|
|
142 |
//------------------ |
|
143 |
//Selecci?n de punto |
|
144 |
if(ev.getSource() instanceof SelectPointTool) { |
|
145 |
try { |
|
146 |
//Se obtiene el punto seleccionado, se actualiza la tabla y se redibujan |
|
147 |
int nPoint = app.getTableWrapper().getTable().getSelectedRows()[0]; |
|
148 |
GeoPoint gp = app.getSyncViews().getPointByNumber(nPoint); |
|
149 |
|
|
150 |
if(((SelectPointTool)ev.getSource()).getParentView() == app.getViewRaster() || |
|
151 |
((SelectPointTool)ev.getSource()).getParentView() == app.getZoomRaster()) { |
|
152 |
Point2D[] p = (Point2D[])((SelectPointTool)ev.getSource()).getResult(); |
|
153 |
app.getTableWrapper().updateRasterPoint(new Double(p[1].getX()), new Double(p[1].getY()), nPoint); |
|
154 |
if(gp != null) { |
|
155 |
gp.setPixelPoint(p[1]); |
|
156 |
app.getSyncViews().redrawPoints(); |
|
142 |
|
|
143 |
//------------------ |
|
144 |
//Selecci?n de punto |
|
145 |
if(ev.getSource() instanceof SelectPointTool) { |
|
146 |
try { |
|
147 |
//Se obtiene el punto seleccionado, se actualiza la tabla y se redibujan |
|
148 |
int nPoint = app.getTableWrapper().getTable().getSelectedRows()[0]; |
|
149 |
GeoPoint gp = app.getSyncViews().getPointByNumber(nPoint); |
|
150 |
|
|
151 |
if(((SelectPointTool)ev.getSource()).getParentView() == app.getViewRaster() || |
|
152 |
((SelectPointTool)ev.getSource()).getParentView() == app.getZoomRaster()) { |
|
153 |
Point2D[] p = (Point2D[])((SelectPointTool)ev.getSource()).getResult(); |
|
154 |
app.getTableWrapper().updateRasterPoint(new Double(p[1].getX()), new Double(p[1].getY()), nPoint); |
|
155 |
if(gp != null) { |
|
156 |
gp.setPixelPoint(p[1]); |
|
157 |
app.getSyncViews().redrawPoints(); |
|
158 |
} |
|
157 | 159 |
} |
158 |
}
|
|
159 |
if(((SelectPointTool)ev.getSource()).getParentView() == app.getViewMap() ||
|
|
160 |
((SelectPointTool)ev.getSource()).getParentView() == app.getZoomMap()) {
|
|
161 |
Point2D[] p = (Point2D[])((SelectPointTool)ev.getSource()).getResult();
|
|
162 |
app.getTableWrapper().updateMapPoint(new Double(p[1].getX()), new Double(p[1].getY()), nPoint);
|
|
163 |
if(gp != null) {
|
|
164 |
gp.setMapPoint(p[1]);
|
|
165 |
app.getSyncViews().redrawPoints();
|
|
160 |
if(((SelectPointTool)ev.getSource()).getParentView() == app.getViewMap() ||
|
|
161 |
((SelectPointTool)ev.getSource()).getParentView() == app.getZoomMap()) {
|
|
162 |
Point2D[] p = (Point2D[])((SelectPointTool)ev.getSource()).getResult();
|
|
163 |
app.getTableWrapper().updateMapPoint(new Double(p[1].getX()), new Double(p[1].getY()), nPoint);
|
|
164 |
if(gp != null) {
|
|
165 |
gp.setMapPoint(p[1]);
|
|
166 |
app.getSyncViews().redrawPoints();
|
|
167 |
}
|
|
166 | 168 |
} |
169 |
if(app.getDataModel().isCenterView()) |
|
170 |
app.getSyncViews().centerToPoint(nPoint); |
|
171 |
} catch (ArrayIndexOutOfBoundsException e) { |
|
172 |
RasterToolsUtil.messageBoxError("no_rows_selected", app.getTableWrapper().getTable(), e); |
|
167 | 173 |
} |
168 |
if(app.getDataModel().isCenterView()) |
|
169 |
app.getSyncViews().centerToPoint(nPoint); |
|
170 |
} catch (ArrayIndexOutOfBoundsException e) { |
|
171 |
RasterToolsUtil.messageBoxError("no_rows_selected", app.getTableWrapper().getTable(), e); |
|
172 | 174 |
} |
175 |
|
|
176 |
} finally { |
|
177 |
Georeferencing.enableTableEvent = true; |
|
173 | 178 |
} |
174 |
|
|
175 |
Georeferencing.enableTableEvent = true; |
|
176 | 179 |
} |
177 | 180 |
|
178 | 181 |
public void offTool(ToolEvent ev) { |
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/LauncherDialogListener.java | ||
---|---|---|
35 | 35 |
import org.gvsig.raster.georeferencing.framework.GeoreferencingFrameworkManager; |
36 | 36 |
import org.gvsig.raster.georeferencing.swing.GeoreferencingLauncher; |
37 | 37 |
import org.gvsig.raster.georeferencing.swing.GeoreferencingOptionsDataModel; |
38 |
import org.gvsig.raster.georeferencing.swing.GeoreferencingSwingLocator; |
|
38 | 39 |
import org.gvsig.raster.tools.app.basic.RasterToolsUtil; |
39 | 40 |
|
40 | 41 |
/** |
41 | 42 |
* @author Nacho Brodin (nachobrodin@gmail.com) |
42 | 43 |
*/ |
43 | 44 |
public class LauncherDialogListener implements ButtonsPanelListener { |
44 |
private GeoreferencingLauncher initDialog = null;
|
|
45 |
private GeoreferencingLauncher launcherDialog = null;
|
|
45 | 46 |
private Georeferencing app = null; |
46 | 47 |
|
47 | 48 |
public LauncherDialogListener( |
48 | 49 |
Georeferencing app, |
49 | 50 |
GeoreferencingLauncher launcher) { |
50 |
this.initDialog = launcher;
|
|
51 |
this.launcherDialog = launcher;
|
|
51 | 52 |
this.app = app; |
52 | 53 |
} |
53 | 54 |
|
... | ... | |
55 | 56 |
//----------------- |
56 | 57 |
// Bot?n de Aceptar |
57 | 58 |
if (e.getButton() == ButtonsPanel.BUTTON_ACCEPT) { |
58 |
if(initDialog != null) { |
|
59 |
GeoreferencingOptionsDataModel dataModel = initDialog.getDataModel(); |
|
59 |
if(launcherDialog != null) { |
|
60 |
launcherDialog.buildDataModel(); |
|
61 |
GeoreferencingOptionsDataModel dataModel = GeoreferencingSwingLocator.getSwingManager().getDataModel(); |
|
60 | 62 |
if(dataModel.getType() == Georeferencing.WITH_MAP) { |
61 | 63 |
boolean findView = false; |
62 | 64 |
IWindow[] windowList = PluginServices.getMDIManager().getAllWindows(); |
... | ... | |
76 | 78 |
if(storeToGeoref == null) |
77 | 79 |
RasterToolsUtil.messageBoxError("layer_not_loaded", this); |
78 | 80 |
else { |
79 |
//storeToGeoref.setAffineTransform(new AffineTransform(1, 0, 0, -1, 0, 0));
|
|
81 |
storeToGeoref.setAffineTransform(new AffineTransform(1, 0, 0, -1, 0, 0)); |
|
80 | 82 |
GeoreferencingFrameworkManager fManager = GeoreferencingFrameworkLocator.getManager(); |
81 |
fManager.closeWindow(initDialog.getComponent());
|
|
83 |
fManager.closeWindow(launcherDialog.getComponent());
|
|
82 | 84 |
app.endLauncherDialog(dataModel); |
83 | 85 |
} |
84 | 86 |
} |
... | ... | |
88 | 90 |
// Bot?n de Cerrar |
89 | 91 |
if (e.getButton() == ButtonsPanel.BUTTON_CANCEL) { |
90 | 92 |
GeoreferencingFrameworkManager fManager = GeoreferencingFrameworkLocator.getManager(); |
91 |
fManager.closeWindow(initDialog.getComponent());
|
|
93 |
fManager.closeWindow(launcherDialog.getComponent());
|
|
92 | 94 |
} |
93 | 95 |
} |
94 | 96 |
|
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 | ||
---|---|---|
33 | 33 |
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel; |
34 | 34 |
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent; |
35 | 35 |
import org.gvsig.i18n.Messages; |
36 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.GeoPointsPersistence; |
|
36 | 37 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.Georeferencing; |
37 | 38 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.TableWrapper; |
38 | 39 |
import org.gvsig.raster.georeferencing.framework.GeoreferencingFrameworkLocator; |
... | ... | |
60 | 61 |
private GeorefControlPanel controlPanel = null; |
61 | 62 |
private GeorefOptionsDialog optionsDialog = null; |
62 | 63 |
private GeoreferencingFrameworkManager fManager = null; |
63 |
//private GeoPointsPersistence persistence = null;
|
|
64 |
private GeoPointsPersistence persistence = null; |
|
64 | 65 |
|
65 | 66 |
/** |
66 | 67 |
* Flag que estar? a true despu?s de crear un nuevo punto de control. Volver? a false |
... | ... | |
80 | 81 |
this.controlPanel = appMain.getGeorefControlPanel(); |
81 | 82 |
this.controlPanel.setListener(this); |
82 | 83 |
this.fManager = GeoreferencingFrameworkLocator.getManager(); |
84 |
this.persistence = new GeoPointsPersistence(); |
|
83 | 85 |
} |
84 | 86 |
|
85 | 87 |
private SynchronizedViews getSyncViews() { |
... | ... | |
98 | 100 |
return; |
99 | 101 |
|
100 | 102 |
Georeferencing.enableTableEvent = false; |
101 |
|
|
102 |
//------------------------------------- |
|
103 |
//Finalizaci?n de la georreferenciaci?n |
|
104 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bEndGeoref) |
|
105 |
endGeoref(); |
|
103 |
try { |
|
104 |
//-------------------------------------
|
|
105 |
//Finalizaci?n de la georreferenciaci?n
|
|
106 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bEndGeoref)
|
|
107 |
endGeoref();
|
|
106 | 108 |
|
107 |
//----------------------------------------- |
|
108 |
//Centrar la vista en el punto seleccionado |
|
109 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bCenterView) { |
|
110 |
getSyncViews().centerToPoint(tableWrapper.getTable().getSelectedRows()[0]); |
|
111 |
} |
|
109 |
//-----------------------------------------
|
|
110 |
//Centrar la vista en el punto seleccionado
|
|
111 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bCenterView) {
|
|
112 |
getSyncViews().centerToPoint(tableWrapper.getTable().getSelectedRows()[0]);
|
|
113 |
}
|
|
112 | 114 |
|
113 |
//--------------------------------- |
|
114 |
//Selecci?n de una fila de la tabla |
|
115 |
if(e.getActionCommand().equals("SELECT_ROW")) { |
|
116 |
if(getDataModel().isCenterView() && !newPointCreated) |
|
117 |
getSyncViews().centerToPoint(e.getID()); |
|
118 |
newPointCreated = false; |
|
119 |
} |
|
115 |
//---------------------------------
|
|
116 |
//Selecci?n de una fila de la tabla
|
|
117 |
if(e.getActionCommand().equals("SELECT_ROW")) {
|
|
118 |
if(getDataModel().isCenterView() && !newPointCreated)
|
|
119 |
getSyncViews().centerToPoint(e.getID());
|
|
120 |
newPointCreated = false;
|
|
121 |
}
|
|
120 | 122 |
|
121 |
//---------------------------------------------------------- |
|
122 |
//Seleccion de opciones. Se asignan las propiedades al abrir |
|
123 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bOptions) { |
|
124 |
if(optionsDialog == null) |
|
125 |
optionsDialog = new GeorefOptionsDialog(Georeferencing.DEFAULT_DEGREE, this); |
|
126 |
optionsDialog.setDegree(getDataModel().getDegree()); |
|
127 |
optionsDialog.setAlgorithm(getDataModel().getAlgorithm()); |
|
128 |
optionsDialog.setBackGroundColor(getDataModel().getBackgroundColor()); |
|
129 |
optionsDialog.setTextColor(getDataModel().getTextColor()); |
|
130 |
optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getAddErrorsCSVCheck().setSelected(getDataModel().isAddErrorsCSV()); |
|
131 |
optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getCenterViewCheck().setSelected(getDataModel().isCenterView()); |
|
132 |
optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getShowNumberCheck().setSelected(getDataModel().isShowNumber()); |
|
133 |
optionsDialog.setThresholdError(getDataModel().getThreshold()); |
|
134 |
optionsDialog.setInterpolationMethod(getDataModel().getInterpolationMethod()); |
|
135 |
optionsDialog.setOutFile(getDataModel().getOutFile()); |
|
136 |
optionsDialog.setXCellSize(getDataModel().getXCellSize()); |
|
137 |
optionsDialog.setYCellSize(getDataModel().getYCellSize()); |
|
138 |
fManager.showWindow(optionsDialog, 410, 440, Messages.getText("georeferencing")); |
|
139 |
} |
|
123 |
//---------------------------------------------------------- |
|
124 |
//Seleccion de opciones. Se asignan las propiedades al abrir |
|
125 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bOptions) { |
|
126 |
if(optionsDialog == null) |
|
127 |
optionsDialog = new GeorefOptionsDialog(Georeferencing.DEFAULT_DEGREE, this); |
|
128 |
optionsDialog.setDegree(getDataModel().getDegree()); |
|
129 |
optionsDialog.setAlgorithm(getDataModel().getAlgorithm()); |
|
130 |
optionsDialog.setBackGroundColor(getDataModel().getBackgroundColor()); |
|
131 |
optionsDialog.setTextColor(getDataModel().getTextColor()); |
|
132 |
optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getAddErrorsCSVCheck().setSelected(getDataModel().isAddErrorsCSV()); |
|
133 |
optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getCenterViewCheck().setSelected(getDataModel().isCenterView()); |
|
134 |
optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getShowNumberCheck().setSelected(getDataModel().isShowNumber()); |
|
135 |
optionsDialog.setThresholdError(getDataModel().getThreshold()); |
|
136 |
optionsDialog.setInterpolationMethod(getDataModel().getInterpolationMethod()); |
|
137 |
optionsDialog.setOutFile(getDataModel().getOutFile()); |
|
138 |
optionsDialog.setXCellSize(getDataModel().getXCellSize()); |
|
139 |
optionsDialog.setYCellSize(getDataModel().getYCellSize()); |
|
140 |
fManager.showWindow(optionsDialog, 410, 440, Messages.getText("georeferencing")); |
|
141 |
System.out.println("----Open"); |
|
142 |
} |
|
140 | 143 |
|
141 |
//------------------------------ |
|
142 |
//Selecci?n de puntos de control |
|
143 |
if(e.getSource() == appMain.getGeorefControlPanel().getToolSelectPointButton()) { |
|
144 |
if(appMain.getGeorefControlPanel().getToolSelectPointButton().isSelected()) { |
|
145 |
if(appMain.getViewRaster().getToolSelected() != GeoreferencingSwingLibrary.SELECT_POINT_TOOL) { |
|
146 |
//No hay filas en la tabla |
|
147 |
if(tableWrapper.getTable().getRowCount() == 0) { |
|
148 |
RasterToolsUtil.messageBoxError("no_rows", tableWrapper.getTable()); |
|
149 |
appMain.getGeorefControlPanel().getToolSelectPointButton().setSelected(false); |
|
150 |
return; |
|
151 |
} |
|
144 |
//------------------------------ |
|
145 |
//Selecci?n de puntos de control |
|
146 |
if(e.getSource() == appMain.getGeorefControlPanel().getToolSelectPointButton()) { |
|
147 |
selectControlPoints(); |
|
148 |
} |
|
152 | 149 |
|
153 |
//No hay filas seleccionadas en la tabla |
|
154 |
if(tableWrapper.getTable().getSelectedRows() == null) { |
|
155 |
RasterToolsUtil.messageBoxError("no_rows_selected", tableWrapper.getTable()); |
|
156 |
appMain.getGeorefControlPanel().getToolSelectPointButton().setSelected(false); |
|
157 |
return; |
|
158 |
} |
|
159 |
getSyncViews().selectPointTool(true); |
|
150 |
//------- |
|
151 |
//Testear |
|
152 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bTest) { |
|
153 |
try { |
|
154 |
appMain.getProcessActions().addTestRasterLayer( |
|
155 |
getDataModel().getDataStore(), |
|
156 |
getDataModel().getAlgorithm(), |
|
157 |
getDataModel().getInterpolationMethod(), |
|
158 |
getDataModel().getDegree(), |
|
159 |
getDataModel().getOutFile(), |
|
160 |
getDataModel().getXCellSize(), |
|
161 |
getDataModel().getYCellSize(), |
|
162 |
tableWrapper.getGeoTransformDataResult()); |
|
163 |
} catch (LoadLayerException e1) { |
|
164 |
RasterToolsUtil.messageBoxError("error_loading_layer", tableWrapper.getTable(), e1); |
|
160 | 165 |
} |
161 |
} else { |
|
162 |
getSyncViews().selectPointTool(false); |
|
163 | 166 |
} |
164 |
} |
|
165 | 167 |
|
166 |
//------- |
|
167 |
//Testear |
|
168 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bTest) { |
|
169 |
try { |
|
170 |
appMain.getProcessActions().addTestRasterLayer( |
|
171 |
appMain.getLayer(), |
|
172 |
getDataModel().getAlgorithm(), |
|
173 |
getDataModel().getInterpolationMethod(), |
|
174 |
getDataModel().getDegree(), |
|
175 |
getDataModel().getOutFile(), |
|
176 |
getDataModel().getXCellSize(), |
|
177 |
getDataModel().getYCellSize(), |
|
178 |
tableWrapper.getGeoTransformDataResult()); |
|
179 |
} catch (LoadLayerException e1) { |
|
180 |
RasterToolsUtil.messageBoxError("error_loading_layer", tableWrapper.getTable(), e1); |
|
168 |
//------------ |
|
169 |
//Fin del Test |
|
170 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bEndTest) { |
|
171 |
if(appMain != null && appMain.getProcessActions().getLastTestLayer() != null) { |
|
172 |
appMain.getProcessActions().getLastTestLayer().setRemoveRasterFlag(false); |
|
173 |
appMain.getProcessActions().removeTestRasterLayer(); |
|
174 |
} |
|
181 | 175 |
} |
176 |
|
|
177 |
//------------ |
|
178 |
//Salvar a CSV |
|
179 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bSaveToAscii) { |
|
180 |
persistence.exportToCSV(getDataModel().getGCPList(), getDataModel().isAddErrorsCSV()); |
|
181 |
} |
|
182 |
|
|
183 |
//---------------- |
|
184 |
//Cargar desde CSV |
|
185 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bLoadFromAscii) { |
|
186 |
persistence.importFromCSV(getSyncViews(), tableWrapper); |
|
187 |
} |
|
188 |
|
|
189 |
//------------ |
|
190 |
//Salvar a RMF |
|
191 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bSaveToXml) { |
|
192 |
persistence.saveToRMF(getDataModel().getGCPList(), getDataModel().getDataStore()); |
|
193 |
} |
|
194 |
|
|
195 |
//---------------- |
|
196 |
//Cargar desde RMF |
|
197 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bLoadFromXml) { |
|
198 |
persistence.loadFromRMF(getDataModel().getDataStore(), getSyncViews(), tableWrapper); |
|
199 |
} |
|
200 |
|
|
201 |
} finally { |
|
202 |
Georeferencing.enableTableEvent = true; |
|
182 | 203 |
} |
204 |
} |
|
205 |
|
|
206 |
private void selectControlPoints() { |
|
207 |
if(appMain.getGeorefControlPanel().getToolSelectPointButton().isSelected()) { |
|
208 |
if(appMain.getViewRaster().getToolSelected() != GeoreferencingSwingLibrary.SELECT_POINT_TOOL) { |
|
209 |
//No hay filas en la tabla |
|
210 |
if(tableWrapper.getTable().getRowCount() == 0) { |
|
211 |
RasterToolsUtil.messageBoxError("no_rows", tableWrapper.getTable()); |
|
212 |
appMain.getGeorefControlPanel().getToolSelectPointButton().setSelected(false); |
|
213 |
return; |
|
214 |
} |
|
183 | 215 |
|
184 |
//------------ |
|
185 |
//Fin del Test |
|
186 |
if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bEndTest) { |
|
187 |
if(appMain != null && appMain.getProcessActions().getLastTestLayer() != null) { |
|
188 |
appMain.getProcessActions().getLastTestLayer().setRemoveRasterFlag(false); |
|
189 |
appMain.getProcessActions().removeTestRasterLayer(); |
|
216 |
//No hay filas seleccionadas en la tabla |
|
217 |
if(tableWrapper.getTable().getSelectedRows() == null) { |
|
218 |
RasterToolsUtil.messageBoxError("no_rows_selected", tableWrapper.getTable()); |
|
219 |
appMain.getGeorefControlPanel().getToolSelectPointButton().setSelected(false); |
|
220 |
return; |
|
221 |
} |
|
222 |
getSyncViews().selectPointTool(true); |
|
190 | 223 |
} |
224 |
} else { |
|
225 |
getSyncViews().selectPointTool(false); |
|
191 | 226 |
} |
192 |
|
|
193 |
//------------ |
|
194 |
//Salvar a CSV |
|
195 |
// if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bSaveToAscii) { |
|
196 |
// getPersistence().exportToCSV(getPointManager().getPointList(), getOptions().isAddErrorsCSV()); |
|
197 |
// } |
|
198 |
// |
|
199 |
// //---------------- |
|
200 |
// //Cargar desde CSV |
|
201 |
// if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bLoadFromAscii) { |
|
202 |
// setEnableTableEvent(false); |
|
203 |
// getPersistence().importFromCSV(getPointManager(), tablePanel); |
|
204 |
// setEnableTableEvent(true); |
|
205 |
// } |
|
206 |
// |
|
207 |
// //------------ |
|
208 |
// //Salvar a RMF |
|
209 |
// if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bSaveToXml) { |
|
210 |
// getPersistence().saveToRMF(getPointManager().getPointList(), appMain.getLayer().getDataSource()); |
|
211 |
// } |
|
212 |
// |
|
213 |
// //---------------- |
|
214 |
// //Cargar desde RMF |
|
215 |
// if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bLoadFromXml) { |
|
216 |
// setEnableTableEvent(false); |
|
217 |
// getPersistence().loadFromRMF(appMain.getLayer().getDataSource(), getPointManager(), tablePanel); |
|
218 |
// setEnableTableEvent(true); |
|
219 |
// } |
|
220 |
Georeferencing.enableTableEvent = true; |
|
221 | 227 |
} |
222 | 228 |
|
223 | 229 |
/** |
... | ... | |
262 | 268 |
if(getDataModel().getAlgorithm() == Georeferencing.AFFINE) { |
263 | 269 |
try { |
264 | 270 |
appMain.getProcessActions().addTestRasterLayer( |
265 |
appMain.getLayer(),
|
|
271 |
getDataModel().getDataStore(),
|
|
266 | 272 |
getDataModel().getAlgorithm(), |
267 | 273 |
getDataModel().getInterpolationMethod(), |
268 | 274 |
getDataModel().getDegree(), |
... | ... | |
315 | 321 |
if(!Georeferencing.enableTableEvent) |
316 | 322 |
return; |
317 | 323 |
Georeferencing.enableTableEvent = false; |
318 |
//----------------------------------- |
|
319 |
//Inserci?n de nueva fila en la tabla |
|
320 |
if(e.getEvent() == PagedTableEvent.EVENT_ADD_ENTRY) { |
|
321 |
long id = getSyncViews().addPoint(new Point2D.Double(0, 0), new Point2D.Double(0, 0)); |
|
322 |
tableWrapper.initializeRow(e.getRows()[0], id); |
|
323 |
getSyncViews().calcPointsNumeration(); |
|
324 |
|
|
325 |
//Activamos la herramienta de pinchar punto en la vista al a?adir punto |
|
326 |
appMain.getGeorefControlPanel().getToolSelectPointButton().setSelected(true); |
|
327 |
getSyncViews().selectPointTool(true); |
|
328 | 324 |
|
329 |
newPointCreated = true; |
|
330 |
} |
|
325 |
try { |
|
326 |
//----------------------------------- |
|
327 |
//Inserci?n de nueva fila en la tabla |
|
328 |
if(e.getEvent() == PagedTableEvent.EVENT_ADD_ENTRY) { |
|
329 |
long id = getSyncViews().addPoint(new Point2D.Double(0, 0), new Point2D.Double(0, 0)); |
|
330 |
tableWrapper.initializeRow(e.getRows()[0], id); |
|
331 |
getSyncViews().calcPointsNumeration(); |
|
331 | 332 |
|
332 |
//----------------------------- |
|
333 |
//Eliminado de fila de la tabla |
|
334 |
if(e.getEvent() == PagedTableEvent.EVENT_REMOVE_ENTRY) { |
|
335 |
for (int i = 0; i >= e.getRows().length; i--) |
|
336 |
appMain.getSyncViews().removePoint(e.getRows()[i]); |
|
337 |
getSyncViews().calcPointsNumeration(); |
|
338 |
tableWrapper.updateErrors(); |
|
339 |
} |
|
333 |
//Activamos la herramienta de pinchar punto en la vista al a?adir punto |
|
334 |
appMain.getGeorefControlPanel().getToolSelectPointButton().setSelected(true); |
|
335 |
getSyncViews().selectPointTool(true); |
|
340 | 336 |
|
341 |
//------------------------------------- |
|
342 |
//Actualizaci?n de una fila de la tabla |
|
343 |
if(e.getEvent() == PagedTableEvent.EVENT_MODIFY_ENTRY) { |
|
344 |
getSyncViews().calcPointsNumeration(); |
|
345 |
//Revisamos el flag de activo de cada punto poniendo el valor que pone en la entrada de la tabla |
|
346 |
for (int i = 0; i < tableWrapper.getTable().getRowCount(); i++) { |
|
347 |
boolean active = ((Boolean) tableWrapper.getTable().getValueAt(i, 0)).booleanValue(); |
|
348 |
int position = appMain.getSyncViews().getPointPositionByNumber(i); |
|
349 |
if (position < 0) |
|
350 |
return; |
|
351 |
GeoPoint pt = getDataModel().getGCPList().getGeoPoint(position); |
|
352 |
pt.setActive(active); |
|
353 |
getSyncViews().setVisiblePoint(active, position); |
|
337 |
newPointCreated = true; |
|
338 |
} |
|
354 | 339 |
|
355 |
//Para la funcionalidad de cambio de coordenadas desde la tabla: reasignamos el valor |
|
356 |
//de las coordenadas por si han cambiado estas |
|
357 |
double[] values = tableWrapper.getCoordinates(i); |
|
340 |
//----------------------------- |
|
341 |
//Eliminado de fila de la tabla |
|
342 |
if(e.getEvent() == PagedTableEvent.EVENT_REMOVE_ENTRY) { |
|
343 |
for (int i = 0; i >= e.getRows().length; i--) |
|
344 |
appMain.getSyncViews().removePoint(e.getRows()[i]); |
|
345 |
getSyncViews().calcPointsNumeration(); |
|
346 |
tableWrapper.updateErrors(); |
|
347 |
} |
|
358 | 348 |
|
359 |
getSyncViews().setCoordinates(position, values[0], values[1], values[2], values[3]); |
|
349 |
//----------------------------- |
|
350 |
//Eliminado todas las filas |
|
351 |
if(e.getEvent() == PagedTableEvent.EVENT_REMOVE_ALL) { |
|
352 |
getSyncViews().removeAllPoints(); |
|
360 | 353 |
} |
361 |
tableWrapper.updateErrors(); |
|
354 |
|
|
355 |
//------------------------------------- |
|
356 |
//Actualizaci?n de una fila de la tabla |
|
357 |
if(e.getEvent() == PagedTableEvent.EVENT_MODIFY_ENTRY) { |
|
358 |
getSyncViews().calcPointsNumeration(); |
|
359 |
//Revisamos el flag de activo de cada punto poniendo el valor que pone en la entrada de la tabla |
|
360 |
for (int i = 0; i < tableWrapper.getTable().getRowCount(); i++) { |
|
361 |
boolean active = ((Boolean) tableWrapper.getTable().getValueAt(i, 0)).booleanValue(); |
|
362 |
int position = appMain.getSyncViews().getPointPositionByNumber(i); |
|
363 |
if (position < 0) |
|
364 |
return; |
|
365 |
GeoPoint pt = getDataModel().getGCPList().getGeoPoint(position); |
|
366 |
pt.setActive(active); |
|
367 |
getSyncViews().setVisiblePoint(active, position); |
|
368 |
|
|
369 |
//Para la funcionalidad de cambio de coordenadas desde la tabla: reasignamos el valor |
|
370 |
//de las coordenadas por si han cambiado estas |
|
371 |
double[] values = tableWrapper.getCoordinates(i); |
|
372 |
|
|
373 |
getSyncViews().setCoordinates(position, values[0], values[1], values[2], values[3]); |
|
374 |
} |
|
375 |
tableWrapper.updateErrors(); |
|
376 |
} |
|
377 |
|
|
378 |
} finally { |
|
379 |
Georeferencing.enableTableEvent = true; |
|
362 | 380 |
} |
363 |
|
|
364 |
Georeferencing.enableTableEvent = true; |
|
365 | 381 |
} |
366 | 382 |
|
367 | 383 |
/** |
... | ... | |
369 | 385 |
*/ |
370 | 386 |
public void actionButtonPressed(ButtonsPanelEvent e) { |
371 | 387 |
Georeferencing.enableTableEvent = false; |
372 |
|
|
373 |
//--------------------------------------------------- |
|
374 |
//Bot?n de Aplicar y Aceptar en el cuadro de opciones |
|
375 |
if (e.getButton() == ButtonsPanel.BUTTON_APPLY || e.getButton() == ButtonsPanel.BUTTON_ACCEPT) { |
|
376 |
if(optionsDialog != null) { |
|
377 | 388 |
|
378 |
//Asignamos las propiedades seleccionadas |
|
379 |
getDataModel().setAlgorithm(optionsDialog.getAlgorithm()); |
|
380 |
getDataModel().setBackGroundColor(optionsDialog.getBackGroundColor()); |
|
381 |
getDataModel().setTextColor(optionsDialog.getTextColor()); |
|
382 |
getDataModel().setAddErrorsCSV(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getAddErrorsCSVCheck().isSelected()); |
|
383 |
getDataModel().setCenterView(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getCenterViewCheck().isSelected()); |
|
384 |
getDataModel().setShowNumber(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getShowNumberCheck().isSelected()); |
|
385 |
getDataModel().setInterpolationMethod(optionsDialog.getInterpolationMethod()); |
|
386 |
getDataModel().setOutFile(optionsDialog.getOptionsPanel(this).getOutFileSelectionPanel().getOutFile()); |
|
389 |
try { |
|
390 |
//--------------------------------------------------- |
|
391 |
//Bot?n de Aplicar y Aceptar en el cuadro de opciones |
|
392 |
if (e.getButton() == ButtonsPanel.BUTTON_APPLY || e.getButton() == ButtonsPanel.BUTTON_ACCEPT) { |
|
393 |
if(optionsDialog != null) { |
|
387 | 394 |
|
388 |
//Recalculamos los errores si ha cambiado el grado |
|
389 |
if(optionsDialog.getDegree() != getDataModel().getDegree()) { |
|
390 |
getDataModel().setDegree(optionsDialog.getDegree()); |
|
391 |
tableWrapper.updateErrors(); |
|
392 |
} |
|
395 |
//Asignamos las propiedades seleccionadas |
|
396 |
getDataModel().setAlgorithm(optionsDialog.getAlgorithm()); |
|
397 |
getDataModel().setBackGroundColor(optionsDialog.getBackGroundColor()); |
|
398 |
getDataModel().setTextColor(optionsDialog.getTextColor()); |
|
399 |
getDataModel().setAddErrorsCSV(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getAddErrorsCSVCheck().isSelected()); |
|
400 |
getDataModel().setCenterView(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getCenterViewCheck().isSelected()); |
|
401 |
getDataModel().setShowNumber(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getShowNumberCheck().isSelected()); |
|
402 |
getDataModel().setInterpolationMethod(optionsDialog.getInterpolationMethod()); |
|
403 |
getDataModel().setOutFile(optionsDialog.getOptionsPanel(this).getOutFileSelectionPanel().getOutFile()); |
|
393 | 404 |
|
394 |
try { |
|
395 |
getDataModel().setThreshold(optionsDialog.getThresholdError()); |
|
396 |
getDataModel().setXCellSize(optionsDialog.getOptionsPanel(this).getCellSizePanel().getXCellSizeValue()); |
|
397 |
getDataModel().setYCellSize(optionsDialog.getOptionsPanel(this).getCellSizePanel().getYCellSizeValue()); |
|
398 |
} catch(NumberFormatException exc) { |
|
399 |
RasterToolsUtil.messageBoxError("error_numeric_format", null, exc); |
|
400 |
} |
|
405 |
//Recalculamos los errores si ha cambiado el grado |
|
406 |
if(optionsDialog.getDegree() != getDataModel().getDegree()) { |
|
407 |
getDataModel().setDegree(optionsDialog.getDegree()); |
|
408 |
tableWrapper.updateErrors(); |
|
409 |
} |
|
401 | 410 |
|
402 |
getSyncViews().setGraphicsColor(getDataModel().getTextColor()); |
|
403 |
getSyncViews().setBackgroundColor(getDataModel().getBackgroundColor()); |
|
404 |
getSyncViews().setActiveNumberPoint(getDataModel().isShowNumber()); |
|
411 |
try { |
|
412 |
getDataModel().setThreshold(optionsDialog.getThresholdError()); |
|
413 |
getDataModel().setXCellSize(optionsDialog.getOptionsPanel(this).getCellSizePanel().getXCellSizeValue()); |
|
414 |
getDataModel().setYCellSize(optionsDialog.getOptionsPanel(this).getCellSizePanel().getYCellSizeValue()); |
|
415 |
} catch(NumberFormatException exc) { |
|
416 |
RasterToolsUtil.messageBoxError("error_numeric_format", null, exc); |
|
417 |
} |
|
405 | 418 |
|
419 |
getSyncViews().setGraphicsColor(getDataModel().getTextColor()); |
|
420 |
getSyncViews().setBackgroundColor(getDataModel().getBackgroundColor()); |
|
421 |
getSyncViews().setActiveNumberPoint(getDataModel().isShowNumber()); |
|
422 |
|
|
423 |
} |
|
406 | 424 |
} |
407 |
} |
|
408 | 425 |
|
409 |
//-------------------------------------------------- |
|
410 |
// Bot?n de Cerrar y Aceptar en el cuadro de opciones |
|
411 |
if (e.getButton() == ButtonsPanel.BUTTON_CANCEL || e.getButton() == ButtonsPanel.BUTTON_ACCEPT) { |
|
412 |
if(optionsDialog != null) { |
|
413 |
fManager.closeWindow(optionsDialog); |
|
426 |
//-------------------------------------------------- |
|
427 |
// Bot?n de Cerrar y Aceptar en el cuadro de opciones |
|
428 |
if (e.getButton() == ButtonsPanel.BUTTON_CANCEL || e.getButton() == ButtonsPanel.BUTTON_ACCEPT) { |
|
429 |
if(optionsDialog != null) { |
|
430 |
System.out.println("---Close"); |
|
431 |
fManager.closeWindow(optionsDialog); |
|
432 |
} |
|
414 | 433 |
} |
434 |
|
|
435 |
} finally { |
|
436 |
Georeferencing.enableTableEvent = true; |
|
415 | 437 |
} |
416 |
|
|
417 |
Georeferencing.enableTableEvent = true; |
|
418 | 438 |
} |
419 |
|
|
420 |
|
|
421 |
|
|
422 |
/** |
|
423 |
* Obtiene una instancia del objeto que gestiona la |
|
424 |
* persistencia en disco de los puntos de control |
|
425 |
* @return GeoPointsPersistence |
|
426 |
*/ |
|
427 |
/*public GeoPointsPersistence getPersistence() { |
|
428 |
if(persistence == null) |
|
429 |
persistence = new GeoPointsPersistence(); |
|
430 |
return persistence; |
|
431 |
}*/ |
|
432 | 439 |
} |
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 | ||
---|---|---|
59 | 59 |
Messages.getText("imagex"), |
60 | 60 |
Messages.getText("imagey"), |
61 | 61 |
"Error X", "Error Y", "RMS", ""}; |
62 |
int[] columnSizes = {40, 37, -1, -1, -1, -1, -1, -1, -1, 0};
|
|
62 |
int[] columnSizes = {30, 30, -1, -1, -1, -1, -1, -1, -1, 0};
|
|
63 | 63 |
|
64 | 64 |
GCPModel model = new GCPModel(columnNames); |
65 | 65 |
ModelLoader loader = manager.createModelLoader(model); |
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/GeoPointsPersistence.java | ||
---|---|---|
1 |
package org.gvsig.raster.georeferencing.app.georeferencingclient; |
|
2 |
|
|
3 |
import java.awt.geom.Point2D; |
|
4 |
import java.io.BufferedReader; |
|
5 |
import java.io.BufferedWriter; |
|
6 |
import java.io.File; |
|
7 |
import java.io.FileInputStream; |
|
8 |
import java.io.FileNotFoundException; |
|
9 |
import java.io.FileOutputStream; |
|
10 |
import java.io.IOException; |
|
11 |
import java.io.InputStreamReader; |
|
12 |
import java.io.OutputStreamWriter; |
|
13 |
|
|
14 |
import javax.swing.JFileChooser; |
|
15 |
|
|
16 |
import org.gvsig.fmap.dal.coverage.datastruct.GeoPoint; |
|
17 |
import org.gvsig.fmap.dal.coverage.datastruct.GeoPointList; |
|
18 |
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException; |
|
19 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
|
20 |
import org.gvsig.raster.georeferencing.swing.GCPList; |
|
21 |
import org.gvsig.raster.georeferencing.swing.impl.GeoreferencingSwingImplLibrary; |
|
22 |
import org.gvsig.raster.georeferencing.swing.view.SynchronizedViews; |
|
23 |
import org.gvsig.raster.tools.app.basic.RasterToolsUtil; |
|
24 |
import org.gvsig.raster.util.ExtendedFileFilter; |
|
25 |
|
|
26 |
|
|
27 |
/** |
|
28 |
* Operaciones de lectura y escritura en disco de puntos de control. |
|
29 |
* |
|
30 |
* 26/12/2007 |
|
31 |
* @author Nacho Brodin nachobrodin@gmail.com |
|
32 |
*/ |
|
33 |
public class GeoPointsPersistence { |
|
34 |
|
|
35 |
/** |
|
36 |
* Salva a rmf la lista de puntos |
|
37 |
* @param pointList |
|
38 |
* @param parent |
|
39 |
* @param dataset |
|
40 |
*/ |
|
41 |
public void saveToRMF(GCPList pointList, RasterDataStore store) { |
|
42 |
if (!RasterToolsUtil.messageBoxYesOrNot("sobreescribir_puntos", null)) |
|
43 |
return; |
|
44 |
|
|
45 |
GeoPointList geoPointList = pointList.getGeoPointList(); |
|
46 |
try { |
|
47 |
store.setGeoPointList(geoPointList); |
|
48 |
store.saveGeoPointListToRmf(geoPointList); |
|
49 |
} catch (RmfSerializerException e) { |
|
50 |
RasterToolsUtil.messageBoxError("error_salvando_rmf", null, e); |
|
51 |
} |
|
52 |
} |
|
53 |
|
|
54 |
/** |
|
55 |
* Carga desde el rmf asociado los puntos de control guardados si los tiene |
|
56 |
* @param pointList |
|
57 |
* @param parent |
|
58 |
* @param dataset |
|
59 |
*/ |
|
60 |
public void loadFromRMF(RasterDataStore store, SynchronizedViews syncViews, TableWrapper table) { |
|
61 |
if (!RasterToolsUtil.messageBoxYesOrNot("eliminar_puntos", null)) |
|
62 |
return; |
|
63 |
|
|
64 |
// Eliminamos los puntos existentes |
|
65 |
syncViews.removeAllPoints(); |
|
66 |
table.getTable().removeAllRows(); |
|
67 |
|
|
68 |
// Cargamos los puntos le?dos del RMF |
|
69 |
GeoPointList pointList = store.getGeoPointList(); |
|
70 |
if(pointList == null) { |
|
71 |
RasterToolsUtil.messageBoxInfo("no_points_to_load", null); |
|
72 |
return; |
|
73 |
} |
|
74 |
|
|
75 |
for (int i = 0; i < pointList.size(); i++) { |
|
76 |
GeoPoint point = pointList.get(i); |
|
77 |
long id = syncViews.addPoint(point.getMapPoint(), point.getPixelPoint()); |
|
78 |
table.getTable().addRow(new Object[]{ |
|
79 |
true, i, |
|
80 |
point.getMapPoint().getX(), |
|
81 |
point.getMapPoint().getY(), |
|
82 |
point.getPixelPoint().getX(), |
|
83 |
point.getPixelPoint().getY(), |
|
84 |
0, 0, 0, id}); |
|
85 |
} |
|
86 |
syncViews.calcPointsNumeration(); |
|
87 |
table.updateErrors(); |
|
88 |
} |
|
89 |
|
|
90 |
/** |
|
91 |
* Funci?n que se ejecuta al pulsar el bot?n de export a ascii |
|
92 |
*/ |
|
93 |
public void exportToCSV(GCPList pointList, boolean error) { |
|
94 |
JFileChooser chooser = new JFileChooser(); |
|
95 |
chooser.setDialogTitle(RasterToolsUtil.getText(this, "seleccionar_fichero")); |
|
96 |
|
|
97 |
int returnVal = chooser.showSaveDialog(null); |
|
98 |
if(returnVal == JFileChooser.APPROVE_OPTION){ |
|
99 |
String fName = chooser.getSelectedFile().toString(); |
|
100 |
if(!fName.endsWith(".csv")) |
|
101 |
fName = fName + ".csv"; |
|
102 |
saveCSVPointList(fName, pointList, error); |
|
103 |
} |
|
104 |
} |
|
105 |
|
|
106 |
/** |
|
107 |
* Funci?n que se ejecuta al pulsar el bot?n de importar desde CSV |
|
108 |
*/ |
|
109 |
public void importFromCSV(SynchronizedViews syncViews, TableWrapper table) { |
|
110 |
JFileChooser chooser = new JFileChooser(); |
|
111 |
chooser.setDialogTitle(RasterToolsUtil.getText(this, "seleccionar_fichero")); |
|
112 |
ExtendedFileFilter fileFilter = null; |
|
113 |
|
|
114 |
fileFilter = new ExtendedFileFilter(); |
|
115 |
fileFilter.addExtension("csv"); |
|
116 |
fileFilter.setDescription("CSV File"); |
|
117 |
|
|
118 |
chooser.addChoosableFileFilter(fileFilter); |
|
119 |
|
|
120 |
if (fileFilter != null) |
|
121 |
chooser.setFileFilter(fileFilter); |
|
122 |
|
|
123 |
int returnVal = chooser.showOpenDialog(null); |
|
124 |
if (returnVal == JFileChooser.APPROVE_OPTION) { |
|
125 |
File f = chooser.getSelectedFile(); |
|
126 |
if(!f.exists()) { |
|
127 |
RasterToolsUtil.messageBoxError("error_file_not_found", null); |
|
128 |
return; |
|
129 |
} |
|
130 |
if(!RasterToolsUtil.messageBoxYesOrNot("eliminar_puntos", null)) |
|
131 |
return; |
|
132 |
loadCSVPointList(f.getAbsolutePath(), syncViews, table); |
|
133 |
table.updateErrors(); |
|
134 |
} |
|
135 |
} |
|
136 |
|
|
137 |
/** |
|
138 |
* Crea el fichero Ascii con la lista de puntos y la salva a disco |
|
139 |
* @param file |
|
140 |
*/ |
|
141 |
public void saveCSVPointList(String file, GCPList pointList, boolean error){ |
|
142 |
try{ |
|
143 |
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file))); |
|
144 |
if(error) |
|
145 |
out.write("\"Pt\",\"X\",\"Y\",\"X'\",\"Y'\",\"ErrX\",\"ErrY\",\"RMS\"\n"); |
|
146 |
else |
|
147 |
out.write("\"Pt\",\"X\",\"Y\",\"X'\",\"Y'\"\n"); |
|
148 |
|
|
149 |
for(int i = 0; i < pointList.size(); i++) { |
|
150 |
GeoPoint geoPoint = pointList.getGeoPoint(i); |
|
151 |
String point = i + "," + |
|
152 |
geoPoint.getPixelPoint().getX() + "," + |
|
153 |
geoPoint.getPixelPoint().getY() + "," + |
|
154 |
geoPoint.getMapPoint().getX() + "," + |
|
155 |
geoPoint.getMapPoint().getY(); |
|
156 |
String errorTxt = ""; |
|
157 |
try{ |
|
158 |
errorTxt = geoPoint.getErrorX() + "," + geoPoint.getErrorY() + "," + geoPoint.getRms(); |
|
159 |
if(error) |
|
160 |
out.write(point + "," + errorTxt + "\n"); |
|
161 |
else |
|
162 |
out.write(point + "\n"); |
|
163 |
}catch(ArrayIndexOutOfBoundsException ex){ |
|
164 |
out.write(point + "\n"); |
|
165 |
} |
|
166 |
} |
|
167 |
out.close(); |
|
168 |
}catch(FileNotFoundException ex){ |
|
169 |
//No salvamos el csv |
|
170 |
}catch(IOException ex){ |
|
171 |
//No salvamos el csv |
|
172 |
} |
|
173 |
} |
|
174 |
|
|
175 |
/** |
|
176 |
* Crea la lista de puntos a partir de un fichero CSV |
|
177 |
* @param file |
|
178 |
*/ |
|
179 |
private void loadCSVPointList(String file, SynchronizedViews syncViews, TableWrapper tableWrapper){ |
|
180 |
try{ |
|
181 |
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file))); |
|
182 |
String line = in.readLine(); |
|
183 |
int nPoint = 0; |
|
184 |
while(line != null) { |
|
185 |
if(nPoint == 0) { |
|
186 |
if( !line.equals("\"Pt\",\"X\",\"Y\",\"X'\",\"Y'\",\"ErrX\",\"ErrY\",\"RMS\"") && |
|
187 |
!line.equals("\"Pt\",\"X\",\"Y\",\"X'\",\"Y'\"") && |
|
188 |
!line.equals("\"Pt\",\"X\",\"Y\",\"X'\",\"Y'\",\"Z\",\"ErrX\",\"ErrY\",\"RMS\"") && |
|
189 |
!line.equals("\"Pt\",\"X\",\"Y\",\"X'\",\"Y'\",\"Z\"")) { |
|
190 |
GeoreferencingSwingImplLibrary.messageBoxError("error_point_file", null); |
|
191 |
return; |
|
192 |
} else { |
|
193 |
syncViews.removeAllPoints(); |
|
194 |
tableWrapper.getTable().removeAllRows(); |
|
195 |
} |
|
196 |
} else { |
|
197 |
double x = 0D, y = 0D, xx = 0D, yy = 0D; |
|
198 |
String[] tokens = line.split(","); |
|
199 |
for(int tok = 0; tok < tokens.length; tok++){ |
|
200 |
try{ |
|
201 |
if(tok == 1) |
|
202 |
x = Double.parseDouble(tokens[tok]); |
|
203 |
if(tok == 2) |
|
204 |
y = Double.parseDouble(tokens[tok]); |
|
205 |
if(tok == 3) |
|
206 |
xx = Double.parseDouble(tokens[tok]); |
|
207 |
if(tok == 4) |
|
208 |
yy = Double.parseDouble(tokens[tok]); |
|
209 |
}catch(NumberFormatException ex){ |
|
210 |
break; |
|
211 |
} |
|
212 |
} |
|
213 |
|
|
214 |
if(x == 0 && y == 0 && xx == 0 && yy == 0){ |
|
215 |
line = in.readLine(); |
|
216 |
continue; |
|
217 |
} |
|
218 |
|
|
219 |
long id = syncViews.addPoint(new Point2D.Double(xx, yy), new Point2D.Double(x, y)); |
|
220 |
tableWrapper.getTable().addRow(new Object[]{true, nPoint, xx, yy, x, y, 0, 0, 0, id}); |
|
221 |
} |
|
222 |
nPoint++; |
|
223 |
line = in.readLine(); |
|
224 |
} |
|
225 |
in.close(); |
|
226 |
syncViews.calcPointsNumeration(); |
|
227 |
} catch(FileNotFoundException ex){ |
|
228 |
//No salvamos el csv |
|
229 |
} catch(IOException ex){ |
|
230 |
//No salvamos el csv |
|
231 |
} /*catch(NotInitializeException ex){ |
|
232 |
GeoreferencingSwingImplLibrary.messageBoxError("table_not_initialize", tableWrapper.getTable(), ex); |
|
233 |
}*/ |
|
234 |
} |
|
235 |
} |
|
0 | 236 |
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/layer/GPGraphic.java | ||
---|---|---|
79 | 79 |
* @param pointNumber Numero de punto a mostrar |
80 | 80 |
* @param label Etiqueta del punto |
81 | 81 |
*/ |
82 |
public void draw(Graphics2D g, int pointNumber, String label, int type, CanvasZone canvas) { |
|
82 |
public void draw( |
|
83 |
Graphics2D g, |
|
84 |
int pointNumber, |
|
85 |
String label, |
|
86 |
int type, |
|
87 |
CanvasZone canvas) { |
|
83 | 88 |
switch (type) { |
84 | 89 |
case PIXEL: |
85 | 90 |
Point2D p1 = geoPoint.getPixelPoint(); |
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 | ||
---|---|---|
141 | 141 |
if(buttonsPanel == null) { |
142 | 142 |
buttonsPanel = new JPanel(); |
143 | 143 |
buttonsPanel.setLayout(new GridBagLayout()); |
144 |
//buttonsPanel.setBorder(BorderFactory.createLineBorder(Color.red)); |
|
145 | 144 |
|
146 | 145 |
GridBagConstraints gb = new GridBagConstraints(); |
147 | 146 |
gb.insets = new java.awt.Insets(0, 0, 1, 1); |
... | ... | |
189 | 188 |
|
190 | 189 |
gb.gridy = 0; |
191 | 190 |
gb.gridx = 10; |
192 |
//gb.gridwidth = 4; |
|
193 | 191 |
buttonsPanel.add(getError(), gb); |
194 | 192 |
} |
195 | 193 |
return buttonsPanel; |
... | ... | |
374 | 372 |
|
375 | 373 |
public void componentShown(ComponentEvent e) { |
376 | 374 |
} |
377 |
|
|
378 |
|
|
379 |
//**************************************************** |
|
380 |
//Acceso a los datos de la tabla |
|
381 |
|
|
382 |
/** |
|
383 |
* Obtiene las coordenadas de una fila |
|
384 |
* @param row Fila de la que se quieren obtener las coordenadas |
|
385 |
* @return Array con 4 valores coordenadas real X, coordenada real Y, coordenadas raster X y coordenada raste Y |
|
386 |
*/ |
|
387 |
/*public double[] getCoordinates(int row) { |
|
388 |
double xMap = 0, yMap = 0, xRaster = 0, yRaster = 0; |
|
389 |
boolean numberFormatException = false; |
|
390 |
try { |
|
391 |
Object value = getTable().getModel().getValueAt(row, 2); |
|
392 |
try { |
|
393 |
if(value instanceof Double) |
|
394 |
xMap = ((Double)value).doubleValue(); |
|
395 |
else if(value instanceof String) |
|
396 |
xMap = Double.valueOf(((String)value)).doubleValue(); |
|
397 |
} catch (NumberFormatException ex1) { |
|
398 |
numberFormatException = true; |
|
399 |
} |
|
400 |
|
|
401 |
value = getTable().getModel().getValueAt(row, 3); |
|
402 |
try { |
|
403 |
if(value instanceof Double) |
|
404 |
yMap = ((Double)value).doubleValue(); |
|
405 |
else if(value instanceof String) |
|
406 |
yMap = Double.valueOf(((String)value)).doubleValue(); |
|
407 |
} catch (NumberFormatException ex1) { |
|
408 |
numberFormatException = true; |
|
409 |
} |
|
410 |
|
|
411 |
try { |
|
412 |
value = getTable().getModel().getValueAt(row, 4); |
|
413 |
if(value instanceof Double) |
|
414 |
xRaster = ((Double)value).doubleValue(); |
|
415 |
else if(value instanceof String) |
|
416 |
xRaster = Double.valueOf(((String)value)).doubleValue(); |
|
417 |
} catch (NumberFormatException ex1) { |
|
418 |
numberFormatException = true; |
|
419 |
} |
|
420 |
|
|
421 |
try { |
|
422 |
value = getTable().getModel().getValueAt(row, 5); |
|
423 |
if(value instanceof Double) |
|
424 |
yRaster = ((Double)value).doubleValue(); |
|
425 |
else if(value instanceof String) |
|
426 |
yRaster = Double.valueOf(((String)value)).doubleValue(); |
|
427 |
} catch (NumberFormatException ex1) { |
|
428 |
numberFormatException = true; |
|
429 |
} |
|
430 |
|
|
431 |
//Esto es necesario porque aunque se produzca una excepci?n en la lectura |
|
432 |
//de un valor deben leerse los dem?s campos antes de terminar. |
|
433 |
if(numberFormatException) { |
|
434 |
GeoreferencingSwingImplLibrary.messageBoxError("value_not_valid", table, null); |
|
435 |
try { |
|
436 |
getTable().getModel().setValueAt(new String(xMap + ""), row, 2); |
|
437 |
getTable().getModel().setValueAt(new String(yMap + ""), row, 3); |
|
438 |
getTable().getModel().setValueAt(new String(xRaster + ""), row, 4); |
|
439 |
getTable().getModel().setValueAt(new String(yRaster + ""), row, 5); |
|
440 |
} catch (NotInitializeException e) { |
|
441 |
//Si est? inicializada sino habr?a entrado en la excepci?n de nivel mayor |
|
442 |
} |
|
443 |
} |
|
444 |
|
|
445 |
//return new double[]{xMap, yMap, xRaster, yRaster}; |
|
446 |
} catch (NotInitializeException ex) { |
|
447 |
GeoreferencingSwingImplLibrary.messageBoxError("table_not_initialize", table, null); |
|
448 |
} |
|
449 |
return new double[]{xMap, yMap, xRaster, yRaster}; |
|
450 |
}*/ |
|
451 |
|
|
452 |
/** |
|
453 |
* Asigna un valor al punto en coordenadas raster de la tabla. Es recomendable gastar este y no |
|
454 |
* setValueAt para evitar que se recalculen los errores en cada inserci?n de cada celda. De esta |
|
455 |
* forma al actualiza ambas coordenadas a la vez solo se calcular? el error una vez. |
|
456 |
* @param valueX Valor en X |
|
457 |
* @param valueY Valor en Y |
|
458 |
* @param row Fila a actualizar |
|
459 |
* @param col Columna a actualizar |
|
460 |
*/ |
|
461 |
/*public void updateRasterPoint(Object valueX, Object valueY, int row) { |
|
462 |
try { |
|
463 |
getTable().setValueAt(valueX, row, 4); |
|
464 |
getTable().setValueAt(valueY, row, 5); |
|
465 |
updateErrors(); |
|
466 |
} catch (NotInitializeException e) { |
|
467 |
GeoreferencingSwingImplLibrary.messageBoxError("table_not_initialize", this, e); |
|
468 |
} |
|
469 |
}*/ |
|
470 |
|
|
471 |
/** |
|
472 |
* Asigna un valor al punto en coordenadas del mundo de la tabla. Es recomendable gastar este y no |
|
473 |
* setValueAt para evitar que se recalculen los errores en cada inserci?n de cada celda. De esta |
|
474 |
* forma al actualiza ambas coordenadas a la vez solo se calcular? el error una vez. |
|
475 |
* @param valueX Valor en X |
|
476 |
* @param valueY Valor en Y |
|
477 |
* @param row Fila a actualizar |
|
478 |
* @param col Columna a actualizar |
|
479 |
*/ |
|
480 |
/*public void updateMapPoint(Object valueX, Object valueY, int row) { |
|
481 |
try { |
|
482 |
getTable().setValueAt(valueX, row, 2); |
|
483 |
getTable().setValueAt(valueY, row, 3); |
|
484 |
updateErrors(); |
|
485 |
} catch (NotInitializeException e) { |
|
486 |
GeoreferencingSwingImplLibrary.messageBoxError("table_not_initialize", this, e); |
|
487 |
} |
|
488 |
}*/ |
|
489 |
|
|
490 |
/** |
|
491 |
* Asigna un valor al punto de la tabla. Es recomendable gastar este y no |
|
492 |
* setValueAt para evitar que se recalculen los errores en cada inserci?n de cada celda. De esta |
|
493 |
* forma al actualiza ambas coordenadas a la vez solo se calcular? el error una vez. |
|
494 |
* @param mapX Valor en X en coordenadas del mundo |
|
495 |
* @param mapY Valor en Y en coordenadas del mundo |
|
496 |
* @param pixelX Valor en X en coordenadas del raster |
|
497 |
* @param pixelY Valor en Y en coordenadas del raster |
|
498 |
* @param row Fila a actualizar |
|
499 |
* @param col Columna a actualizar |
|
500 |
*/ |
|
501 |
/*public void updatePoint(Object mapX, Object mapY, Object pixelX, Object pixelY, int row) { |
|
502 |
try { |
|
503 |
getTable().setValueAt(mapX, row, 2); |
|
504 |
getTable().setValueAt(mapY, row, 3); |
|
505 |
getTable().setValueAt(pixelX, row, 4); |
|
506 |
getTable().setValueAt(pixelY, row, 5); |
|
507 |
updateErrors(); |
|
508 |
} catch (NotInitializeException e) { |
|
509 |
GeoreferencingSwingImplLibrary.messageBoxError("table_not_initialize", this, e); |
|
510 |
} |
|
511 |
}*/ |
|
512 |
|
|
513 |
/** |
|
514 |
* Actualiza los errores de toda la tabla. Esta funci?n debe ser llamada cuando ha |
|
515 |
* habido alg?n cambio en los valores de los puntos. |
|
516 |
* @throws NotInitializeException |
|
517 |
*/ |
|
518 |
/*public void updateErrors() { |
|
519 |
if(pointList == null) |
|
520 |
return; |
|
521 |
process.addParam("gpcs", pointList); |
|
522 |
process.addParam("orden", new Integer(selectedDegree)); |
|
523 |
try { |
|
524 |
process.execute(); |
|
525 |
} catch(RuntimeException e) { |
|
526 |
//Matriz singular |
|
527 |
return; |
|
528 |
} catch (ProcessInterruptedException e) { |
|
529 |
} catch (ProcessException e) { |
|
530 |
} |
|
531 |
HashMap<String, Object> map = (HashMap<String, Object>)process.getResult(); |
|
532 |
Geotransformation result = (Geotransformation)map.get("RESULT"); |
|
533 |
if(result == null) |
|
534 |
return; |
|
535 |
|
|
536 |
//Actualizamos los errores de toda la tabla |
|
537 |
try { |
|
538 |
ColorColumnRenderer cr = new ColorColumnRenderer(); |
|
539 |
for (int i = 0; i < pointList.size(); i++) { |
|
540 |
GeoPoint point = pointList.get(i); |
|
541 |
getTable().setValueAt(new Double(point.getErrorX()), point.getNumber(), 6); |
|
542 |
getTable().setValueAt(new Double(point.getErrorY()), point.getNumber(), 7); |
|
543 |
getTable().setValueAt(new Double(point.getRms()), point.getNumber(), 8); |
|
544 |
if (point.getRms() > threshold) |
|
545 |
cr.addRowToColor1(point.getNumber()); |
|
546 |
else |
|
547 |
cr.addRowToColor2(point.getNumber()); |
|
548 |
} |
|
549 |
getTable().getTable().getJTable().getColumnModel().getColumn(8).setCellRenderer(cr); |
|
550 |
getError().setValue(result.getRmsTotal() + ""); |
|
551 |
} catch (NotInitializeException e) { |
|
552 |
GeoreferencingSwingImplLibrary.messageBoxError("table_not_initialize", this, e); |
|
553 |
} |
|
554 |
}*/ |
|
555 |
|
|
556 | 375 |
} |
557 | 376 |
|
558 | 377 |
|
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/launcher/GeorefLauncherDialog.java | ||
---|---|---|
41 | 41 |
public class GeorefLauncherDialog extends JPanel implements GeoreferencingLauncher { |
42 | 42 |
private static final long serialVersionUID = 7362459094802955247L; |
43 | 43 |
private GeorefLauncherPanel geoLauncherPanel = null; |
44 |
private GeoreferencingOptionsDataModel dataModel = null; |
|
45 | 44 |
|
46 | 45 |
private List<String> viewNameList = null; |
47 | 46 |
private int polynomialDegree = 0; |
... | ... | |
57 | 56 |
|
58 | 57 |
BorderLayout bl = new BorderLayout(); |
59 | 58 |
this.setLayout(bl); |
59 |
GeoreferencingOptionsDataModel dataModel = GeoreferencingSwingLocator.getSwingManager().getDataModel(); |
|
60 |
dataModel.reset(); |
|
60 | 61 |
|
61 | 62 |
this.add(getGeorefLauncherPanel(), BorderLayout.CENTER); |
62 | 63 |
} |
... | ... | |
163 | 164 |
return geoLauncherPanel.getCellSizePanel().getYCellSizeValue(); |
164 | 165 |
} |
165 | 166 |
|
166 |
public GeoreferencingOptionsDataModel getDataModel() { |
|
167 |
if(dataModel == null) { |
|
168 |
dataModel = GeoreferencingSwingLocator.getSwingManager().getDataModel(); |
|
169 |
} |
|
167 |
public void buildDataModel() { |
|
168 |
GeoreferencingOptionsDataModel dataModel = GeoreferencingSwingLocator.getSwingManager().getDataModel(); |
|
170 | 169 |
dataModel.setAlgorithm(getAlgorithm()); |
171 | 170 |
dataModel.setDegree(getDegree()); |
172 | 171 |
dataModel.setInterpolationMethod(getInterpolationMethod()); |
... | ... | |
176 | 175 |
dataModel.setType(getType()); |
177 | 176 |
dataModel.setDataStore(getDataStore()); |
178 | 177 |
dataModel.setSelectedView(getSelectedView()); |
179 |
return dataModel; |
|
180 | 178 |
} |
181 | 179 |
|
182 | 180 |
} |
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/option/GCPListImpl.java | ||
---|---|---|
18 | 18 |
private static final long serialVersionUID = 1L; |
19 | 19 |
} |
20 | 20 |
|
21 |
public void buildNewList(GeoPointList geoPointList) { |
|
22 |
long id = System.currentTimeMillis(); |
|
23 |
if(geoPointList != null) { |
|
24 |
pList.clear(); |
|
25 |
for (int i = 0; i < geoPointList.size(); i++) { |
|
26 |
GPGraphic graphicGCP = new GPGraphic(geoPointList.get(i)); |
|
27 |
graphicGCP.setId(id); |
|
28 |
pList.add(graphicGCP); |
|
29 |
id += 1; |
|
30 |
} |
|
31 |
} |
|
32 |
} |
|
33 |
|
|
21 | 34 |
public GeoPoint getGeoPoint(int i) { |
22 | 35 |
return pList.get(i).getGeoPoint(); |
23 | 36 |
} |
... | ... | |
46 | 59 |
pList.remove(i); |
47 | 60 |
} |
48 | 61 |
|
62 |
public void removeAll() { |
|
63 |
for (int i = pList.size() - 1; i >= 0; i--) { |
|
64 |
pList.remove(i); |
|
65 |
} |
|
66 |
} |
|
49 | 67 |
} |
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/option/GeorefOptionsDataModelImpl.java | ||
---|---|---|
52 | 52 |
private String selectedView = null; |
53 | 53 |
private GCPList pointList = null; |
54 | 54 |
|
55 |
public void reset() { |
|
56 |
store = null; |
|
57 |
selectedView = null; |
|
58 |
if(pointList != null) |
|
59 |
pointList.removeAll(); |
|
60 |
} |
|
61 |
|
|
55 | 62 |
/** |
56 | 63 |
* Obtiene el grado del polin?mio |
57 | 64 |
* @return entero con el valor que representa el grado del polin?mio |
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/DefaultGeoreferencingSwingManager.java | ||
---|---|---|
106 | 106 |
SynchronizationViewImpl syncViews = new SynchronizationViewImpl( |
107 | 107 |
getDataModel().getGCPList(), |
108 | 108 |
listener); |
109 |
syncViews.setRequestsManager(viewMan[1], viewMan[0], viewMan[3], viewMan[2]);
|
|
110 |
syncViews.setViews(views[1], views[0], views[3], views[2], table);
|
|
109 |
syncViews.setRequestsManager(viewMan[0], viewMan[1], viewMan[2], viewMan[3]);
|
|
110 |
syncViews.setViews(views[0], views[1], views[2], views[3], table);
|
|
111 | 111 |
return syncViews; |
112 | 112 |
} |
113 | 113 |
|
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/view/synchronize/GCPSynchronizationImpl.java | ||
---|---|---|
85 | 85 |
* @param zMap |
86 | 86 |
*/ |
87 | 87 |
public void setViews( |
88 |
GeoreferencingView vMap, |
|
88 | 89 |
GeoreferencingView vRaster, |
89 |
GeoreferencingView vMap, |
|
90 |
GeoreferencingView zRaster, |
|
91 | 90 |
GeoreferencingView zMap, |
91 |
GeoreferencingView zRaster, |
|
92 | 92 |
PagedTable table) { |
93 | 93 |
this.table = table; |
94 | 94 |
viewRaster = (ViewPanelImpl)vRaster; |
... | ... | |
159 | 159 |
* y redibuja estos en todas las vistas |
160 | 160 |
*/ |
161 | 161 |
public void redrawPoints() { |
162 |
/*if(viewMapGCPs != null) |
|
163 |
viewMapGCPs.recalcMapDrawCoordinates(); |
|
164 |
if(viewRasterGCPs != null) |
|
165 |
viewRasterGCPs.recalcPixelDrawCoordinates(); |
|
166 |
if(viewMapGCPsZoom != null) |
|
167 |
viewMapGCPsZoom.recalcMapDrawCoordinates(); |
|
168 |
if(viewRasterGCPsZoom != null) |
|
169 |
viewRasterGCPsZoom.recalcPixelDrawCoordinates();*/ |
|
170 | 162 |
if(viewRaster != null) |
171 | 163 |
viewRaster.getCanvas().repaint(); |
172 | 164 |
if(viewMap != null) |
... | ... | |
178 | 170 |
} |
179 | 171 |
|
180 | 172 |
/** |
181 |
* Redibuja el canvas de todas las vistas |
|
182 |
*/ |
|
183 |
/*private void repaint() { |
|
184 |
if(viewRaster != null) |
|
185 |
viewRaster.getCanvas().repaint(); |
|
186 |
if(viewMap != null) |
|
187 |
viewMap.getCanvas().repaint(); |
|
188 |
if(zoomMap != null) |
|
189 |
zoomMap.getCanvas().repaint(); |
|
190 |
if(zoomRaster != null) |
|
191 |
zoomRaster.getCanvas().repaint(); |
|
192 |
}*/ |
|
193 |
|
|
194 |
/** |
|
195 | 173 |
* Registra el listener para la herramienta de selecci?n de puntos de control |
196 | 174 |
*/ |
Also available in: Unified diff