X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.library.ui%2Fsrc%2Forg%2Fargeo%2Flibrary%2Fui%2FDocumentsTreeUiProvider.java;fp=org.argeo.library.ui%2Fsrc%2Forg%2Fargeo%2Flibrary%2Fui%2FDocumentsTreeUiProvider.java;h=0000000000000000000000000000000000000000;hp=466051553dddb221d74d695a96d2ab78505c6ff4;hb=6e56ffa34cb02ab04d028423aea342e3dfed4358;hpb=c285180bece610b2c2921d44fe14b6dde2123efa diff --git a/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsTreeUiProvider.java b/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsTreeUiProvider.java deleted file mode 100644 index 4660515..0000000 --- a/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsTreeUiProvider.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.argeo.library.ui; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.spi.FileSystemProvider; - -import javax.jcr.Node; -import javax.jcr.Repository; -import javax.jcr.RepositoryException; - -import org.argeo.api.NodeConstants; -import org.argeo.api.NodeUtils; -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.eclipse.ui.fs.FsTreeViewer; -import org.argeo.jcr.Jcr; -import org.argeo.suite.ui.SuiteEvent; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; - -/** Tree view of a user root folders. */ -public class DocumentsTreeUiProvider implements CmsUiProvider { - private FileSystemProvider nodeFileSystemProvider; - private Repository repository; - - @Override - public Control createUi(Composite parent, Node context) throws RepositoryException { - parent.setLayout(new GridLayout()); - FsTreeViewer fsTreeViewer = new FsTreeViewer(parent, SWT.NONE); - fsTreeViewer.configureDefaultSingleColumnTable(500); - CmsView cmsView = CmsView.getCmsView(parent); - Node homeNode = NodeUtils.getUserHome(cmsView.doAs(() -> Jcr.login(repository, NodeConstants.HOME_WORKSPACE))); - parent.addDisposeListener((e1) -> Jcr.logout(homeNode)); - Path homePath = CmsFsUtils.getPath(nodeFileSystemProvider, homeNode); - fsTreeViewer.addSelectionChangedListener((e) -> { - IStructuredSelection selection = (IStructuredSelection) fsTreeViewer.getSelection(); - if (selection.isEmpty()) - return; - else { - Path newSelected = (Path) selection.getFirstElement(); - if (Files.isDirectory(newSelected)) { - Node folderNode = cmsView.doAs(() -> CmsFsUtils.getNode(repository, newSelected)); - parent.addDisposeListener((e1) -> Jcr.logout(folderNode)); - cmsView.sendEvent(SuiteEvent.refreshPart.topic(), SuiteEvent.eventProperties(folderNode)); - } - } - }); - fsTreeViewer.addDoubleClickListener((e) -> { - IStructuredSelection selection = (IStructuredSelection) fsTreeViewer.getSelection(); - if (selection.isEmpty()) - return; - else { - Path newSelected = (Path) selection.getFirstElement(); - if (Files.isDirectory(newSelected)) { - Node folderNode = cmsView.doAs(() -> CmsFsUtils.getNode(repository, newSelected)); - parent.addDisposeListener((e1) -> Jcr.logout(folderNode)); - cmsView.sendEvent(SuiteEvent.openNewPart.topic(), SuiteEvent.eventProperties(folderNode)); - } - } - }); - fsTreeViewer.setPathsInput(homePath); - fsTreeViewer.getControl().setLayoutData(CmsUiUtils.fillAll()); - fsTreeViewer.getControl().getParent().layout(true, true); - return fsTreeViewer.getControl(); - } - - public void setNodeFileSystemProvider(FileSystemProvider nodeFileSystemProvider) { - this.nodeFileSystemProvider = nodeFileSystemProvider; - } - - public void setRepository(Repository repository) { - this.repository = repository; - } - -}