43 |
import java.awt.Graphics2D; |
import java.awt.Graphics2D; |
44 |
import java.awt.LayoutManager; |
import java.awt.LayoutManager; |
45 |
import java.awt.Rectangle; |
import java.awt.Rectangle; |
|
import java.awt.RenderingHints; |
|
46 |
import java.awt.event.InputEvent; |
import java.awt.event.InputEvent; |
47 |
import java.awt.event.MouseEvent; |
import java.awt.event.MouseEvent; |
48 |
import java.awt.event.MouseListener; |
import java.awt.event.MouseListener; |
56 |
import java.util.Map; |
import java.util.Map; |
57 |
|
|
58 |
import javax.swing.JPanel; |
import javax.swing.JPanel; |
|
import javax.swing.LookAndFeel; |
|
59 |
|
|
60 |
import org.apache.log4j.Logger; |
import org.apache.log4j.Logger; |
61 |
import org.geotools.feature.FeatureCollection; |
import org.geotools.feature.FeatureCollection; |
74 |
import org.geotools.renderer.lite.LabelCache; |
import org.geotools.renderer.lite.LabelCache; |
75 |
import org.geotools.renderer.lite.LabelCacheDefault; |
import org.geotools.renderer.lite.LabelCacheDefault; |
76 |
import org.geotools.renderer.lite.StreamingRenderer; |
import org.geotools.renderer.lite.StreamingRenderer; |
77 |
|
import org.geotools.renderer.shape.TransitionShapefileRenderer; |
78 |
import org.geotools.styling.Graphic; |
import org.geotools.styling.Graphic; |
79 |
import org.geotools.styling.LineSymbolizer; |
import org.geotools.styling.LineSymbolizer; |
80 |
import org.geotools.styling.Mark; |
import org.geotools.styling.Mark; |
98 |
MouseMotionListener, HighlightChangeListener, SelectionChangeListener, |
MouseMotionListener, HighlightChangeListener, SelectionChangeListener, |
99 |
PropertyChangeListener, MapLayerListListener { |
PropertyChangeListener, MapLayerListListener { |
100 |
private static Logger LOGGER = Logger.getLogger(JMapPane.class.getName()); |
private static Logger LOGGER = Logger.getLogger(JMapPane.class.getName()); |
101 |
/** |
|
|
* |
|
|
*/ |
|
102 |
private static final long serialVersionUID = -8647971481359690499L; |
private static final long serialVersionUID = -8647971481359690499L; |
103 |
|
|
104 |
public static final int Reset = 0; |
public static final int Reset = 0; |
330 |
|
|
331 |
public void setRenderer(GTRenderer renderer) { |
public void setRenderer(GTRenderer renderer) { |
332 |
Map hints = new HashMap(); |
Map hints = new HashMap(); |
333 |
if (renderer instanceof StreamingRenderer) { |
if (renderer instanceof StreamingRenderer || renderer instanceof TransitionShapefileRenderer) { |
334 |
hints = renderer.getRendererHints(); |
hints = renderer.getRendererHints(); |
335 |
if (hints == null) { |
if (hints == null) { |
336 |
hints = new HashMap(); |
hints = new HashMap(); |
345 |
} |
} |
346 |
|
|
347 |
this.renderer = renderer; |
this.renderer = renderer; |
348 |
this.highlightRenderer = new StreamingRenderer(); |
// this.highlightRenderer = new StreamingRenderer(); |
349 |
this.selectionRenderer = new StreamingRenderer(); |
// this.selectionRenderer = new StreamingRenderer(); |
350 |
|
|
351 |
hints.put("memoryPreloadingEnabled", Boolean.FALSE); |
hints.put("memoryPreloadingEnabled", Boolean.FALSE); |
352 |
highlightRenderer.setRendererHints(hints); |
// highlightRenderer.setRendererHints(hints); |
353 |
selectionRenderer.setRendererHints(hints); |
// selectionRenderer.setRendererHints(hints); |
354 |
|
|
355 |
if (this.context != null) { |
if (this.context != null) { |
356 |
this.renderer.setContext(this.context); |
this.renderer.setContext(this.context); |
531 |
.getCoordinateReferenceSystem()); |
.getCoordinateReferenceSystem()); |
532 |
} |
} |
533 |
|
|
534 |
if (changed) { /* if the map changed then redraw */ |
if (changed ) { /* if the map changed then redraw */ |
535 |
changed = false; |
changed = false; |
536 |
baseImage = new BufferedImage(dr.width, dr.height, |
baseImage = new BufferedImage(dr.width, dr.height, |
537 |
BufferedImage.TYPE_INT_ARGB); |
BufferedImage.TYPE_INT_ARGB); |
544 |
// draw the map |
// draw the map |
545 |
renderer.paint((Graphics2D) ig, dr, mapArea); |
renderer.paint((Graphics2D) ig, dr, mapArea); |
546 |
|
|
547 |
// TODO , nur machen, wenn panning beginnt |
// TODO nur machen, wenn panning beginnt |
548 |
panningImage = new BufferedImage(dr.width, dr.height, |
panningImage = new BufferedImage(dr.width, dr.height, |
549 |
BufferedImage.TYPE_INT_RGB); |
BufferedImage.TYPE_INT_RGB); |
550 |
|
|
684 |
|
|
685 |
try { |
try { |
686 |
String name = layer.getFeatureSource().getSchema() |
String name = layer.getFeatureSource().getSchema() |
687 |
.getDefaultGeometry().getName(); |
.getDefaultGeometry().getLocalName(); |
688 |
|
|
689 |
if (name == "") { |
if (name == "") { |
690 |
name = "the_geom"; |
name = "the_geom"; |
693 |
try { |
try { |
694 |
f = ff.contains(ff.property(name), ff.literal(geometry)); |
f = ff.contains(ff.property(name), ff.literal(geometry)); |
695 |
if (selectionManager != null) { |
if (selectionManager != null) { |
696 |
System.out.println("selection changed"); |
// System.out.println("selection changed"); |
697 |
selectionManager.selectionChanged(this, f); |
selectionManager.selectionChanged(this, f); |
698 |
|
|
699 |
} |
} |
734 |
} |
} |
735 |
|
|
736 |
public void mouseClicked(MouseEvent e) { |
public void mouseClicked(MouseEvent e) { |
737 |
|
if (mapArea == null) return; |
738 |
// System.out.println("before area "+mapArea+"\nw:"+mapArea.getWidth()+" |
// System.out.println("before area "+mapArea+"\nw:"+mapArea.getWidth()+" |
739 |
// h:"+mapArea.getHeight()); |
// h:"+mapArea.getHeight()); |
740 |
Rectangle bounds = this.getBounds(); |
Rectangle bounds = this.getBounds(); |