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
.gis
.ui
.editors
.DefaultMapEditor
;
10 import org
.argeo
.gis
.ui
.editors
.MapFormPage
;
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
.forms
.editor
.FormEditor
;
21 import org
.eclipse
.ui
.forms
.editor
.IFormPage
;
22 import org
.eclipse
.ui
.part
.ViewPart
;
24 public class FeatureSourcesView
extends ViewPart
implements
25 IDoubleClickListener
{
26 public final static String ID
= "org.argeo.gis.ui.featureSourcesView";
28 private String dataStoresBasePath
= "/gis/dataStores";
30 private Session session
;
32 private TreeViewer viewer
;
35 public void createPartControl(Composite parent
) {
36 viewer
= new TreeViewer(parent
, SWT
.MULTI
| SWT
.H_SCROLL
| SWT
.V_SCROLL
);
37 String
[] basePaths
= { dataStoresBasePath
};
38 SimpleNodeContentProvider sncp
= new SimpleNodeContentProvider(session
,
41 viewer
.setContentProvider(sncp
);
42 viewer
.setLabelProvider(new MapsLabelProvider());
43 viewer
.setInput(getViewSite());
44 viewer
.addDoubleClickListener(this);
47 public void doubleClick(DoubleClickEvent event
) {
48 if (!event
.getSelection().isEmpty()) {
49 Object obj
= ((IStructuredSelection
) event
.getSelection())
51 if (obj
instanceof Node
) {
52 Node node
= (Node
) obj
;
54 if (!node
.isNodeType(GisTypes
.GIS_FEATURE_SOURCE
))
56 } catch (RepositoryException e
) {
57 throw new ArgeoException("Cannot check type of " + node
, e
);
59 IEditorPart ed
= getSite().getWorkbenchWindow().getActivePage()
61 if (ed
instanceof DefaultMapEditor
) {
62 ((DefaultMapEditor
) ed
).getMapViewer().addLayer(node
);
63 } else if (ed
instanceof FormEditor
) {
64 IFormPage activePage
= ((FormEditor
) ed
)
65 .getActivePageInstance();
66 if (activePage
instanceof MapFormPage
) {
67 ((MapFormPage
) activePage
).getMapViewer()
78 public void setFocus() {
79 viewer
.getTree().setFocus();
82 public void refresh() {
86 public void setSession(Session session
) {
87 this.session
= session
;
90 private class MapsLabelProvider
extends LabelProvider
{
93 public String
getText(Object element
) {
94 return super.getText(element
);