Introduce People and Environment functional areas.
authorMathieu Baudier <mbaudier@argeo.org>
Tue, 26 Jan 2021 09:37:59 +0000 (10:37 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Tue, 26 Jan 2021 09:37:59 +0000 (10:37 +0100)
26 files changed:
core/.gitignore [new file with mode: 0644]
dep/org.argeo.suite.dep.ui.rap/pom.xml
environment/.gitignore [new file with mode: 0644]
environment/org.argeo.geo.ui/.classpath [new file with mode: 0644]
environment/org.argeo.geo.ui/.gitignore [new file with mode: 0644]
environment/org.argeo.geo.ui/.project [new file with mode: 0644]
environment/org.argeo.geo.ui/META-INF/.gitignore [new file with mode: 0644]
environment/org.argeo.geo.ui/bnd.bnd [new file with mode: 0644]
environment/org.argeo.geo.ui/build.properties [new file with mode: 0644]
environment/org.argeo.geo.ui/pom.xml [new file with mode: 0644]
environment/org.argeo.geo.ui/src/org/argeo/geo/GeoJsonToSvg.java [new file with mode: 0644]
environment/org.argeo.geo.ui/src/org/argeo/support/openlayers/OpenLayersMap.java [new file with mode: 0644]
environment/pom.xml [new file with mode: 0644]
lib/pom.xml
people/.gitignore [new file with mode: 0644]
people/org.argeo.people.ui/.classpath [new file with mode: 0644]
people/org.argeo.people.ui/.gitignore [new file with mode: 0644]
people/org.argeo.people.ui/.project [new file with mode: 0644]
people/org.argeo.people.ui/META-INF/.gitignore [new file with mode: 0644]
people/org.argeo.people.ui/bnd.bnd [new file with mode: 0644]
people/org.argeo.people.ui/build.properties [new file with mode: 0644]
people/org.argeo.people.ui/pom.xml [new file with mode: 0644]
people/org.argeo.people.ui/src/org/argeo/people/ui/SuiteUserUiProvider.java [moved from core/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUserUiProvider.java with 96% similarity]
people/org.argeo.people.ui/src/org/argeo/people/ui/SuiteUsersEntryArea.java [moved from core/org.argeo.suite.ui/src/org/argeo/suite/ui/AdminEntryArea.java with 97% similarity]
people/pom.xml [new file with mode: 0644]
pom.xml

diff --git a/core/.gitignore b/core/.gitignore
new file mode 100644 (file)
index 0000000..b83d222
--- /dev/null
@@ -0,0 +1 @@
+/target/
index 53342ee6970f21e0742182c5e1ec4852c1ffc956..ad52013171f097afefe255c285dd32951a418890 100644 (file)
                        <version>2.1.18-SNAPSHOT</version>
                </dependency>
                
+               <!-- Argeo People -->
+               <dependency>
+                       <groupId>org.argeo.suite</groupId>
+                       <artifactId>org.argeo.people.ui</artifactId>
+                       <version>2.1.18-SNAPSHOT</version>
+               </dependency>
+
                <!-- Argeo Library -->
                <dependency>
                        <groupId>org.argeo.suite</groupId>
                        <version>2.1.18-SNAPSHOT</version>
                </dependency>
 
+               <!-- Argeo Environment -->
+               <dependency>
+                       <groupId>org.argeo.suite</groupId>
+                       <artifactId>org.argeo.geo.ui</artifactId>
+                       <version>2.1.18-SNAPSHOT</version>
+               </dependency>
+
                <!-- Argeo Publishing -->
                <dependency>
                        <groupId>org.argeo.suite</groupId>
diff --git a/environment/.gitignore b/environment/.gitignore
new file mode 100644 (file)
index 0000000..b83d222
--- /dev/null
@@ -0,0 +1 @@
+/target/
diff --git a/environment/org.argeo.geo.ui/.classpath b/environment/org.argeo.geo.ui/.classpath
new file mode 100644 (file)
index 0000000..e801ebf
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+       <classpathentry kind="src" path="src"/>
+       <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/environment/org.argeo.geo.ui/.gitignore b/environment/org.argeo.geo.ui/.gitignore
new file mode 100644 (file)
index 0000000..09e3bc9
--- /dev/null
@@ -0,0 +1,2 @@
+/bin/
+/target/
diff --git a/environment/org.argeo.geo.ui/.project b/environment/org.argeo.geo.ui/.project
new file mode 100644 (file)
index 0000000..7956c34
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.argeo.geo.ui</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.ManifestBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.SchemaBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.pde.PluginNature</nature>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
diff --git a/environment/org.argeo.geo.ui/META-INF/.gitignore b/environment/org.argeo.geo.ui/META-INF/.gitignore
new file mode 100644 (file)
index 0000000..4854a41
--- /dev/null
@@ -0,0 +1 @@
+/MANIFEST.MF
diff --git a/environment/org.argeo.geo.ui/bnd.bnd b/environment/org.argeo.geo.ui/bnd.bnd
new file mode 100644 (file)
index 0000000..30cf566
--- /dev/null
@@ -0,0 +1,9 @@
+Import-Package:\
+javax.jcr.nodetype,\
+org.osgi.service.event,\
+org.argeo.suite.ui,\
+org.argeo.api,\
+org.eclipse.swt,\
+org.eclipse.jface.viewers,\
+org.osgi.framework,\
+*
diff --git a/environment/org.argeo.geo.ui/build.properties b/environment/org.argeo.geo.ui/build.properties
new file mode 100644 (file)
index 0000000..34d2e4d
--- /dev/null
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/environment/org.argeo.geo.ui/pom.xml b/environment/org.argeo.geo.ui/pom.xml
new file mode 100644 (file)
index 0000000..f7d6d2b
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.argeo.suite</groupId>
+               <artifactId>environment</artifactId>
+               <version>2.1.18-SNAPSHOT</version>
+               <relativePath>..</relativePath>
+       </parent>
+       <artifactId>org.argeo.geo.ui</artifactId>
+       <name>Geography UI</name>
+       <packaging>jar</packaging>
+       <dependencies>
+               <dependency>
+                       <groupId>org.argeo.suite</groupId>
+                       <artifactId>org.argeo.suite.ui</artifactId>
+                       <version>2.1.18-SNAPSHOT</version>
+               </dependency>
+
+               <!-- Eclipse E4 -->
+               <dependency>
+                       <groupId>org.argeo.tp</groupId>
+                       <artifactId>argeo-tp-rap-e4</artifactId>
+                       <version>${version.argeo-tp}</version>
+                       <type>pom</type>
+                       <scope>provided</scope>
+               </dependency>
+               <!-- Specific -->
+               <dependency>
+                       <groupId>org.argeo.commons</groupId>
+                       <artifactId>org.argeo.eclipse.ui.rap</artifactId>
+                       <version>${version.argeo-commons}</version>
+                       <scope>provided</scope>
+               </dependency>
+
+       </dependencies>
+</project>
diff --git a/environment/org.argeo.geo.ui/src/org/argeo/geo/GeoJsonToSvg.java b/environment/org.argeo.geo.ui/src/org/argeo/geo/GeoJsonToSvg.java
new file mode 100644 (file)
index 0000000..6a45c0d
--- /dev/null
@@ -0,0 +1,5 @@
+package org.argeo.geo;
+
+public class GeoJsonToSvg {
+
+}
diff --git a/environment/org.argeo.geo.ui/src/org/argeo/support/openlayers/OpenLayersMap.java b/environment/org.argeo.geo.ui/src/org/argeo/support/openlayers/OpenLayersMap.java
new file mode 100644 (file)
index 0000000..622f5a4
--- /dev/null
@@ -0,0 +1,250 @@
+package org.argeo.support.openlayers;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.api.NodeConstants;
+import org.argeo.cms.ui.CmsView;
+import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.entity.EntityNames;
+import org.argeo.entity.EntityType;
+import org.argeo.suite.ui.SuiteEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.browser.BrowserFunction;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+
+/** Display a map. */
+public class OpenLayersMap extends Composite {
+       private static final long serialVersionUID = 1055893020490283622L;
+
+       private final static Log log = LogFactory.getLog(OpenLayersMap.class);
+
+       private Browser browser;
+       private boolean renderCompleted = false;
+
+       private Double centerLng = null, centerLat = null;
+       private Integer zoom = null;
+       private String vectorSource = null;
+       private String gpxSource = null;
+
+       private List<String> geoJsonSources = new ArrayList<>();
+
+       private CmsView cmsView;
+
+       public OpenLayersMap(Composite parent, int style, URL mapHtml) {
+               super(parent, style);
+               cmsView = CmsView.getCmsView(parent);
+               setLayout(new GridLayout());
+
+               browser = new Browser(this, SWT.BORDER);
+               browser.setLayoutData(CmsUiUtils.fillAll());
+               String html;
+               try (InputStream in = mapHtml.openStream()) {
+                       html = IOUtils.toString(in, StandardCharsets.UTF_8);
+               } catch (IOException e) {
+                       throw new RuntimeException(e);
+               }
+               new RenderCompleted(browser, "renderCompleted");
+               new OnFeatureSelect(browser, "onFeatureSelect");
+               new OnFeatureUnselect(browser, "onFeatureUnselect");
+               new OnFeatureClick(browser, "onFeatureClick");
+               browser.setText(html);
+       }
+
+       public void setCenter(Double lng, Double lat) {
+               if (isRenderCompleted())
+                       browser.evaluate("map.getView().setCenter(ol.proj.fromLonLat([" + lng + ", " + lat + "]))");
+               this.centerLat = lat;
+               this.centerLng = lng;
+       }
+
+       public synchronized void setRenderCompleted(boolean renderCompleted) {
+               this.renderCompleted = renderCompleted;
+               notifyAll();
+       }
+
+       public synchronized boolean isRenderCompleted() {
+               return renderCompleted;
+       }
+
+       @Override
+       public synchronized void dispose() {
+               long timeout = 500;
+               long begin = System.currentTimeMillis();
+               while (!isRenderCompleted() && ((System.currentTimeMillis() - begin) < timeout)) {
+                       try {
+                               wait(50);
+                       } catch (InterruptedException e) {
+                               // silent
+                       }
+               }
+               super.dispose();
+       }
+
+       public void setZoom(int zoom) {
+               if (isRenderCompleted())
+                       browser.evaluate("map.getView().setZoom(" + zoom + ")");
+               this.zoom = zoom;
+       }
+
+       public void addPoints(List<Node> geoPoints) throws RepositoryException {
+               boolean first = true;
+               StringBuffer sb = new StringBuffer("new ol.source.Vector({ features: [");
+               for (int i = 0; i < geoPoints.size(); i++) {
+                       Node node = geoPoints.get(i);
+                       if (node.isNodeType(EntityType.geopoint.get()) && !node.isCheckedOut()) {
+                               if (first)
+                                       first = false;
+                               else
+                                       sb.append(",");
+                               Double lng = node.getProperty(EntityNames.GEO_LONG).getDouble();
+                               Double lat = node.getProperty(EntityNames.GEO_LAT).getDouble();
+                               sb.append("new ol.Feature({ geometry:");
+                               sb.append("new ol.geom.Point(ol.proj.fromLonLat([");
+                               sb.append(lng).append(',').append(lat);
+                               sb.append("]))");
+                               sb.append(",path:'").append(node.getPath()).append("'");
+                               sb.append("})");
+                       }
+               }
+               sb.append("] })");
+               this.vectorSource = sb.toString();
+               if (log.isTraceEnabled())
+                       log.trace("Vector source: " + vectorSource);
+               renderVectorSource();
+       }
+
+       protected void renderVectorSource() {
+               if (vectorSource == null)
+                       return;
+               if (isRenderCompleted())
+                       browser.evaluate("map.addLayer(new ol.layer.Vector({ source: " + vectorSource + "}));");
+       }
+
+       public void addPoint(Double lng, Double lat) {
+               this.vectorSource = "new ol.source.Vector({ features: [ new ol.Feature({ geometry:"
+                               + " new ol.geom.Point(ol.proj.fromLonLat([" + lng + ", " + lat + "])) }) ] })";
+//             if (renderCompleted) {
+//                     browser.evaluate(
+//                                     "map.addLayer(new ol.layer.Vector({ source: new ol.source.Vector({ features: [ new ol.Feature({ geometry:"
+//                                                     + " new ol.geom.Point(ol.proj.fromLonLat([" + lng + ", " + lat + "])) }) ] }) }));");
+//             }
+               renderVectorSource();
+       }
+
+       public void addGpx(String path) {
+               this.gpxSource = "new ol.source.Vector({ url: '" + path + "', format: new ol.format.GPX() })";
+               renderGpxSource();
+       }
+
+       protected void renderGpxSource() {
+               if (gpxSource == null)
+                       return;
+               if (isRenderCompleted())
+                       browser.evaluate("map.addLayer(new ol.layer.Vector({ source: " + gpxSource + "}));");
+       }
+
+       public void addGeoJson(String path) {
+               String geoJsonSource = "new ol.source.Vector({ url: '" + path + "', format: new ol.format.GeoJSON() })";
+               geoJsonSources.add(geoJsonSource);
+               renderGeoJsonSources();
+       }
+
+       protected void renderGeoJsonSources() {
+               if (geoJsonSources.isEmpty())
+                       return;
+               if (isRenderCompleted()) {
+                       for (String geoJson : geoJsonSources) {
+                               browser.evaluate("map.addLayer(new ol.layer.Vector({ source: " + geoJson + "}));");
+                       }
+               }
+       }
+
+       private class RenderCompleted extends BrowserFunction {
+
+               RenderCompleted(Browser browser, String name) {
+                       super(browser, name);
+               }
+
+               @Override
+               public Object function(Object[] arguments) {
+                       try {
+                               if (!isRenderCompleted()) {
+                                       setRenderCompleted(true);
+                                       if (zoom != null)
+                                               setZoom(zoom);
+                                       if (centerLat != null && centerLng != null) {
+                                               setCenter(centerLng, centerLat);
+                                       }
+                                       if (vectorSource != null)
+                                               renderVectorSource();
+                                       if (gpxSource != null)
+                                               renderGpxSource();
+                                       if (!geoJsonSources.isEmpty())
+                                               renderGeoJsonSources();
+                               }
+                               return null;
+                       } catch (Exception e) {
+                               log.error("Cannot render map", e);
+                               return null;
+                       }
+               }
+       }
+
+       private class OnFeatureSelect extends BrowserFunction {
+
+               OnFeatureSelect(Browser browser, String name) {
+                       super(browser, name);
+               }
+
+               @Override
+               public Object function(Object[] arguments) {
+                       if (arguments.length == 0)
+                               return null;
+                       String path = arguments[0].toString();
+                       Map<String, Object> properties = new HashMap<>();
+                       properties.put(SuiteEvent.NODE_PATH, path);
+                       properties.put(SuiteEvent.WORKSPACE, NodeConstants.SYS_WORKSPACE);
+                       cmsView.sendEvent(SuiteEvent.refreshPart.topic(), properties);
+                       return null;
+               }
+       }
+
+       private class OnFeatureUnselect extends BrowserFunction {
+
+               OnFeatureUnselect(Browser browser, String name) {
+                       super(browser, name);
+               }
+
+               @Override
+               public Object function(Object[] arguments) {
+                       return null;
+               }
+       }
+
+       private class OnFeatureClick extends BrowserFunction {
+
+               OnFeatureClick(Browser browser, String name) {
+                       super(browser, name);
+               }
+
+               @Override
+               public Object function(Object[] arguments) {
+                       return null;
+               }
+       }
+}
diff --git a/environment/pom.xml b/environment/pom.xml
new file mode 100644 (file)
index 0000000..a8ede8b
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.argeo.suite</groupId>
+               <artifactId>argeo-suite</artifactId>
+               <version>2.1.18-SNAPSHOT</version>
+               <relativePath>..</relativePath>
+       </parent>
+       <artifactId>environment</artifactId>
+       <name>Argeo Environment Components</name>
+       <packaging>pom</packaging>
+       <modules>
+               <module>org.argeo.geo.ui</module>
+       </modules>
+</project>
index df4af653305372f203d53410c684acede709fbd9..987c0c4a346ce44b3f55310c68ed867626613f52 100644 (file)
@@ -15,9 +15,7 @@
                <!-- Dependencies -->
                <version.argeo-tp>2.1.27</version.argeo-tp>
                <version.argeo-tp-extras>2.1.13</version.argeo-tp-extras>
-               <version.argeo-commons>2.1.89</version.argeo-commons>
-               <!-- <version.argeo-connect>2.1.82-SNAPSHOT</version.argeo-connect> -->
-               <!-- <version.argeo-slc>2.1.17-SNAPSHOT</version.argeo-slc> -->
+               <version.argeo-commons>2.1.91-SNAPSHOT</version.argeo-commons>
 
                <argeo.rpm.stagingRepository>/srv/rpmfactory/argeo-osgi-2-gpl/el7</argeo.rpm.stagingRepository>
                <git.rw />
diff --git a/people/.gitignore b/people/.gitignore
new file mode 100644 (file)
index 0000000..b83d222
--- /dev/null
@@ -0,0 +1 @@
+/target/
diff --git a/people/org.argeo.people.ui/.classpath b/people/org.argeo.people.ui/.classpath
new file mode 100644 (file)
index 0000000..e801ebf
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+       <classpathentry kind="src" path="src"/>
+       <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/people/org.argeo.people.ui/.gitignore b/people/org.argeo.people.ui/.gitignore
new file mode 100644 (file)
index 0000000..09e3bc9
--- /dev/null
@@ -0,0 +1,2 @@
+/bin/
+/target/
diff --git a/people/org.argeo.people.ui/.project b/people/org.argeo.people.ui/.project
new file mode 100644 (file)
index 0000000..1df2bce
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.argeo.people.ui</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.ManifestBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.SchemaBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.pde.PluginNature</nature>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
diff --git a/people/org.argeo.people.ui/META-INF/.gitignore b/people/org.argeo.people.ui/META-INF/.gitignore
new file mode 100644 (file)
index 0000000..4854a41
--- /dev/null
@@ -0,0 +1 @@
+/MANIFEST.MF
diff --git a/people/org.argeo.people.ui/bnd.bnd b/people/org.argeo.people.ui/bnd.bnd
new file mode 100644 (file)
index 0000000..50f4364
--- /dev/null
@@ -0,0 +1,10 @@
+Import-Package:\
+javax.jcr.nodetype,\
+org.osgi.service.event,\
+org.argeo.suite.ui,\
+org.argeo.api,\
+org.eclipse.swt,\
+org.eclipse.jface.viewers,\
+org.eclipse.jface.window,\
+org.osgi.framework,\
+*
diff --git a/people/org.argeo.people.ui/build.properties b/people/org.argeo.people.ui/build.properties
new file mode 100644 (file)
index 0000000..34d2e4d
--- /dev/null
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/people/org.argeo.people.ui/pom.xml b/people/org.argeo.people.ui/pom.xml
new file mode 100644 (file)
index 0000000..2167104
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.argeo.suite</groupId>
+               <artifactId>people</artifactId>
+               <version>2.1.18-SNAPSHOT</version>
+               <relativePath>..</relativePath>
+       </parent>
+       <artifactId>org.argeo.people.ui</artifactId>
+       <name>People UI</name>
+       <packaging>jar</packaging>
+       <dependencies>
+               <dependency>
+                       <groupId>org.argeo.suite</groupId>
+                       <artifactId>org.argeo.suite.ui</artifactId>
+                       <version>2.1.18-SNAPSHOT</version>
+               </dependency>
+
+               <!-- Eclipse E4 -->
+               <dependency>
+                       <groupId>org.argeo.tp</groupId>
+                       <artifactId>argeo-tp-rap-e4</artifactId>
+                       <version>${version.argeo-tp}</version>
+                       <type>pom</type>
+                       <scope>provided</scope>
+               </dependency>
+               <!-- Specific -->
+               <dependency>
+                       <groupId>org.argeo.commons</groupId>
+                       <artifactId>org.argeo.eclipse.ui.rap</artifactId>
+                       <version>${version.argeo-commons}</version>
+                       <scope>provided</scope>
+               </dependency>
+
+       </dependencies>
+</project>
similarity index 96%
rename from core/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUserUiProvider.java
rename to people/org.argeo.people.ui/src/org/argeo/people/ui/SuiteUserUiProvider.java
index 04d7a7b7ddcc0b62695c03f1e02f12ef363e206c..aa83cd274a2088353db8a75e36493ce428c29e2d 100644 (file)
@@ -1,4 +1,4 @@
-package org.argeo.suite.ui;
+package org.argeo.people.ui;
 
 import java.util.Arrays;
 import java.util.List;
@@ -12,6 +12,8 @@ import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.cms.ui.viewers.Section;
 import org.argeo.naming.LdapAttrs;
+import org.argeo.suite.ui.SuiteMsg;
+import org.argeo.suite.ui.SuiteUiUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
similarity index 97%
rename from core/org.argeo.suite.ui/src/org/argeo/suite/ui/AdminEntryArea.java
rename to people/org.argeo.people.ui/src/org/argeo/people/ui/SuiteUsersEntryArea.java
index 8c75f226cb75d1b4a9ab37c4e80db3ee14478255..66f3edabcf7fd6b5456bd1d95b0c85cfb48c178d 100644 (file)
@@ -1,4 +1,4 @@
-package org.argeo.suite.ui;
+package org.argeo.people.ui;
 
 import java.util.Set;
 
@@ -14,6 +14,8 @@ import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.eclipse.ui.Selected;
 import org.argeo.naming.LdapAttrs;
 import org.argeo.suite.SuiteRole;
+import org.argeo.suite.ui.SuiteEvent;
+import org.argeo.suite.ui.SuiteIcon;
 import org.argeo.suite.ui.dialogs.NewUserWizard;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.DoubleClickEvent;
@@ -36,7 +38,7 @@ import org.eclipse.swt.widgets.ToolItem;
 import org.osgi.service.useradmin.User;
 
 /** Entry to the admin area. */
-public class AdminEntryArea implements CmsUiProvider {
+public class SuiteUsersEntryArea implements CmsUiProvider {
 
        private CmsUserManager cmsUserManager;
 
diff --git a/people/pom.xml b/people/pom.xml
new file mode 100644 (file)
index 0000000..cd9716e
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.argeo.suite</groupId>
+               <artifactId>argeo-suite</artifactId>
+               <version>2.1.18-SNAPSHOT</version>
+               <relativePath>..</relativePath>
+       </parent>
+       <artifactId>people</artifactId>
+       <name>Argeo People Components</name>
+       <packaging>pom</packaging>
+       <modules>
+               <module>org.argeo.people.ui</module>
+       </modules>
+</project>
diff --git a/pom.xml b/pom.xml
index 36bd192644f29f7ca0bc8ca6b03dab2d27b9fbcb..a43adf14d8a931885075c9da0f40017cc9cb8f6e 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,9 @@
        <modules>
                <module>core</module>
                <!-- Functional areas -->
+               <module>people</module>
                <module>library</module>
+               <module>environment</module>
                <module>publishing</module>
                <module>knowledge</module>