]> git.argeo.org Git - lgpl/argeo-commons.git/blob - SwingMapViewer.java
dd272b45a695b0f7d4ac908421c8669426b76a53
[lgpl/argeo-commons.git] / SwingMapViewer.java
1 package org.argeo.gis.ui.rcp.swing;
2
3 import java.awt.Color;
4 import java.awt.Frame;
5
6 import javax.jcr.Node;
7
8 import org.argeo.geotools.jcr.GeoJcrMapper;
9 import org.argeo.gis.ui.AbstractMapViewer;
10 import org.eclipse.swt.SWT;
11 import org.eclipse.swt.awt.SWT_AWT;
12 import org.eclipse.swt.widgets.Composite;
13 import org.geotools.data.FeatureSource;
14 import org.geotools.map.DefaultMapContext;
15 import org.geotools.renderer.lite.StreamingRenderer;
16 import org.geotools.swing.JMapPane;
17 import org.opengis.feature.simple.SimpleFeature;
18 import org.opengis.feature.simple.SimpleFeatureType;
19
20 public class SwingMapViewer extends AbstractMapViewer {
21 private Composite embedded;
22 private JMapPane mapPane;
23 private VersatileZoomTool versatileZoomTool;
24
25 public SwingMapViewer(Node context, GeoJcrMapper geoJcrMapper,
26 Composite parent) {
27 super(context, geoJcrMapper);
28
29 embedded = new Composite(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND);
30 Frame frame = SWT_AWT.new_Frame(embedded);
31
32 mapPane = new JMapPane(new StreamingRenderer(), new DefaultMapContext());
33 versatileZoomTool = new VersatileZoomTool();
34 mapPane.setCursorTool(versatileZoomTool);
35 mapPane.setBackground(Color.WHITE);
36
37 frame.add(mapPane);
38
39 setControl(embedded);
40 }
41
42 @Override
43 protected void addFeatureSource(String path,
44 FeatureSource<SimpleFeatureType, SimpleFeature> featureSource) {
45 // TODO: deal with style and rasters
46 mapPane.getMapContext().addLayer(featureSource, null);
47 mapPane.reset();
48 }
49
50 }