X-Git-Url: http://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=library%2Forg.argeo.documents.ui%2Fsrc%2Forg%2Fargeo%2Fdocuments%2Fui%2FDocumentsFolderUiProvider.java;fp=library%2Forg.argeo.documents.ui%2Fsrc%2Forg%2Fargeo%2Fdocuments%2Fui%2FDocumentsFolderUiProvider.java;h=e525a9e61cff9b43e75bb53b751e88b45361a4a1;hp=2210b9fec8ac3b420f59cad3eabc87b08a1ebf86;hb=0d09664471edab1033c304198d09b099d74bb3a7;hpb=321efa1b363a1cd5f9fd714cd4945778fa55c0e9 diff --git a/library/org.argeo.documents.ui/src/org/argeo/documents/ui/DocumentsFolderUiProvider.java b/library/org.argeo.documents.ui/src/org/argeo/documents/ui/DocumentsFolderUiProvider.java index 2210b9f..e525a9e 100644 --- a/library/org.argeo.documents.ui/src/org/argeo/documents/ui/DocumentsFolderUiProvider.java +++ b/library/org.argeo.documents.ui/src/org/argeo/documents/ui/DocumentsFolderUiProvider.java @@ -1,5 +1,6 @@ package org.argeo.documents.ui; +import java.nio.file.Path; import java.nio.file.spi.FileSystemProvider; import javax.jcr.Node; @@ -9,6 +10,8 @@ import org.argeo.cms.fs.CmsFsUtils; import org.argeo.cms.ui.CmsUiProvider; import org.argeo.cms.ui.CmsView; import org.argeo.cms.ui.util.CmsUiUtils; +import org.argeo.jcr.Jcr; +import org.argeo.suite.ui.SuiteEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; @@ -20,7 +23,15 @@ public class DocumentsFolderUiProvider implements CmsUiProvider { @Override public Control createUi(Composite parent, Node context) throws RepositoryException { CmsView cmsView = CmsView.getCmsView(parent); - DocumentsFolderComposite dfc = new DocumentsFolderComposite(parent, SWT.NONE, context); + DocumentsFolderComposite dfc = new DocumentsFolderComposite(parent, SWT.NONE, context) { + + @Override + protected void externalNavigateTo(Path path) { + Node folderNode = cmsView.doAs(() -> CmsFsUtils.getNode(Jcr.getSession(context).getRepository(), path)); + parent.addDisposeListener((e1) -> Jcr.logout(folderNode)); + cmsView.sendEvent(SuiteEvent.openNewPart.topic(), SuiteEvent.eventProperties(folderNode)); + } + }; dfc.setLayoutData(CmsUiUtils.fillAll()); dfc.populate(cmsView.doAs(() -> CmsFsUtils.getPath(nodeFileSystemProvider, context))); return dfc;