http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
\r
<!-- REFERENCES -->\r
- <reference id="repository" interface="javax.jcr.Repository" filter="(cn=node)" />\r
- \r
+ <reference id="repository" interface="javax.jcr.Repository"\r
+ filter="(cn=node)" />\r
+\r
+ <reference id="userAdmin" interface="org.osgi.service.useradmin.UserAdmin" />\r
+ <reference id="userTransaction" interface="javax.transaction.UserTransaction" />\r
+ <reference id="nodeFileSystemProvider" interface="java.nio.file.spi.FileSystemProvider"\r
+ filter="(service.pid=org.argeo.node.fsProvider)" />\r
+\r
<!-- SERVICES -->\r
- <!-- Exposes the Argeo Suite specific maintenance service -->\r
+ <service ref="userAdminService" interface="org.argeo.connect.UserAdminService" />\r
+\r
+ <!-- Maintenance service -->\r
<service ref="suiteMaintenanceService" interface="org.argeo.connect.AppMaintenanceService" />\r
+\r
+ <service ref="suiteAppService" interface="org.argeo.connect.AppService" />\r
+ <!-- App specific services -->\r
+ <service ref="resourcesService" interface="org.argeo.connect.resources.ResourcesService" />\r
+ <service ref="activitiesService" interface="org.argeo.connect.activities.ActivitiesService" />\r
+ <service ref="peopleService" interface="org.argeo.connect.people.PeopleService" />\r
+ <service ref="trackerService" interface="org.argeo.connect.tracker.TrackerService" />\r
+ <service ref="documentsService" interface="org.argeo.connect.documents.DocumentsService" />\r
+\r
+\r
</beans:beans>\r
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">\r
\r
- <!-- Instantiate the default MaintenanceService of the various Known Apps -->\r
+ <bean id="userAdminService" class="org.argeo.connect.UserAdminServiceImpl"\r
+ scope="singleton" lazy-init="false">\r
+ <property name="userTransaction" ref="userTransaction" />\r
+ <property name="userAdmin" ref="userAdmin" />\r
+ <property name="userAdminServiceReference" ref="userAdmin" />\r
+ </bean>\r
+\r
+ <!-- MAINTENANCE SERVICES -->\r
<bean id="resourcesMaintenanceService"\r
class="org.argeo.connect.resources.core.ResourcesMaintenanceService" />\r
\r
<bean id="activitiesMaintenanceService"\r
class="org.argeo.connect.activities.core.ActivitiesMaintenanceService" />\r
\r
- <bean id="peopleMaintenanceService"\r
- class="org.argeo.connect.people.core.PeopleMaintenanceService" />\r
+ <bean id="peopleMaintenanceService" class="org.argeo.connect.people.core.PeopleMaintenanceService" />\r
\r
<bean id="trackerMaintenanceService"\r
class="org.argeo.connect.tracker.core.TrackerMaintenanceService" />\r
\r
- <!-- Ther is no miantenance Service for the Documents app yet -->\r
-\r
- <!--order is important -->\r
+ <!-- There is no maintenance Service for the Documents App yet -->\r
+ <!-- Order is important -->\r
<util:list id="knownMaintenanceServices">\r
<ref bean="resourcesMaintenanceService" />\r
<ref bean="activitiesMaintenanceService" />\r
<ref bean="trackerMaintenanceService" />\r
</util:list>\r
\r
+ <!-- Make the DJ-aying between the various known Apps Maintenance -->\r
<bean id="suiteMaintenanceService" class="org.argeo.suite.core.DefaultSuiteMaintenanceService"\r
init-method="init" destroy-method="destroy">\r
<property name="repository" ref="repository" />\r
<property name="maintenanceServices" ref="knownMaintenanceServices" />\r
</bean>\r
\r
+ <!-- APP SERVICES (backends) -->\r
+ <bean id="resourcesService" class="org.argeo.connect.resources.core.ResourcesServiceImpl" />\r
+\r
+ <bean id="activitiesService" class="org.argeo.connect.activities.core.ActivitiesServiceImpl">\r
+ <property name="userAdminService" ref="userAdminService" />\r
+ <property name="resourcesService" ref="resourcesService" />\r
+ </bean>\r
+\r
+ <bean id="peopleService" class="org.argeo.connect.people.core.PeopleServiceImpl"\r
+ init-method="init">\r
+ <property name="resourcesService" ref="resourcesService" />\r
+ </bean>\r
+\r
+ <bean id="trackerService" class="org.argeo.connect.tracker.core.TrackerServiceImpl" />\r
+\r
+ <bean id="documentsService" class="org.argeo.connect.documents.DocumentsService" />\r
+\r
+ <bean id="suiteAppService" class="org.argeo.suite.core.DefaultSuiteAppService">\r
+ <property name="resourcesService" ref="resourcesService" />\r
+ <property name="activitiesService" ref="activitiesService" />\r
+ <property name="peopleService" ref="peopleService" />\r
+ <property name="trackerService" ref="trackerService" />\r
+ <property name="documentsService" ref="documentsService" />\r
+ </bean>\r
+\r
+ <!-- VARIOUS -->\r
+\r
<!-- Execute initialization with a system authentication -->\r
<bean\r
class="org.argeo.cms.spring.AuthenticatedApplicationContextInitialization" />\r
Require-Capability: cms.datamodel; filter:="(name=people)",\
-cms.datamodel; filter:="(name=documents)"
+cms.datamodel; filter:="(name=documents)",\
+cms.datamodel; filter:="(name=tracker)"
Import-Package:\
javax.jcr.nodetype,\
org.argeo.connect.resources,\
org.argeo.util,\
javax.jcr.security,\
*
-
-
<artifactId>org.argeo.connect.documents</artifactId>
<version>${version.argeo-connect}</version>
</dependency>
+ <dependency>
+ <groupId>org.argeo.connect</groupId>
+ <artifactId>org.argeo.connect.activities</artifactId>
+ <version>${version.argeo-connect}</version>
+ </dependency>
</dependencies>
</project>
--- /dev/null
+package org.argeo.suite.core;
+
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+import javax.jcr.nodetype.NodeType;
+
+import org.argeo.connect.AppService;
+import org.argeo.connect.activities.ActivitiesService;
+import org.argeo.connect.activities.ActivitiesTypes;
+import org.argeo.connect.documents.DocumentsService;
+import org.argeo.connect.people.PeopleService;
+import org.argeo.connect.people.PeopleTypes;
+import org.argeo.connect.resources.ResourcesService;
+import org.argeo.connect.resources.ResourcesTypes;
+import org.argeo.connect.tracker.TrackerService;
+import org.argeo.connect.tracker.TrackerTypes;
+import org.argeo.connect.util.ConnectJcrUtils;
+
+public class DefaultSuiteAppService implements AppService {
+
+ private ResourcesService resourcesService;
+ private ActivitiesService activitiesService;
+ private PeopleService peopleService;
+ private DocumentsService documentsService;
+ private TrackerService trackerService;
+
+ @Override
+ public String getAppBaseName() {
+ return null;
+ }
+
+ @Override
+ public String getDefaultRelPath(Node entity) throws RepositoryException {
+ return null;
+ }
+
+ @Override
+ public String getDefaultRelPath(String id) {
+ return null;
+ }
+
+ /** Insures the correct service is called on save */
+ @Override
+ public Node saveEntity(Node entity, boolean publish) {
+ if (ConnectJcrUtils.isNodeType(entity, ResourcesTypes.RESOURCES_TAG_PARENT)
+ || ConnectJcrUtils.isNodeType(entity, ResourcesTypes.RESOURCES_NODE_TEMPLATE)
+ || ConnectJcrUtils.isNodeType(entity, ResourcesTypes.RESOURCES_TAG_ENCODED_INSTANCE)
+ || ConnectJcrUtils.isNodeType(entity, ResourcesTypes.RESOURCES_TAG_INSTANCE))
+ return resourcesService.saveEntity(entity, publish);
+ else if (ConnectJcrUtils.isNodeType(entity, TrackerTypes.TRACKER_PROJECT))
+ return trackerService.saveEntity(entity, publish);
+ else if (ConnectJcrUtils.isNodeType(entity, ActivitiesTypes.ACTIVITIES_TASK)
+ || ConnectJcrUtils.isNodeType(entity, ActivitiesTypes.ACTIVITIES_ACTIVITY))
+ return activitiesService.saveEntity(entity, publish);
+ else if (ConnectJcrUtils.isNodeType(entity, PeopleTypes.PEOPLE_PERSON)
+ || ConnectJcrUtils.isNodeType(entity, PeopleTypes.PEOPLE_ORG))
+ return peopleService.saveEntity(entity, publish);
+ else if (ConnectJcrUtils.isNodeType(entity, NodeType.NT_FILE)
+ || ConnectJcrUtils.isNodeType(entity, NodeType.NT_FOLDER))
+ return documentsService.saveEntity(entity, publish);
+ else
+ return AppService.super.saveEntity(entity, publish);
+ }
+
+ 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 setDocumentsService(DocumentsService documentsService) {
+ this.documentsService = documentsService;
+ }
+
+ public void setTrackerService(TrackerService trackerService) {
+ this.trackerService = trackerService;
+ }
+}
+++ /dev/null
-package org.argeo.suite.documents;
-
-public interface FsConstants {
-}
+++ /dev/null
-package org.argeo.suite.people;
-
-import java.net.URI;
-import java.util.Map;
-
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.nodetype.NodeType;
-import javax.jcr.security.Privilege;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.connect.people.PeopleConstants;
-import org.argeo.connect.people.PeopleService;
-import org.argeo.connect.people.core.PeopleServiceImpl;
-import org.argeo.connect.resources.ResourcesService;
-import org.argeo.jcr.JcrUtils;
-import org.argeo.node.NodeConstants;
-import org.argeo.suite.ArgeoSuiteRole;
-import org.argeo.suite.SuiteException;
-
-/**
- * Default implementation of an Argeo Suite specific People Backend
- *
- * TODO refactor and clean init process and service dependencies
- */
-public class PeopleSuiteServiceImpl extends PeopleServiceImpl implements PeopleService, PeopleConstants {
- private final static Log log = LogFactory.getLog(PeopleSuiteServiceImpl.class);
-
- /* DEPENDENCY INJECTION */
- private Repository repository;
- private String workspaceName;
- private ResourcesService resourceService;
- private Map<String, URI> initResources = null;
- private Map<String, URI> legacyResources = null;
-
- public void init() {
- super.init();
- Session adminSession = null;
- try {
- adminSession = repository.login(workspaceName);
- initialiseModel(adminSession);
- initModelResources(adminSession);
- } catch (Exception e) {
- throw new SuiteException("Cannot initialise model", e);
- } finally {
- JcrUtils.logoutQuietly(adminSession);
- }
- }
-
- // TODO Hard-coded model initialisation
- // To be cleaned once first init and config mechanisms have been implemented
- private final static String publicPath = "/public";
- // FIXME Users must have read access on the jcr:system/jcr:versionStorage
- // node under JackRabbit to be able to manage versions
- private final static String jackRabbitVersionSystemPath = "/jcr:system";
-
- @Override
- protected void initialiseModel(Session adminSession) throws RepositoryException {
- super.initialiseModel(adminSession);
-
- JcrUtils.mkdirs(adminSession, publicPath, NodeType.NT_UNSTRUCTURED);
- if (adminSession.hasPendingChanges()) {
- adminSession.save();
- configureACL(adminSession);
- log.info("Repository has been initialised with Argeo Suite model");
- }
- }
-
- // First draft of configuration of the people specific rights
- private void configureACL(Session session) throws RepositoryException {
-
- // Initialise people
- JcrUtils.addPrivilege(session, getBasePath(null), ArgeoSuiteRole.coworker.dn(), Privilege.JCR_ALL);
- JcrUtils.addPrivilege(session, jackRabbitVersionSystemPath, ArgeoSuiteRole.coworker.dn(), Privilege.JCR_READ);
-
- // Default configuration of the workspace
- JcrUtils.addPrivilege(session, "/", NodeConstants.ROLE_ADMIN, Privilege.JCR_ALL);
- JcrUtils.addPrivilege(session, publicPath, NodeConstants.ROLE_USER, Privilege.JCR_READ);
- JcrUtils.addPrivilege(session, publicPath, "anonymous", Privilege.JCR_READ);
- JcrUtils.addPrivilege(session, publicPath, NodeConstants.ROLE_ANONYMOUS, Privilege.JCR_READ);
-
- session.save();
- log.info("Access control configured");
- }
-
- /**
- * Initialises People resource model and optionally imports legacy resources
- */
- protected void initModelResources(Session adminSession) {
- // try {
- // // initialisation
- // resourceService.initialiseResources(adminSession);
- //
- // Resource resource = initResources.get("Countries");
- // if (resourceService.getTagLikeResourceParent(adminSession,
- // PeopleConstants.RESOURCE_COUNTRY) == null
- // && resource != null) {
- // resourceService.createTagLikeResourceParent(adminSession,
- // PeopleConstants.RESOURCE_COUNTRY,
- // PeopleTypes.PEOPLE_TAG_ENCODED_INSTANCE, PeopleNames.PEOPLE_CODE,
- // getBasePath(null),
- // ConnectJcrUtils.getLocalJcrItemName(NodeType.NT_UNSTRUCTURED), new
- // ArrayList<String>());
- // String EN_SHORT_NAME = "English short name (upper-lower case)";
- // String ISO_CODE = "Alpha-2 code";
- // new EncodedTagCsvFileParser(resourceService, adminSession,
- // PeopleConstants.RESOURCE_COUNTRY, ISO_CODE,
- // EN_SHORT_NAME).parse(resource.getInputStream(), "UTF-8");
- // }
- //
- // resource = initResources.get("Languages");
- // if (resourceService.getTagLikeResourceParent(adminSession,
- // PeopleConstants.RESOURCE_LANG) == null
- // && resource != null) {
- // resourceService.createTagLikeResourceParent(adminSession,
- // PeopleConstants.RESOURCE_LANG,
- // PeopleTypes.PEOPLE_TAG_ENCODED_INSTANCE, PeopleNames.PEOPLE_CODE,
- // getBasePath(null),
- // ConnectJcrUtils.getLocalJcrItemName(NodeType.NT_UNSTRUCTURED), new
- // ArrayList<String>());
- // String EN_SHORT_NAME = "Language name";
- // String ISO_CODE = "639-1";
- // new EncodedTagCsvFileParser(resourceService, adminSession,
- // PeopleConstants.RESOURCE_LANG, ISO_CODE,
- // EN_SHORT_NAME).parse(resource.getInputStream(), "UTF-8");
- // }
- //
- // // Create tag & mailing list parents
- // if (resourceService.getTagLikeResourceParent(adminSession,
- // PeopleConstants.RESOURCE_TAG) == null)
- // resourceService.createTagLikeResourceParent(adminSession,
- // PeopleConstants.RESOURCE_TAG,
- // PeopleTypes.PEOPLE_TAG_INSTANCE, null, getBasePath(null),
- // PeopleTypes.PEOPLE_ENTITY,
- // PeopleNames.PEOPLE_TAGS);
- // if (resourceService.getTagLikeResourceParent(adminSession,
- // PeopleTypes.PEOPLE_MAILING_LIST) == null)
- // resourceService.createTagLikeResourceParent(adminSession, null,
- // PeopleTypes.PEOPLE_MAILING_LIST, null,
- // getBasePath(null), PeopleTypes.PEOPLE_ENTITY,
- // PeopleNames.PEOPLE_MAILING_LISTS);
- //
- // // Initialise catalogues
- // importCatalogue(adminSession, initResources.get("SimpleTasks"),
- // PeopleTypes.PEOPLE_TASK);
- //
- // if (adminSession.hasPendingChanges()) {
- // adminSession.save();
- // log.info("Resources have been added to Argeo Suite model");
- // }
- // } catch (IOException | RepositoryException e) {
- // throw new SuiteException("Cannot initialise resources ", e);
- // }
- }
-
- /** Give access to the repository to extending classes */
- protected Repository getRepository() {
- return repository;
- }
-
- protected String getWorkspaceName() {
- return workspaceName;
- }
-
- /* DEPENDENCY INJECTION */
- public void setRepository(Repository repository) {
- this.repository = repository;
- }
-
- public void setWorkspaceName(String workspaceName) {
- this.workspaceName = workspaceName;
- }
-
- public void setInitResources(Map<String, URI> initResources) {
- this.initResources = initResources;
- }
-}
Import-Package:\
javax.jcr.nodetype,\
+org.argeo.connect,\
org.argeo.node,\
javax.jcr.security,\
org.eclipse.swt,\
if (context.isNodeType(PeopleTypes.PEOPLE_ENTITY))
return peoplePage.createUi(parent, context);
- else if (peopleService.getBasePath(null).equals(context.getPath()))
+ else if (peopleService.getDefaultBasePath().equals(context.getPath()))
return peoplePage.createUi(parent, context);
else if (context.isNodeType(NodeType.NT_FOLDER) || context.isNodeType(NodeType.NT_FILE))
return fsBrowserPage.createUi(parent, context);
interface="org.argeo.connect.activities.ActivitiesService" />\r
<reference id="peopleService" interface="org.argeo.connect.people.PeopleService" />\r
<reference id="documentsService" interface="org.argeo.connect.documents.DocumentsService" />\r
- <reference id="appWorkbenchService"\r
+ <reference id="trackerService" interface="org.argeo.connect.tracker.TrackerService" />\r
+ \r
+ \r
+ <!-- Assembly of the various apps workbench services -->\r
+ <service ref="suiteWorkbenchService"\r
interface="org.argeo.connect.ui.workbench.AppWorkbenchService" />\r
- <reference id="nodeFileSystemProvider" interface="java.nio.file.spi.FileSystemProvider"\r
- filter="(service.pid=org.argeo.node.fsProvider)" />\r
+\r
+ <!-- Exposes People specific implementation of the AppWorkbenchService -->\r
+ <service ref="peopleWorkbenchService"\r
+ interface="org.argeo.connect.people.workbench.PeopleWorkbenchService" />\r
+ \r
</beans:beans>\r
<property name="repository" ref="repository" />
</bean>
- <bean id="openEntityEditor" class="org.argeo.suite.workbench.commands.OpenEntityEditor"
- scope="prototype">
- <property name="repository" ref="repository" />
- <property name="appWorkbenchService" ref="appWorkbenchService" />
- </bean>
+<!-- <bean id="openEntityEditor" class="org.argeo.suite.workbench.commands.OpenEntityEditor" -->
+<!-- scope="prototype"> -->
+<!-- <property name="repository" ref="repository" /> -->
+<!-- <property name="appWorkbenchService" ref="appWorkbenchService" /> -->
+<!-- </bean> -->
<!-- VIEWS -->
<property name="activitiesService" ref="activitiesService" />
<property name="peopleService" ref="peopleService" />
<property name="documentsService" ref="documentsService" />
- <property name="appWorkbenchService" ref="appWorkbenchService" />
+ <property name="appWorkbenchService" ref="suiteWorkbenchService" />
</bean>
</beans>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">
+
+ <!-- Assembly of the various AppWorkbenchServices -->
+ <bean id="activitiesWorkbenchService"
+ class="org.argeo.connect.activities.workbench.ActivitiesWorkbenchService" />
+
+ <bean id="peopleWorkbenchService"
+ class="org.argeo.connect.people.workbench.rap.PeopleWorkbenchServiceImpl" />
+
+ <bean id="documentsWorkbenchService"
+ class="org.argeo.connect.documents.workbench.DocumentsWorkbenchService" />
+
+ <!--order is important -->
+ <util:list id="knownWbServices">
+ <ref bean="activitiesWorkbenchService" />
+ <ref bean="peopleWorkbenchService" />
+ <ref bean="documentsWorkbenchService" />
+ </util:list>
+
+ <bean id="suiteWorkbenchService" class="org.argeo.suite.workbench.AsWorkbenchServiceImpl">
+ <property name="knownAppWbServices" ref="knownWbServices" />
+ </bean>
+
+</beans>
\ No newline at end of file
javax.jcr.security,\
org.argeo.cms,\
org.argeo.cms.ui.workbench,\
+org.argeo.cms.ui.workbench.jcr,\
org.argeo.connect,\
-org.argeo.connect.resources,\
org.argeo.connect.activities,\
-org.argeo.connect.ui,\
-org.argeo.connect.people.workbench.rap.views,\
+org.argeo.connect.activities.workbench.parts,\
org.argeo.connect.documents.workbench.parts,\
+org.argeo.connect.people.workbench.rap.views,\
+org.argeo.connect.resources,\
+org.argeo.connect.ui,\
org.argeo.connect.ui.workbench,\
+org.argeo.connect.ui.workbench.util,\
org.argeo.eclipse.spring,\
org.argeo.node,\
org.argeo.util,\
-org.argeo.cms.ui.workbench.jcr,\
*
\ No newline at end of file
<extension
id="menu:org.eclipse.ui.main.menu"
point="org.eclipse.ui.menus">
-
- <!-- Add entity and Search menus -->
- <menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar?after=org.argeo.cms.ui.workbench.rap.userToolbar">
- <toolbar id="org.argeo.connect.ui.workbench.dropDownsToolbar">
- <command
- id="org.argeo.connect.ui.workbench.addEntityToolbar"
- style="pulldown"
- label="Create"
- tooltip="Create a new object"
- icon="theme/argeo-classic/icons/add.gif"
- commandId="org.argeo.cms.ui.workbench.doNothing">
- </command>
- <command
- id="org.argeo.connect.ui.workbench.openSearchToolbar"
- style="pulldown"
- label="Search"
- tooltip="Open a detailed search page"
- icon="theme/argeo-classic/icons/search.png"
- commandId="org.argeo.cms.ui.workbench.doNothing">
- <visibleWhen checkEnabled="false">
- <with variable="roles">
- <iterate ifEmpty="false" operator="or">
- <equals value="cn=org.argeo.suite.coworker,ou=roles,ou=node" />
- </iterate>
- </with>
- </visibleWhen>
- </command>
- </toolbar>
- </menuContribution>
</extension>
<!-- BRANDING AND THEMES -->
<?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">
+<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>org.argeo.connect.people.workbench.rap</artifactId>
<version>${version.argeo-connect}</version>
</dependency>
+ <dependency>
+ <groupId>org.argeo.connect</groupId>
+ <artifactId>org.argeo.connect.ui</artifactId>
+ <version>${version.argeo-connect}</version>
+ </dependency>
</dependencies>
</project>
import org.argeo.connect.ui.workbench.AppWorkbenchService;
import org.argeo.eclipse.ui.EclipseUiUtils;
-import org.argeo.suite.workbench.commands.OpenEntityEditor;
import org.argeo.suite.workbench.parts.DefaultDashboardEditor;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.swt.graphics.Image;
return DefaultDashboardEditor.ID;
}
- @Override
- public String getOpenEntityEditorCmdId() {
-// String result = null;
-// for (AppWorkbenchService appWbService : knownAppWbServices) {
-// result = appWbService.getOpenEntityEditorCmdId();
-// if (EclipseUiUtils.notEmpty(result))
-// return result;
-// }
- return OpenEntityEditor.ID;
- }
+ // @Override
+ // public String getOpenEntityEditorCmdId() {
+ //// String result = null;
+ //// for (AppWorkbenchService appWbService : knownAppWbServices) {
+ //// result = appWbService.getOpenEntityEditorCmdId();
+ //// if (EclipseUiUtils.notEmpty(result))
+ //// return result;
+ //// }
+ // return OpenEntityEditor.ID;
+ // }
- @Override
- public String getOpenSearchEntityEditorCmdId() {
- String result = null;
- for (AppWorkbenchService appWbService : knownAppWbServices) {
- result = appWbService.getOpenSearchEntityEditorCmdId();
- if (EclipseUiUtils.notEmpty(result))
- return result;
- }
- return null;
- }
+ // @Override
+ // public String getOpenSearchEntityEditorCmdId() {
+ // String result = null;
+ // for (AppWorkbenchService appWbService : knownAppWbServices) {
+ // result = appWbService.getOpenSearchEntityEditorCmdId();
+ // if (EclipseUiUtils.notEmpty(result))
+ // return result;
+ // }
+ // return null;
+ // }
@Override
public String getEntityEditorId(Node entity) {
package org.argeo.suite.workbench;
+import org.argeo.connect.activities.workbench.parts.MyTodoListView;
import org.argeo.connect.documents.workbench.parts.MyFilesView;
-import org.argeo.connect.people.workbench.rap.views.MyTodoListView;
import org.argeo.connect.people.workbench.rap.views.QuickSearchView;
import org.eclipse.ui.IFolderLayout;
import org.eclipse.ui.IPageLayout;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import org.argeo.connect.ui.workbench.parts.EntityEditorInput;
+import org.argeo.connect.ui.workbench.util.EntityEditorInput;
import org.argeo.jcr.JcrUtils;
import org.argeo.node.NodeUtils;
import org.argeo.suite.SuiteException;
package org.argeo.suite.workbench.commands;
-import javax.jcr.Node;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import org.argeo.connect.ui.workbench.AppWorkbenchService;
-import org.argeo.connect.ui.workbench.NodeEditorInput;
-import org.argeo.jcr.JcrUtils;
-import org.argeo.suite.SuiteException;
-import org.argeo.suite.workbench.AsUiPlugin;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.handlers.HandlerUtil;
+public class OpenEntityEditor{}
-/** Workaround to enable opening of a default editor */
-public class OpenEntityEditor extends AbstractHandler {
- public final static String ID = AsUiPlugin.PLUGIN_ID + ".openEntityEditor";
-
- public final static String PARAM_JCR_ID = "param.jcrId";
- // public final static String PARAM_OPEN_FOR_EDIT = "param.openForEdit";
- // public final static String PARAM_CTAB_ID = "param.cTabId";
-
- private Repository repository;
- private AppWorkbenchService appWorkbenchService;
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- NodeEditorInput eei = null;
- Node entity = null;
- Session session = null;
- String jcrId = event.getParameter(PARAM_JCR_ID);
- try {
- session = repository.login();
- if (jcrId != null) {
- entity = session.getNodeByIdentifier(jcrId);
- eei = new NodeEditorInput(jcrId);
- } else
- return null;
-
- String editorId = appWorkbenchService.getEntityEditorId(entity);
- if (editorId != null) {
- IWorkbenchWindow iww = HandlerUtil.getActiveWorkbenchWindow(event);
- IWorkbenchPage iwp = iww.getActivePage();
- iwp.openEditor(eei, editorId);
- }
- } catch (PartInitException pie) {
- throw new SuiteException("Unexpected PartInitException while opening entity editor", pie);
- } catch (RepositoryException e) {
- throw new SuiteException("unexpected JCR error while opening editor", e);
- } finally {
- JcrUtils.logoutQuietly(session);
- }
- return null;
- }
-
- public void setRepository(Repository repository) {
- this.repository = repository;
- }
-
- public void setAppWorkbenchService(AppWorkbenchService appWorkbenchService) {
- this.appWorkbenchService = appWorkbenchService;
- }
-}
+//import javax.jcr.Node;
+//import javax.jcr.Repository;
+//import javax.jcr.RepositoryException;
+//import javax.jcr.Session;
+//
+//import org.argeo.connect.ui.workbench.AppWorkbenchService;
+//import org.argeo.connect.ui.workbench.NodeEditorInput;
+//import org.argeo.jcr.JcrUtils;
+//import org.argeo.suite.SuiteException;
+//import org.argeo.suite.workbench.AsUiPlugin;
+//import org.eclipse.core.commands.AbstractHandler;
+//import org.eclipse.core.commands.ExecutionEvent;
+//import org.eclipse.core.commands.ExecutionException;
+//import org.eclipse.ui.IWorkbenchPage;
+//import org.eclipse.ui.IWorkbenchWindow;
+//import org.eclipse.ui.PartInitException;
+//import org.eclipse.ui.handlers.HandlerUtil;
+//
+///** Workaround to enable opening of a default editor */
+//public class OpenEntityEditor extends AbstractHandler {
+// public final static String ID = AsUiPlugin.PLUGIN_ID + ".openEntityEditor";
+//
+// public final static String PARAM_JCR_ID = "param.jcrId";
+// // public final static String PARAM_OPEN_FOR_EDIT = "param.openForEdit";
+// // public final static String PARAM_CTAB_ID = "param.cTabId";
+//
+// private Repository repository;
+// private AppWorkbenchService appWorkbenchService;
+//
+// public Object execute(ExecutionEvent event) throws ExecutionException {
+// NodeEditorInput eei = null;
+// Node entity = null;
+// Session session = null;
+// String jcrId = event.getParameter(PARAM_JCR_ID);
+// try {
+// session = repository.login();
+// if (jcrId != null) {
+// entity = session.getNodeByIdentifier(jcrId);
+// eei = new NodeEditorInput(jcrId);
+// } else
+// return null;
+//
+// String editorId = appWorkbenchService.getEntityEditorId(entity);
+// if (editorId != null) {
+// IWorkbenchWindow iww = HandlerUtil.getActiveWorkbenchWindow(event);
+// IWorkbenchPage iwp = iww.getActivePage();
+// iwp.openEditor(eei, editorId);
+// }
+// } catch (PartInitException pie) {
+// throw new SuiteException("Unexpected PartInitException while opening entity editor", pie);
+// } catch (RepositoryException e) {
+// throw new SuiteException("unexpected JCR error while opening editor", e);
+// } finally {
+// JcrUtils.logoutQuietly(session);
+// }
+// return null;
+// }
+//
+// public void setRepository(Repository repository) {
+// this.repository = repository;
+// }
+//
+// public void setAppWorkbenchService(AppWorkbenchService appWorkbenchService) {
+// this.appWorkbenchService = appWorkbenchService;
+// }
+//}
import org.argeo.connect.resources.ResourcesService;
import org.argeo.connect.ui.ConnectUiStyles;
import org.argeo.connect.ui.workbench.AppWorkbenchService;
-import org.argeo.connect.ui.workbench.parts.EntityEditorInput;
+import org.argeo.connect.ui.workbench.util.EntityEditorInput;
import org.argeo.connect.util.ConnectJcrUtils;
import org.argeo.eclipse.ui.EclipseUiUtils;
import org.argeo.jcr.JcrUtils;
/** Header **/
-.people_entity_header {
+.entity_header {
font: 14px Helvetica, Verdana, "Lucida Sans", Arial, sans-serif;
text-decoration: none;
}