/[schmitzm]/branches/2.0-RC1/src/skrueger/geotools/RenderingExecutor.java
ViewVC logotype

Diff of /branches/2.0-RC1/src/skrueger/geotools/RenderingExecutor.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 532 by alfonx, Thu Nov 19 10:39:48 2009 UTC revision 533 by alfonx, Thu Nov 19 17:27:01 2009 UTC
# Line 4  import java.awt.Graphics2D; Line 4  import java.awt.Graphics2D;
4  import java.awt.Rectangle;  import java.awt.Rectangle;
5  import java.awt.geom.AffineTransform;  import java.awt.geom.AffineTransform;
6    
 import javax.swing.SwingUtilities;  
   
7  import org.geotools.geometry.jts.ReferencedEnvelope;  import org.geotools.geometry.jts.ReferencedEnvelope;
8  import org.geotools.renderer.GTRenderer;  import org.geotools.renderer.GTRenderer;
9  import org.geotools.renderer.RenderListener;  import org.geotools.renderer.RenderListener;
10  import org.opengis.feature.simple.SimpleFeature;  import org.opengis.feature.simple.SimpleFeature;
11    
 import schmitzm.swing.SwingUtil;  
   
12  /**  /**
13   * This class is used by {@link XMapPane} to start and stop the rendering a   * This class is used by {@link XMapPane} to start and stop the rendering a
14   * {@link Thread} for rendering.   * {@link Thread} for rendering.
# Line 58  class RenderingExecutor { Line 54  class RenderingExecutor {
54                          renderThread = null;                          renderThread = null;
55    
56                          renderThread = new RenderThread(paintArea, graphics, renderer,                          renderThread = new RenderThread(paintArea, graphics, renderer,
57                                          worldToScreen);                                          worldToScreen, envelope);
58                          renderThread.start();                          renderThread.start();
59    
60                          return true;                          return true;
# Line 80  class RenderingExecutor { Line 76  class RenderingExecutor {
76    
77                  public RenderThread(final Rectangle paintArea,                  public RenderThread(final Rectangle paintArea,
78                                  final Graphics2D graphics, GTRenderer renderer,                                  final Graphics2D graphics, GTRenderer renderer,
79                                  AffineTransform worldToScreen) {                                  AffineTransform worldToScreen, ReferencedEnvelope mapEnv) {
80                          super(new RenderRun(paintArea, graphics, renderer, worldToScreen));                          super(new RenderRun(paintArea, graphics, renderer, mapEnv, worldToScreen));
81                          this.renderer = renderer;                          this.renderer = renderer;
82    
83                          setName("Render" + getName());                          setName("Render" + getName());
# Line 103  class RenderingExecutor { Line 99  class RenderingExecutor {
99                  private final Graphics2D graphics;                  private final Graphics2D graphics;
100                  private final AffineTransform worldToScreen;                  private final AffineTransform worldToScreen;
101                  private final GTRenderer renderer;                  private final GTRenderer renderer;
102                    private final ReferencedEnvelope mapEnv;
103    
104                  public RenderRun(Rectangle paintArea, Graphics2D graphics,                  public RenderRun(Rectangle paintArea, Graphics2D graphics,
105                                  GTRenderer renderer, AffineTransform worldToScreen) {                                  GTRenderer renderer, ReferencedEnvelope mapEnv, AffineTransform worldToScreen) {
106                          this.paintArea = paintArea;                          this.paintArea = paintArea;
107                          this.graphics = graphics;                          this.graphics = graphics;
108                          this.renderer = renderer;                          this.renderer = renderer;
109                            this.mapEnv = mapEnv;
110                          this.worldToScreen = worldToScreen;                          this.worldToScreen = worldToScreen;
111                  }                  }
112    
# Line 128  class RenderingExecutor { Line 126  class RenderingExecutor {
126                                  graphics.clearRect(paintArea.x, paintArea.y, paintArea.width,                                  graphics.clearRect(paintArea.x, paintArea.y, paintArea.width,
127                                                  paintArea.height);                                                  paintArea.height);
128    
129                                  renderer.paint(graphics, paintArea, worldToScreen);                                  renderer.paint(graphics, paintArea, mapEnv, worldToScreen);
130    
131                                  // Invoked later, so when onRenderingCompleted is called, the Thread is not running anymore (#isRunning = false)                                  // Kill the reference to this Thread to #isRunning will def. say false
132                                  SwingUtilities.invokeLater(new Runnable() {                                  renderThread = null;
133                                          @Override                                  mapPane.onRenderingCompleted();
134                                          public void run() {                                  
                                                 mapPane.onRenderingCompleted();  
                                         };  
                                 });  
135                          } finally {                          } finally {
136                                  renderer.removeRenderListener(this);                                  renderer.removeRenderListener(this);
137                          }                          }
# Line 144  class RenderingExecutor { Line 139  class RenderingExecutor {
139    
140                  @Override                  @Override
141                  public void errorOccurred(Exception e) {                  public void errorOccurred(Exception e) {
                         // System.out.println("rendering error");  
142                          mapPane.onRenderingFailed(e);                          mapPane.onRenderingFailed(e);
143                  }                  }
144    

Legend:
Removed from v.532  
changed lines
  Added in v.533

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26