]>
git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.app.ui/src/org/argeo/app/ui/openlayers/OverviewMap.java
1 package org
.argeo
.app
.ui
.openlayers
;
6 import javax
.jcr
.RepositoryException
;
7 import javax
.jcr
.observation
.Event
;
8 import javax
.jcr
.observation
.EventIterator
;
9 import javax
.jcr
.observation
.EventListener
;
10 import javax
.jcr
.query
.Query
;
12 import org
.argeo
.app
.api
.EntityType
;
13 import org
.argeo
.cms
.swt
.CmsSwtUtils
;
14 import org
.argeo
.cms
.ui
.CmsUiProvider
;
15 import org
.argeo
.jcr
.JcrException
;
16 import org
.argeo
.jcr
.JcrUtils
;
17 import org
.eclipse
.swt
.SWT
;
18 import org
.eclipse
.swt
.layout
.GridLayout
;
19 import org
.eclipse
.swt
.widgets
.Composite
;
20 import org
.eclipse
.swt
.widgets
.Control
;
22 /** Displays an overview map. */
23 public class OverviewMap
implements CmsUiProvider
{
26 public Control
createUi(Composite parent
, Node context
) throws RepositoryException
{
27 parent
.setLayout(new GridLayout());
28 refreshUi(parent
, context
);
31 String
[] nodeTypes
= { EntityType
.geopoint
.get() };
32 context
.getSession().getWorkspace().getObservationManager().addEventListener(new EventListener() {
35 public void onEvent(EventIterator events
) {
36 if (!parent
.isDisposed())
37 parent
.getDisplay().asyncExec(() -> {
39 refreshUi(parent
, context
);
40 } catch (RepositoryException e
) {
41 throw new JcrException(e
);
45 }, Event
.PROPERTY_CHANGED
| Event
.NODE_ADDED
| Event
.NODE_REMOVED
| Event
.PROPERTY_ADDED
, "/", true, null,
47 } catch (RepositoryException e
) {
48 throw new IllegalStateException("Cannot add JCR observer", e
);
54 protected void refreshUi(Composite parent
, Node context
) throws RepositoryException
{
55 CmsSwtUtils
.clear(parent
);
56 Query query
= context
.getSession().getWorkspace().getQueryManager()
57 .createQuery("SELECT * FROM [" + EntityType
.geopoint
.get() + "]", Query
.JCR_SQL2
);
58 List
<Node
> geoPoints
= JcrUtils
.nodeIteratorToList(query
.execute().getNodes());
59 OpenLayersMap map
= new OpenLayersMap(parent
, SWT
.NONE
, getClass().getResource("map-osm.html"));
60 map
.setLayoutData(CmsSwtUtils
.fillAll());
62 // apafMap.setZoom(7);
63 // apafMap.setCenter(-2.472, 8.010);
64 map
.addPoints(geoPoints
);