Enhance integration of the various apps
authorbsinou <bsinou@argeo.org>
Tue, 31 Jan 2017 15:11:23 +0000 (16:11 +0100)
committerbsinou <bsinou@argeo.org>
Tue, 31 Jan 2017 17:30:29 +0000 (18:30 +0100)
12 files changed:
org.argeo.suite.core/bnd.bnd
org.argeo.suite.core/pom.xml
org.argeo.suite.core/src/org/argeo/suite/SuiteConstants.java [new file with mode: 0644]
org.argeo.suite.core/src/org/argeo/suite/documents/FsConstants.java [new file with mode: 0644]
org.argeo.suite.workbench.rap/META-INF/spring/osgi.xml
org.argeo.suite.workbench.rap/META-INF/spring/parts.xml
org.argeo.suite.workbench.rap/bnd.bnd
org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/AsWorkbenchServiceImpl.java
org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsAppService.java [deleted file]
org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java
org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java
org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/MyFilesView.java

index 68b918cea5a7b9084f6771b3ffee94100b103842..7537584719fccfea2e8511c10b032a679078221e 100644 (file)
@@ -1,3 +1,5 @@
+Require-Capability: cms.datamodel; filter:="(name=people)",\
+cms.datamodel; filter:="(name=documents)"
 Import-Package:\
 javax.jcr.nodetype,\
 org.argeo.node,\
index a8eb09590354310ea7212055fbfee7512b4589eb..65e450d532b2c58b7baa87e1281f241e5eade59b 100644 (file)
                        <artifactId>org.argeo.connect.people.core</artifactId>
                        <version>${version.argeo-connect}</version>
                </dependency>
+               <dependency>
+                       <groupId>org.argeo.connect</groupId>
+                       <artifactId>org.argeo.connect.documents</artifactId>
+                       <version>${version.argeo-connect}</version>
+               </dependency>
        </dependencies>
 </project>
diff --git a/org.argeo.suite.core/src/org/argeo/suite/SuiteConstants.java b/org.argeo.suite.core/src/org/argeo/suite/SuiteConstants.java
new file mode 100644 (file)
index 0000000..ee172ed
--- /dev/null
@@ -0,0 +1,5 @@
+package org.argeo.suite;
+
+public interface SuiteConstants {
+
+}
diff --git a/org.argeo.suite.core/src/org/argeo/suite/documents/FsConstants.java b/org.argeo.suite.core/src/org/argeo/suite/documents/FsConstants.java
new file mode 100644 (file)
index 0000000..ce5df78
--- /dev/null
@@ -0,0 +1,4 @@
+package org.argeo.suite.documents;
+
+public interface FsConstants {
+}
index 9b36c038f0be54cf0796db8dab615efbc524d353..f026adbb186d6072818c6d50e7bc227edf590674 100644 (file)
@@ -9,15 +9,12 @@
        <!-- REFERENCES -->\r
        <reference id="repository" interface="javax.jcr.Repository"\r
                filter="(cn=home)" />\r
-       <reference id="peopleService" interface="org.argeo.connect.people.PeopleService" />\r
-       <reference id="peopleWorkbenchService"\r
-               interface="org.argeo.connect.people.workbench.rap.PeopleWorkbenchService" />\r
        <reference id="nodeFileSystemProvider" interface="java.nio.file.spi.FileSystemProvider"\r
                filter="(service.pid=org.argeo.node.fsProvider)" />\r
+       <reference id="appWorkbenchService"\r
+               interface="org.argeo.connect.ui.workbench.AppWorkbenchService" />\r
 \r
-\r
-       <!-- Local beans to be cleaned -->\r
-       <beans:bean id="fsAppService" class="org.argeo.suite.workbench.fs.FsAppService">\r
-       </beans:bean>\r
+       <reference id="peopleService" interface="org.argeo.connect.people.PeopleService" />\r
+       <reference id="documentsService" interface="org.argeo.connect.documents.DocumentsService" />\r
 \r
 </beans:beans>\r
index f2ae1fd8cac25cab990928a07ec637770781cf80..932711f28774190b8774b62a7984a5fc9c4c6629 100644 (file)
@@ -16,7 +16,8 @@
                scope="prototype">
                <property name="repository" ref="repository" />
                <property name="nodeFileSystemProvider" ref="nodeFileSystemProvider" />
-               <property name="fsAppService" ref="fsAppService" />
+               <property name="documentsService" ref="documentsService" />
+               <property name="appWorkbenchService" ref="appWorkbenchService" />
        </bean>
        
 
@@ -30,6 +31,6 @@
                scope="prototype">
                <property name="repository" ref="repository" />
                <property name="peopleService" ref="peopleService" />
-               <property name="peopleWorkbenchService" ref="peopleWorkbenchService" />
+               <property name="appWorkbenchService" ref="appWorkbenchService" />
        </bean>
 </beans>
index 99121fca3fe534d968655338038cc891e61b2ca5..17e6138a8c3eaae60fb92e5455843b91399efb0d 100644 (file)
@@ -13,7 +13,7 @@ org.argeo.cms,\
 org.argeo.cms.ui.workbench,\
 org.argeo.connect,\
 org.argeo.connect.people.workbench.rap.views,\
-org.argeo.connect.ui,\
+org.argeo.connect.ui.workbench,\
 org.argeo.eclipse.spring,\
 org.argeo.node,\
 org.argeo.util,\
index b998287480d0b876705980f812edc48b00f9b7df..dcc9aa10abf990e7fc7786f90bc0761febaa51bf 100644 (file)
 package org.argeo.suite.workbench;
 
-import org.argeo.connect.people.workbench.rap.PeopleWorkbenchService;
-import org.argeo.connect.people.workbench.rap.PeopleWorkbenchServiceImpl;
+import java.util.List;
+
+import javax.jcr.Node;
+
+import org.argeo.connect.ui.workbench.AppWorkbenchService;
+import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.suite.workbench.parts.DefaultDashboardEditor;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.swt.graphics.Image;
 
 /** Centralize workbench services from the various base apps */
-public class AsWorkbenchServiceImpl extends PeopleWorkbenchServiceImpl implements PeopleWorkbenchService {
+public class AsWorkbenchServiceImpl implements AppWorkbenchService {
+
+       // Injected known AppWorkbenchServices: order is important, first found
+       // result will be returned by the various methods.
+       private List<AppWorkbenchService> knownAppWbServices;
 
        @Override
        public String getDefaultEditorId() {
                return DefaultDashboardEditor.ID;
        }
-}
 
-// extends PeopleWorkbenchServiceImpl {
-//
-// public String getDefaultEditorId() {
-// return DefaultDashboardEditor.ID;
-// }
-//
-// //
-// // @Override
-// // public Image getIconForType(Node entity) {
-// // try {
-// // if (entity.isNodeType(AoTypes.OFFICE_ACCOUNT))
-// // return AoImages.ICON_ACCOUNT;
-// // else if (entity.isNodeType(TrackerTypes.TRACKER_ISSUE))
-// // return AoImages.ICON_ISSUE;
-// // else if (entity.isNodeType(TrackerTypes.TRACKER_PROJECT))
-// // return AoImages.ICON_PROJECT;
-// // else if (entity.isNodeType(AoTypes.OFFICE_PROSPECT))
-// // return AoImages.ICON_PROSPECT;
-// // else
-// // return super.getIconForType(entity);
-// // } catch (RepositoryException re) {
-// // throw new PeopleException("Unable to get image for node", re);
-// // }
-// // }
-// }
+       @Override
+       public String getOpenEntityEditorCmdId() {
+               String result = null;
+               for (AppWorkbenchService appWbService : knownAppWbServices) {
+                       result = appWbService.getOpenEntityEditorCmdId();
+                       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) {
+               String result = null;
+               for (AppWorkbenchService appWbService : knownAppWbServices) {
+                       result = appWbService.getEntityEditorId(entity);
+                       if (EclipseUiUtils.notEmpty(result))
+                               return result;
+               }
+               return null;
+       }
+
+       @Override
+       public String getSearchEntityEditorId(String nodeType) {
+               String result = null;
+               for (AppWorkbenchService appWbService : knownAppWbServices) {
+                       result = appWbService.getSearchEntityEditorId(nodeType);
+                       if (EclipseUiUtils.notEmpty(result))
+                               return result;
+               }
+               return null;
+       }
+
+       @Override
+       public Image getIconForType(Node entity) {
+               Image result = null;
+               for (AppWorkbenchService appWbService : knownAppWbServices) {
+                       result = appWbService.getIconForType(entity);
+                       if (result != null)
+                               return result;
+               }
+               return null;
+       }
+
+       @Override
+       public Wizard getCreationWizard(Node node) {
+               Wizard result = null;
+               for (AppWorkbenchService appWbService : knownAppWbServices) {
+                       result = appWbService.getCreationWizard(node);
+                       if (result != null)
+                               return result;
+               }
+               return null;
+       }
+
+       @Override
+       public String getOpenFileCmdId() {
+               return null;
+       }
+
+       /* DEPENDENCY INJECTION */
+       public void setKnownAppWbServices(List<AppWorkbenchService> knownAppWbServices) {
+               this.knownAppWbServices = knownAppWbServices;
+       }
+}
diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsAppService.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsAppService.java
deleted file mode 100644 (file)
index fc9563d..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-package org.argeo.suite.workbench.fs;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.file.FileSystem;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.spi.FileSystemProvider;
-import java.security.PrivilegedActionException;
-
-import javax.jcr.Session;
-
-import org.argeo.cms.auth.CurrentUser;
-import org.argeo.node.NodeUtils;
-import org.argeo.suite.SuiteException;
-
-public class FsAppService {
-       private final static String NODE_PREFIX = "node://";
-
-       private String getCurrentHomePath(Session session) {
-               try {
-                       // Make in a do as if not from the workbench
-                       // Repository repo = session.getRepository();
-                       // session = CurrentUser.tryAs(() -> repo.login());
-                       String homepath = NodeUtils.getUserHome(session).getPath();
-                       return homepath;
-               } catch (Exception e) {
-                       throw new SuiteException("Cannot retrieve Current User Home Path", e);
-                       // } finally {
-                       // JcrUtils.logoutQuietly(session);
-               }
-       }
-
-       public Path[] getMyFilesPath(FileSystemProvider nodeFileSystemProvider, Session session) {
-               // return Paths.get(System.getProperty("user.dir"));
-               String currHomeUriStr = NODE_PREFIX + getCurrentHomePath(session);
-               try {
-                       URI uri = new URI(currHomeUriStr);
-                       FileSystem fileSystem = nodeFileSystemProvider.getFileSystem(uri);
-                       if (fileSystem == null) {
-                               fileSystem = CurrentUser.tryAs(() -> nodeFileSystemProvider.newFileSystem(uri, null));
-                               // PrivilegedExceptionAction<FileSystem> pea = new
-                               // PrivilegedExceptionAction<FileSystem>() {
-                               // @Override
-                               // public FileSystem run() throws Exception {
-                               // return nodeFileSystemProvider.newFileSystem(uri, null);
-                               // }
-                               //
-                               // };
-                               // fileSystem = CurrentUser.tryAs(pea);
-                       }
-                       Path[] paths = { fileSystem.getPath(getCurrentHomePath(session)), fileSystem.getPath("/") };
-                       return paths;
-               } catch (URISyntaxException | PrivilegedActionException e) {
-                       throw new RuntimeException("unable to initialise home file system for " + currHomeUriStr, e);
-               }
-       }
-
-       public Path[] getMyGroupsFilesPath(FileSystemProvider nodeFileSystemProvider, Session session) {
-               // TODO
-               Path[] paths = { Paths.get(System.getProperty("user.dir")), Paths.get("/tmp") };
-               return paths;
-       }
-
-       public Path[] getMyBookmarks(FileSystemProvider nodeFileSystemProvider, Session session) {
-               // TODO
-               Path[] paths = { Paths.get(System.getProperty("user.dir")), Paths.get("/tmp"), Paths.get("/opt") };
-               return paths;
-       }
-}
index 6cf2bd3218ec540d0774129664481cc57ea0e89b..1b0b9500eabc71c4f587dc8c7219530429f9529c 100644 (file)
@@ -6,8 +6,8 @@ import javax.jcr.Session;
 import org.argeo.cms.util.CmsUtils;
 import org.argeo.connect.people.PeopleService;
 import org.argeo.connect.people.workbench.rap.PeopleStyles;
-import org.argeo.connect.people.workbench.rap.PeopleWorkbenchService;
 import org.argeo.connect.people.workbench.rap.editors.util.EntityEditorInput;
+import org.argeo.connect.ui.workbench.AppWorkbenchService;
 import org.argeo.connect.util.ConnectJcrUtils;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.jcr.JcrUtils;
@@ -30,7 +30,7 @@ public abstract class AbstractSuiteDashboard extends EditorPart {
        // DEPENDENCY INJECTION
        private Repository repository;
        private PeopleService peopleService;
-       private PeopleWorkbenchService peopleWorkbenchService;
+       private AppWorkbenchService appWorkbenchService;
 
        private Session session;
 
@@ -153,8 +153,8 @@ public abstract class AbstractSuiteDashboard extends EditorPart {
                return peopleService;
        }
 
-       protected PeopleWorkbenchService getPeopleWorkbenchService() {
-               return peopleWorkbenchService;
+       protected AppWorkbenchService getAppWorkbenchService() {
+               return appWorkbenchService;
        }
 
        protected Session getSession() {
@@ -174,8 +174,8 @@ public abstract class AbstractSuiteDashboard extends EditorPart {
                this.repository = repository;
        }
 
-       public void setPeopleWorkbenchService(PeopleWorkbenchService peopleWorkbenchService) {
-               this.peopleWorkbenchService = peopleWorkbenchService;
+       public void setAppWorkbenchService(AppWorkbenchService appWorkbenchService) {
+               this.appWorkbenchService = appWorkbenchService;
        }
 
        public void setPeopleService(PeopleService peopleService) {
index cfbe2eef88acd9dff03934bce5cceca4baa32120..40726cd0d83fb87b81e5cd53ff35369fcb0b01ae 100644 (file)
@@ -78,24 +78,24 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard {
                createGadgetTitleCmp(parent, "Contacts");
                Composite bodyCmp = createGadgetBodyCmp(parent);
                
-               PeopleRapUtils.createOpenSearchEditorLink(getPeopleWorkbenchService(), bodyCmp, "Persons",
+               PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Persons",
                                PeopleTypes.PEOPLE_PERSON, getPeopleService().getBasePath(PeopleTypes.PEOPLE_PERSON));
 
-               PeopleRapUtils.createOpenSearchEditorLink(getPeopleWorkbenchService(), bodyCmp, "Organisations",
+               PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Organisations",
                                PeopleTypes.PEOPLE_ORG, getPeopleService().getBasePath(PeopleTypes.PEOPLE_ORG));
 
                Node tagParent = getPeopleService().getResourceService().getTagLikeResourceParent(getSession(),
                                PeopleTypes.PEOPLE_MAILING_LIST);
-               PeopleRapUtils.createOpenSearchEditorLink(getPeopleWorkbenchService(), bodyCmp, "Mailing lists",
+               PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Mailing lists",
                                PeopleTypes.PEOPLE_MAILING_LIST, ConnectJcrUtils.getPath(tagParent));
                
-               PeopleRapUtils.createOpenSearchEditorLink(getPeopleWorkbenchService(), bodyCmp, "Tasks",
+               PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tasks",
                                PeopleTypes.PEOPLE_TASK, getPeopleService().getBasePath(null));
                
                tagParent = getPeopleService().getResourceService().getTagLikeResourceParent(getSession(),
                                PeopleConstants.RESOURCE_TAG);
                
-               PeopleRapUtils.createOpenSearchEditorLink(getPeopleWorkbenchService(), bodyCmp, "Tags",
+               PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tags",
                                PeopleTypes.PEOPLE_TAG_INSTANCE, ConnectJcrUtils.getPath(tagParent));
 
        }
index d89a228c4fa083fec20330c344f924a4dcfa0c5e..f69710cab7f499ef124af527d70789aaddbf1add 100644 (file)
@@ -23,24 +23,24 @@ import javax.jcr.NodeIterator;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
-import javax.jcr.nodetype.NodeType;
 import javax.jcr.query.Query;
 import javax.jcr.query.QueryManager;
 import javax.jcr.query.QueryResult;
 
 import org.argeo.cms.util.CmsUtils;
 import org.argeo.connect.ConnectConstants;
+import org.argeo.connect.documents.DocumentsService;
 import org.argeo.connect.people.PeopleException;
 import org.argeo.connect.people.workbench.rap.providers.BasicNodeListContentProvider;
 import org.argeo.connect.ui.ConnectUiConstants;
 import org.argeo.connect.ui.widgets.DelayedText;
+import org.argeo.connect.ui.workbench.AppWorkbenchService;
 import org.argeo.connect.util.ConnectJcrUtils;
 import org.argeo.connect.util.XPathUtils;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.fs.FsTableViewer;
 import org.argeo.jcr.JcrUtils;
 import org.argeo.suite.workbench.AsUiPlugin;
-import org.argeo.suite.workbench.fs.FsAppService;
 import org.argeo.suite.workbench.fs.FsSingleColumnLabelProvider;
 import org.eclipse.jface.layout.TableColumnLayout;
 import org.eclipse.jface.viewers.ColumnWeightData;
@@ -68,10 +68,11 @@ import org.eclipse.ui.part.ViewPart;
 public class MyFilesView extends ViewPart implements IDoubleClickListener {
        public final static String ID = AsUiPlugin.PLUGIN_ID + ".myFilesView";
 
-       private FileSystemProvider nodeFileSystemProvider;
-       private FsAppService fsAppService;
        private Repository repository;
        private Session session;
+       private AppWorkbenchService appWorkbenchService;
+       private FileSystemProvider nodeFileSystemProvider;
+       private DocumentsService documentsService;
 
        private DelayedText filterTxt;
        private TableViewer searchResultsViewer;
@@ -150,21 +151,19 @@ public class MyFilesView extends ViewPart implements IDoubleClickListener {
                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);
+               tableComposite.setLayoutData(EclipseUiUtils.fillAll());
 
                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));
+               tableColumnLayout.setColumnData(singleColumn, new ColumnWeightData(100));
                tableComposite.setLayout(tableColumnLayout);
 
                // Corresponding table & style
                Table table = v.getTable();
-               table.setLinesVisible(true);
+               table.setLinesVisible(false);
                table.setHeaderVisible(false);
                CmsUtils.markup(table);
                CmsUtils.setItemHeight(table, 26);
@@ -183,14 +182,11 @@ public class MyFilesView extends ViewPart implements IDoubleClickListener {
        protected int refreshFilteredList() {
                try {
                        String filter = filterTxt.getText();
-                       // Prevents the query on the full repository
                        if (EclipseUiUtils.isEmpty(filter)) {
                                searchResultsViewer.setInput(null);
                                return 0;
                        }
 
-                       QueryManager queryManager = session.getWorkspace().getQueryManager();
-
                        // XPATH Query
                        // TODO manage cleanly jcr: prefix
                        // String xpathQueryStr = "//element(*, " + NodeType.NT_FILE + ")";
@@ -199,11 +195,10 @@ public class MyFilesView extends ViewPart implements IDoubleClickListener {
                        if (notEmpty(xpathFilter))
                                xpathQueryStr += "[" + xpathFilter + "]";
 
+                       QueryManager queryManager = session.getWorkspace().getQueryManager();
                        Query xpathQuery = queryManager.createQuery(xpathQueryStr, ConnectConstants.QUERY_XPATH);
-
                        // xpathQuery.setLimit(TrackerUiConstants.SEARCH_DEFAULT_LIMIT);
                        QueryResult result = xpathQuery.execute();
-
                        NodeIterator nit = result.getNodes();
                        searchResultsViewer.setInput(JcrUtils.nodeIteratorToList(nit));
 
@@ -216,7 +211,6 @@ public class MyFilesView extends ViewPart implements IDoubleClickListener {
        private void populateBookmarks(Composite parent) {
                CmsUtils.clear(parent);
                parent.setLayout(new GridLayout());
-
                int bookmarkColWith = 200;
 
                FsTableViewer homeViewer = new FsTableViewer(parent, SWT.SINGLE | SWT.NO_SCROLL);
@@ -225,7 +219,7 @@ public class MyFilesView extends ViewPart implements IDoubleClickListener {
                gd.horizontalIndent = 10;
                table.setLayoutData(gd);
                homeViewer.addDoubleClickListener(this);
-               homeViewer.setPathsInput(fsAppService.getMyFilesPath(nodeFileSystemProvider, session));
+               homeViewer.setPathsInput(documentsService.getMyDocumentsPath(nodeFileSystemProvider, session));
 
                appendTitle(parent, "Shared files");
                FsTableViewer groupsViewer = new FsTableViewer(parent, SWT.SINGLE | SWT.NO_SCROLL);
@@ -234,7 +228,7 @@ public class MyFilesView extends ViewPart implements IDoubleClickListener {
                gd.horizontalIndent = 10;
                table.setLayoutData(gd);
                groupsViewer.addDoubleClickListener(this);
-               groupsViewer.setPathsInput(fsAppService.getMyGroupsFilesPath(nodeFileSystemProvider, session));
+               groupsViewer.setPathsInput(documentsService.getMyGroupsFilesPath(nodeFileSystemProvider, session));
 
                appendTitle(parent, "My bookmarks");
                FsTableViewer bookmarksViewer = new FsTableViewer(parent, SWT.SINGLE | SWT.NO_SCROLL);
@@ -243,7 +237,7 @@ public class MyFilesView extends ViewPart implements IDoubleClickListener {
                gd.horizontalIndent = 10;
                table.setLayoutData(gd);
                bookmarksViewer.addDoubleClickListener(this);
-               bookmarksViewer.setPathsInput(fsAppService.getMyBookmarks(nodeFileSystemProvider, session));
+               bookmarksViewer.setPathsInput(documentsService.getMyBookmarks(nodeFileSystemProvider, session));
        }
 
        private Label appendTitle(Composite parent, String value) {
@@ -263,6 +257,14 @@ public class MyFilesView extends ViewPart implements IDoubleClickListener {
                if (selection.isEmpty())
                        return;
                else {
+
+                       // currNode = ConnectJcrUtils.getNodeFromElement(obj, selectorName);
+                       // if (currNode != null)
+                       // CommandUtils
+                       // .callCommand(peopleWorkbenchService
+                       // .getOpenEntityEditorCmdId(),
+                       // OpenEntityEditor.PARAM_JCR_ID, currNode
+                       // .getIdentifier());
                        System.out.println("Double clicked");
                        // TODO open corresponding editor
                        // Path newSelected = (Path) selection.getFirstElement();
@@ -283,11 +285,15 @@ public class MyFilesView extends ViewPart implements IDoubleClickListener {
                this.repository = repository;
        }
 
+       public void setAppWorkbenchService(AppWorkbenchService appWorkbenchService) {
+               this.appWorkbenchService = appWorkbenchService;
+       }
+
        public void setNodeFileSystemProvider(FileSystemProvider nodeFileSystemProvider) {
                this.nodeFileSystemProvider = nodeFileSystemProvider;
        }
 
-       public void setFsAppService(FsAppService fsAppService) {
-               this.fsAppService = fsAppService;
+       public void setDocumentsService(DocumentsService documentsService) {
+               this.documentsService = documentsService;
        }
 }