Revision 1725 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
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.datastruct.Extent; |
|
31 | 32 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
32 | 33 |
import org.gvsig.fmap.dal.exception.ReadException; |
33 | 34 |
import org.gvsig.fmap.geom.GeometryLocator; |
... | ... | |
51 | 52 |
public class ViewRasterRequestManager implements IViewRequestManager { |
52 | 53 |
private GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
53 | 54 |
private GeoreferencingView view = null; |
54 |
private RasterDataStore store = null; |
|
55 | 55 |
private Color backGroundColor = null; |
56 | 56 |
private FLyrRaster lyr = null; |
57 | 57 |
|
... | ... | |
60 | 60 |
* @param lyr |
61 | 61 |
*/ |
62 | 62 |
public ViewRasterRequestManager(GeoreferencingView view, RasterDataStore store) { |
63 |
this.store = store; |
|
64 | 63 |
this.view = view; |
65 | 64 |
lyr = new DefaultFLyrRaster(); |
66 | 65 |
try { |
... | ... | |
135 | 134 |
public void setBackGroundColor(Color backGroundColor) { |
136 | 135 |
this.backGroundColor = backGroundColor; |
137 | 136 |
} |
137 |
|
|
138 |
public Rectangle2D getRasterExtent() { |
|
139 |
Extent ex = lyr.getDataStore().getExtent(); |
|
140 |
return ex.toRectangle2D();//new Rectangle2D.Double(0, 0, ex.width(), ex.height()); |
|
141 |
} |
|
138 | 142 |
|
139 | 143 |
public void fullExtent() throws InvalidRequestException { |
140 |
this.initRequest(store.getExtent().toRectangle2D());
|
|
144 |
this.initRequest(getRasterExtent());
|
|
141 | 145 |
} |
142 | 146 |
|
143 |
public Rectangle2D request(Rectangle2D extent) throws InvalidRequestException {
|
|
144 |
if(extent == null)
|
|
145 |
return store.getExtent().toRectangle2D();
|
|
147 |
public Rectangle2D request(Rectangle2D req) throws InvalidRequestException {
|
|
148 |
if(req == null || view.getCanvasWidth() == 0 || view.getCanvasHeight() == 0)
|
|
149 |
return getRasterExtent();
|
|
146 | 150 |
|
147 |
if(store.getExtent() == null) {
|
|
151 |
if(lyr.getDataStore().getExtent() == null) {
|
|
148 | 152 |
GeoreferencingSwingImplLibrary.messageBoxError("error_set_view", this, null); |
149 | 153 |
return null; |
150 | 154 |
} |
... | ... | |
166 | 170 |
ViewPort vp = new ViewPort(); |
167 | 171 |
vp.setImageSize(new Dimension(view.getCanvasWidth(), view.getCanvasHeight())); |
168 | 172 |
Envelope env = geomManager.createEnvelope( |
169 |
extent.getMinX(),
|
|
170 |
extent.getMinY(),
|
|
171 |
extent.getMaxX(),
|
|
172 |
extent.getMaxY(),
|
|
173 |
req.getMinX(),
|
|
174 |
getRasterExtent().getHeight() - req.getMaxY(),
|
|
175 |
req.getMaxX(),
|
|
176 |
getRasterExtent().getHeight() - req.getMinY(),
|
|
173 | 177 |
SUBTYPES.GEOM2D); |
174 | 178 |
//Envelope env = geomManager.createEnvelope(ext.getMin().getX(), ext.getMin().getY(), ext.getMax().getX(), ext.getMax().getY(), SUBTYPES.GEOM2D); |
175 | 179 |
vp.setEnvelope(env); |
... | ... | |
183 | 187 |
} |
184 | 188 |
lyr.draw(initImg, g2d, vp, null, 1); |
185 | 189 |
|
186 |
setDrawParams(initImg, extent);
|
|
190 |
setDrawParams(initImg, req);
|
|
187 | 191 |
|
188 | 192 |
//if(graphicLayer != null) |
189 | 193 |
//graphicLayer.recalcPixelDrawCoordinates(); |
... | ... | |
193 | 197 |
} catch (CreateEnvelopeException e) { |
194 | 198 |
throw new InvalidRequestException("Error asignando el ?rea de la petici?n", e); |
195 | 199 |
} |
196 |
return extent;
|
|
200 |
return req;
|
|
197 | 201 |
} |
198 | 202 |
|
199 | 203 |
public void setGCPsGraphicLayer(IGraphicLayer gl) { |
Also available in: Unified diff