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 private String dataStoresBasePath
= "/gis/dataStores";
28 private Session session
;
30 private TreeViewer viewer
;
33 public void createPartControl(Composite parent
) {
34 viewer
= new TreeViewer(parent
, SWT
.MULTI
| SWT
.H_SCROLL
| SWT
.V_SCROLL
);
35 String
[] basePaths
= { dataStoresBasePath
};
36 SimpleNodeContentProvider sncp
= new SimpleNodeContentProvider(session
,
39 viewer
.setContentProvider(sncp
);
40 viewer
.setLabelProvider(new MapsLabelProvider());
41 viewer
.setInput(getViewSite());
42 viewer
.addDoubleClickListener(this);
45 public void doubleClick(DoubleClickEvent event
) {
46 if (!event
.getSelection().isEmpty()) {
47 Object obj
= ((IStructuredSelection
) event
.getSelection())
49 if (obj
instanceof Node
) {
50 Node node
= (Node
) obj
;
52 if (!node
.isNodeType(GisTypes
.GIS_FEATURE_SOURCE
))
54 } catch (RepositoryException e
) {
55 throw new ArgeoException("Cannot check type of " + node
, e
);
57 IEditorPart ed
= getSite().getWorkbenchWindow().getActivePage()
59 if (ed
instanceof DefaultMapEditor
) {
60 ((DefaultMapEditor
) ed
).getMapViewer().addLayer(node
);
61 } else if (ed
instanceof FormEditor
) {
62 IFormPage activePage
= ((FormEditor
) ed
)
63 .getActivePageInstance();
64 if (activePage
instanceof MapFormPage
) {
65 ((MapFormPage
) activePage
).getMapViewer()
76 public void setFocus() {
77 viewer
.getTree().setFocus();
80 public void refresh() {
84 public void setSession(Session session
) {
85 this.session
= session
;
88 private class MapsLabelProvider
extends LabelProvider
{
91 public String
getText(Object element
) {
92 return super.getText(element
);