1 package org
.argeo
.gis
.ui
.views
;
4 import javax
.jcr
.RepositoryException
;
5 import javax
.jcr
.Session
;
7 import org
.argeo
.ArgeoException
;
8 import org
.argeo
.eclipse
.ui
.jcr
.SimpleNodeContentProvider
;
9 import org
.argeo
.geotools
.jcr
.GeoJcrMapper
;
10 import org
.argeo
.gis
.ui
.editors
.DefaultMapEditor
;
11 import org
.argeo
.jcr
.gis
.GisTypes
;
12 import org
.eclipse
.jface
.viewers
.DoubleClickEvent
;
13 import org
.eclipse
.jface
.viewers
.IDoubleClickListener
;
14 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
15 import org
.eclipse
.jface
.viewers
.LabelProvider
;
16 import org
.eclipse
.jface
.viewers
.TreeViewer
;
17 import org
.eclipse
.swt
.SWT
;
18 import org
.eclipse
.swt
.widgets
.Composite
;
19 import org
.eclipse
.ui
.IEditorPart
;
20 import org
.eclipse
.ui
.part
.ViewPart
;
21 import org
.geotools
.data
.FeatureSource
;
22 import org
.opengis
.feature
.simple
.SimpleFeature
;
23 import org
.opengis
.feature
.simple
.SimpleFeatureType
;
25 public class FeatureSourcesView
extends ViewPart
implements
26 IDoubleClickListener
{
27 public final static String ID
= "org.argeo.gis.ui.featureSourcesView";
29 private String dataStoresBasePath
= "/gis/dataStores";
31 private Session session
;
33 private TreeViewer viewer
;
35 private GeoJcrMapper geoJcrMapper
;
38 public void createPartControl(Composite parent
) {
39 viewer
= new TreeViewer(parent
, SWT
.MULTI
| SWT
.H_SCROLL
| SWT
.V_SCROLL
);
40 String
[] basePaths
= { dataStoresBasePath
};
41 viewer
.setContentProvider(new SimpleNodeContentProvider(session
,
43 viewer
.setLabelProvider(new MapsLabelProvider());
44 viewer
.setInput(getViewSite());
45 viewer
.addDoubleClickListener(this);
48 public void doubleClick(DoubleClickEvent event
) {
49 if (!event
.getSelection().isEmpty()) {
50 Object obj
= ((IStructuredSelection
) event
.getSelection())
52 if (obj
instanceof Node
) {
53 Node node
= (Node
) obj
;
55 if (!node
.getPrimaryNodeType().isNodeType(
56 GisTypes
.GIS_FEATURE_SOURCE
))
58 } catch (RepositoryException e
) {
59 throw new ArgeoException("Cannot check type of " + node
, e
);
61 FeatureSource
<SimpleFeatureType
, SimpleFeature
> featureSource
= geoJcrMapper
62 .getFeatureSource(node
);
63 IEditorPart ed
= getSite().getWorkbenchWindow().getActivePage()
65 if (ed
instanceof DefaultMapEditor
) {
66 ((DefaultMapEditor
) ed
).addLayer(featureSource
);
74 public void setGeoJcrMapper(GeoJcrMapper geoJcrMapper
) {
75 this.geoJcrMapper
= geoJcrMapper
;
79 public void setFocus() {
80 viewer
.getTree().setFocus();
83 public void refresh() {
87 public void setSession(Session session
) {
88 this.session
= session
;
91 private class MapsLabelProvider
extends LabelProvider
{
94 public String
getText(Object element
) {
95 return super.getText(element
);