<version>2.1.16-SNAPSHOT</version>
</dependency>
- <!-- Default Assembly for supported minimal set of Argeo Suite Features -->
- <dependency>
- <groupId>org.argeo.suite</groupId>
- <artifactId>org.argeo.suite.cms</artifactId>
- <version>2.1.16-SNAPSHOT</version>
- </dependency>
- <!-- <dependency> -->
- <!-- <groupId>org.argeo.suite</groupId> -->
- <!-- <artifactId>org.argeo.suite.web</artifactId> -->
- <!-- <version>0.1.13-SNAPSHOT</version> -->
- <!-- </dependency> -->
-
- <!-- Apps -->
- <!-- <dependency> -->
- <!-- <groupId>org.argeo.suite.library</groupId> -->
- <!-- <artifactId>org.argeo.suite.docs</artifactId> -->
- <!-- <version>2.1.16-SNAPSHOT</version> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>org.argeo.suite.systems</groupId> -->
- <!-- <artifactId>org.argeo.suite.studio</artifactId> -->
- <!-- <version>2.1.16-SNAPSHOT</version> -->
- <!-- </dependency> -->
-
<!-- Base CMS distribution -->
<dependency>
- <groupId>org.argeo.connect</groupId>
- <artifactId>org.argeo.connect.dep.e4.rap</artifactId>
- <version>${version.argeo-connect}</version>
- <type>pom</type>
- </dependency>
- <dependency>
- <groupId>org.argeo.slc</groupId>
- <artifactId>org.argeo.slc.dep.e4.rap</artifactId>
- <version>${version.argeo-slc}</version>
+ <groupId>org.argeo.commons</groupId>
+ <artifactId>org.argeo.dep.cms.e4.rap</artifactId>
+ <version>${version.argeo-commons}</version>
<type>pom</type>
</dependency>
<!-- Argeo TP Extras -->
- <dependency>
- <groupId>org.argeo.tp.payment</groupId>
- <artifactId>com.stripe</artifactId>
- </dependency>
+<!-- <dependency> -->
+<!-- <groupId>org.argeo.tp.payment</groupId> -->
+<!-- <artifactId>com.stripe</artifactId> -->
+<!-- </dependency> -->
</dependencies>
<profiles>
<name>Suite E4 Platform RCP</name>
<packaging>jar</packaging>
<dependencies>
- <!-- Default Assembly for supported minimal set of Argeo Suite Features -->
- <dependency>
- <groupId>org.argeo.suite</groupId>
- <artifactId>org.argeo.suite.cms</artifactId>
- <version>2.1.16-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.argeo.suite</groupId>
- <artifactId>org.argeo.suite.e4</artifactId>
- <version>2.1.16-SNAPSHOT</version>
- </dependency>
- <!-- <dependency> -->
- <!-- <groupId>org.argeo.suite</groupId> -->
- <!-- <artifactId>org.argeo.suite.e4.rap</artifactId> -->
- <!-- <version>0.1.13-SNAPSHOT</version> -->
- <!-- </dependency> -->
-
- <!-- Base Argeo platform distribution -->
- <dependency>
- <groupId>org.argeo.connect</groupId>
- <artifactId>org.argeo.connect.dep.node</artifactId>
- <version>${version.argeo-connect}</version>
- <type>pom</type>
- </dependency>
-
- <!-- Base CMS distribution -->
- <dependency>
- <groupId>org.argeo.connect</groupId>
- <artifactId>org.argeo.theme.argeo2</artifactId>
- <version>${version.argeo-connect}</version>
- </dependency>
-
- <!-- UIs -->
- <dependency>
- <groupId>org.argeo.connect</groupId>
- <artifactId>org.argeo.connect.ui</artifactId>
- <version>${version.argeo-connect}</version>
- </dependency>
- <dependency>
- <groupId>org.argeo.connect</groupId>
- <artifactId>org.argeo.connect.e4</artifactId>
- <version>${version.argeo-connect}</version>
- </dependency>
-
<!-- Base Argeo platform distribution -->
<dependency>
<groupId>org.argeo.slc.rcp</groupId>
</dependency>
<!-- Argeo TP Extras -->
- <dependency>
- <groupId>org.argeo.tp.payment</groupId>
- <artifactId>com.stripe</artifactId>
- </dependency>
+<!-- <dependency> -->
+<!-- <groupId>org.argeo.tp.payment</groupId> -->
+<!-- <artifactId>com.stripe</artifactId> -->
+<!-- </dependency> -->
</dependencies>
<profiles>
+++ /dev/null
-/bin/
-/target/
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.suite.docs</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ds.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-/MANIFEST.MF
+++ /dev/null
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .
+++ /dev/null
-<?xml version="1.0" encoding="ASCII"?>
-<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_bQjNYDAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.application">
- <children xsi:type="basic:TrimmedWindow" xmi:id="_dKIlMDAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.trimmedwindow.main">
- <persistedState key="styleOverride" value="8"/>
- <tags>shellMaximized</tags>
- <tags>auth.cn=org.argeo.office.coworker,ou=roles,ou=node</tags>
- <children xsi:type="basic:PartSashContainer" xmi:id="__LhVQMlHEeic2PiQZ6_KRg" elementId="org.argeo.suite.e4.partsashcontainer.1" selectedElement="_8xaqAP3vEeia6ei0NV0Yrw" horizontal="true">
- <children xsi:type="basic:Part" xmi:id="_xi1k0DDzEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.part.documents" containerData="2000" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.MyFilesView" label="%documents" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/documents.png"/>
- <children xsi:type="basic:PartStack" xmi:id="_8xaqAP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.partstack.entityEditorArea" containerData="8000">
- <tags>entityEditorArea</tags>
- <children xsi:type="basic:Part" xmi:id="_EQBUIP3xEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.part.defaultDashboard" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.DocumentsDashboard" label="" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/dashboard.png" tooltip="%dashboard">
- <toolbar xmi:id="_EQB7MP3xEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.toolbar.0">
- <children xsi:type="menu:HandledToolItem" xmi:id="_MEMbEP3xEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.handledtoolitem.changepassword" label="%changePassword" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/person-logged-in.png" command="_UJVGgOdFEeijEOqYKRSeoQ"/>
- <children xsi:type="menu:HandledToolItem" xmi:id="_Qbo8cP3xEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.handledtoolitem.exit" label="%exit" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/logout.png" command="_lhxJUD4dEeiR-OuUuIB1Aw"/>
- </toolbar>
- </children>
- </children>
- </children>
- </children>
- <handlers xmi:id="_HCDl8D4aEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handler.openPerspective" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.OpenPerspective" command="__usGAD4ZEeiR-OuUuIB1Aw"/>
- <handlers xmi:id="_ipB00DArEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.handler.createEntity" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.handlers.CreateEntity" command="_2Xkt8DApEei3AbO1ldMI0w"/>
- <handlers xmi:id="_9gu00DDgEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handler.1" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.SavePart" command="_1lO94DDgEeiUfOa4rxEKwQ"/>
- <handlers xmi:id="_ADDAkDDhEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handler.2" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.SaveAllParts" command="_5EpEADDgEeiUfOa4rxEKwQ"/>
- <handlers xmi:id="_ZBWe8DDmEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handler.3" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.CloseAllParts" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- <handlers xmi:id="_ClgawD4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handler.0" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.DoNothing" command="__L724D4cEeiR-OuUuIB1Aw"/>
- <handlers xmi:id="_oOUPID4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handler.4" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.CloseWorkbench" command="_lhxJUD4dEeiR-OuUuIB1Aw"/>
- <handlers xmi:id="_FXgZoEJBEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.handler.5" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.handlers.OpenEntity" command="_CSkpAEJBEeij3Nr_iRrJtw"/>
- <handlers xmi:id="_rpYtUFKhEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.handler.7" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.people.e4.handlers.EditJob" command="_SZBRwFKgEeiMg9Tl6PNQtg"/>
- <handlers xmi:id="_NG13YFKpEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.handler.8" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.people.e4.handlers.RemoveEntityReference" command="_ABz60FKpEeiMg9Tl6PNQtg"/>
- <handlers xmi:id="_fXnekELbEeim_a9htzedPA" elementId="org.argeo.suite.e4.handler.6" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.handlers.DeleteSelectedEntity" command="_EvkB4ELbEeim_a9htzedPA"/>
- <handlers xmi:id="_WbOlwOdHEeijEOqYKRSeoQ" elementId="org.argeo.suite.e4.handler.9" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.ChangePassword" command="_UJVGgOdFEeijEOqYKRSeoQ"/>
- <bindingTables xmi:id="_gxEm4DDqEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.bindingtable.0" bindingContext="_Byl7gDD1EeiUfOa4rxEKwQ">
- <bindings xmi:id="_hj9cYDDqEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.keybinding.0" keySequence="CTRL+S" command="_1lO94DDgEeiUfOa4rxEKwQ"/>
- <bindings xmi:id="_pEAGYDDqEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.keybinding.1" keySequence="SHIFT+CTRL+S" command="_5EpEADDgEeiUfOa4rxEKwQ"/>
- </bindingTables>
- <rootContext xmi:id="_Byl7gDD1EeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.bindingcontext.main" name="Main"/>
- <descriptors xmi:id="_GkmucDD0EeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.partdescriptor.file" label="File" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/file.png" allowMultiple="true" category="entityEditorArea" closeable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.FileEditor">
- <toolbar xmi:id="_UaykgP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.toolbar.3">
- <children xsi:type="menu:HandledToolItem" xmi:id="_Up3iUP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.handledtoolitem.closeall" label="%closeAll" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/close-all.png" tooltip="%closeAll" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- </toolbar>
- </descriptors>
- <descriptors xmi:id="_NjQioDD0EeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.partdescriptor.folder" label="Folder" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/folder.png" allowMultiple="true" category="entityEditorArea" closeable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.FolderEditor">
- <menus xsi:type="menu:PopupMenu" xmi:id="_bXH1kGQBEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.popupmenu.folder">
- <children xsi:type="menu:HandledMenuItem" xmi:id="_U4pEUGQDEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.handledmenuitem.test" label="Test" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- <children xsi:type="menu:DynamicMenuContribution" xmi:id="_fVnEYGQBEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.dynamicmenucontribution.0" label="Dynamic" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.FolderMenu"/>
- <children xsi:type="menu:DirectMenuItem" xmi:id="_5-x-kGQFEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.directmenuitem.testdirectmenuitem" label="Test Direct Menu Item" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.TestDirectMenuItem"/>
- </menus>
- <toolbar xmi:id="_TIkHoP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.toolbar.2">
- <children xsi:type="menu:HandledToolItem" xmi:id="_Ttc9YP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.handledtoolitem.closeall" label="%closeAll" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/close-all.png" tooltip="%closeAll" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- </toolbar>
- </descriptors>
- <commands xmi:id="_2Xkt8DApEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.command.createEntity" commandName="New Entity">
- <parameters xmi:id="_GnXrcDAsEei3AbO1ldMI0w" elementId="targetNodeType" name="targetNodeType" optional="false"/>
- </commands>
- <commands xmi:id="_1lO94DDgEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.command.savePart" commandName="Save"/>
- <commands xmi:id="_5EpEADDgEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.command.saveAll" commandName="Save All"/>
- <commands xmi:id="_VdldQDDmEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.command.closeAll" commandName="Close All"/>
- <commands xmi:id="__usGAD4ZEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.command.openPerspective" commandName="Open Perspective">
- <parameters xmi:id="_TgkVED4aEeiR-OuUuIB1Aw" elementId="perspectiveId" name="Perspective Id" optional="false"/>
- </commands>
- <commands xmi:id="__L724D4cEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.command.doNothing" commandName="Do Nothing"/>
- <commands xmi:id="_lhxJUD4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.command.logout" commandName="Log out"/>
- <commands xmi:id="_CSkpAEJBEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.command.openEntity" commandName="Open Entity">
- <parameters xmi:id="_yfo0YEJDEeij3Nr_iRrJtw" elementId="param.jcrId" name="JCR ID" optional="false"/>
- <parameters xmi:id="_2M2F8EJDEeij3Nr_iRrJtw" elementId="param.openForEdit" name="Open for edit"/>
- </commands>
- <commands xmi:id="_EvkB4ELbEeim_a9htzedPA" elementId="org.argeo.suite.e4.command.deleteEntity" commandName="Delete Entity" description="%delete"/>
- <commands xmi:id="_SZBRwFKgEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.command.editJob" commandName="Edit Job">
- <parameters xmi:id="_UcMDYFKgEeiMg9Tl6PNQtg" elementId="relevantNodeJcrId" name="Relevant Node JCR ID" optional="false"/>
- <parameters xmi:id="_tsxAsFKpEeiMg9Tl6PNQtg" elementId="isBackward" name="Is Backward"/>
- </commands>
- <commands xmi:id="_ABz60FKpEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.command.removeEntityReference" commandName="Remove Entity Reference">
- <parameters xmi:id="_D__AkFKpEeiMg9Tl6PNQtg" elementId="toRemoveJcrId" name="To Remove JCR ID" optional="false"/>
- </commands>
- <commands xmi:id="_UJVGgOdFEeijEOqYKRSeoQ" elementId="org.argeo.suite.e4.command.changePassword" commandName="Change Password"/>
- <addons xmi:id="_bQjNYTAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/>
- <addons xmi:id="_bQjNYjAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/>
- <addons xmi:id="_bQjNYzAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/>
- <addons xmi:id="_bQjNZDAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/>
- <addons xmi:id="_bQjNZTAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/>
- <addons xmi:id="_bQjNZjAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/>
- <addons xmi:id="_bQjNZzAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.handler.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon"/>
- <addons xmi:id="_srLWsEIoEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.addon.locale" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.addons.LocaleAddon"/>
- <addons xmi:id="_vN5UgP1IEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.addon.auth" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.addons.AuthAddon"/>
-</application:Application>
+++ /dev/null
-<?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.library</groupId>
- <artifactId>suite-library</artifactId>
- <version>2.1.16-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.suite.docs</artifactId>
- <name>Docs App</name>
- <packaging>jar</packaging>
- <dependencies>
- <dependency>
- <groupId>org.argeo.connect</groupId>
- <artifactId>org.argeo.connect.e4</artifactId>
- <version>${version.argeo-connect}</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>
- </dependencies>
-</project>
+++ /dev/null
-<?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.16-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
- <groupId>org.argeo.suite.library</groupId>
- <artifactId>suite-library</artifactId>
- <name>Library Suite</name>
- <packaging>pom</packaging>
- <modules>
- <module>org.argeo.suite.docs</module>
- </modules>
-</project>
+++ /dev/null
-<?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-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+++ /dev/null
-/bin/
-/target/
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.suite.cms</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>
- <buildCommand>
- <name>org.eclipse.pde.ds.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-/MANIFEST.MF
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" deactivate="destroy" immediate="true" name="Activities Maintenance Service">
- <implementation class="org.argeo.activities.core.ActivitiesMaintenanceService"/>
- <service>
- <provide interface="org.argeo.connect.AppMaintenanceService"/>
- </service>
- <reference bind="setRepository" cardinality="1..1" interface="javax.jcr.Repository" policy="static" target="(cn=connect)"/>
- <reference bind="setCmsUserManager" cardinality="1..1" interface="org.argeo.cms.CmsUserManager" policy="static"/>
- <property name="cn" type="String" value="activities"/>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="Activities Service">
- <implementation class="org.argeo.activities.core.ActivitiesServiceImpl"/>
- <reference bind="setResourcesService" cardinality="1..1" interface="org.argeo.connect.resources.ResourcesService" name="ResourcesService" policy="static"/>
- <service>
- <provide interface="org.argeo.activities.ActivitiesService"/>
- <provide interface="org.argeo.connect.AppService"/>
- </service>
- <reference bind="setCmsUserManager" cardinality="1..1" interface="org.argeo.cms.CmsUserManager" policy="static"/>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="Documents Service">
- <implementation class="org.argeo.documents.core.DocumentsServiceImpl"/>
- <service>
- <provide interface="org.argeo.connect.AppService"/>
- <provide interface="org.argeo.documents.DocumentsService"/>
- </service>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" deactivate="destroy" immediate="true" name="People Maintenance Service">
- <implementation class="org.argeo.people.core.PeopleMaintenanceService"/>
- <service>
- <provide interface="org.argeo.connect.AppMaintenanceService"/>
- </service>
- <reference bind="setRepository" cardinality="1..1" interface="javax.jcr.Repository" policy="static" target="(cn=connect)"/>
- <reference bind="setCmsUserManager" cardinality="1..1" interface="org.argeo.cms.CmsUserManager" policy="static"/>
- <property name="cn" type="String" value="people"/>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="People Service">
- <implementation class="org.argeo.people.core.PeopleServiceImpl"/>
- <service>
- <provide interface="org.argeo.connect.AppService"/>
- <provide interface="org.argeo.people.PeopleService"/>
- </service>
- <reference bind="setResourcesService" cardinality="1..1" interface="org.argeo.connect.resources.ResourcesService" policy="static"/>
- <reference bind="setCmsUserManager" cardinality="1..1" interface="org.argeo.cms.CmsUserManager" policy="static"/>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" deactivate="destroy" immediate="true" name="Resources Maintenance Service">
- <implementation class="org.argeo.connect.resources.core.ResourcesMaintenanceService"/>
- <service>
- <provide interface="org.argeo.connect.AppMaintenanceService"/>
- </service>
- <reference bind="setResourcesService" cardinality="1..1" interface="org.argeo.connect.resources.ResourcesService" policy="static"/>
- <reference bind="setRepository" cardinality="1..1" interface="javax.jcr.Repository" policy="static" target="(cn=connect)"/>
- <reference bind="setCmsUserManager" cardinality="1..1" interface="org.argeo.cms.CmsUserManager" policy="static"/>
- <property name="cn" type="String" value="resources"/>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="Resources Service">
- <implementation class="org.argeo.connect.resources.core.ResourcesServiceImpl"/>
- <service>
- <provide interface="org.argeo.connect.resources.ResourcesService"/>
- <provide interface="org.argeo.connect.AppService"/>
- </service>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="System App Service">
- <implementation class="org.argeo.connect.core.DynamicSystemAppService"/>
- <service>
- <provide interface="org.argeo.connect.SystemAppService"/>
- </service>
- <reference bind="addAppService" cardinality="0..n" interface="org.argeo.connect.AppService" name="AppService" policy="dynamic" unbind="removeAppService"/>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" deactivate="destroy" immediate="true" name="System Maintenance Service">
- <implementation class="org.argeo.connect.core.DynamicSystemMaintenanceService"/>
- <service>
- <provide interface="org.argeo.connect.SystemMaintenanceService"/>
- </service>
- <reference bind="addAppService" cardinality="0..n" interface="org.argeo.connect.AppMaintenanceService" policy="static"/>
- <reference bind="setRepository" cardinality="1..1" interface="javax.jcr.Repository" policy="static" target="(cn=connect)"/>
- <property name="cn" type="String" value="system"/>
-</scr:component>
+++ /dev/null
-Bundle-ActivationPolicy: lazy
-Service-Component: OSGI-INF/systemAppService.xml,\
-OSGI-INF/resourcesService.xml,\
-OSGI-INF/activitiesService.xml,\
-OSGI-INF/peopleService.xml,\
-OSGI-INF/documentsService.xml,\
-OSGI-INF/systemMaintenanceService.xml,\
-OSGI-INF/activitiesMaintenanceService.xml,\
-OSGI-INF/resourcesMaintenanceService.xml,\
-OSGI-INF/peopleMaintenanceService.xml
-
-Import-Package: javax.jcr,\
-javax.transaction,\
-org.osgi.service.useradmin,\
-org.argeo.cms,\
-org.argeo.connect,\
-org.argeo.activities,\
-org.argeo.people,\
-org.argeo.documents,\
-org.argeo.tracker,\
-org.argeo.connect.resources,\
-org.argeo.connect.core,\
-org.argeo.activities.core,\
-org.argeo.people.core,\
-org.argeo.documents.core,\
-org.argeo.tracker.core,\
-org.argeo.connect.resources.core,\
-*
+++ /dev/null
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/resourcesService.xml,\
- OSGI-INF/activitiesService.xml,\
- OSGI-INF/systemAppService.xml,\
- OSGI-INF/userManagerService.xml,\
- OSGI-INF/peopleService.xml,\
- OSGI-INF/systemMaintenanceService.xml,\
- OSGI-INF/activitiesMaintenanceService.xml,\
- OSGI-INF/resourcesMaintenanceService.xml,\
- OSGI-INF/peopleMaintenanceService.xml,\
- OSGI-INF/trackerService.xml,\
- OSGI-INF/documentsService.xml,\
- OSGI-INF/trackerMaintenanceService.xml
-source.. = src/
+++ /dev/null
-<?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.16-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.suite.cms</artifactId>
- <name>Suite Deployment</name>
- <packaging>jar</packaging>
- <dependencies>
- <dependency>
- <groupId>org.argeo.connect</groupId>
- <artifactId>org.argeo.connect.core</artifactId>
- <version>${version.argeo-connect}</version>
- </dependency>
- </dependencies>
-</project>
--- /dev/null
+package org.argeo.suite.util;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.query.Query;
+import javax.jcr.query.QueryManager;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jackrabbit.util.ISO9075;
+
+/** Ease XPath generation for JCR requests */
+public class XPathUtils {
+ private final static Log log = LogFactory.getLog(XPathUtils.class);
+
+ private final static String QUERY_XPATH = "xpath";
+
+ public static String descendantFrom(String parentPath) {
+ if (notEmpty(parentPath)) {
+ if ("/".equals(parentPath))
+ parentPath = "";
+ // Hardcoded dependency to Jackrabbit. Remove
+ String result = "/jcr:root" + ISO9075.encodePath(parentPath);
+ if (log.isTraceEnabled()) {
+ String result2 = "/jcr:root" + parentPath;
+ if (!result2.equals(result))
+ log.warn("Encoded Path " + result2 + " --> " + result);
+ }
+ return result;
+ } else
+ return "";
+ }
+
+ public static String localAnd(String... conditions) {
+ StringBuilder builder = new StringBuilder();
+ for (String condition : conditions) {
+ if (notEmpty(condition)) {
+ builder.append(" ").append(condition).append(" and ");
+ }
+ }
+ if (builder.length() > 3)
+ return builder.substring(0, builder.length() - 4);
+ else
+ return "";
+ }
+
+ public static String xPathNot(String condition) {
+ if (notEmpty(condition))
+ return "not(" + condition + ")";
+ else
+ return "";
+ }
+
+ public static String getFreeTextConstraint(String filter) throws RepositoryException {
+ StringBuilder builder = new StringBuilder();
+ if (notEmpty(filter)) {
+ String[] strs = filter.trim().split(" ");
+ for (String token : strs) {
+ builder.append("jcr:contains(.,'*" + encodeXPathStringValue(token) + "*') and ");
+ }
+ return builder.substring(0, builder.length() - 4);
+ }
+ return "";
+ }
+
+ public static String getPropertyContains(String propertyName, String filter) throws RepositoryException {
+ if (notEmpty(filter))
+ return "jcr:contains(@" + propertyName + ",'*" + encodeXPathStringValue(filter) + "*')";
+ return "";
+ }
+
+ private final static DateFormat jcrRefFormatter = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS'+02:00'");
+
+ /**
+ * @param propertyName
+ * @param calendar the reference date
+ * @param lowerOrGreater "<", ">" TODO validate ">="
+ * @return
+ * @throws RepositoryException
+ */
+ public static String getPropertyDateComparaison(String propertyName, Calendar cal, String lowerOrGreater)
+ throws RepositoryException {
+ if (cal != null) {
+ String jcrDateStr = jcrRefFormatter.format(cal.getTime());
+
+ // jcrDateStr = "2015-08-03T05:00:03:000Z";
+ String result = "@" + propertyName + " " + lowerOrGreater + " xs:dateTime('" + jcrDateStr + "')";
+ return result;
+ }
+ return "";
+ }
+
+ public static String getPropertyEquals(String propertyName, String value) {
+ if (notEmpty(value))
+ return "@" + propertyName + "='" + encodeXPathStringValue(value) + "'";
+ return "";
+ }
+
+ public static String encodeXPathStringValue(String propertyValue) {
+ // TODO implement safer mechanism to escape invalid characters
+ // Also check why we have used this regex in ResourceSerrviceImpl l 474
+ // String cleanedKey = key.replaceAll("(?:')", "''");
+ String result = propertyValue.replaceAll("'", "''");
+ return result;
+ }
+
+ public static void andAppend(StringBuilder builder, String condition) {
+ if (notEmpty(condition)) {
+ builder.append(condition);
+ builder.append(" and ");
+ }
+ }
+
+ public static void appendOrderByProperties(StringBuilder builder, boolean ascending, String... propertyNames) {
+ if (propertyNames.length > 0) {
+ builder.append(" order by ");
+ for (String propName : propertyNames)
+ builder.append("@").append(propName).append(", ");
+ builder = builder.delete(builder.length() - 2, builder.length());
+ if (ascending)
+ builder.append(" ascending ");
+ else
+ builder.append(" descending ");
+ }
+ }
+
+ public static void appendAndPropStringCondition(StringBuilder builder, String propertyName, String filter)
+ throws RepositoryException {
+ if (notEmpty(filter)) {
+ andAppend(builder, getPropertyContains(propertyName, filter));
+ }
+ }
+
+ public static void appendAndNotPropStringCondition(StringBuilder builder, String propertyName, String filter)
+ throws RepositoryException {
+ if (notEmpty(filter)) {
+ String cond = getPropertyContains(propertyName, filter);
+ builder.append(xPathNot(cond));
+ builder.append(" and ");
+ }
+ }
+
+ public static Query createQuery(Session session, String queryString) throws RepositoryException {
+ QueryManager queryManager = session.getWorkspace().getQueryManager();
+ // Localise JCR properties for XPATH
+ queryString = localiseJcrItemNames(queryString);
+ return queryManager.createQuery(queryString, QUERY_XPATH);
+ }
+
+ private final static String NS_JCR = "\\{http://www.jcp.org/jcr/1.0\\}";
+ private final static String NS_NT = "\\{http://www.jcp.org/jcr/nt/1.0\\}";
+ private final static String NS_MIX = "\\{http://www.jcp.org/jcr/mix/1.0\\}";
+
+ /**
+ * Replace the generic namespace with the local "jcr:", "nt:", "mix:" values. It
+ * is a workaround that must be later cleaned
+ */
+ public static String localiseJcrItemNames(String name) {
+ name = name.replaceAll(NS_JCR, "jcr:");
+ name = name.replaceAll(NS_NT, "nt:");
+ name = name.replaceAll(NS_MIX, "mix:");
+ return name;
+ }
+
+ private static boolean notEmpty(String stringToTest) {
+ return !(stringToTest == null || "".equals(stringToTest.trim()));
+ }
+
+ /** Singleton. */
+ private XPathUtils() {
+
+ }
+}
+++ /dev/null
-<?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-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+++ /dev/null
-/bin/
-/target/
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.suite.e4.rap</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>
- <buildCommand>
- <name>org.eclipse.pde.ds.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-/MANIFEST.MF
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" configuration-policy="optional" deactivate="destroy">
- <implementation class="org.argeo.suite.e4.rap.settings.AppDeployer"/>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" configuration-policy="optional" deactivate="destroy" name="Argeo Office RAP">
- <implementation class="org.argeo.suite.e4.rap.ArgeoOfficeRapE4App"/>
- <service>
- <provide interface="org.eclipse.rap.rwt.application.ApplicationConfiguration"/>
- <property name="contextName" type="String" value="suite"/>
- </service>
- <property name="org.eclipse.rap.rwt.webclient.pageTitle" type="String" value="Argeo Office"/>
- <property name="org.eclipse.rap.rwt.webclient.favicon" type="String" value="icons/argeo-alpha.png"/>
-</scr:component>
+++ /dev/null
-Bundle-SymbolicName: org.argeo.suite.e4.rap;singleton:=true
-Bundle-ActivationPolicy: lazy
-
-Service-Component: OSGI-INF/argeo-office-rap.xml,\
-OSGI-INF/appDeployer.xml
-
-Import-Package: org.argeo.api,\
-org.eclipse.swt,\
-org.eclipse.rap.rwt,\
-org.eclipse.rap.rwt.client,\
-org.argeo.cms.ui,\
-*
+++ /dev/null
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.xml,\
- OSGI-INF/,\
- e4xmi/
-source.. = src/
+++ /dev/null
-// Standard CMS App
-APP.webPath = 'suite'
-
-// Common
-APP.pageTitle = 'Argeo Suite';
-APP.favicon = 'icons/argeo-e.png';
-APP.theme = new org.argeo.cms.ui.script.Theme(BC, 'org.argeo.theme.argeo2')
-
-// Office
-APP.ui['office'] = new org.argeo.cms.ui.script.AppUi(APP,
- new org.argeo.suite.e4.rap.ArgeoSuiteEntryPoint(
- 'org.argeo.suite.e4/e4xmi/argeo-office.e4xmi'));
-APP.ui['office'].pageTitle = 'Office';
-
-// Docs
-APP.ui['docs'] = new org.argeo.cms.ui.script.AppUi(APP,
- new org.argeo.suite.e4.rap.ArgeoSuiteEntryPoint(
- 'org.argeo.suite.e4/e4xmi/argeo-docs.e4xmi'));
-APP.ui['docs'].pageTitle = 'Docs';
+++ /dev/null
-<?xml version="1.0" encoding="ASCII"?>
-<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:advanced="http://www.eclipse.org/ui/2010/UIModel/application/ui/advanced" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmi:id="_sLyMYDXeEeqJorAtA3e9xg" elementId="org.argeo.suite.e4.application">
- <children xsi:type="basic:TrimmedWindow" xmi:id="_KPcNQDXfEeqJorAtA3e9xg" elementId="org.argeo.suite.e4.trimmedwindow.0">
- <children xsi:type="advanced:PerspectiveStack" xmi:id="_MAQqoDXfEeqJorAtA3e9xg" elementId="org.argeo.suite.e4.perspectivestack.0">
- <children xsi:type="advanced:Perspective" xmi:id="_MfQTwDXfEeqJorAtA3e9xg" elementId="org.argeo.suite.e4.perspective.apps">
- <children xsi:type="basic:Part" xmi:id="_QjgzYDXfEeqJorAtA3e9xg" elementId="org.argeo.suite.e4.part.0"/>
- </children>
- </children>
- </children>
- <addons xmi:id="_sLyMYTXeEeqJorAtA3e9xg" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/>
- <addons xmi:id="_sLyMYjXeEeqJorAtA3e9xg" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/>
- <addons xmi:id="_sLyMYzXeEeqJorAtA3e9xg" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/>
- <addons xmi:id="_sLyMZDXeEeqJorAtA3e9xg" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/>
- <addons xmi:id="_sLyMZTXeEeqJorAtA3e9xg" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/>
- <addons xmi:id="_sLyMZjXeEeqJorAtA3e9xg" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/>
- <addons xmi:id="_sLyMZzXeEeqJorAtA3e9xg" elementId="org.eclipse.e4.ui.workbench.handler.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon"/>
- <addons xmi:id="_3xRBwDXeEeqJorAtA3e9xg" elementId="org.argeo.suite.e4.addon.locale" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.addons.LocaleAddon"/>
- <addons xmi:id="_6uMs8DXeEeqJorAtA3e9xg" elementId="org.argeo.suite.e4.addon.auth" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.addons.AuthAddon"/>
-</application:Application>
+++ /dev/null
-<?xml version="1.0" encoding="ASCII"?>
-<fragment:ModelFragments xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:fragment="http://www.eclipse.org/ui/2010/UIModel/fragment" xmi:id="_aj9i0H6mEeiBecaDe-Vpfw">
- <fragments xsi:type="fragment:StringModelFragment" xmi:id="_aj9i0X6mEeiBecaDe-Vpfw" featurename="addons" parentElementId="org.argeo.suite.e4.application">
- <elements xsi:type="application:Addon" xmi:id="_aj9i0n6mEeiBecaDe-Vpfw" elementId="org.argeo.suite.e4.addon.0" contributionURI="bundleclass://org.argeo.suite.e4.rap/org.argeo.suite.e4.rap.RapMainShellAddon"/>
- </fragments>
-</fragment:ModelFragments>
+++ /dev/null
-http://fonts.googleapis.com/css?family=Source+Sans+Pro
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin>
-
- <extension
- id="org.argeo.suite.e4.rap.fragment"
- point="org.eclipse.e4.workbench.model">
- <fragment
- uri="e4xmi/argeo-suite-rap-addons.e4xmi">
- </fragment>
- </extension>
-
-</plugin>
+++ /dev/null
-<?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.16-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.suite.e4.rap</artifactId>
- <name>Eclipse 4 RAP</name>
- <packaging>jar</packaging>
- <dependencies>
- <dependency>
- <groupId>org.argeo.suite</groupId>
- <artifactId>org.argeo.suite.e4</artifactId>
- <version>2.1.16-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.cms.e4.rap</artifactId>
- <version>${version.argeo-commons}</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>
- </dependencies>
-</project>
+++ /dev/null
-
-package org.argeo.suite.e4.rap;
-
-import org.argeo.cms.e4.rap.AbstractRapE4App;
-import org.eclipse.rap.rwt.application.Application;
-import org.eclipse.rap.rwt.client.WebClient;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-
-/** Argeo Office RAP application. */
-public class ArgeoOfficeRapE4App extends AbstractRapE4App {
- private BundleContext bc = FrameworkUtil.getBundle(getClass()).getBundleContext();
-
- public ArgeoOfficeRapE4App() {
-// setPageTitle("Argeo Office");
-// setE4Xmi("org.argeo.suite.e4/e4xmi/argeo-office.e4xmi");
-// setPath("/office");
- setLifeCycleUri("bundleclass://org.argeo.suite.e4.rap/org.argeo.suite.e4.rap.ArgeoSuiteLoginLifecycle");
- }
-
- @Override
- protected void addEntryPoints(Application application) {
-// CmsTheme cmsTheme = new CmsTheme(bc, "org.argeo.theme.argeo2");
-// cmsTheme.apply(application);
-
- String font = "<link rel='stylesheet' href='http://fonts.googleapis.com/css?family=Source+Sans+Pro'/>";
- getBaseProperties().put(WebClient.HEAD_HTML, font);
-
- addE4EntryPoint(application, "/office", "org.argeo.suite.e4/e4xmi/argeo-office.e4xmi", customise("Office"));
- addE4EntryPoint(application, "/docs", "org.argeo.suite.e4/e4xmi/argeo-docs.e4xmi", customise("Docs"));
- }
-
-// protected void addEntryPoint(Application application, E4ApplicationConfig config, Map<String, String> properties) {
-// // String theme ="org.argeo.theme.argeo2.office";
-// String theme = RWT.DEFAULT_THEME_ID;
-// Bundle themeBundle = findTheme("org.argeo.theme.argeo2");
-// // application.addStyleSheet(theme, "rap/office-rwt.css", new
-// // BundleResourceLoader(themeBundle));
-// application.addStyleSheet(theme, "rap/office.css", new BundleResourceLoader(themeBundle));
-// properties.put(WebClient.THEME_ID, theme);
-// String font = "<link rel='stylesheet' href='http://fonts.googleapis.com/css?family=Source+Sans+Pro'/>";
-// properties.put(WebClient.HEAD_HTML, font);
-// //super.addEntryPoint(application, config, properties);
-// }
-
-}
+++ /dev/null
-package org.argeo.suite.e4.rap;
-
-import java.security.PrivilegedActionException;
-import java.security.PrivilegedExceptionAction;
-
-import javax.inject.Inject;
-import javax.jcr.Node;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.security.auth.Subject;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.cms.e4.rap.CmsLoginLifecycle;
-import org.argeo.connect.ui.SystemWorkbenchService;
-import org.argeo.jcr.JcrUtils;
-
-/** Extends the CMS login lifecycle by managing the state of the current context. */
-public class ArgeoSuiteLoginLifecycle extends CmsLoginLifecycle {
- private final static Log log = LogFactory.getLog(ArgeoSuiteLoginLifecycle.class);
- @Inject
- SystemWorkbenchService systemWorkbenchService;
-
- @Inject
- Repository repository;
-
- @Override
- protected void startupComplete() {
- loadState();
- }
-
- @Override
- protected void stateChanged() {
- loadState();
- }
-
- private void loadState() {
- String state = getState();
- // for the time being we systematically open a session, in order to make sure
- // that home is initialised
- Session session = null;
- try {
- if (state != null && state.startsWith("/")) {
- String path = state.substring(1);
- String workspace;
- if (path.equals("")) {
- workspace = null;
- path = "/";
- } else {
- int index = path.indexOf('/');
- if (index == 0) {
- log.error("Cannot interpret // " + state);
- getBrowserNavigation().pushState("~", null);
- return;
- } else if (index > 0) {
- workspace = path.substring(0, index);
- path = path.substring(index);
- } else {// index<0, assuming root node
- workspace = path;
- path = "/";
- }
- }
- Subject subject = getSubject();
- session = Subject.doAs(subject, new PrivilegedExceptionAction<Session>() {
-
- @Override
- public Session run() throws PrivilegedActionException {
- try {
- return repository.login(workspace);
- } catch (RepositoryException e) {
- throw new PrivilegedActionException(e);
- }
- }
-
- });
- Node node = session.getNode(path);
- systemWorkbenchService.openEntityEditor(node);
- }
- } catch (RepositoryException | PrivilegedActionException e) {
- log.error("Cannot load state " + state, e);
- getBrowserNavigation().pushState("~", null);
- } finally {
- JcrUtils.logoutQuietly(session);
- }
- }
-}
+++ /dev/null
-package org.argeo.suite.e4.rap;
-
-import javax.annotation.PostConstruct;
-
-import org.eclipse.e4.ui.model.application.MApplication;
-import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
-import org.eclipse.e4.ui.workbench.modeling.EModelService;
-import org.eclipse.swt.SWT;
-
-public class RapMainShellAddon {
- private final static String STYLE_OVERRIDE = "styleOverride";
- private final static String SHELL_MAXIMIZED = "shellMaximized";
-
- @PostConstruct
- void init(EModelService modelService, MApplication application) {
- MWindow window = (MWindow) modelService.find("org.argeo.suite.e4.trimmedwindow.main", application);
- String currentStyle = window.getPersistedState().get(STYLE_OVERRIDE);
- int style = 8;
- if (currentStyle != null) {
- style = Integer.parseInt(currentStyle);
- }
- style = style | SWT.NO_TRIM;
- window.getPersistedState().put(STYLE_OVERRIDE, Integer.toString(style));
- window.getTags().add(SHELL_MAXIMIZED);
- }
-}
+++ /dev/null
-package org.argeo.suite.e4.rap.settings;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.cms.e4.rap.AbstractRapE4App;
-import org.argeo.util.LangUtils;
-import org.eclipse.rap.rwt.application.ApplicationConfiguration;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.cm.ConfigurationException;
-import org.osgi.service.cm.ManagedServiceFactory;
-
-/**
- * Managed service factory deploying Argeo RAP app based on OSGi configurations.
- */
-public class AppDeployer implements ManagedServiceFactory {
- private final static Log log = LogFactory.getLog(AppDeployer.class);
- private BundleContext bundleContext;
-
- public void init(BundleContext bundleContext, Map<String, String> properties) {
- this.bundleContext = bundleContext;
-
- deploy(findBundle("org.argeo.suite.studio", null), properties);
- deploy(findBundle("org.argeo.suite.docs", null), properties);
- }
-
- public void destroy() {
-
- }
-
- @Override
- public String getName() {
- return "Argeo App Deployer";
- }
-
- @Override
- public void updated(String pid, Dictionary<String, ?> properties) throws ConfigurationException {
- Bundle bundle = findBundle(pid, properties);
- deploy(bundle, LangUtils.dictToStringMap(properties));
- }
-
- protected void deploy(Bundle bundle, Map<String, String> properties) {
-// CmsTheme cmsTheme;
-// if (properties.containsKey(CmsTheme.CMS_THEME_BUNDLE_PROPERTY)) {
-// String cmsThemeBundle = properties.get(CmsTheme.CMS_THEME_BUNDLE_PROPERTY);
-// cmsTheme = new CmsTheme(bundleContext, cmsThemeBundle);
-// } else {
-// cmsTheme = new CmsTheme(bundleContext, CmsTheme.DEFAULT_CMS_THEME_BUNDLE);
-// }
-
- ArgeoRapApp app = new ArgeoRapApp(bundleContext, bundle, null);
-
- Hashtable<String, String> props = new Hashtable<String, String>();
- props.put(AbstractRapE4App.CONTEXT_NAME_PROPERTY, app.getContextName());
- bundleContext.registerService(ApplicationConfiguration.class, app, props);
-
- if (log.isDebugEnabled())
- log.debug("Deployed Argeo App " + bundle.getSymbolicName() + " to " + app.getContextName());
- }
-
- @Override
- public void deleted(String pid) {
- }
-
- protected Bundle findBundle(String pid, Dictionary<String, ?> properties) {
- Bundle bundle = null;
- for (Bundle b : bundleContext.getBundles()) {
- if (b.getSymbolicName().equals(pid)) {
- bundle = b;
- break;
- }
- }
- if (bundle == null)
- throw new IllegalStateException("Bundle " + pid + " not found");
- return bundle;
- }
-}
+++ /dev/null
-package org.argeo.suite.e4.rap.settings;
-
-import javax.annotation.PostConstruct;
-
-import org.eclipse.swt.widgets.Composite;
-
-/** Overview of the active and activable Apps. */
-public class AppsPart {
- @PostConstruct
- public void createUi(Composite parent) {
-
- }
-}
+++ /dev/null
-package org.argeo.suite.e4.rap.settings;
-
-import java.util.Enumeration;
-import java.util.Map;
-
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.cms.e4.rap.AbstractRapE4App;
-import org.argeo.cms.ui.CmsTheme;
-import org.eclipse.rap.rwt.application.Application;
-import org.eclipse.rap.rwt.client.WebClient;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-/** Argeo RAP app. */
-public class ArgeoRapApp extends AbstractRapE4App {
- private final static Log log = LogFactory.getLog(ArgeoRapApp.class);
-
- private CmsTheme cmsTheme;
- private String baseE4xmi = "/e4xmi";
- private Bundle bundle;
-
- public ArgeoRapApp(BundleContext bundleContext, Bundle bundle, CmsTheme cmsTheme) {
- setBundleContext(bundleContext);
- this.cmsTheme = cmsTheme;
- this.bundle = bundle;
- setLifeCycleUri("bundleclass://org.argeo.suite.e4.rap/org.argeo.suite.e4.rap.ArgeoSuiteLoginLifecycle");
- String contextName = "apps/" + FilenameUtils.getExtension(bundle.getSymbolicName());
- setContextName(contextName);
- }
-
- public ArgeoRapApp() {
- setLifeCycleUri("bundleclass://org.argeo.suite.e4.rap/org.argeo.suite.e4.rap.ArgeoSuiteLoginLifecycle");
- }
-
- @Override
- public void init(BundleContext bundleContext, Map<String, Object> properties) {
- super.init(bundleContext, properties);
- // super must be first
-// if (getBaseProperties().containsKey(CmsTheme.CMS_THEME_BUNDLE_PROPERTY)) {
-// String cmsThemeBundle = getBaseProperties().get(CmsTheme.CMS_THEME_BUNDLE_PROPERTY);
-// cmsTheme = new CmsTheme(getBundleContext(), cmsThemeBundle);
-// } else {
-// cmsTheme = new CmsTheme(getBundleContext(), CmsTheme.DEFAULT_CMS_THEME_BUNDLE);
-// }
- bundle = bundleContext.getBundle();
- }
-
- @Override
- protected void addEntryPoints(Application application) {
-// if (cmsTheme != null)
-// cmsTheme.apply(application);
-
- String font = "<link rel='stylesheet' href='http://fonts.googleapis.com/css?family=Source+Sans+Pro'/>";
- getBaseProperties().put(WebClient.HEAD_HTML, font);
-
- Enumeration<String> paths = bundle.getEntryPaths(baseE4xmi);
- while (paths.hasMoreElements()) {
- String p = paths.nextElement();
- if (p.endsWith(".e4xmi")) {
- String e4xmiPath = bundle.getSymbolicName() + '/' + p;
- String name = '/' + FilenameUtils.removeExtension(FilenameUtils.getName(p));
- addE4EntryPoint(application, name, e4xmiPath, getBaseProperties());
- if (log.isDebugEnabled())
- log.debug("Registered " + e4xmiPath + " as " + getContextName() + name);
- }
- }
- }
-}
+++ /dev/null
-<?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-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+++ /dev/null
-/bin/
-/target/
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.suite.e4</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>
- <buildCommand>
- <name>org.eclipse.pde.ds.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-/MANIFEST.MF
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="Activities E4 Service">
- <implementation class="org.argeo.activities.e4.ActivitiesE4Service"/>
- <service>
- <provide interface="org.argeo.connect.ui.AppWorkbenchService"/>
- <provide interface="org.argeo.connect.e4.AppE4Service"/>
- </service>
- <reference bind="setCmsUserManager" cardinality="1..1" interface="org.argeo.cms.CmsUserManager" policy="static"/>
- <reference bind="setActivitiesService" cardinality="1..1" interface="org.argeo.activities.ActivitiesService" policy="static"/>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="Documents E4 Service">
- <implementation class="org.argeo.documents.e4.DocumentsE4Service"/>
- <service>
- <provide interface="org.argeo.connect.ui.AppWorkbenchService"/>
- <provide interface="org.argeo.connect.e4.AppE4Service"/>
- </service>
-</scr:component>
+++ /dev/null
-# Standard toolbar
-save=Save
-saveAll=Save all
-closeAll=Close all
-delete=Delete
-exit=Exit
-changePassword=Change password...
-
-# Dashboard perspective
-dashboard=Dashboard
-search=Search
-documents=Documents
-
-# Folders perspective
-folders=Folders
-
-# Commands
-newEntity=New...
-newTodo=New task
-
-# Editors
-person=Person
-organisation=Organisation
+++ /dev/null
-# Standard toolbar
-save=\u062D\u0641\u0638
-saveAll=\u0627\u062D\u0641\u0638 \u0627\u0644\u0643\u0644
-closeAll=\u0623\u063A\u0644\u0642 \u0643\u0644 \u0634\u064A\u0621
-delete=\u062D\u0630\u0641
-exit=\u0649\u062E\u0631\u062C
-
-# Dashboard perspective
-dashboard=\u0644\u0648\u062D\u0629 \u0627\u0644\u0642\u064A\u0627\u062F\u0629
-search=\u0627\u0643\u062A\u0634\u0641
-documents=\u0645\u0633\u062A\u0646\u062F\u0627\u062A
-
-# Folders perspective
-folders=\u0645\u0644\u0641\u0627\u062A
-
-# Commands
-newEntity=\u062E\u0644\u0642...
-newTodo=\u0645\u0647\u0645\u0629 \u062C\u062F\u064A\u062F\u0629
-
-# Editors
+++ /dev/null
-# Standard toolbar
-save=Speichern
-saveAll=Alles speichern
-closeAll=Alles schließen
-delete=Entfernen
-exit=Verlassen
-changePassword=Password ändern...
-
-# Dashboard perspective
-dashboard=Dashboard
-search=Suchen
-documents=Dokumente
-
-# Folders perspective
-folders=Ordner
-
-# Commands
-newEntity=Neu...
-newTodo=Neue Aufgabe
-
-# Editors
-person=Person
-organisation=Organisation
+++ /dev/null
-# Standard toolbar
-save=Sauver
-saveAll=Tout sauver
-closeAll=Tout fermer
-delete=Supprimer
-exit=Quitter
-changePassword=Changer de mot de passe...
-
-# Dashboard perspective
-dashboard=Dashboard
-search=Recherche
-documents=Documents
-
-# Folders perspective
-folders=Fichiers
-
-# Commands
-newEntity=Nouveau...
-newTodo=Nouvelle tâche
-
-# Editors
-person=Personne
-organisation=Organisation
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="People E4 Service">
- <implementation class="org.argeo.people.e4.PeopleE4Service"/>
- <service>
- <provide interface="org.argeo.connect.ui.AppWorkbenchService"/>
- <provide interface="org.argeo.connect.e4.AppE4Service"/>
- </service>
- <reference bind="setPeopleService" cardinality="1..1" interface="org.argeo.people.PeopleService" policy="static"/>
- <reference bind="setResourcesService" cardinality="1..1" interface="org.argeo.connect.resources.ResourcesService" policy="static"/>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.argeo.suite.e4">
- <implementation class="org.argeo.connect.e4.resources.ResourcesE4Service"/>
- <service>
- <provide interface="org.argeo.connect.e4.AppE4Service"/>
- <provide interface="org.argeo.connect.ui.AppWorkbenchService"/>
- </service>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="System E4 Service">
- <implementation class="org.argeo.connect.e4.SystemE4ServiceFunction"/>
- <service>
- <provide interface="org.eclipse.e4.core.contexts.IContextFunction"/>
- </service>
- <reference bind="addAppService" cardinality="0..n" interface="org.argeo.connect.ui.AppWorkbenchService" name="AppWorkbenchService" policy="dynamic" unbind="removeAppService"/>
- <property name="service.context.key" type="String" value="org.argeo.connect.ui.SystemWorkbenchService"/>
- <reference bind="addEntityDefinition" cardinality="0..n" interface="org.argeo.entity.EntityDefinition" name="EntityDefinition" policy="dynamic" unbind="removeEntityDefinition"/>
-</scr:component>
+++ /dev/null
-Bundle-ActivationPolicy: lazy
-Service-Component: OSGI-INF/systemE4Service.xml,\
-OSGI-INF/resourcesE4Service.xml,\
-OSGI-INF/activitiesE4Service.xml,\
-OSGI-INF/peopleE4Service.xml,\
-OSGI-INF/documentsE4Service.xml
-
-Import-Package: org.eclipse.swt,\
-org.eclipse.core.commands.common,\
-javax.jcr.nodetype,\
-org.eclipse.e4.core.contexts,\
-org.eclipse.e4.ui.model.application.ui,\
-org.argeo.entity,\
-org.argeo.connect.ui,\
-org.argeo.connect.e4,\
-org.argeo.connect.e4.handlers,\
-org.argeo.activities.e4,\
-org.argeo.people.e4,\
-org.argeo.people.e4.handlers,\
-org.argeo.documents.e4,\
-org.argeo.connect.e4.resources,\
-org.eclipse.rap.*;version="0.0.0",\
-*
+++ /dev/null
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- e4xmi/
-source.. = src/
+++ /dev/null
-<?xml version="1.0" encoding="ASCII"?>
-<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_bQjNYDAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.application">
- <children xsi:type="basic:TrimmedWindow" xmi:id="_dKIlMDAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.trimmedwindow.main">
- <persistedState key="styleOverride" value="8"/>
- <tags>shellMaximized</tags>
- <tags>auth.cn=org.argeo.office.coworker,ou=roles,ou=node</tags>
- <children xsi:type="basic:PartSashContainer" xmi:id="__LhVQMlHEeic2PiQZ6_KRg" elementId="org.argeo.suite.e4.partsashcontainer.1" selectedElement="_8xaqAP3vEeia6ei0NV0Yrw" horizontal="true">
- <children xsi:type="basic:Part" xmi:id="_xi1k0DDzEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.part.documents" containerData="2000" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.MyFilesView" label="%documents" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/documents.png"/>
- <children xsi:type="basic:PartStack" xmi:id="_8xaqAP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.partstack.entityEditorArea" containerData="8000">
- <tags>entityEditorArea</tags>
- <children xsi:type="basic:Part" xmi:id="_EQBUIP3xEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.part.defaultDashboard" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.DocumentsDashboard" label="" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/dashboard.png" tooltip="%dashboard">
- <toolbar xmi:id="_EQB7MP3xEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.toolbar.0">
- <children xsi:type="menu:HandledToolItem" xmi:id="_MEMbEP3xEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.handledtoolitem.changepassword" label="%changePassword" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/person-logged-in.png" command="_UJVGgOdFEeijEOqYKRSeoQ"/>
- <children xsi:type="menu:HandledToolItem" xmi:id="_Qbo8cP3xEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.handledtoolitem.exit" label="%exit" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/logout.png" command="_lhxJUD4dEeiR-OuUuIB1Aw"/>
- </toolbar>
- </children>
- </children>
- </children>
- </children>
- <handlers xmi:id="_HCDl8D4aEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handler.openPerspective" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.OpenPerspective" command="__usGAD4ZEeiR-OuUuIB1Aw"/>
- <handlers xmi:id="_ipB00DArEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.handler.createEntity" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.handlers.CreateEntity" command="_2Xkt8DApEei3AbO1ldMI0w"/>
- <handlers xmi:id="_9gu00DDgEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handler.1" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.SavePart" command="_1lO94DDgEeiUfOa4rxEKwQ"/>
- <handlers xmi:id="_ADDAkDDhEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handler.2" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.SaveAllParts" command="_5EpEADDgEeiUfOa4rxEKwQ"/>
- <handlers xmi:id="_ZBWe8DDmEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handler.3" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.CloseAllParts" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- <handlers xmi:id="_ClgawD4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handler.0" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.DoNothing" command="__L724D4cEeiR-OuUuIB1Aw"/>
- <handlers xmi:id="_oOUPID4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handler.4" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.CloseWorkbench" command="_lhxJUD4dEeiR-OuUuIB1Aw"/>
- <handlers xmi:id="_FXgZoEJBEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.handler.5" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.handlers.OpenEntity" command="_CSkpAEJBEeij3Nr_iRrJtw"/>
- <handlers xmi:id="_rpYtUFKhEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.handler.7" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.people.e4.handlers.EditJob" command="_SZBRwFKgEeiMg9Tl6PNQtg"/>
- <handlers xmi:id="_NG13YFKpEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.handler.8" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.people.e4.handlers.RemoveEntityReference" command="_ABz60FKpEeiMg9Tl6PNQtg"/>
- <handlers xmi:id="_fXnekELbEeim_a9htzedPA" elementId="org.argeo.suite.e4.handler.6" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.handlers.DeleteSelectedEntity" command="_EvkB4ELbEeim_a9htzedPA"/>
- <handlers xmi:id="_WbOlwOdHEeijEOqYKRSeoQ" elementId="org.argeo.suite.e4.handler.9" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.ChangePassword" command="_UJVGgOdFEeijEOqYKRSeoQ"/>
- <bindingTables xmi:id="_gxEm4DDqEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.bindingtable.0" bindingContext="_Byl7gDD1EeiUfOa4rxEKwQ">
- <bindings xmi:id="_hj9cYDDqEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.keybinding.0" keySequence="CTRL+S" command="_1lO94DDgEeiUfOa4rxEKwQ"/>
- <bindings xmi:id="_pEAGYDDqEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.keybinding.1" keySequence="SHIFT+CTRL+S" command="_5EpEADDgEeiUfOa4rxEKwQ"/>
- </bindingTables>
- <rootContext xmi:id="_Byl7gDD1EeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.bindingcontext.main" name="Main"/>
- <descriptors xmi:id="_GkmucDD0EeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.partdescriptor.file" label="File" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/file.png" allowMultiple="true" category="entityEditorArea" closeable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.FileEditor">
- <toolbar xmi:id="_UaykgP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.toolbar.3">
- <children xsi:type="menu:HandledToolItem" xmi:id="_Up3iUP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.handledtoolitem.closeall" label="%closeAll" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/close-all.png" tooltip="%closeAll" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- </toolbar>
- </descriptors>
- <descriptors xmi:id="_NjQioDD0EeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.partdescriptor.folder" label="Folder" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/folder.png" allowMultiple="true" category="entityEditorArea" closeable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.FolderEditor">
- <menus xsi:type="menu:PopupMenu" xmi:id="_bXH1kGQBEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.popupmenu.folder">
- <children xsi:type="menu:HandledMenuItem" xmi:id="_U4pEUGQDEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.handledmenuitem.test" label="Test" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- <children xsi:type="menu:DynamicMenuContribution" xmi:id="_fVnEYGQBEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.dynamicmenucontribution.0" label="Dynamic" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.FolderMenu"/>
- <children xsi:type="menu:DirectMenuItem" xmi:id="_5-x-kGQFEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.directmenuitem.testdirectmenuitem" label="Test Direct Menu Item" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.TestDirectMenuItem"/>
- </menus>
- <toolbar xmi:id="_TIkHoP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.toolbar.2">
- <children xsi:type="menu:HandledToolItem" xmi:id="_Ttc9YP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.handledtoolitem.closeall" label="%closeAll" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/close-all.png" tooltip="%closeAll" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- </toolbar>
- </descriptors>
- <commands xmi:id="_2Xkt8DApEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.command.createEntity" commandName="New Entity">
- <parameters xmi:id="_GnXrcDAsEei3AbO1ldMI0w" elementId="targetNodeType" name="targetNodeType" optional="false"/>
- </commands>
- <commands xmi:id="_1lO94DDgEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.command.savePart" commandName="Save"/>
- <commands xmi:id="_5EpEADDgEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.command.saveAll" commandName="Save All"/>
- <commands xmi:id="_VdldQDDmEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.command.closeAll" commandName="Close All"/>
- <commands xmi:id="__usGAD4ZEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.command.openPerspective" commandName="Open Perspective">
- <parameters xmi:id="_TgkVED4aEeiR-OuUuIB1Aw" elementId="perspectiveId" name="Perspective Id" optional="false"/>
- </commands>
- <commands xmi:id="__L724D4cEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.command.doNothing" commandName="Do Nothing"/>
- <commands xmi:id="_lhxJUD4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.command.logout" commandName="Log out"/>
- <commands xmi:id="_CSkpAEJBEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.command.openEntity" commandName="Open Entity">
- <parameters xmi:id="_yfo0YEJDEeij3Nr_iRrJtw" elementId="param.jcrId" name="JCR ID" optional="false"/>
- <parameters xmi:id="_2M2F8EJDEeij3Nr_iRrJtw" elementId="param.openForEdit" name="Open for edit"/>
- </commands>
- <commands xmi:id="_EvkB4ELbEeim_a9htzedPA" elementId="org.argeo.suite.e4.command.deleteEntity" commandName="Delete Entity" description="%delete"/>
- <commands xmi:id="_SZBRwFKgEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.command.editJob" commandName="Edit Job">
- <parameters xmi:id="_UcMDYFKgEeiMg9Tl6PNQtg" elementId="relevantNodeJcrId" name="Relevant Node JCR ID" optional="false"/>
- <parameters xmi:id="_tsxAsFKpEeiMg9Tl6PNQtg" elementId="isBackward" name="Is Backward"/>
- </commands>
- <commands xmi:id="_ABz60FKpEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.command.removeEntityReference" commandName="Remove Entity Reference">
- <parameters xmi:id="_D__AkFKpEeiMg9Tl6PNQtg" elementId="toRemoveJcrId" name="To Remove JCR ID" optional="false"/>
- </commands>
- <commands xmi:id="_UJVGgOdFEeijEOqYKRSeoQ" elementId="org.argeo.suite.e4.command.changePassword" commandName="Change Password"/>
- <addons xmi:id="_bQjNYTAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/>
- <addons xmi:id="_bQjNYjAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/>
- <addons xmi:id="_bQjNYzAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/>
- <addons xmi:id="_bQjNZDAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/>
- <addons xmi:id="_bQjNZTAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/>
- <addons xmi:id="_bQjNZjAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/>
- <addons xmi:id="_bQjNZzAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.handler.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon"/>
- <addons xmi:id="_srLWsEIoEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.addon.locale" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.addons.LocaleAddon"/>
- <addons xmi:id="_vN5UgP1IEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.addon.auth" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.addons.AuthAddon"/>
-</application:Application>
+++ /dev/null
-<?xml version="1.0" encoding="ASCII"?>
-<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:advanced="http://www.eclipse.org/ui/2010/UIModel/application/ui/advanced" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_bQjNYDAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.application">
- <children xsi:type="basic:TrimmedWindow" xmi:id="_dKIlMDAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.trimmedwindow.main">
- <persistedState key="styleOverride" value="8"/>
- <tags>shellMaximized</tags>
- <tags>auth.cn=org.argeo.office.coworker,ou=roles,ou=node</tags>
- <children xsi:type="advanced:PerspectiveStack" xmi:id="_gm_toDAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.perspectivestack.main">
- <children xsi:type="advanced:Perspective" xmi:id="_hr-YsDAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.perspective.dashboard" label="%dashboard" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/24/dashboard.png" tooltip="%dashboard">
- <children xsi:type="basic:PartSashContainer" xmi:id="_mAC18DAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.partsashcontainer.0" horizontal="true">
- <children xsi:type="basic:PartStack" xmi:id="_orJxUDAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.partstack.navigation" containerData="3000">
- <tags>minimized</tags>
- <children xsi:type="basic:Part" xmi:id="_qAM4sDAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.part.search" containerData="" contributionURI="bundleclass://org.argeo.suite.e4/org.argeo.suite.e4.parts.QuickSearchView" label="%search" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/search.png">
- <toolbar xmi:id="_DCPkcELbEeim_a9htzedPA" elementId="org.argeo.suite.e4.toolbar.1">
- <children xsi:type="menu:HandledToolItem" xmi:id="_DvXJIELbEeim_a9htzedPA" elementId="org.argeo.suite.e4.handledtoolitem.delete" label="%delete" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/delete.png" tooltip="%delete" command="_EvkB4ELbEeim_a9htzedPA"/>
- </toolbar>
- </children>
- </children>
- <children xsi:type="advanced:Placeholder" xmi:id="_UVQvIMlIEeic2PiQZ6_KRg" elementId="org.argeo.suite.e4.placeholder.1" ref="_F2pwgMlIEeic2PiQZ6_KRg"/>
- </children>
- </children>
- <children xsi:type="advanced:Perspective" xmi:id="_bu5BYD4aEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.perspective.folders" label="%folders" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/24/folder.png" tooltip="%folders">
- <children xsi:type="basic:PartSashContainer" xmi:id="__LhVQMlHEeic2PiQZ6_KRg" elementId="org.argeo.suite.e4.partsashcontainer.1" horizontal="true">
- <children xsi:type="basic:PartStack" xmi:id="_p66bMD4aEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.partstack.0" containerData="3000">
- <children xsi:type="basic:Part" xmi:id="_xi1k0DDzEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.part.documents" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.MyFilesView" label="%documents" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/documents.png"/>
- <children xsi:type="basic:Part" xmi:id="_dr0bwMSbEeifiPIP7QsPQg" elementId="org.argeo.suite.e4.part.search" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.SearchDocumentsView" label="%search" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/search.png"/>
- </children>
- <children xsi:type="advanced:Placeholder" xmi:id="_JYopgMlIEeic2PiQZ6_KRg" elementId="org.argeo.suite.e4.placeholder.0" ref="_F2pwgMlIEeic2PiQZ6_KRg"/>
- </children>
- </children>
- </children>
- <sharedElements xsi:type="basic:PartStack" xmi:id="_F2pwgMlIEeic2PiQZ6_KRg" elementId="org.argeo.suite.e4.partstack.entityEditorArea" containerData="7000">
- <tags>entityEditorArea</tags>
- <children xsi:type="basic:Part" xmi:id="_n83mkDDnEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.part.defaultDashboard" contributionURI="bundleclass://org.argeo.suite.e4/org.argeo.suite.e4.parts.DefaultDashboardEditor" label="" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/dashboard.png" tooltip="%dashboard">
- <toolbar xmi:id="_zlZE4EIqEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.toolbar.0">
- <children xsi:type="menu:HandledToolItem" xmi:id="_2ZdvAEIqEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.handledtoolitem." label="" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/close-all.png" tooltip="%closeAll" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- </toolbar>
- </children>
- </sharedElements>
- <trimBars xmi:id="_24OSADArEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.trimbar.top">
- <children xsi:type="menu:ToolBar" xmi:id="_JIUjADDhEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.toolbar.standard">
- <children xsi:type="menu:HandledToolItem" xmi:id="_55lzgD4cEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handledtoolitem.dashboard" label="%dashboard" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/24/dashboard.png" tooltip="%dashboard" command="__usGAD4ZEeiR-OuUuIB1Aw">
- <menu xmi:id="_9ls44D4cEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.menu.0">
- <children xsi:type="menu:HandledMenuItem" xmi:id="_Tbp2QOdHEeijEOqYKRSeoQ" elementId="org.argeo.suite.e4.handledmenuitem.changepassword" label="%changePassword" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/person-logged-in.png" command="_UJVGgOdFEeijEOqYKRSeoQ"/>
- <children xsi:type="menu:HandledMenuItem" xmi:id="_H5bLcD4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handledmenuitem.logout" label="%exit" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/logout.png" command="_lhxJUD4dEeiR-OuUuIB1Aw"/>
- </menu>
- <parameters xmi:id="_d_2RcEJ6Eeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.parameter.0" name="perspectiveId" value="org.argeo.suite.e4.perspective.dashboard"/>
- </children>
- <children xsi:type="menu:HandledToolItem" xmi:id="_P-4LIDDhEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handledtoolitem.save" label="%save" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/24/save.png" tooltip="%save" enabled="false" command="_1lO94DDgEeiUfOa4rxEKwQ"/>
- <children xsi:type="menu:HandledToolItem" xmi:id="_W4V9UDDhEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handledtoolitem.saveall" label="%saveAll" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/24/save-all.png" tooltip="%saveAll" enabled="false" command="_5EpEADDgEeiUfOa4rxEKwQ"/>
- <children xsi:type="menu:HandledToolItem" xmi:id="_bV4tYDDmEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handledtoolitem.closeall" label="%closeAll" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/24/close-all.png" tooltip="%closeAll" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- </children>
- </trimBars>
- <trimBars xmi:id="_8QObED4ZEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.trimbar.0" side="Left"/>
- </children>
- <handlers xmi:id="_HCDl8D4aEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handler.openPerspective" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.OpenPerspective" command="__usGAD4ZEeiR-OuUuIB1Aw"/>
- <handlers xmi:id="_ipB00DArEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.handler.createEntity" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.handlers.CreateEntity" command="_2Xkt8DApEei3AbO1ldMI0w"/>
- <handlers xmi:id="_9gu00DDgEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handler.1" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.SavePart" command="_1lO94DDgEeiUfOa4rxEKwQ"/>
- <handlers xmi:id="_ADDAkDDhEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handler.2" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.SaveAllParts" command="_5EpEADDgEeiUfOa4rxEKwQ"/>
- <handlers xmi:id="_ZBWe8DDmEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handler.3" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.CloseAllParts" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- <handlers xmi:id="_ClgawD4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handler.0" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.DoNothing" command="__L724D4cEeiR-OuUuIB1Aw"/>
- <handlers xmi:id="_oOUPID4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handler.4" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.CloseWorkbench" command="_lhxJUD4dEeiR-OuUuIB1Aw"/>
- <handlers xmi:id="_FXgZoEJBEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.handler.5" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.handlers.OpenEntity" command="_CSkpAEJBEeij3Nr_iRrJtw"/>
- <handlers xmi:id="_rpYtUFKhEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.handler.7" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.people.e4.handlers.EditJob" command="_SZBRwFKgEeiMg9Tl6PNQtg"/>
- <handlers xmi:id="_NG13YFKpEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.handler.8" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.people.e4.handlers.RemoveEntityReference" command="_ABz60FKpEeiMg9Tl6PNQtg"/>
- <handlers xmi:id="_fXnekELbEeim_a9htzedPA" elementId="org.argeo.suite.e4.handler.6" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.handlers.DeleteSelectedEntity" command="_EvkB4ELbEeim_a9htzedPA"/>
- <handlers xmi:id="_WbOlwOdHEeijEOqYKRSeoQ" elementId="org.argeo.suite.e4.handler.9" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.ChangePassword" command="_UJVGgOdFEeijEOqYKRSeoQ"/>
- <bindingTables xmi:id="_gxEm4DDqEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.bindingtable.0" bindingContext="_Byl7gDD1EeiUfOa4rxEKwQ">
- <bindings xmi:id="_hj9cYDDqEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.keybinding.0" keySequence="CTRL+S" command="_1lO94DDgEeiUfOa4rxEKwQ"/>
- <bindings xmi:id="_pEAGYDDqEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.keybinding.1" keySequence="SHIFT+CTRL+S" command="_5EpEADDgEeiUfOa4rxEKwQ"/>
- </bindingTables>
- <rootContext xmi:id="_Byl7gDD1EeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.bindingcontext.main" name="Main"/>
- <descriptors xmi:id="_pud7kDAtEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.partdescriptor.taskEditor" label="Task" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/todo.png" allowMultiple="true" category="entityEditorArea" closeable="true" dirtyable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.activities.e4.parts.TaskEditor">
- <toolbar xmi:id="_VJvlQF3KEeiDGN42AP6WZg" elementId="org.argeo.suite.e4.toolbar.5">
- <children xsi:type="menu:HandledToolItem" xmi:id="_VkOh0F3KEeiDGN42AP6WZg" elementId="org.argeo.suite.e4.handledtoolitem.delete" label="%delete" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/delete.png" tooltip="%delete" command="_EvkB4ELbEeim_a9htzedPA"/>
- </toolbar>
- </descriptors>
- <descriptors xmi:id="_JsNs8DBiEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.partdescriptor.personEditor" label="%person" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/person.png" allowMultiple="true" category="entityEditorArea" closeable="true" dirtyable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.people.e4.parts.PersonEditor">
- <tags>removeOnHide</tags>
- <toolbar xmi:id="_2VyI0F3JEeiDGN42AP6WZg" elementId="org.argeo.suite.e4.toolbar.2">
- <children xsi:type="menu:HandledToolItem" xmi:id="_2wSTgF3JEeiDGN42AP6WZg" elementId="org.argeo.suite.e4.handledtoolitem.delete" label="%delete" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/delete.png" tooltip="%delete" command="_EvkB4ELbEeim_a9htzedPA"/>
- </toolbar>
- </descriptors>
- <descriptors xmi:id="_RxqxIDBiEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.partdescriptor.orgEditor" label="%organisation" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/organisation.png" allowMultiple="true" category="entityEditorArea" closeable="true" dirtyable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.people.e4.parts.OrgEditor">
- <tags>removeOnHide</tags>
- <toolbar xmi:id="_Ks4k0F3KEeiDGN42AP6WZg" elementId="org.argeo.suite.e4.toolbar.3">
- <children xsi:type="menu:HandledToolItem" xmi:id="_LGwdYF3KEeiDGN42AP6WZg" elementId="org.argeo.suite.e4.handledtoolitem.delete" label="%delete" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/delete.png" tooltip="%delete" command="_EvkB4ELbEeim_a9htzedPA"/>
- </toolbar>
- </descriptors>
- <descriptors xmi:id="_GkmucDD0EeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.partdescriptor.file" label="File" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/file.png" allowMultiple="true" category="entityEditorArea" closeable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.FileEditor"/>
- <descriptors xmi:id="_NjQioDD0EeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.partdescriptor.folder" label="Folder" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/folder.png" allowMultiple="true" category="entityEditorArea" closeable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.FolderEditor">
- <menus xsi:type="menu:PopupMenu" xmi:id="_bXH1kGQBEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.popupmenu.folder">
- <children xsi:type="menu:HandledMenuItem" xmi:id="_U4pEUGQDEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.handledmenuitem.test" label="Test" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- <children xsi:type="menu:DynamicMenuContribution" xmi:id="_fVnEYGQBEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.dynamicmenucontribution.0" label="Dynamic" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.FolderMenu"/>
- <children xsi:type="menu:DirectMenuItem" xmi:id="_5-x-kGQFEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.directmenuitem.testdirectmenuitem" label="Test Direct Menu Item" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.TestDirectMenuItem"/>
- </menus>
- </descriptors>
- <descriptors xmi:id="_muk20DpQEeiqA-HRq--JMg" elementId="org.argeo.suite.e4.partdescriptor.projectTaskEditor" label="Project Task" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/task.png" allowMultiple="true" category="entityEditorArea" closeable="true" dirtyable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.tracker.e4.parts.TaskEditor"/>
- <descriptors xmi:id="_vnVAMDpQEeiqA-HRq--JMg" elementId="org.argeo.suite.e4.partdescriptor.projectEditor" label="Project" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/project.png" allowMultiple="true" category="entityEditorArea" closeable="true" dirtyable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.tracker.e4.parts.ProjectEditor"/>
- <descriptors xmi:id="_TZol8DpREeiqA-HRq--JMg" elementId="org.argeo.suite.e4.partdescriptor.milestoneEditor" label="Milestone" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/milestone.png" allowMultiple="true" category="entityEditorArea" closeable="true" dirtyable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.tracker.e4.parts.MilestoneEditor"/>
- <descriptors xmi:id="_q__ZsEJIEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.partdescriptor.activityEditor" label="Activity" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/activity.png" allowMultiple="true" category="entityEditorArea" closeable="true" dirtyable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.activities.e4.parts.ActivityEditor">
- <toolbar xmi:id="_QW_A4F3KEeiDGN42AP6WZg" elementId="org.argeo.suite.e4.toolbar.4">
- <children xsi:type="menu:HandledToolItem" xmi:id="_Q0gDUF3KEeiDGN42AP6WZg" elementId="org.argeo.suite.e4.handledtoolitem.delete" label="%delete" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/delete.png" tooltip="%delete" command="_EvkB4ELbEeim_a9htzedPA"/>
- </toolbar>
- </descriptors>
- <descriptors xmi:id="_OqeE8FeZEeiknZQLx-vtnA" elementId="org.argeo.suite.e4.partdescriptor.tagEditor" label="Tag" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/tag.png" allowMultiple="true" category="entityEditorArea" closeable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.resources.parts.TagEditor"/>
- <descriptors xmi:id="_xvss0FeaEeiknZQLx-vtnA" elementId="org.argeo.suite.e4.partdescriptor.searchEntityPart" label="Search Entity" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/search.png" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.parts.DefaultSearchEntityEditor"/>
- <commands xmi:id="_2Xkt8DApEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.command.createEntity" commandName="New Entity">
- <parameters xmi:id="_GnXrcDAsEei3AbO1ldMI0w" elementId="targetNodeType" name="targetNodeType" optional="false"/>
- </commands>
- <commands xmi:id="_1lO94DDgEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.command.savePart" commandName="Save"/>
- <commands xmi:id="_5EpEADDgEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.command.saveAll" commandName="Save All"/>
- <commands xmi:id="_VdldQDDmEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.command.closeAll" commandName="Close All"/>
- <commands xmi:id="__usGAD4ZEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.command.openPerspective" commandName="Open Perspective">
- <parameters xmi:id="_TgkVED4aEeiR-OuUuIB1Aw" elementId="perspectiveId" name="Perspective Id" optional="false"/>
- </commands>
- <commands xmi:id="__L724D4cEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.command.doNothing" commandName="Do Nothing"/>
- <commands xmi:id="_lhxJUD4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.command.logout" commandName="Log out"/>
- <commands xmi:id="_CSkpAEJBEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.command.openEntity" commandName="Open Entity">
- <parameters xmi:id="_yfo0YEJDEeij3Nr_iRrJtw" elementId="param.jcrId" name="JCR ID" optional="false"/>
- <parameters xmi:id="_2M2F8EJDEeij3Nr_iRrJtw" elementId="param.openForEdit" name="Open for edit"/>
- </commands>
- <commands xmi:id="_EvkB4ELbEeim_a9htzedPA" elementId="org.argeo.suite.e4.command.deleteEntity" commandName="Delete Entity" description="%delete"/>
- <commands xmi:id="_SZBRwFKgEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.command.editJob" commandName="Edit Job">
- <parameters xmi:id="_UcMDYFKgEeiMg9Tl6PNQtg" elementId="relevantNodeJcrId" name="Relevant Node JCR ID" optional="false"/>
- <parameters xmi:id="_tsxAsFKpEeiMg9Tl6PNQtg" elementId="isBackward" name="Is Backward"/>
- </commands>
- <commands xmi:id="_ABz60FKpEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.command.removeEntityReference" commandName="Remove Entity Reference">
- <parameters xmi:id="_D__AkFKpEeiMg9Tl6PNQtg" elementId="toRemoveJcrId" name="To Remove JCR ID" optional="false"/>
- </commands>
- <commands xmi:id="_UJVGgOdFEeijEOqYKRSeoQ" elementId="org.argeo.suite.e4.command.changePassword" commandName="Change Password"/>
- <addons xmi:id="_bQjNYTAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/>
- <addons xmi:id="_bQjNYjAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/>
- <addons xmi:id="_bQjNYzAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/>
- <addons xmi:id="_bQjNZDAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/>
- <addons xmi:id="_bQjNZTAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/>
- <addons xmi:id="_bQjNZjAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/>
- <addons xmi:id="_bQjNZzAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.handler.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon"/>
- <addons xmi:id="_srLWsEIoEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.addon.locale" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.addons.LocaleAddon"/>
- <addons xmi:id="_vN5UgP1IEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.addon.auth" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.addons.AuthAddon"/>
-</application:Application>
+++ /dev/null
-<?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.16-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.suite.e4</artifactId>
- <name>Eclipse 4</name>
- <packaging>jar</packaging>
- <dependencies>
- <dependency>
- <groupId>org.argeo.connect</groupId>
- <artifactId>org.argeo.connect.e4</artifactId>
- <version>${version.argeo-connect}</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>
- </dependencies>
-</project>
+++ /dev/null
-
-package org.argeo.suite.e4;
-
-import org.eclipse.e4.core.di.annotations.Evaluate;
-
-public class ActiveFeature {
-
-
- public ActiveFeature() {
- super();
- }
-
- @Evaluate
- public boolean evaluate() {
- return false;
- }
-}
+++ /dev/null
-package org.argeo.suite.e4;
-
-import org.argeo.cms.Localized;
-
-public enum SuiteMsg implements Localized {
- newTodo;
-}
+++ /dev/null
-package org.argeo.suite.e4.parts;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.inject.Inject;
-import javax.jcr.Node;
-import javax.jcr.Repository;
-import javax.jcr.Session;
-
-import org.argeo.api.NodeConstants;
-import org.argeo.cms.ui.eclipse.forms.FormToolkit;
-import org.argeo.cms.ui.util.CmsUiUtils;
-import org.argeo.connect.SystemAppService;
-import org.argeo.connect.resources.ResourcesService;
-import org.argeo.connect.ui.AppWorkbenchService;
-import org.argeo.connect.ui.ConnectUiStyles;
-import org.argeo.connect.ui.SystemWorkbenchService;
-import org.argeo.connect.util.ConnectJcrUtils;
-import org.argeo.eclipse.ui.EclipseUiUtils;
-import org.argeo.jcr.JcrUtils;
-import org.eclipse.e4.ui.di.Focus;
-import org.eclipse.rap.rwt.RWT;
-import org.eclipse.rap.rwt.client.service.BrowserNavigation;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-
-/** Generic dashboard for Argeo Suite applications */
-public abstract class AbstractSuiteDashboard {
- // private final static Log log =
- // LogFactory.getLog(AbstractSuiteDashboard.class);
-
- // DEPENDENCY INJECTION
- @Inject
- private Repository repository;
- @Inject
- private ResourcesService resourcesService;
- @Inject
- private SystemAppService systemAppService;
- @Inject
- private SystemWorkbenchService systemWorkbenchService;
-
- private Session homeSession;
- private Session mainSession;
-
- // UI Objects
- private FormToolkit toolkit;
-
- // RAP specific
- private BrowserNavigation browserNavigation;
-
- public void init() {
- homeSession = ConnectJcrUtils.login(repository, NodeConstants.HOME_WORKSPACE);
- mainSession = ConnectJcrUtils.login(repository);
- // updateTooltip(input);
- }
-
- // private void updateTooltip(IEditorInput input) {
- // if (input instanceof EntityEditorInput) {
- // EntityEditorInput sei = (EntityEditorInput) input;
- // sei.setTooltipText("My Dashboard");
- // }
- // }
-
- /**
- * Implementing classes must call super in order to create the correct form
- * toolkit
- */
- @PostConstruct
- public void createPartControl(Composite parent) {
- toolkit = new FormToolkit(Display.getCurrent());
- init();
- browserNavigation = RWT.getClient().getService(BrowserNavigation.class);
- }
-
- // UTILS
- protected Composite createGadgetCmp(Composite parent, int widthHint, int heightHint) {
- Composite gadgetCmp = toolkit.createComposite(parent, SWT.BORDER);
- GridData gd = new GridData(SWT.CENTER, SWT.CENTER, false, false);
- gd.widthHint = widthHint;
- gd.heightHint = heightHint;
- gadgetCmp.setLayoutData(gd);
- CmsUiUtils.style(gadgetCmp, ConnectUiStyles.GADGET_BOX);
- return gadgetCmp;
- }
-
- protected Composite createGadgetTitleCmp(Composite parent, String title) {
- Composite titleCmp = toolkit.createComposite(parent, SWT.BACKGROUND | SWT.INHERIT_NONE);
- CmsUiUtils.style(titleCmp, ConnectUiStyles.GADGET_HEADER);
- titleCmp.setBackground(null);
- GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);
- titleCmp.setLayoutData(gd);
- titleCmp.setLayout(new GridLayout());
-
- Label titleLbl = toolkit.createLabel(titleCmp, title + " ", SWT.BOLD);
- CmsUiUtils.style(titleLbl, ConnectUiStyles.GADGET_HEADER);
- titleLbl.setBackground(null);
- return titleCmp;
- }
-
- protected Composite createGadgetBodyCmp(Composite parent) {
- Composite bodyCmp = toolkit.createComposite(parent, SWT.BACKGROUND | SWT.INHERIT_NONE);
- bodyCmp.setLayoutData(EclipseUiUtils.fillAll());
- bodyCmp.setLayout(new GridLayout());
- return bodyCmp;
- }
-
- protected Link createOpenEntityEditorLink(final AppWorkbenchService peopleUiService, Composite parent,
- final String label, final Node entity) {
- Link link = new Link(parent, SWT.NONE);
- link.setText("<a>" + label + "</a>");
- link.setLayoutData(EclipseUiUtils.fillWidth());
- link.addSelectionListener(new SelectionAdapter() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void widgetSelected(final SelectionEvent event) {
- // Map<String, String> params = new HashMap<String, String>();
- // params.put(ConnectEditor.PARAM_JCR_ID,
- // ConnectJcrUtils.getIdentifier(entity));
- // CommandUtils.callCommand(peopleUiService.getOpenEntityEditorCmdId(), params);
- peopleUiService.openEntityEditor(entity);
- }
- });
- return link;
- }
-
- // Life cycle
- @PreDestroy
- public void dispose() {
- JcrUtils.logoutQuietly(homeSession);
- JcrUtils.logoutQuietly(mainSession);
- }
-
- @Focus
- public void setFocus() {
- browserNavigation.pushState("~", "Dashboard");
- }
-
- // Expose to implementing classes
- protected Session getHomeSession() {
- return homeSession;
- }
-
- public Session getMainSession() {
- return mainSession;
- }
-
- public ResourcesService getResourcesService() {
- return resourcesService;
- }
-
- protected SystemAppService getSystemAppService() {
- return systemAppService;
- }
-
- protected SystemWorkbenchService getSystemWorkbenchService() {
- return systemWorkbenchService;
- }
-
- protected FormToolkit getFormToolkit() {
- return toolkit;
- }
-
- /* DEPENDENCY INJECTION */
- // public void setRepository(Repository repository) {
- // this.repository = repository;
- // }
- //
- // public void setResourcesService(ResourcesService resourcesService) {
- // this.resourcesService = resourcesService;
- // }
- //
- // public void setSystemAppService(SystemAppService systemAppService) {
- // this.systemAppService = systemAppService;
- // }
- //
- // public void setSystemWorkbenchService(SystemWorkbenchService
- // systemWorkbenchService) {
- // this.systemWorkbenchService = systemWorkbenchService;
- // }
-}
+++ /dev/null
-package org.argeo.suite.e4.parts;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.List;
-
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.Property;
-import javax.jcr.RepositoryException;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.activities.ActivitiesNames;
-import org.argeo.activities.ActivitiesService;
-import org.argeo.activities.ActivitiesTypes;
-import org.argeo.activities.ui.TaskViewerContextMenu;
-import org.argeo.api.NodeUtils;
-import org.argeo.cms.auth.CurrentUser;
-import org.argeo.cms.ui.util.CmsUiUtils;
-import org.argeo.connect.ConnectException;
-import org.argeo.connect.ConnectNames;
-import org.argeo.connect.ui.ConnectWorkbenchUtils;
-import org.argeo.connect.ui.Refreshable;
-import org.argeo.connect.util.ConnectJcrUtils;
-import org.argeo.eclipse.ui.EclipseUiUtils;
-import org.argeo.jcr.JcrUtils;
-import org.argeo.suite.e4.SuiteMsg;
-import org.argeo.tracker.TrackerNames;
-import org.argeo.tracker.TrackerService;
-import org.argeo.tracker.core.TrackerUtils;
-import org.argeo.tracker.ui.TaskListLabelProvider;
-import org.argeo.tracker.ui.TaskVirtualListComposite;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-
-/** Argeo Suite Default Dashboard */
-public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Refreshable {
- final static Log log = LogFactory.getLog(DefaultDashboardEditor.class);
- // public final static String ID = AsUiPlugin.PLUGIN_ID +
- // ".defaultDashboardEditor";
-
- @Inject
- private ActivitiesService activitiesService;
-
- @Inject
- @Optional
- private TrackerService trackerService;
-
- private String datePattern = "dd MMM yyyy";
-
- private Composite headerCmp;
- private Composite taskListCmp;
- private TaskVirtualListComposite tvlc;
-
- @PostConstruct
- public void createPartControl(Composite parent) {
- super.createPartControl(parent);
- parent.setLayout(EclipseUiUtils.noSpaceGridLayout());
- Composite bodyCmp = new Composite(parent, SWT.NO_FOCUS);
- bodyCmp.setLayoutData(EclipseUiUtils.fillAll());
- bodyCmp.setLayout(new GridLayout());
-
- headerCmp = new Composite(bodyCmp, SWT.NO_FOCUS);
- headerCmp.setLayoutData(EclipseUiUtils.fillWidth());
-
- taskListCmp = new Composite(bodyCmp, SWT.NO_FOCUS);
- taskListCmp.setLayoutData(EclipseUiUtils.fillAll());
- forceRefresh(null);
- }
-
- @Override
- public void forceRefresh(Object object) {
- CmsUiUtils.clear(headerCmp);
- populateHeaderPart(headerCmp, NodeUtils.getUserHome(getHomeSession()));
-
- CmsUiUtils.clear(taskListCmp);
- populateTaskListCmp(taskListCmp);
-
- headerCmp.getParent().layout(true, true);
- }
-
- private void populateTaskListCmp(Composite parent) {
- parent.setLayout(EclipseUiUtils.noSpaceGridLayout());
- NodeIterator nit = activitiesService.getMyTasks(getMainSession(), true);
- if (!nit.hasNext()) {
- Composite noTaskCmp = new Composite(parent, SWT.NO_FOCUS);
- noTaskCmp.setLayoutData(EclipseUiUtils.fillAll());
- noTaskCmp.setLayout(new GridLayout());
-
- // Label noTaskLbl = new Label(noTaskCmp, SWT.CENTER);
- // noTaskLbl.setText("<i> <big> You have no pending Task. </big> </i>");
- // CmsUiUtils.markup(noTaskLbl);
- // noTaskLbl.setLayoutData(new GridData(SWT.CENTER, SWT.BOTTOM, true, true));
-
- } else {
- TaskListLabelProvider labelProvider = new TaskListLabelProvider(getSystemAppService());
- tvlc = new TaskVirtualListComposite(parent, SWT.NO_FOCUS, (ILabelProvider) labelProvider, 54);
- tvlc.setLayoutData(EclipseUiUtils.fillAll());
- final TableViewer viewer = tvlc.getTableViewer();
- viewer.setInput(JcrUtils.nodeIteratorToList(nit).toArray());
- final TaskViewerContextMenu contextMenu = new TaskViewerContextMenu(viewer, getHomeSession(),
- activitiesService) {
- @Override
- public boolean performAction(String actionId) {
- boolean hasChanged = super.performAction(actionId);
- if (hasChanged) {
- viewer.getTable().setFocus();
- forceRefresh(null);
- // NodeIterator nit =
- // activitiesService.getMyTasks(getSession(), true);
- // viewer.setInput(JcrUtils.nodeIteratorToList(nit).toArray());
- }
- return hasChanged;
- }
- };
- viewer.getTable().addMouseListener(new MouseAdapter() {
- private static final long serialVersionUID = 6737579410648595940L;
-
- @Override
- public void mouseDown(MouseEvent e) {
- if (e.button == 3) {
- // contextMenu.setCurrFolderPath(currDisplayedFolder);
- contextMenu.show(viewer.getTable(), new Point(e.x, e.y),
- (IStructuredSelection) viewer.getSelection());
- }
- }
- });
- viewer.addDoubleClickListener(new IDoubleClickListener() {
-
- @Override
- public void doubleClick(DoubleClickEvent event) {
- IStructuredSelection sel = (IStructuredSelection) viewer.getSelection();
- Node task = (Node) sel.getFirstElement();
- getSystemWorkbenchService().openEntityEditor(task);
- }
- });
- }
- }
-
- private boolean isOverdue(Node node, String propName) {
- try {
- Calendar now = GregorianCalendar.getInstance();
- return node.hasProperty(propName) && node.getProperty(propName).getDate().before(now);
- } catch (RepositoryException e) {
- throw new ConnectException("Cannot check overdue status with property " + propName + " on " + node, e);
- }
- }
-
- private void populateHeaderPart(Composite bodyCmp, Node context) {
- bodyCmp.setLayout(EclipseUiUtils.noSpaceGridLayout(new GridLayout(2, true)));
-
- Composite leftCmp = new Composite(bodyCmp, SWT.NO_FOCUS);
- leftCmp.setLayout(new GridLayout());
- leftCmp.setLayoutData(EclipseUiUtils.fillWidth());
- Composite rightCmp = new Composite(bodyCmp, SWT.NO_FOCUS);
- rightCmp.setLayout(new GridLayout());
- rightCmp.setLayoutData(EclipseUiUtils.fillWidth());
-
- // Title
- Label titleLbl = new Label(leftCmp, SWT.WRAP | SWT.LEAD);
- CmsUiUtils.markup(titleLbl);
- String titleStr = "<big><b>" + CurrentUser.getDisplayName() + "</b></big>";
- titleLbl.setText(titleStr);
- GridData gd = new GridData(SWT.BEGINNING, SWT.TOP, false, false);
- // gd.verticalIndent = 5;
- // gd.horizontalIndent = 10;
- titleLbl.setLayoutData(gd);
-
- final Link createTaskLk = new Link(leftCmp, SWT.CENTER);
- // createTaskLk.setText("<a>Create a task</a>");
- createTaskLk.setText("<a>" + SuiteMsg.newTodo.lead() + "</a>");
- gd = new GridData(SWT.BEGINNING, SWT.TOP, false, false);
- // gd.verticalIndent = 5;
- gd.horizontalIndent = 10;
- createTaskLk.setLayoutData(gd);
-
- createTaskLk.addSelectionListener(new SelectionAdapter() {
- private static final long serialVersionUID = -9028457805156989935L;
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- // String mainMixin = TrackerTypes.TRACKER_TASK;
- String mainMixin = ActivitiesTypes.ACTIVITIES_TASK;
- String pathCreated = ConnectWorkbenchUtils.createAndConfigureEntity(createTaskLk.getShell(),
- getHomeSession(), getSystemAppService(), getSystemWorkbenchService(), mainMixin);
- if (EclipseUiUtils.notEmpty(pathCreated))
- forceRefresh(null);
- }
- });
-
- NodeIterator nit = activitiesService.getMyTasks(getHomeSession(), true);
- if (nit.hasNext()) {
- List<Node> overdueTasks = new ArrayList<>();
- while (nit.hasNext()) {
- Node currNode = nit.nextNode();
- if (isOverdue(currNode, ActivitiesNames.ACTIVITIES_DUE_DATE))
- overdueTasks.add(currNode);
- }
- if (!overdueTasks.isEmpty()) {
- Composite overdueCmp = new Composite(leftCmp, SWT.NO_FOCUS);
- long size = overdueTasks.size();
- String overdueStr = "You have " + size + " overdue task" + (size > 1 ? "s" : "") + ": ";
- populateMuliValueClickableList(overdueCmp, overdueTasks.toArray(new Node[0]), new TaskLp(), overdueStr);
- }
- }
-
- if (trackerService != null) {
- nit = trackerService.getMyMilestones(getHomeSession(), true);
- List<Node> openMilestones = new ArrayList<>();
-
- if (nit.hasNext()) {
- List<Node> overdueMilestones = new ArrayList<>();
- while (nit.hasNext()) {
- Node currNode = nit.nextNode();
- openMilestones.add(currNode);
- if (isOverdue(currNode, TrackerNames.TRACKER_TARGET_DATE))
- overdueMilestones.add(currNode);
- }
- if (!overdueMilestones.isEmpty()) {
- Composite overdueCmp = new Composite(leftCmp, SWT.NO_FOCUS);
- long size = overdueMilestones.size();
- String overdueStr = "You have " + size + " overdue milestone" + (size > 1 ? "s" : "") + ": ";
- populateMuliValueClickableList(overdueCmp, overdueMilestones.toArray(new Node[0]),
- new MilestoneLp(), overdueStr);
- }
- }
-
- // My projects
- List<Node> openProjects = JcrUtils.nodeIteratorToList(trackerService.getMyProjects(getHomeSession(), true));
- if (!openProjects.isEmpty()) {
- Group myProjectsGp = new Group(rightCmp, SWT.NO_FOCUS);
- myProjectsGp.setText("My open projects");
- myProjectsGp.setLayoutData(EclipseUiUtils.fillWidth());
- populateMuliValueClickableList(myProjectsGp, openProjects.toArray(new Node[0]), new ProjectLp(), null);
- }
-
- // My Milestones
- if (!openMilestones.isEmpty()) {
- Group myMilestoneGp = new Group(rightCmp, SWT.NO_FOCUS);
- myMilestoneGp.setText("My open milestones");
- myMilestoneGp.setLayoutData(EclipseUiUtils.fillWidth());
- populateMuliValueClickableList(myMilestoneGp, openMilestones.toArray(new Node[0]), new MilestoneLp(),
- null);
- }
- }
- }
-
- private class ProjectLp extends ColumnLabelProvider {
- private static final long serialVersionUID = 7231233932794865555L;
-
- @Override
- public String getText(Object element) {
- Node project = (Node) element;
-
- String percent;
- NodeIterator nit = TrackerUtils.getIssues(project, null, null, null, true);
- long openNb = nit.getSize();
-
- nit = TrackerUtils.getIssues(project, null, null, null, false);
- long allNb = nit.getSize();
-
- if (allNb < 1)
- percent = "empty";
- else {
- double num = allNb - openNb;
- double result = num / allNb * 100;
- percent = String.format("%.1f", result) + "% done";
- }
- StringBuilder builder = new StringBuilder();
- builder.append("<a>").append(ConnectJcrUtils.get(project, Property.JCR_TITLE)).append("</a>");
- builder.append(" (").append(percent).append(")");
-
- return builder.toString();
- }
- }
-
- private class MilestoneLp extends ColumnLabelProvider {
- private static final long serialVersionUID = 7231233932794865555L;
-
- @Override
- public String getText(Object element) {
- Node milestone = (Node) element;
- Node project = TrackerUtils.getRelatedProject(trackerService, milestone);
- String dueDate = ConnectJcrUtils.getDateFormattedAsString(milestone, TrackerNames.TRACKER_TARGET_DATE,
- datePattern);
-
- String percent;
- String propName = TrackerNames.TRACKER_MILESTONE_UID;
- String muid = ConnectJcrUtils.get(milestone, ConnectNames.CONNECT_UID);
- NodeIterator nit = TrackerUtils.getIssues(project, null, propName, muid, true);
- long openNb = nit.getSize();
-
- nit = TrackerUtils.getIssues(project, null, propName, muid, false);
- long allNb = nit.getSize();
-
- if (allNb < 1)
- percent = "empty";
- else {
- double num = allNb - openNb;
- double result = num / allNb * 100;
- percent = String.format("%.1f", result) + "% done";
- }
- StringBuilder builder = new StringBuilder();
- builder.append("<a>").append(ConnectJcrUtils.get(milestone, Property.JCR_TITLE)).append("</a>");
- builder.append(" (");
- if (EclipseUiUtils.notEmpty(dueDate))
- builder.append("due to ").append(dueDate).append(", ");
-
- builder.append(percent).append(")");
- return builder.toString();
- }
-
- @Override
- public Color getForeground(Object element) {
- Node milestone = (Node) element;
- Calendar dueDate = ConnectJcrUtils.getDateValue(milestone, TrackerNames.TRACKER_TARGET_DATE);
- if (dueDate != null && dueDate.before(Calendar.getInstance()))
- return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
- return null;
- }
- }
-
- private class TaskLp extends ColumnLabelProvider {
- private static final long serialVersionUID = 7231233932794865555L;
-
- @Override
- public String getText(Object element) {
- Node task = (Node) element;
- String dueDate = ConnectJcrUtils.getDateFormattedAsString(task, ActivitiesNames.ACTIVITIES_DUE_DATE,
- datePattern);
-
- StringBuilder builder = new StringBuilder();
- builder.append("<a>").append(ConnectJcrUtils.get(task, Property.JCR_TITLE)).append("</a>");
- if (EclipseUiUtils.notEmpty(dueDate))
- builder.append(" (").append("due to ").append(dueDate).append(")");
- return builder.toString();
- }
-
- @Override
- public Color getForeground(Object element) {
- Node milestone = (Node) element;
- Calendar dueDate = ConnectJcrUtils.getDateValue(milestone, TrackerNames.TRACKER_TARGET_DATE);
- if (dueDate != null && dueDate.before(Calendar.getInstance()))
- return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
- return null;
- }
- }
-
- // public void setActivitiesService(ActivitiesService activitiesService) {
- // this.activitiesService = activitiesService;
- // }
- //
- // public void setTrackerService(TrackerService trackerService) {
- // this.trackerService = trackerService;
- // }
-
- // LOCAL HELPERS
- private void populateMuliValueClickableList(Composite parent, Node[] nodes, ColumnLabelProvider lp,
- String listLabel) {
- CmsUiUtils.clear(parent);
- RowLayout rl = new RowLayout(SWT.HORIZONTAL | SWT.WRAP);
- rl.wrap = true;
- rl.marginLeft = rl.marginTop = rl.marginBottom = 0;
- rl.marginRight = 8;
- parent.setLayout(rl);
-
- if (EclipseUiUtils.notEmpty(listLabel)) {
- Link link = new Link(parent, SWT.NONE);
- link.setText(listLabel);
- link.setFont(EclipseUiUtils.getBoldFont(parent));
- }
-
- int i = 1;
- for (Node node : nodes) {
- Link link = new Link(parent, SWT.NONE);
- CmsUiUtils.markup(link);
- link.setText(lp.getText(node) + (i != nodes.length ? ", " : ""));
- i++;
- // Color fc = lp.getForeground(node);
- // if (fc != null)
- // link.setForeground(fc);
-
- link.addSelectionListener(new SelectionAdapter() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void widgetSelected(final SelectionEvent event) {
- // CommandUtils.callCommand(getSystemWorkbenchService().getOpenEntityEditorCmdId(),
- // ConnectEditor.PARAM_JCR_ID, ConnectJcrUtils.getIdentifier(node));
- getSystemWorkbenchService().openEntityEditor(node);
- }
- });
- }
- }
-
-}
+++ /dev/null
-package org.argeo.suite.e4.parts;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.RepositoryException;
-import javax.jcr.nodetype.NodeType;
-
-import org.argeo.activities.ActivitiesService;
-import org.argeo.activities.ActivitiesTypes;
-import org.argeo.activities.ui.ActivityListLabelProvider;
-import org.argeo.connect.resources.ResourcesService;
-import org.argeo.connect.ui.ConnectUiConstants;
-import org.argeo.connect.ui.SystemWorkbenchService;
-import org.argeo.connect.ui.util.TagLabelProvider;
-import org.argeo.connect.util.ConnectUtils;
-import org.argeo.people.PeopleException;
-import org.argeo.people.PeopleNames;
-import org.argeo.people.PeopleService;
-import org.argeo.people.PeopleTypes;
-import org.argeo.people.ui.providers.GroupLabelProvider;
-import org.argeo.people.ui.providers.OrgListLabelProvider;
-import org.argeo.people.ui.providers.PersonListLabelProvider;
-import org.argeo.tracker.TrackerTypes;
-import org.argeo.tracker.ui.TrackerSingleColLP;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Provide a single column label provider for entity lists. Icon and displayed
- * text vary with the element node type
- */
-public class EntitySingleColumnLabelProvider extends ColumnLabelProvider implements PeopleNames {
- private static final long serialVersionUID = 3111885324210673320L;
-
- private SystemWorkbenchService systemWorkbenchService;
-
- private ActivityListLabelProvider activityLP;
- private TrackerSingleColLP trackerLP;
- private OrgListLabelProvider orgLp;
- private PersonListLabelProvider personLp;
- private GroupLabelProvider groupLp = new GroupLabelProvider(ConnectUiConstants.LIST_TYPE_SMALL);
- private TagLabelProvider mlInstanceLp;
-
- public EntitySingleColumnLabelProvider(ResourcesService resourceService, ActivitiesService activitiesService,
- PeopleService peopleService, SystemWorkbenchService systemWorkbenchService) {
- this.systemWorkbenchService = systemWorkbenchService;
- activityLP = new ActivityListLabelProvider(activitiesService);
- trackerLP = new TrackerSingleColLP(activitiesService);
- personLp = new PersonListLabelProvider(peopleService);
- orgLp = new OrgListLabelProvider(resourceService, peopleService);
- mlInstanceLp = new TagLabelProvider(resourceService, ConnectUiConstants.LIST_TYPE_SMALL);
- }
-
- @Override
- public String getText(Object element) {
- try {
- Node entity = (Node) element;
- String result;
-
- if (entity.isNodeType(TrackerTypes.TRACKER_TASK) || entity.isNodeType(TrackerTypes.TRACKER_PROJECT)
- || entity.isNodeType(TrackerTypes.TRACKER_MILESTONE))
- result = trackerLP.getText(element);
- else if (entity.isNodeType(ActivitiesTypes.ACTIVITIES_ACTIVITY))
- result = activityLP.getText(element);
- else if (entity.isNodeType(PeopleTypes.PEOPLE_PERSON))
- result = personLp.getText(element);
- else if (entity.isNodeType(PeopleTypes.PEOPLE_ORG))
- result = orgLp.getText(element);
- else if (entity.isNodeType(PeopleTypes.PEOPLE_MAILING_LIST))
- result = mlInstanceLp.getText(element);
- else if (entity.isNodeType(PeopleTypes.PEOPLE_GROUP))
- result = groupLp.getText(element);
- else if (entity.isNodeType(NodeType.MIX_TITLE)) {
- if (entity.hasProperty(Property.JCR_TITLE))
- result = entity.getProperty(Property.JCR_TITLE).getString();
- else
- result = entity.getName();
- } else
- result = "";
- return ConnectUtils.replaceAmpersand(result);
- } catch (RepositoryException re) {
- throw new PeopleException("Unable to get formatted value for node", re);
- }
- }
-
- /** Overwrite this method to provide project specific images */
- @Override
- public Image getImage(Object element) {
- return systemWorkbenchService.getIconForType((Node) element);
- }
-
-}
+++ /dev/null
-package org.argeo.suite.e4.parts;
-
-import static org.argeo.eclipse.ui.EclipseUiUtils.notEmpty;
-
-import java.util.List;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.inject.Inject;
-import javax.jcr.NodeIterator;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.observation.Event;
-import javax.jcr.observation.EventIterator;
-import javax.jcr.observation.EventListener;
-import javax.jcr.query.Query;
-import javax.jcr.query.QueryResult;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.activities.ActivitiesService;
-import org.argeo.cms.ui.util.CmsUiUtils;
-import org.argeo.connect.ConnectException;
-import org.argeo.connect.ConnectTypes;
-import org.argeo.connect.resources.ResourcesService;
-import org.argeo.connect.ui.ConnectUiConstants;
-import org.argeo.connect.ui.Refreshable;
-import org.argeo.connect.ui.SystemWorkbenchService;
-import org.argeo.connect.ui.util.BasicNodeListContentProvider;
-import org.argeo.connect.ui.util.JcrViewerDClickListener;
-import org.argeo.connect.ui.widgets.DelayedText;
-import org.argeo.connect.util.ConnectJcrUtils;
-import org.argeo.connect.util.XPathUtils;
-import org.argeo.eclipse.ui.EclipseUiUtils;
-import org.argeo.jcr.JcrUtils;
-import org.argeo.people.PeopleService;
-import org.eclipse.e4.ui.di.Focus;
-import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
-import org.eclipse.jface.layout.TableColumnLayout;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Text;
-
-/** A table with a quick search field. */
-public class QuickSearchView implements Refreshable {
- private final static Log log = LogFactory.getLog(QuickSearchView.class);
- // public static final String ID = AsUiPlugin.PLUGIN_ID + ".quickSearchView";
-
- /* DEPENDENCY INJECTION */
- @Inject
- private Repository repository;
- @Inject
- private ResourcesService resourcesService;
- @Inject
- private ActivitiesService activitiesService;
- @Inject
- private PeopleService peopleService;
- @Inject
- private SystemWorkbenchService systemWorkbenchService;
-
- @Inject
- private ESelectionService selectionService;
-
- // This page widgets
- private TableViewer entityViewer;
- private Text filterTxt;
-
- private Session session;
-
- // @Override
- // public void init(IViewSite site) throws PartInitException {
- // super.init(site);
- // }
-
- @PostConstruct
- public void createPartControl(Composite parent) {
- session = ConnectJcrUtils.login(repository);
- // MainLayout
- parent.setLayout(new GridLayout());
- addFilterPanel(parent);
- entityViewer = createListPart(parent, new EntitySingleColumnLabelProvider(resourcesService, activitiesService,
- peopleService, systemWorkbenchService));
- refreshFilteredList();
-
- try {
- // new String[] { ConnectTypes.CONNECT_ENTITY }
- session.getWorkspace().getObservationManager().addEventListener(new EventListener() {
-
- @Override
- public void onEvent(EventIterator events) {
- parent.getDisplay().asyncExec(() -> refreshFilteredList());
- }
- }, Event.PROPERTY_CHANGED | Event.NODE_ADDED | Event.NODE_REMOVED | Event.PROPERTY_ADDED, "/", true, null,
- null, false);
- } catch (RepositoryException e) {
- throw new ConnectException("Cannot add JCR observer", e);
- }
-
- }
-
- private void addFilterPanel(Composite parent) {
- // Use a delayed text: the query won't be done until the user stop
- // typing for 800ms
- int style = SWT.BORDER | SWT.SEARCH | SWT.ICON_CANCEL;
- DelayedText delayedText = new DelayedText(parent, style, ConnectUiConstants.SEARCH_TEXT_DELAY);
- filterTxt = delayedText.getText();
- filterTxt.setLayoutData(EclipseUiUtils.fillWidth());
-
- // final ServerPushSession pushSession = new ServerPushSession();
- delayedText.addDelayedModifyListener(null, new ModifyListener() {
- private static final long serialVersionUID = 5003010530960334977L;
-
- public void modifyText(ModifyEvent event) {
- delayedText.getText().getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- refreshFilteredList();
- }
- });
- // pushSession.stop();
- }
- });
-
- // Jump to the first item of the list using the down arrow
- filterTxt.addKeyListener(new KeyListener() {
- private static final long serialVersionUID = -4523394262771183968L;
-
- @Override
- public void keyReleased(KeyEvent e) {
- }
-
- @Override
- public void keyPressed(KeyEvent e) {
- // boolean shiftPressed = (e.stateMask & SWT.SHIFT) != 0;
- // boolean altPressed = (e.stateMask & SWT.ALT) != 0;
- if (e.keyCode == SWT.ARROW_DOWN || e.keyCode == SWT.TAB) {
- Object first = entityViewer.getElementAt(0);
- if (first != null) {
- entityViewer.getTable().setFocus();
- entityViewer.setSelection(new StructuredSelection(first), true);
- }
- e.doit = false;
- }
- }
- });
- }
-
- protected TableViewer createListPart(Composite parent, ILabelProvider labelProvider) {
- parent.setLayout(new GridLayout());
-
- Composite tableComposite = new Composite(parent, SWT.NONE);
- GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_VERTICAL
- | GridData.VERTICAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
- tableComposite.setLayoutData(gd);
-
- TableViewer v = new TableViewer(tableComposite);
- v.setLabelProvider(labelProvider);
-
- TableColumn singleColumn = new TableColumn(v.getTable(), SWT.V_SCROLL);
- TableColumnLayout tableColumnLayout = new TableColumnLayout();
- tableColumnLayout.setColumnData(singleColumn, new ColumnWeightData(85));
- tableComposite.setLayout(tableColumnLayout);
-
- // Corresponding table & style
- Table table = v.getTable();
- table.setLinesVisible(true);
- table.setHeaderVisible(false);
- CmsUiUtils.markup(table);
- CmsUiUtils.setItemHeight(table, 26);
-
- v.setContentProvider(new BasicNodeListContentProvider());
- v.addDoubleClickListener(new JcrViewerDClickListener(systemWorkbenchService));
- v.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- IStructuredSelection selection = (IStructuredSelection) event.getSelection();
- List<?> lst = selection.toList();
- if (lst != null && !lst.isEmpty())
- selectionService.setSelection(selection.toList());
- else
- selectionService.setSelection(null);
- }
- });
- return v;
- }
-
- @PreDestroy
- public void dispose() {
- JcrUtils.logoutQuietly(session);
- }
-
- @Focus
- public void setFocus() {
- refreshFilteredList();
- filterTxt.setFocus();
- }
-
- @Override
- public void forceRefresh(Object object) {
- refreshFilteredList();
- }
-
- protected void refreshFilteredList() {
- try {
- String filter = filterTxt.getText();
- // Prevents the query on the full repository
- // if (isEmpty(filter)) {
- // entityViewer.setInput(null);
- // return;
- // }
-
- // XPATH Query
- String xpathQueryStr = "//element(*, " + ConnectTypes.CONNECT_ENTITY + ")";
- String xpathFilter = XPathUtils.getFreeTextConstraint(filter);
- if (notEmpty(xpathFilter))
- xpathQueryStr += "[" + xpathFilter + "]";
-
- // boolean doOrder = orderResultsBtn != null
- // && !(orderResultsBtn.isDisposed())
- // && orderResultsBtn.getSelection();
- // if (doOrder) {
- // xpathQueryStr += " order by jcr:title";
- // }
-
- long begin = System.currentTimeMillis();
- // session.refresh(false);
- Query xpathQuery = XPathUtils.createQuery(session, xpathQueryStr);
-
- xpathQuery.setLimit(ConnectUiConstants.SEARCH_DEFAULT_LIMIT);
- QueryResult result = xpathQuery.execute();
-
- NodeIterator nit = result.getNodes();
- entityViewer.setInput(JcrUtils.nodeIteratorToList(nit));
- if (log.isTraceEnabled()) {
- long end = System.currentTimeMillis();
- log.trace("Quick Search - Found: " + nit.getSize() + " in " + (end - begin)
- + " ms by executing XPath query (" + xpathQueryStr + ").");
- }
- } catch (RepositoryException e) {
- throw new ConnectException("Unable to list entities", e);
- }
- }
-
- // public void setRepository(Repository repository) {
- // this.repository = repository;
- // }
- //
- // public void setResourcesService(ResourcesService resourcesService) {
- // this.resourcesService = resourcesService;
- // }
- //
- // public void setActivitiesService(ActivitiesService activitiesService) {
- // this.activitiesService = activitiesService;
- // }
- //
- // public void setPeopleService(PeopleService peopleService) {
- // this.peopleService = peopleService;
- // }
- //
- // public void setSystemWorkbenchService(SystemWorkbenchService
- // systemWorkbenchService) {
- // this.systemWorkbenchService = systemWorkbenchService;
- // }
-}
+++ /dev/null
-<?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-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+++ /dev/null
-/bin/
-/target
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.suite.standard</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>
+++ /dev/null
-/MANIFEST.MF
+++ /dev/null
-# New entities
-newTask=New task
-newPerson=New person
-newOrganisation=New organisation
-
-# Perspectives
-folders=Folders
+++ /dev/null
-# New entities
-newTask=\u0645\u0647\u0645\u0629 \u062C\u062F\u064A\u062F\u0629
-newPerson=\u0634\u062E\u0635 \u062C\u062F\u064A\u062F
-newOrganisation=\u0645\u0646\u0638\u0645\u0629 \u062C\u062F\u064A\u062F\u0629
-
-# Perspectives
-folders=\u0645\u0644\u0641\u0627\u062A
+++ /dev/null
-# New entities
-newTask=Neue Aufgabe
-newPerson=Neue Personne
-newOrganisation=Neue Organisation
-
-# Perspectives
-folders=Ordner
+++ /dev/null
-# New entities
-newTask=Nouvelle tâche
-newPerson=Nouvelle personne
-newOrganisation=Nouvelle organisation
+++ /dev/null
-Bundle-SymbolicName: org.argeo.suite.standard;singleton:=true
-Bundle-ActivationPolicy: lazy
+++ /dev/null
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- e4xmi/,\
- plugin.xml
+++ /dev/null
-<?xml version="1.0" encoding="ASCII"?>
-<fragment:ModelFragments xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:commands="http://www.eclipse.org/ui/2010/UIModel/application/commands" xmlns:fragment="http://www.eclipse.org/ui/2010/UIModel/fragment" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_IEOXAEIfEeij3Nr_iRrJtw">
- <imports xsi:type="commands:Command" xmi:id="_IEOXAUIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.command.createEntity" commandName="Create">
- <parameters xmi:id="_IEOXAkIfEeij3Nr_iRrJtw" elementId="targetNodeType" name="targetNodeType" optional="false"/>
- </imports>
- <imports xsi:type="commands:Command" xmi:id="_M5YvJkIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.command.openPerspective" commandName="Open Perspective">
- <parameters xmi:id="_M5YvJ0IfEeij3Nr_iRrJtw" elementId="perspectiveId" name="Perspective Id" optional="false"/>
- </imports>
- <fragments xsi:type="fragment:StringModelFragment" xmi:id="_IEOXA0IfEeij3Nr_iRrJtw" featurename="children" parentElementId="org.argeo.suite.e4.trimbar.top" positionInList="after:org.argeo.suite.e4.toolbar.standard">
- <elements xsi:type="menu:ToolBar" xmi:id="_IEOXBEIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.toolbar.newStandardEntity">
- <children xsi:type="menu:HandledToolItem" xmi:id="_IEOXBUIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.handledtoolitem.createTask" label="%newTask" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/24/todo-add.png" tooltip="%newTask" command="_IEOXAUIfEeij3Nr_iRrJtw">
- <tags>auth.cn=org.argeo.activities.editor,ou=roles,ou=node</tags>
- <parameters xmi:id="_IEOXBkIfEeij3Nr_iRrJtw" elementId="targetNodeType" name="targetNodeType" value="activities:task"/>
- </children>
- <children xsi:type="menu:HandledToolItem" xmi:id="_IEOXB0IfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.handledtoolitem.createPerson" label="%newPerson" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/24/person-add.png" tooltip="%newPerson" command="_IEOXAUIfEeij3Nr_iRrJtw">
- <tags>auth.cn=org.argeo.people.editor,ou=roles,ou=node</tags>
- <parameters xmi:id="_IEOXCEIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.parameter.0" name="targetNodeType" value="people:person"/>
- </children>
- <children xsi:type="menu:HandledToolItem" xmi:id="_IEOXCUIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.handledtoolitem.neworg" label="%newOrganisation" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/24/organisation-add.png" tooltip="%newOrganisation" command="_IEOXAUIfEeij3Nr_iRrJtw">
- <tags>auth.cn=org.argeo.people.editor,ou=roles,ou=node</tags>
- <parameters xmi:id="_IEOXCkIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.parameter.1" name="targetNodeType" value="people:org"/>
- </children>
- </elements>
- </fragments>
- <fragments xsi:type="fragment:StringModelFragment" xmi:id="_M5YvIEIfEeij3Nr_iRrJtw" featurename="children" parentElementId="org.argeo.suite.e4.trimbar.0">
- <elements xsi:type="menu:ToolBar" xmi:id="_M5YvIUIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.toolbar.perspectives">
- <children xsi:type="menu:HandledToolItem" xmi:id="_M5YvJEIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.handledtoolitem.folders" label="%folders" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/folder.png" tooltip="%folders" command="_M5YvJkIfEeij3Nr_iRrJtw">
- <parameters xmi:id="_M5YvJUIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.parameter.6" name="perspectiveId" value="org.argeo.suite.e4.perspective.folders"/>
- </children>
- </elements>
- </fragments>
-</fragment:ModelFragments>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin>
-
- <extension
- id="org.argeo.suite.e4.fragment"
- point="org.eclipse.e4.workbench.model">
- <fragment
- uri="e4xmi/standard-toolbars.e4xmi">
- </fragment>
- </extension>
-
-</plugin>
+++ /dev/null
-<?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.16-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.suite.standard</artifactId>
- <name>Standard Suite</name>
- <packaging>jar</packaging>
- <dependencies>
- <dependency>
- <groupId>org.argeo.suite</groupId>
- <artifactId>org.argeo.suite.e4</artifactId>
- <version>2.1.16-SNAPSHOT</version>
- </dependency>
- </dependencies>
-</project>
+++ /dev/null
-<?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-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+++ /dev/null
-/bin/
-/target/
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.suite.tracker</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>
- <buildCommand>
- <name>org.eclipse.pde.ds.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+++ /dev/null
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+++ /dev/null
-/MANIFEST.MF
+++ /dev/null
-newProjectTask=New project task
-newMilestone=New milestone
-newProject=New project
+++ /dev/null
-newProjectTask=\u0645\u0647\u0645\u0629 \u0645\u0634\u0631\u0648\u0639 \u062C\u062F\u064A\u062F
-newMilestone=\u0645\u0639\u0644\u0645 \u062C\u062F\u064A\u062F
-newProject=\u0645\u0634\u0631\u0648\u0639 \u062C\u062F\u064A\u062F
+++ /dev/null
-newProjectTask=Neue Projektaufgabe
-newMilestone=Neuer Meilenstein
-newProject=Neues Projekt
+++ /dev/null
-newProjectTask=Nouvelle tâche projet
-newMilestone=Nouvelle étape
-newProject=Nouveau projet
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="Tracker E4 Service">
- <implementation class="org.argeo.tracker.e4.TrackerE4Service"/>
- <service>
- <provide interface="org.argeo.connect.e4.AppE4Service"/>
- <provide interface="org.argeo.connect.ui.AppWorkbenchService"/>
- </service>
- <property name="service.ranking" type="Integer" value="10"/>
- <reference bind="setActivitiesService" cardinality="1..1" interface="org.argeo.activities.ActivitiesService" name="ActivitiesService" policy="static"/>
- <reference bind="setCmsUserManager" cardinality="1..1" interface="org.argeo.cms.CmsUserManager" policy="static"/>
- <reference bind="setTrackerService" cardinality="1..1" interface="org.argeo.tracker.TrackerService" name="TrackerService" policy="static"/>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" deactivate="destroy" immediate="true" name="Tracker Maintenance Service">
- <implementation class="org.argeo.tracker.core.TrackerMaintenanceService"/>
- <service>
- <provide interface="org.argeo.connect.AppMaintenanceService"/>
- </service>
- <reference bind="setRepository" cardinality="1..1" interface="javax.jcr.Repository" name="Repository" policy="static" target="(cn=connect)"/>
- <reference bind="setCmsUserManager" cardinality="1..1" interface="org.argeo.cms.CmsUserManager" policy="static"/>
-</scr:component>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="Tracker Service">
- <implementation class="org.argeo.tracker.core.TrackerServiceImpl"/>
- <service>
- <provide interface="org.argeo.connect.AppService"/>
- <provide interface="org.argeo.tracker.TrackerService"/>
- </service>
- <reference bind="setActivitiesService" cardinality="1..1" interface="org.argeo.activities.ActivitiesService" name="ActivitiesService" policy="static"/>
-</scr:component>
+++ /dev/null
-Bundle-SymbolicName: org.argeo.suite.tracker;singleton:=true
-Bundle-ActivationPolicy: lazy
-
-Service-Component: OSGI-INF/trackerService.xml,\
-OSGI-INF/trackerMaintenanceService.xml,\
-OSGI-INF/trackerE4Service.xml
-
-Import-Package: javax.jcr,\
-org.argeo.connect,\
-org.argeo.activities,\
-org.argeo.tracker,\
-org.argeo.tracker.core,\
-org.argeo.tracker.e4,\
-org.argeo.cms,\
-org.argeo.connect.ui,\
-*
+++ /dev/null
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- e4xmi/,\
- plugin.xml,\
- OSGI-INF/
-source.. = src/
+++ /dev/null
-<?xml version="1.0" encoding="ASCII"?>
-<fragment:ModelFragments xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:commands="http://www.eclipse.org/ui/2010/UIModel/application/commands" xmlns:fragment="http://www.eclipse.org/ui/2010/UIModel/fragment" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_1ISvQFuKEeioOJZqIpekPQ">
- <imports xsi:type="commands:Command" xmi:id="_Dppf4FuLEeioOJZqIpekPQ" elementId="org.argeo.suite.e4.command.createEntity">
- <parameters xmi:id="_HsY8kFuLEeioOJZqIpekPQ" elementId="targetNodeType" name="targetNodeType" optional="false"/>
- </imports>
- <fragments xsi:type="fragment:StringModelFragment" xmi:id="_1ISvQVuKEeioOJZqIpekPQ" featurename="children" parentElementId="org.argeo.suite.e4.trimbar.top" positionInList="">
- <elements xsi:type="menu:ToolBar" xmi:id="_1ISvQluKEeioOJZqIpekPQ" elementId="org.argeo.suite.e4.toolbar.newTrackerEntity">
- <children xsi:type="menu:HandledToolItem" xmi:id="_3CFicFuKEeioOJZqIpekPQ" elementId="org.argeo.suite.tracker.handledtoolitem.newTrackerTask" label="%newProjectTask" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/24/task-add.png" tooltip="%newProjectTask" command="_Dppf4FuLEeioOJZqIpekPQ">
- <tags>auth.cn=org.argeo.tracker.editor,ou=roles,ou=node</tags>
- <parameters xmi:id="_4EGjoFuLEeioOJZqIpekPQ" elementId="org.argeo.suite.tracker.parameter.1" name="targetNodeType" value="tracker:task"/>
- </children>
- <children xsi:type="menu:HandledToolItem" xmi:id="_Q4QPMFuLEeioOJZqIpekPQ" elementId="org.argeo.suite.tracker.handledtoolitem.newMilestone" label="%newMilestone" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/24/milestone-add.png" tooltip="%newMilestone" command="_Dppf4FuLEeioOJZqIpekPQ">
- <tags>auth.cn=org.argeo.tracker.editor,ou=roles,ou=node</tags>
- <parameters xmi:id="_6NTEwFuLEeioOJZqIpekPQ" elementId="org.argeo.suite.tracker.parameter.2" name="targetNodeType" value="tracker:milestone"/>
- </children>
- <children xsi:type="menu:HandledToolItem" xmi:id="_VOG1IFuLEeioOJZqIpekPQ" elementId="org.argeo.suite.tracker.handledtoolitem.newProject" label="%newProject" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/24/project-add.png" tooltip="%newProject" command="_Dppf4FuLEeioOJZqIpekPQ">
- <tags>auth.cn=org.argeo.tracker.editor,ou=roles,ou=node</tags>
- <parameters xmi:id="_0l_eAFuLEeioOJZqIpekPQ" elementId="org.argeo.suite.tracker.parameter.0" name="targetNodeType" value="tracker:project"/>
- </children>
- </elements>
- </fragments>
-</fragment:ModelFragments>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin>
-
- <extension
- id="org.argeo.suite.e4.fragment"
- point="org.eclipse.e4.workbench.model">
- <fragment
- uri="e4xmi/tracker-toolbars.e4xmi">
- </fragment>
- </extension>
-
-</plugin>
+++ /dev/null
-<?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.16-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.suite.tracker</artifactId>
- <name>Tracker</name>
- <packaging>jar</packaging>
- <dependencies>
- <dependency>
- <groupId>org.argeo.suite</groupId>
- <artifactId>org.argeo.suite.e4</artifactId>
- <version>2.1.16-SNAPSHOT</version>
- </dependency>
- </dependencies>
-</project>
org.argeo.api,\
org.eclipse.swt,\
org.osgi.framework,\
-org.argeo.connect.ui,\
org.argeo.entity,\
org.eclipse.core.commands.common,\
*
<name>Suite UI</name>
<packaging>jar</packaging>
<dependencies>
+ <dependency>
+ <groupId>org.argeo.suite</groupId>
+ <artifactId>org.argeo.suite.core</artifactId>
+ <version>2.1.16-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.argeo.suite</groupId>
<artifactId>org.argeo.entity.ui</artifactId>
<version>2.1.16-SNAPSHOT</version>
</dependency>
+
+ <!-- Argeo Commons -->
<dependency>
- <groupId>org.argeo.connect</groupId>
- <artifactId>org.argeo.connect.ui</artifactId>
- <version>${version.argeo-connect}</version>
+ <groupId>org.argeo.commons</groupId>
+ <artifactId>org.argeo.eclipse.ui</artifactId>
+ <version>${version.argeo-commons}</version>
</dependency>
<!-- Eclipse E4 -->
--- /dev/null
+package org.argeo.suite.ui;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import org.eclipse.rap.rwt.service.ServerPushSession;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * Text that introduce a timer in the attached ModifyListener.
+ *
+ * Note that corresponding ModifyEvent will *NOT* be sent in the UI thread.
+ * Calling ModifierInstance must be implemented in consequence. Note also that
+ * this delayed text only manages one listener at a time.
+ *
+ */
+public class DelayedText {
+ final int delay;
+ private Object lock = new Object();
+ private MyTimer timer = new MyTimer(DelayedText.this.toString());
+ private ModifyListener delayedModifyListener;
+ private ServerPushSession pushSession;
+
+ private Text text;
+
+ private ModifyListener modifyListener = new ModifyListener() {
+ private static final long serialVersionUID = 1117506414462641980L;
+
+ public void modifyText(ModifyEvent e) {
+ ModifyEvent delayedEvent = null;
+ synchronized (lock) {
+ if (delayedModifyListener != null) {
+ Event tmpEvent = new Event();
+ tmpEvent.widget = text;
+ tmpEvent.display = e.display;
+ tmpEvent.data = e.data;
+ tmpEvent.time = e.time;
+ delayedEvent = new ModifyEvent(tmpEvent);
+ }
+ }
+ final ModifyEvent timerModifyEvent = delayedEvent;
+
+ synchronized (timer) {
+ if (timer.timerTask != null) {
+ timer.timerTask.cancel();
+ timer.timerTask = null;
+ }
+
+ if (delayedEvent != null) {
+ timer.timerTask = new TimerTask() {
+ public void run() {
+ synchronized (lock) {
+ delayedModifyListener.modifyText(timerModifyEvent);
+ // Bad approach: it is not a good idea to put a
+ // display.asyncExec in a lock...
+ // DelayedText.this.getDisplay().asyncExec(new
+ // Runnable() {
+ // @Override
+ // public void run() {
+ // delayedModifyListener.modifyText(timerModifyEvent);
+ // }
+ // }
+ // );
+ }
+ synchronized (timer) {
+ timer.timerTask = null;
+ }
+ }
+ };
+ timer.schedule(timer.timerTask, delay);
+ if (pushSession != null)
+ pushSession.start();
+ }
+ }
+ };
+ };
+
+ public DelayedText(Composite parent, int style, int delayInMs) {
+ // super(parent, style);
+ text = new Text(parent, style);
+ this.delay = delayInMs;
+ text.addModifyListener(modifyListener);
+ }
+
+ /**
+ * Adds a modify text listener that will be delayed. If another Modify event
+ * happens during the waiting delay, the older event will be canceled an a new
+ * one will be scheduled after another new delay.
+ */
+ public void addDelayedModifyListener(ServerPushSession pushSession, ModifyListener listener) {
+ synchronized (lock) {
+ delayedModifyListener = listener;
+ this.pushSession = pushSession;
+ }
+ }
+
+ public void removeDelayedModifyListener(ModifyListener listener) {
+ synchronized (lock) {
+ delayedModifyListener = null;
+ pushSession = null;
+ }
+ }
+
+ private class MyTimer extends Timer {
+ private TimerTask timerTask = null;
+
+ public MyTimer(String name) {
+ super(name);
+ }
+ }
+
+ public Text getText() {
+ return text;
+ }
+
+ public void close() {
+ if (pushSession != null)
+ pushSession.stop();
+ if (timer != null)
+ timer.cancel();
+ };
+
+}
import static org.argeo.eclipse.ui.EclipseUiUtils.notEmpty;
+import java.util.List;
import java.util.Map;
import javax.jcr.Node;
import org.argeo.cms.ui.CmsUiProvider;
import org.argeo.cms.ui.CmsView;
import org.argeo.cms.ui.util.CmsUiUtils;
-import org.argeo.connect.ui.ConnectUiConstants;
-import org.argeo.connect.ui.util.BasicNodeListContentProvider;
-import org.argeo.connect.ui.widgets.DelayedText;
-import org.argeo.connect.util.XPathUtils;
import org.argeo.eclipse.ui.EclipseUiUtils;
import org.argeo.entity.EntityConstants;
import org.argeo.entity.EntityTypes;
import org.argeo.jcr.Jcr;
import org.argeo.jcr.JcrUtils;
+import org.argeo.suite.util.XPathUtils;
import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
/** List recent items. */
public class RecentItems implements CmsUiProvider {
-// private final static int SEARCH_TEXT_DELAY = 800;
+ private final static int SEARCH_TEXT_DELAY = 800;
+ private final static int SEARCH_DEFAULT_LIMIT = 100;
+
private CmsTheme theme;
private String entityType;
// Use a delayed text: the query won't be done until the user stop
// typing for 800ms
int style = SWT.BORDER | SWT.SEARCH | SWT.ICON_CANCEL;
- DelayedText delayedText = new DelayedText(parent, style, ConnectUiConstants.SEARCH_TEXT_DELAY);
+ DelayedText delayedText = new DelayedText(parent, style, SEARCH_TEXT_DELAY);
filterTxt = delayedText.getText();
filterTxt.setLayoutData(EclipseUiUtils.fillWidth());
// session.refresh(false);
Query xpathQuery = XPathUtils.createQuery(session, xpathQueryStr);
- xpathQuery.setLimit(ConnectUiConstants.SEARCH_DEFAULT_LIMIT);
+ xpathQuery.setLimit(SEARCH_DEFAULT_LIMIT);
QueryResult result = xpathQuery.execute();
NodeIterator nit = result.getNodes();
}
}
+
+ class BasicNodeListContentProvider implements IStructuredContentProvider {
+ private static final long serialVersionUID = 1L;
+ // keep a cache of the Nodes in the content provider to be able to
+ // manage long request
+ private List<Node> nodes;
+
+ public void dispose() {
+ }
+
+ /** Expects a list of nodes as a new input */
+ @SuppressWarnings("unchecked")
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ nodes = (List<Node>) newInput;
+ }
+
+ public Object[] getElements(Object arg0) {
+ return nodes.toArray();
+ }
+ }
}
}
<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-SNAPSHOT</version.argeo-commons>
- <version.argeo-connect>2.1.82-SNAPSHOT</version.argeo-connect>
<version.argeo-slc>2.1.17-SNAPSHOT</version.argeo-slc>
<argeo.rpm.stagingRepository>/srv/rpmfactory/argeo-osgi-2-gpl/el7</argeo.rpm.stagingRepository>
<module>org.argeo.suite.ui.rap</module>
<module>org.argeo.suite.theme.default</module>
- <!-- Eclipse 4 -->
- <module>org.argeo.suite.cms</module>
- <module>org.argeo.suite.e4</module>
- <module>org.argeo.suite.e4.rap</module>
- <module>org.argeo.suite.standard</module>
-
- <!-- Apps -->
- <module>library</module>
- <module>systems</module>
- <module>org.argeo.suite.tracker</module>
-
<module>dep</module>
<module>dist</module>
<module>lib</module>
+++ /dev/null
-<?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>
+++ /dev/null
-/bin/
-/target/
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.suite.studio</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>
- <buildCommand>
- <name>org.eclipse.pde.ds.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-/MANIFEST.MF
+++ /dev/null
-Bundle-ActivationPolicy: lazy
-
-Import-Package:\
-org.osgi.service.http.whiteboard,\
-org.eclipse.swt,\
-*
+++ /dev/null
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .
+++ /dev/null
-<?xml version="1.0" encoding="ASCII"?>
-<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_bQjNYDAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.application">
- <children xsi:type="basic:TrimmedWindow" xmi:id="_dKIlMDAVEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.trimmedwindow.main">
- <persistedState key="styleOverride" value="8"/>
- <tags>shellMaximized</tags>
- <tags>auth.cn=org.argeo.office.coworker,ou=roles,ou=node</tags>
- <children xsi:type="basic:PartSashContainer" xmi:id="__LhVQMlHEeic2PiQZ6_KRg" elementId="org.argeo.suite.e4.partsashcontainer.1" selectedElement="_8xaqAP3vEeia6ei0NV0Yrw" horizontal="true">
- <children xsi:type="basic:PartStack" xmi:id="_jfxwIPM8Eeqinoi2-PNjfw" elementId="org.argeo.suite.studio.partstack.0">
- <children xsi:type="basic:Part" xmi:id="_xi1k0DDzEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.part.siteMap" containerData="2000" contributionURI="bundleclass://org.argeo.suite.studio/org.argeo.suite.studio.parts.SiteMapPart" label="Site Map" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/documents.png"/>
- </children>
- <children xsi:type="basic:PartStack" xmi:id="_8xaqAP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.partstack.entityEditorArea" containerData="8000">
- <tags>entityEditorArea</tags>
- <children xsi:type="basic:Part" xmi:id="_EQBUIP3xEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.part.defaultDashboard" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.DocumentsDashboard" label="" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/dashboard.png" tooltip="%dashboard">
- <toolbar xmi:id="_EQB7MP3xEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.toolbar.0">
- <children xsi:type="menu:HandledToolItem" xmi:id="_MEMbEP3xEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.handledtoolitem.changepassword" label="%changePassword" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/person-logged-in.png" command="_UJVGgOdFEeijEOqYKRSeoQ"/>
- <children xsi:type="menu:HandledToolItem" xmi:id="_Qbo8cP3xEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.handledtoolitem.exit" label="%exit" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/logout.png" command="_lhxJUD4dEeiR-OuUuIB1Aw"/>
- </toolbar>
- </children>
- </children>
- </children>
- </children>
- <handlers xmi:id="_HCDl8D4aEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handler.openPerspective" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.OpenPerspective" command="__usGAD4ZEeiR-OuUuIB1Aw"/>
- <handlers xmi:id="_ipB00DArEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.handler.createEntity" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.handlers.CreateEntity" command="_2Xkt8DApEei3AbO1ldMI0w"/>
- <handlers xmi:id="_9gu00DDgEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handler.1" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.SavePart" command="_1lO94DDgEeiUfOa4rxEKwQ"/>
- <handlers xmi:id="_ADDAkDDhEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handler.2" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.SaveAllParts" command="_5EpEADDgEeiUfOa4rxEKwQ"/>
- <handlers xmi:id="_ZBWe8DDmEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.handler.3" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.CloseAllParts" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- <handlers xmi:id="_ClgawD4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handler.0" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.DoNothing" command="__L724D4cEeiR-OuUuIB1Aw"/>
- <handlers xmi:id="_oOUPID4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.handler.4" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.CloseWorkbench" command="_lhxJUD4dEeiR-OuUuIB1Aw"/>
- <handlers xmi:id="_FXgZoEJBEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.handler.5" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.handlers.OpenEntity" command="_CSkpAEJBEeij3Nr_iRrJtw"/>
- <handlers xmi:id="_rpYtUFKhEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.handler.7" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.people.e4.handlers.EditJob" command="_SZBRwFKgEeiMg9Tl6PNQtg"/>
- <handlers xmi:id="_NG13YFKpEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.handler.8" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.people.e4.handlers.RemoveEntityReference" command="_ABz60FKpEeiMg9Tl6PNQtg"/>
- <handlers xmi:id="_fXnekELbEeim_a9htzedPA" elementId="org.argeo.suite.e4.handler.6" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.connect.e4.handlers.DeleteSelectedEntity" command="_EvkB4ELbEeim_a9htzedPA"/>
- <handlers xmi:id="_WbOlwOdHEeijEOqYKRSeoQ" elementId="org.argeo.suite.e4.handler.9" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.handlers.ChangePassword" command="_UJVGgOdFEeijEOqYKRSeoQ"/>
- <bindingTables xmi:id="_gxEm4DDqEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.bindingtable.0" bindingContext="_Byl7gDD1EeiUfOa4rxEKwQ">
- <bindings xmi:id="_hj9cYDDqEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.keybinding.0" keySequence="CTRL+S" command="_1lO94DDgEeiUfOa4rxEKwQ"/>
- <bindings xmi:id="_pEAGYDDqEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.keybinding.1" keySequence="SHIFT+CTRL+S" command="_5EpEADDgEeiUfOa4rxEKwQ"/>
- </bindingTables>
- <rootContext xmi:id="_Byl7gDD1EeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.bindingcontext.main" name="Main"/>
- <descriptors xmi:id="_GkmucDD0EeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.partdescriptor.file" label="File" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/file.png" allowMultiple="true" category="entityEditorArea" closeable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.FileEditor">
- <toolbar xmi:id="_UaykgP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.toolbar.3">
- <children xsi:type="menu:HandledToolItem" xmi:id="_Up3iUP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.handledtoolitem.closeall" label="%closeAll" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/close-all.png" tooltip="%closeAll" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- </toolbar>
- </descriptors>
- <descriptors xmi:id="_NjQioDD0EeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.partdescriptor.folder" label="Folder" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/folder.png" allowMultiple="true" category="entityEditorArea" closeable="true" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.FolderEditor">
- <menus xsi:type="menu:PopupMenu" xmi:id="_bXH1kGQBEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.popupmenu.folder">
- <children xsi:type="menu:HandledMenuItem" xmi:id="_U4pEUGQDEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.handledmenuitem.test" label="Test" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- <children xsi:type="menu:DynamicMenuContribution" xmi:id="_fVnEYGQBEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.dynamicmenucontribution.0" label="Dynamic" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.FolderMenu"/>
- <children xsi:type="menu:DirectMenuItem" xmi:id="_5-x-kGQFEei4MaDg_iG6fg" elementId="org.argeo.suite.e4.directmenuitem.testdirectmenuitem" label="Test Direct Menu Item" contributionURI="bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.TestDirectMenuItem"/>
- </menus>
- <toolbar xmi:id="_TIkHoP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.toolbar.2">
- <children xsi:type="menu:HandledToolItem" xmi:id="_Ttc9YP3vEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.handledtoolitem.closeall" label="%closeAll" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/actions/close-all.png" tooltip="%closeAll" command="_VdldQDDmEeiUfOa4rxEKwQ"/>
- </toolbar>
- </descriptors>
- <commands xmi:id="_2Xkt8DApEei3AbO1ldMI0w" elementId="org.argeo.suite.e4.command.createEntity" commandName="New Entity">
- <parameters xmi:id="_GnXrcDAsEei3AbO1ldMI0w" elementId="targetNodeType" name="targetNodeType" optional="false"/>
- </commands>
- <commands xmi:id="_1lO94DDgEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.command.savePart" commandName="Save"/>
- <commands xmi:id="_5EpEADDgEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.command.saveAll" commandName="Save All"/>
- <commands xmi:id="_VdldQDDmEeiUfOa4rxEKwQ" elementId="org.argeo.suite.e4.command.closeAll" commandName="Close All"/>
- <commands xmi:id="__usGAD4ZEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.command.openPerspective" commandName="Open Perspective">
- <parameters xmi:id="_TgkVED4aEeiR-OuUuIB1Aw" elementId="perspectiveId" name="Perspective Id" optional="false"/>
- </commands>
- <commands xmi:id="__L724D4cEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.command.doNothing" commandName="Do Nothing"/>
- <commands xmi:id="_lhxJUD4dEeiR-OuUuIB1Aw" elementId="org.argeo.suite.e4.command.logout" commandName="Log out"/>
- <commands xmi:id="_CSkpAEJBEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.command.openEntity" commandName="Open Entity">
- <parameters xmi:id="_yfo0YEJDEeij3Nr_iRrJtw" elementId="param.jcrId" name="JCR ID" optional="false"/>
- <parameters xmi:id="_2M2F8EJDEeij3Nr_iRrJtw" elementId="param.openForEdit" name="Open for edit"/>
- </commands>
- <commands xmi:id="_EvkB4ELbEeim_a9htzedPA" elementId="org.argeo.suite.e4.command.deleteEntity" commandName="Delete Entity" description="%delete"/>
- <commands xmi:id="_SZBRwFKgEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.command.editJob" commandName="Edit Job">
- <parameters xmi:id="_UcMDYFKgEeiMg9Tl6PNQtg" elementId="relevantNodeJcrId" name="Relevant Node JCR ID" optional="false"/>
- <parameters xmi:id="_tsxAsFKpEeiMg9Tl6PNQtg" elementId="isBackward" name="Is Backward"/>
- </commands>
- <commands xmi:id="_ABz60FKpEeiMg9Tl6PNQtg" elementId="org.argeo.suite.e4.command.removeEntityReference" commandName="Remove Entity Reference">
- <parameters xmi:id="_D__AkFKpEeiMg9Tl6PNQtg" elementId="toRemoveJcrId" name="To Remove JCR ID" optional="false"/>
- </commands>
- <commands xmi:id="_UJVGgOdFEeijEOqYKRSeoQ" elementId="org.argeo.suite.e4.command.changePassword" commandName="Change Password"/>
- <addons xmi:id="_bQjNYTAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/>
- <addons xmi:id="_bQjNYjAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/>
- <addons xmi:id="_bQjNYzAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/>
- <addons xmi:id="_bQjNZDAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/>
- <addons xmi:id="_bQjNZTAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/>
- <addons xmi:id="_bQjNZjAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/>
- <addons xmi:id="_bQjNZzAVEei3AbO1ldMI0w" elementId="org.eclipse.e4.ui.workbench.handler.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon"/>
- <addons xmi:id="_srLWsEIoEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.addon.locale" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.addons.LocaleAddon"/>
- <addons xmi:id="_vN5UgP1IEeia6ei0NV0Yrw" elementId="org.argeo.suite.e4.addon.auth" contributionURI="bundleclass://org.argeo.cms.e4/org.argeo.cms.e4.addons.AuthAddon"/>
-</application:Application>
+++ /dev/null
-<?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.systems</groupId>
- <artifactId>suite-systems</artifactId>
- <version>2.1.16-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.suite.studio</artifactId>
- <name>Studio App</name>
- <packaging>jar</packaging>
- <dependencies>
- <dependency>
- <groupId>org.argeo.connect</groupId>
- <artifactId>org.argeo.connect.e4</artifactId>
- <version>${version.argeo-connect}</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>
- </dependencies>
-</project>
+++ /dev/null
-package org.argeo.suite.studio.parts;
-
-import org.eclipse.rap.rwt.application.ApplicationConfiguration;
-import org.osgi.framework.ServiceReference;
-
-/** Site map element representing an RWT application. */
-class RwtAppElem extends SiteElem {
- private final static String CONTEXT_NAME = "contextName";
-
- private final ServiceReference<ApplicationConfiguration> serviceReference;
-
- public RwtAppElem(ServiceReference<ApplicationConfiguration> serviceReference) {
- super(serviceReference.getProperties().get(CONTEXT_NAME).toString());
- this.serviceReference = serviceReference;
- }
-
- public ServiceReference<ApplicationConfiguration> getServiceReference() {
- return serviceReference;
- }
-
-}
+++ /dev/null
-package org.argeo.suite.studio.parts;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import javax.servlet.Servlet;
-
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.http.context.ServletContextHelper;
-import org.osgi.service.http.whiteboard.HttpWhiteboardConstants;
-
-/** Site map element which is a plain servlet. */
-class ServletElem extends SiteElem {
- private final ServiceReference<Servlet> serviceReference;
-
- public ServletElem(ServiceReference<Servlet> serviceReference) {
- super(extractPath(serviceReference));
- this.serviceReference = serviceReference;
- }
-
-
-
- public ServiceReference<Servlet> getServiceReference() {
- return serviceReference;
- }
-
-
-
- private static String extractPath(ServiceReference<Servlet> serviceReference) {
- Object servletPattern = serviceReference.getProperties()
- .get(HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN);
- Object servletContextSelect = serviceReference.getProperties()
- .get(HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_SELECT);
- String servletContextPath = "";
- if (servletContextSelect != null) {
- try {
- Collection<ServiceReference<ServletContextHelper>> scSr = serviceReference.getBundle()
- .getBundleContext()
- .getServiceReferences(ServletContextHelper.class, servletContextSelect.toString());
- if (scSr.size() > 0) {
- servletContextPath = scSr.iterator().next()
- .getProperty(HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_PATH).toString();
- if (servletContextPath.equals("/"))// default servlet context
- servletContextPath = "";
- }
- } catch (InvalidSyntaxException e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- if (servletPattern instanceof String)
- return servletContextPath + servletPattern.toString();
- else if (servletPattern instanceof String[]) {
- String[] patterns = (String[]) servletPattern;
- if (patterns.length == 2 && patterns[1].equals(patterns[0] + "/*")) // RAP servlets
- return servletContextPath + patterns[0];
- return servletContextPath + Arrays.asList(patterns).toString();
- } else
- throw new IllegalArgumentException("Cannot interpret servlet pattern " + servletPattern.getClass());
- }
-}
+++ /dev/null
-package org.argeo.suite.studio.parts;
-
-import org.argeo.eclipse.ui.TreeParent;
-
-/** Base class for site map elements. */
-abstract class SiteElem extends TreeParent {
-
- private final String path;
-
- public SiteElem(String path) {
- super(extractLastSegment(path));
- this.path = path;
- }
-
- public String getPath() {
- return path;
- }
-
- static String extractLastSegment(String path) {
- if (path == null || path.equals(""))
- throw new IllegalArgumentException("Path should not be null or empty.");
- if (path.equals("/"))
- return path;
- String[] segments = path.split("/");
- for (int i = segments.length - 1; i >= 0; i--) {
- if (!segments[i].equals("") && !segments[i].equals("*"))
- return segments[i];
- }
- return "/";
- }
-
- @Override
- public String toString() {
- return path;
- }
-
-}
+++ /dev/null
-package org.argeo.suite.studio.parts;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.TreeMap;
-
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-import javax.servlet.Servlet;
-
-import org.argeo.eclipse.ui.AbstractTreeContentProvider;
-import org.eclipse.e4.core.di.extensions.OSGiBundle;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.TreeViewerColumn;
-import org.eclipse.rap.rwt.application.ApplicationConfiguration;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-
-/** Overview of the URL paths provides by the system. */
-@SuppressWarnings("restriction")
-public class SiteMapPart {
-// private final static BundleContext bc = FrameworkUtil.getBundle(SiteMapPart.class).getBundleContext();
-
- private TreeViewer viewer;
-
- @Inject
- @OSGiBundle
- BundleContext bc;
-
- @PostConstruct
- public void createPartControl(Composite parent) {
-// new Label(parent, SWT.NONE).setText("TEST");
-//
- viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-// viewer.getTree().setHeaderVisible(true);
-
-// viewer.setLabelProvider(new ColumnLabelProvider());
-
- TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.NONE);
- column.getColumn().setWidth(200);
- column.getColumn().setText("Path");
- column.setLabelProvider(new ColumnLabelProvider() {
- private static final long serialVersionUID = -3122136344359358605L;
-
- public String getText(Object element) {
- return ((SiteElem) element).getPath();
- }
-
- @Override
- public Image getImage(Object element) {
- return super.getImage(element);
- }
-
- });
-
- viewer.setContentProvider(new SitePathContentProvider());
- viewer.setInput(bc);
-
- }
-
- class SitePathContentProvider extends AbstractTreeContentProvider {
- private static final long serialVersionUID = -5650173256183322051L;
-
- @Override
- public Object[] getElements(Object inputElement) {
- if (inputElement instanceof BundleContext) {
- BundleContext bundleContext = (BundleContext) inputElement;
- Map<String, SiteElem> siteElems = new TreeMap<>();
- try {
- Collection<ServiceReference<ApplicationConfiguration>> rwtApps = bundleContext
- .getServiceReferences(ApplicationConfiguration.class, null);
- for (ServiceReference<ApplicationConfiguration> sr : rwtApps) {
- RwtAppElem elem = new RwtAppElem(sr);
- siteElems.put(elem.getPath(), elem);
- }
- Collection<ServiceReference<Servlet>> plainServlets = bundleContext
- .getServiceReferences(Servlet.class, null);
- for (ServiceReference<Servlet> sr : plainServlets) {
- ServletElem elem = new ServletElem(sr);
- siteElems.put(elem.getPath(), elem);
- }
- } catch (InvalidSyntaxException e) {
- throw new IllegalArgumentException(e);
- }
- return siteElems.values().toArray();
- }
- return null;
- }
-
- }
-}
+++ /dev/null
-<?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.16-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
- <groupId>org.argeo.suite.systems</groupId>
- <artifactId>suite-systems</artifactId>
- <name>Systems Suite</name>
- <packaging>pom</packaging>
- <modules>
- <module>org.argeo.suite.studio</module>
- </modules>
-</project>