diff --git a/ccm-cms/src/main/java/org/librecms/ui/BrowseDocuments.java b/ccm-cms/src/main/java/org/librecms/ui/BrowseDocuments.java
deleted file mode 100644
index 10bcbf9a0..000000000
--- a/ccm-cms/src/main/java/org/librecms/ui/BrowseDocuments.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2017 LibreCCM Foundation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
- */
-package org.librecms.ui;
-
-import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.Grid;
-import com.vaadin.ui.HorizontalSplitPanel;
-import com.vaadin.ui.ItemCollapseAllowedProvider;
-import com.vaadin.ui.Tree;
-import org.librecms.contentsection.Folder;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class BrowseDocuments extends CustomComponent {
-
- private static final long serialVersionUID = -7241214812224026430L;
-
- private static final String COL_DOCUMENT_CREATED = "created";
- private static final String COL_DOCUMENT_LAST_MODIFIED = "lastmodified";
- private static final String COL_DOCUMENT_NAME = "name";
- private static final String COL_DOCUMENT_TITLE = "title";
- private static final String COL_DOCUMENT_TYPE = "ttype";
-
- private final ContentSectionViewController controller;
-
- private final Tree folderTree;
- private final Grid documentsGrid;
- private final BrowseDocumentsDataProvider documentsDataProvider;
- private final BrowseDocumentsFolderTreeDataProvider folderTreeDataProvider;
-
- public BrowseDocuments(final ContentSectionViewController controller) {
-
- super();
-
- this.controller = controller;
-
- folderTreeDataProvider = controller.getFolderTreeDataProvider();
- folderTree = new Tree<>(folderTreeDataProvider);
- folderTree.setItemCaptionGenerator(folder -> {
- return controller
- .getGlobalizationHelper()
- .getValueFromLocalizedString(folder.getTitle());
- });
-
- documentsGrid = new Grid<>();
- documentsGrid
- .addColumn(BrowseDocumentsItem::getName)
- .setCaption("Name")
- .setId(COL_DOCUMENT_NAME);
- documentsGrid
- .addColumn(BrowseDocumentsItem::getTitle)
- .setCaption("Title")
- .setId(COL_DOCUMENT_TITLE);
- documentsGrid
- .addColumn(BrowseDocumentsItem::getType)
- .setCaption("Type")
- .setId(COL_DOCUMENT_TYPE);
- documentsGrid
- .addColumn(BrowseDocumentsItem::getCreationDate)
- .setCaption("Created")
- .setId(COL_DOCUMENT_CREATED);
- documentsGrid
- .addColumn(BrowseDocumentsItem::getLastModified)
- .setCaption("Last modified")
- .setId(COL_DOCUMENT_LAST_MODIFIED);
- documentsDataProvider = controller.getBrowseDocumentsDataProvider();
- documentsGrid.setDataProvider(documentsDataProvider);
- documentsGrid.setWidth("100%");
- documentsGrid.setHeight("100%");
-
- folderTree.addItemClickListener(event -> {
- documentsDataProvider.setCurrentFolder(event.getItem());
- documentsDataProvider.refreshAll();
- });
- folderTree.setItemCollapseAllowedProvider(folder -> {
- return folder.getParentCategory() != null;
- });
-
- final HorizontalSplitPanel splitPanel = new HorizontalSplitPanel(
- folderTree, documentsGrid);
- splitPanel.setSplitPosition(17.5f, Unit.PERCENTAGE);
- splitPanel.setHeight("100%");
- super.setCompositionRoot(splitPanel);
- }
-
- public Tree getFolderTree() {
- return folderTree;
- }
-
- public Grid getDocumentsGrid() {
- return documentsGrid;
- }
-
-}
diff --git a/ccm-cms/src/main/java/org/librecms/ui/ContentSectionView.java b/ccm-cms/src/main/java/org/librecms/ui/ContentSectionView.java
index 93358911d..784c53428 100644
--- a/ccm-cms/src/main/java/org/librecms/ui/ContentSectionView.java
+++ b/ccm-cms/src/main/java/org/librecms/ui/ContentSectionView.java
@@ -21,12 +21,12 @@ package org.librecms.ui;
import com.vaadin.cdi.CDIView;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener;
+import com.vaadin.ui.Component;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.TabSheet;
import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.themes.ValoTheme;
import org.librecms.contentsection.ContentSection;
import org.librecms.contentsection.ContentSectionRepository;
@@ -46,6 +46,14 @@ class ContentSectionView extends CustomComponent implements View {
public static final String VIEWNAME = "ContentSection";
+ private static final String TAB_DOCUMENTS = "tab_documents";
+ private static final String TAB_SEARCH = "tab_search";
+ private static final String TAB_MEDIA = "tab_media";
+ private static final String TAB_ROLES = "tab_roles";
+ private static final String TAB_WORKFLOWS = "tab_workflows";
+ private static final String TAB_LIFECYCLES = "tab_lifecycles";
+ private static final String TAB_DOCUMENT_TYPES = "tab_document_types";
+
private final ContentSectionViewController controller;
private ContentSection selectedSection;
@@ -53,6 +61,8 @@ class ContentSectionView extends CustomComponent implements View {
private final TabSheet tabSheet;
private final Panel noSectionPanel;
+ private final FolderBrowser folderBrowser;
+
@Inject
ContentSectionView(final ContentSectionViewController controller) {
@@ -60,26 +70,63 @@ class ContentSectionView extends CustomComponent implements View {
this.controller = controller;
- final BrowseDocuments browseDocuments = new BrowseDocuments(controller);
+ folderBrowser = new FolderBrowser(controller);
+ final VerticalLayout folderBrowserLayout = new VerticalLayout();
+ folderBrowserLayout.setHeight("100%");
+ folderBrowserLayout.addComponentsAndExpand(folderBrowser);
tabSheet = new TabSheet();
- tabSheet.addTab(browseDocuments, "Documents");
- tabSheet.addTab(new Label("Search placeholder"), "Search");
- tabSheet.addTab(new Label("Media & Records placeholder"),
- "Media & Records");
- tabSheet.addTab(new Label("Roles placeholder"), "Roles");
- tabSheet.addTab(new Label("Workflows Placeholder"), "Workflows");
- tabSheet.addTab(new Label("Lifecycles placeholder"), "Lifecycles");
- tabSheet.addTab(new Label("Document types placeholder"),
- "Documents types");
+ tabSheet
+ .addTab(folderBrowser, "Documents")
+ .setId(TAB_DOCUMENTS);
+ tabSheet
+ .addTab(new Label("Search placeholder"), "Search")
+ .setId(TAB_SEARCH);
+ tabSheet
+ .addTab(new Label("Media & Records placeholder"), "Media & Records")
+ .setId(TAB_MEDIA);
+ tabSheet
+ .addTab(new Label("Roles placeholder"), "Roles")
+ .setId(TAB_ROLES);
+ tabSheet
+ .addTab(new Label("Workflows Placeholder"), "Workflows")
+ .setId(TAB_WORKFLOWS);
+ tabSheet
+ .addTab(new Label("Lifecycles placeholder"), "Lifecycles")
+ .setId(TAB_LIFECYCLES);
+ tabSheet
+ .addTab(new Label("Document types placeholder"), "Documents types")
+ .setId(TAB_DOCUMENT_TYPES);
+ tabSheet.addSelectedTabChangeListener(event -> {
+
+ final Component selectedTab = event.getTabSheet().getSelectedTab();
+
+ if (TAB_DOCUMENTS.equals(selectedTab.getId())) {
+
+ final FolderBrowser browser = (FolderBrowser) selectedTab;
+
+ browser
+ .getFolderTree()
+ .expand(controller
+ .getContentSectionViewState()
+ .getSelectedContentSection()
+ .getRootDocumentsFolder());
+ }
+ });
+
+ tabSheet.setHeight("100%");
+
noSectionPanel = new Panel();
noSectionPanel.setVisible(false);
-
- final VerticalLayout layout = new VerticalLayout(tabSheet,
- noSectionPanel);
-
+
+ final VerticalLayout layout = new VerticalLayout();
+ layout.addComponentsAndExpand(tabSheet, noSectionPanel);
+ layout.setHeight("100%");
+ layout.addStyleName("content-section-view-layout");
+
super.setCompositionRoot(layout);
+ super.setHeight("100%");
}
@Override
@@ -104,6 +151,13 @@ class ContentSectionView extends CustomComponent implements View {
controller
.getContentSectionViewState()
.setSelectedContentSection(selectedSection);
+
+ folderBrowser
+ .getFolderTree()
+ .expand(controller
+ .getContentSectionViewState()
+ .getSelectedContentSection()
+ .getRootDocumentsFolder());
} else {
tabSheet.setVisible(false);
noSectionPanel.setCaption(String
diff --git a/ccm-cms/src/main/java/org/librecms/ui/ContentSectionViewController.java b/ccm-cms/src/main/java/org/librecms/ui/ContentSectionViewController.java
index 5c101a266..52d22324a 100644
--- a/ccm-cms/src/main/java/org/librecms/ui/ContentSectionViewController.java
+++ b/ccm-cms/src/main/java/org/librecms/ui/ContentSectionViewController.java
@@ -36,10 +36,10 @@ import javax.inject.Inject;
public class ContentSectionViewController {
@Inject
- private BrowseDocumentsDataProvider browseDocumentsDataProvider;
+ private FolderBrowserDataProvider browseDocumentsDataProvider;
@Inject
- private BrowseDocumentsFolderTreeDataProvider folderTreeDataProvider;
+ private FolderBrowserFolderTreeDataProvider folderTreeDataProvider;
@Inject
private ContentTypesManager contentTypesManager;
@@ -59,11 +59,11 @@ public class ContentSectionViewController {
@Inject
private ContentSectionViewState contentSectionViewState;
- protected BrowseDocumentsDataProvider getBrowseDocumentsDataProvider() {
+ protected FolderBrowserDataProvider getBrowseDocumentsDataProvider() {
return browseDocumentsDataProvider;
}
- protected BrowseDocumentsFolderTreeDataProvider getFolderTreeDataProvider() {
+ protected FolderBrowserFolderTreeDataProvider getFolderTreeDataProvider() {
return folderTreeDataProvider;
}
diff --git a/ccm-cms/src/main/java/org/librecms/ui/ContentSectionsGrid.java b/ccm-cms/src/main/java/org/librecms/ui/ContentSectionsGrid.java
index 034502c02..3f190947f 100644
--- a/ccm-cms/src/main/java/org/librecms/ui/ContentSectionsGrid.java
+++ b/ccm-cms/src/main/java/org/librecms/ui/ContentSectionsGrid.java
@@ -19,17 +19,20 @@
package org.librecms.ui;
import com.vaadin.icons.VaadinIcons;
-import com.vaadin.navigator.Navigator;
import com.vaadin.ui.Button;
import com.vaadin.ui.Component;
+import com.vaadin.ui.FormLayout;
import com.vaadin.ui.Grid;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.Window;
import com.vaadin.ui.components.grid.HeaderCell;
import com.vaadin.ui.components.grid.HeaderRow;
import com.vaadin.ui.themes.ValoTheme;
import org.libreccm.security.PermissionChecker;
import org.librecms.contentsection.ContentSection;
+import org.librecms.contentsection.Folder;
import org.librecms.contentsection.privileges.AdminPrivileges;
import org.librecms.contentsection.privileges.ItemPrivileges;
@@ -55,9 +58,6 @@ class ContentSectionsGrid extends Grid {
this.controller = controller;
- final PermissionChecker permissionChecker = controller
- .getPermissionChecker();
-
addComponentColumn(this::buildSectionLink)
.setId(COL_LABEL)
.setCaption("Content Section");
@@ -68,6 +68,8 @@ class ContentSectionsGrid extends Grid {
.setId(COL_DELETE)
.setCaption("Delete");
+ setSelectionMode(SelectionMode.NONE);
+
setDataProvider(controller.getSectionsDataProvider());
if (controller.getPermissionChecker().isPermitted("admin")) {
diff --git a/ccm-cms/src/main/java/org/librecms/ui/FolderBrowser.java b/ccm-cms/src/main/java/org/librecms/ui/FolderBrowser.java
new file mode 100644
index 000000000..b750a3eda
--- /dev/null
+++ b/ccm-cms/src/main/java/org/librecms/ui/FolderBrowser.java
@@ -0,0 +1,252 @@
+/*
+ * Copyright (C) 2017 LibreCCM Foundation.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+package org.librecms.ui;
+
+import com.vaadin.icons.VaadinIcons;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.CustomComponent;
+import com.vaadin.ui.FormLayout;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.HorizontalSplitPanel;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.Tree;
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.Window;
+import com.vaadin.ui.components.grid.HeaderCell;
+import com.vaadin.ui.components.grid.HeaderRow;
+import com.vaadin.ui.renderers.DateRenderer;
+import com.vaadin.ui.themes.ValoTheme;
+import org.librecms.contentsection.Folder;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+public class FolderBrowser extends CustomComponent {
+
+ private static final long serialVersionUID = -7241214812224026430L;
+
+ private static final String COL_DOCUMENT_CREATED = "created";
+ private static final String COL_DOCUMENT_LAST_MODIFIED = "lastmodified";
+ private static final String COL_DOCUMENT_NAME = "name";
+ private static final String COL_DOCUMENT_TITLE = "title";
+ private static final String COL_DOCUMENT_TYPE = "ttype";
+
+ private final ContentSectionViewController controller;
+
+ private final Tree folderTree;
+ private final Grid documentsGrid;
+
+ private final Button renameCurrentFolderButton;
+
+ private final FolderBrowserDataProvider documentsDataProvider;
+ private final FolderBrowserFolderTreeDataProvider folderTreeDataProvider;
+
+ public FolderBrowser(final ContentSectionViewController controller) {
+
+ super();
+
+ this.controller = controller;
+
+ folderTreeDataProvider = controller.getFolderTreeDataProvider();
+ folderTree = new Tree<>(folderTreeDataProvider);
+ folderTree.setItemCaptionGenerator(folder -> {
+ return controller
+ .getGlobalizationHelper()
+ .getValueFromLocalizedString(folder.getTitle());
+ });
+
+ documentsGrid = new Grid<>();
+ documentsGrid
+ .addComponentColumn(item -> buildFolderItemLink(item))
+ .setCaption("Name")
+ .setId(COL_DOCUMENT_NAME);
+ documentsGrid
+ .addColumn(FolderBrowserItem::getTitle)
+ .setCaption("Title")
+ .setId(COL_DOCUMENT_TITLE);
+ documentsGrid
+ .addColumn(FolderBrowserItem::getType)
+ .setCaption("Type")
+ .setId(COL_DOCUMENT_TYPE);
+ documentsGrid
+ .addColumn(FolderBrowserItem::getCreationDate,
+ new DateRenderer("%tF"))
+ .setCaption("Created")
+ .setId(COL_DOCUMENT_CREATED);
+ documentsGrid
+ .addColumn(FolderBrowserItem::getLastModified,
+ new DateRenderer("%tF"))
+ .setCaption("Last modified")
+ .setId(COL_DOCUMENT_LAST_MODIFIED);
+ documentsDataProvider = controller.getBrowseDocumentsDataProvider();
+ documentsGrid.setDataProvider(documentsDataProvider);
+ documentsGrid.setSelectionMode(Grid.SelectionMode.MULTI);
+ documentsGrid.setWidth("100%");
+ documentsGrid.setHeight("100%");
+
+ final Button createSubFolderButton = new Button("New subfolder",
+ VaadinIcons.PLUS_CIRCLE_O);
+ createSubFolderButton.addStyleName(ValoTheme.BUTTON_TINY);
+ renameCurrentFolderButton = new Button("Rename current folder",
+ VaadinIcons.EDIT);
+ renameCurrentFolderButton.addStyleName(ValoTheme.BUTTON_TINY);
+ renameCurrentFolderButton.setEnabled(false);
+ renameCurrentFolderButton.setVisible(false);
+ final HeaderRow headerRow = documentsGrid.prependHeaderRow();
+ final HeaderCell actionsCell = headerRow.join(COL_DOCUMENT_NAME,
+ COL_DOCUMENT_TITLE,
+ COL_DOCUMENT_TYPE,
+ COL_DOCUMENT_CREATED,
+ COL_DOCUMENT_LAST_MODIFIED);
+ actionsCell.setComponent(new HorizontalLayout(createSubFolderButton,
+ renameCurrentFolderButton));
+
+ folderTree.addItemClickListener(event -> {
+// documentsDataProvider.setCurrentFolder(event.getItem());
+// documentsDataProvider.refreshAll();
+ setCurrentFolder(event.getItem());
+ });
+ folderTree.setItemCollapseAllowedProvider(folder -> {
+ return folder.getParentCategory() != null;
+ });
+
+// final Button root = new Button("/ ");
+// root.addStyleName(ValoTheme.BUTTON_LINK);
+// root.addClickListener(event -> {
+// folderTree.getSelectionModel().deselectAll();
+// documentsDataProvider.setCurrentFolder(null);
+// documentsDataProvider.refreshAll();
+// });
+// final VerticalLayout folders = new VerticalLayout(root, folderTree);
+ final VerticalLayout folderTreeLayout = new VerticalLayout(folderTree);
+
+ final VerticalLayout documentsGridLayout = new VerticalLayout();
+ documentsGridLayout.addComponentsAndExpand(documentsGrid);
+
+ final HorizontalSplitPanel splitPanel = new HorizontalSplitPanel(
+ folderTreeLayout, documentsGridLayout);
+ splitPanel.setSplitPosition(17.5f, Unit.PERCENTAGE);
+ splitPanel.setHeight("100%");
+ final VerticalLayout layout = new VerticalLayout();
+ layout.addComponentsAndExpand(splitPanel);
+ super.setCompositionRoot(layout);
+ }
+
+ private Component buildFolderItemLink(final FolderBrowserItem item) {
+
+ final Button itemLink = new Button();
+ itemLink.setCaption(item.getName());
+ itemLink.setStyleName(ValoTheme.BUTTON_LINK);
+ itemLink.addClickListener(event -> folderBrowserItemClicked(event,
+ item));
+ if (item.isFolder()) {
+ itemLink.setIcon(VaadinIcons.FOLDER);
+ }
+
+ return itemLink;
+ }
+
+ private void folderBrowserItemClicked(final Button.ClickEvent event,
+ final FolderBrowserItem item) {
+
+ if (item.isFolder()) {
+ final Folder folder = controller
+ .getFolderRepository()
+ .findById(item.getItemId())
+ .orElseThrow(() -> new IllegalArgumentException(String.format(
+ "No Folder with ID %d in the database.",
+ item.getItemId())));
+// folderTree.expand(folder);
+// documentsDataProvider.setCurrentFolder(folder);
+// documentsDataProvider.refreshAll();
+ setCurrentFolder(folder);
+ }
+ }
+
+ private void setCurrentFolder(final Folder folder) {
+ folderTree.expand(folder);
+ documentsDataProvider.setCurrentFolder(folder);
+ documentsDataProvider.refreshAll();
+
+ renameCurrentFolderButton.setEnabled(folder.getParentCategory() != null);
+ renameCurrentFolderButton.setVisible(folder.getParentCategory() != null);
+ }
+
+ public Tree getFolderTree() {
+ return folderTree;
+ }
+
+ public Grid getDocumentsGrid() {
+ return documentsGrid;
+ }
+
+ private class FolderDialog extends Window {
+
+ private static final long serialVersionUID = -6767403288966354533L;
+
+ private final TextField nameField;
+ private final TextField titleField;
+ private final Button submitButton;
+
+ private Folder currentFolder;
+
+ public FolderDialog() {
+ super();
+
+ nameField = new TextField("Name");
+ nameField.setDescription("The name (URL-Fragment) of the folder.");
+ nameField.setRequiredIndicatorVisible(true);
+ nameField.setMaxLength(256);
+
+ titleField = new TextField("Title");
+ titleField.setDescription("The title of the folder.");
+ titleField.setRequiredIndicatorVisible(true);
+ titleField.setMaxLength(256);
+
+ final Button cancelButton = new Button("Cancel");
+ cancelButton.addClickListener(event -> close());
+
+ submitButton = new Button("Submit");
+ submitButton.addClickListener(event -> save());
+
+ final FormLayout layout = new FormLayout(nameField,
+ titleField,
+ cancelButton,
+ submitButton);
+
+ super.setContent(layout);
+ }
+
+ public FolderDialog(final Folder folder) {
+ this();
+
+ currentFolder = folder;
+ nameField.setValue(currentFolder.getName());
+
+ }
+
+ private void save() {
+ this.close();
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/ccm-cms/src/main/java/org/librecms/ui/BrowseDocumentsDataProvider.java b/ccm-cms/src/main/java/org/librecms/ui/FolderBrowserDataProvider.java
similarity index 96%
rename from ccm-cms/src/main/java/org/librecms/ui/BrowseDocumentsDataProvider.java
rename to ccm-cms/src/main/java/org/librecms/ui/FolderBrowserDataProvider.java
index f7437efce..31fe33df4 100644
--- a/ccm-cms/src/main/java/org/librecms/ui/BrowseDocumentsDataProvider.java
+++ b/ccm-cms/src/main/java/org/librecms/ui/FolderBrowserDataProvider.java
@@ -47,8 +47,8 @@ import javax.transaction.Transactional;
* @author Jens Pelzetter
*/
@ViewScoped
-class BrowseDocumentsDataProvider
- extends AbstractBackEndDataProvider {
+class FolderBrowserDataProvider
+ extends AbstractBackEndDataProvider {
private static final long serialVersionUID = 7693820518000376630L;
@@ -77,8 +77,8 @@ class BrowseDocumentsDataProvider
@Transactional(Transactional.TxType.REQUIRED)
@Override
- protected Stream fetchFromBackEnd(
- final Query query) {
+ protected Stream fetchFromBackEnd(
+ final Query query) {
final Folder folder;
if (currentFolder == null) {
@@ -157,9 +157,9 @@ class BrowseDocumentsDataProvider
.map(this::buildRow);
}
- private BrowseDocumentsItem buildRow(final CcmObject object) {
+ private FolderBrowserItem buildRow(final CcmObject object) {
- final BrowseDocumentsItem row = new BrowseDocumentsItem();
+ final FolderBrowserItem row = new FolderBrowserItem();
if (object instanceof Folder) {
final Folder folder = (Folder) object;
@@ -198,7 +198,7 @@ class BrowseDocumentsDataProvider
@Transactional(Transactional.TxType.REQUIRED)
@Override
protected int sizeInBackEnd(
- final Query query) {
+ final Query query) {
final Folder folder;
if (currentFolder == null) {
@@ -382,10 +382,10 @@ class BrowseDocumentsDataProvider
// .getResultList();
// }
//
-// private BrowseDocumentsItem createBrowseDocumentsItem(
+// private FolderBrowserItem createBrowseDocumentsItem(
// final Folder fromFolder) {
//
-// final BrowseDocumentsItem item = new BrowseDocumentsItem();
+// final FolderBrowserItem item = new FolderBrowserItem();
// item.setItemId(fromFolder.getObjectId());
// item.setName(fromFolder.getName());
// item.setTitle(fromFolder
@@ -396,10 +396,10 @@ class BrowseDocumentsDataProvider
// return item;
// }
//
-// private BrowseDocumentsItem createBrowseDocumentsItem(
+// private FolderBrowserItem createBrowseDocumentsItem(
// final ContentItem fromItem) {
//
-// final BrowseDocumentsItem item = new BrowseDocumentsItem();
+// final FolderBrowserItem item = new FolderBrowserItem();
// item.setCreationDate(fromItem.getCreationDate());
// item.setFolder(false);
// item.setItemId(fromItem.getObjectId());
diff --git a/ccm-cms/src/main/java/org/librecms/ui/BrowseDocumentsFolderTreeDataProvider.java b/ccm-cms/src/main/java/org/librecms/ui/FolderBrowserFolderTreeDataProvider.java
similarity index 83%
rename from ccm-cms/src/main/java/org/librecms/ui/BrowseDocumentsFolderTreeDataProvider.java
rename to ccm-cms/src/main/java/org/librecms/ui/FolderBrowserFolderTreeDataProvider.java
index c48a6f252..350c28db2 100644
--- a/ccm-cms/src/main/java/org/librecms/ui/BrowseDocumentsFolderTreeDataProvider.java
+++ b/ccm-cms/src/main/java/org/librecms/ui/FolderBrowserFolderTreeDataProvider.java
@@ -42,7 +42,7 @@ import javax.transaction.Transactional;
* @author Jens Pelzetter
*/
@ViewScoped
-public class BrowseDocumentsFolderTreeDataProvider
+public class FolderBrowserFolderTreeDataProvider
extends AbstractBackEndHierarchicalDataProvider {
private static final long serialVersionUID = 5330319780008907163L;
@@ -69,7 +69,7 @@ public class BrowseDocumentsFolderTreeDataProvider
.orElseThrow(() -> new IllegalArgumentException(String
.format("No folder with ID %d in the database.",
selectedParent.get().getObjectId())));
-
+
return folderRepo.findSubFolders(parent).stream();
} else {
final ContentSection section = sectionRepo
@@ -87,6 +87,7 @@ public class BrowseDocumentsFolderTreeDataProvider
return result.stream();
}
+// return folderRepo.findSubFolders(parent).stream();
}
@Transactional(Transactional.TxType.REQUIRED)
@@ -103,22 +104,24 @@ public class BrowseDocumentsFolderTreeDataProvider
.orElseThrow(() -> new IllegalArgumentException(String
.format("No folder with ID %d in the database.",
selectedParent.get().getObjectId())));
- } else {
- final ContentSection section = sectionRepo
- .findById(contentSectionViewState
- .getSelectedContentSection()
- .getObjectId())
- .orElseThrow(() -> new UnexpectedErrorException(String
- .format("No ContentSection with ID %d in the database.",
- contentSectionViewState
- .getSelectedContentSection()
- .getObjectId())));
- parent = section.getRootDocumentsFolder();
+ return (int) folderRepo.countSubFolders(parent);
+ } else {
+// final ContentSection section = sectionRepo
+// .findById(contentSectionViewState
+// .getSelectedContentSection()
+// .getObjectId())
+// .orElseThrow(() -> new UnexpectedErrorException(String
+// .format("No ContentSection with ID %d in the database.",
+// contentSectionViewState
+// .getSelectedContentSection()
+// .getObjectId())));
+//
+// parent = section.getRootDocumentsFolder();
+ return 1;
}
- return (int) folderRepo.countSubFolders(parent);
-
+// return (int) folderRepo.countSubFolders(parent);
}
@Override
diff --git a/ccm-cms/src/main/java/org/librecms/ui/BrowseDocumentsItem.java b/ccm-cms/src/main/java/org/librecms/ui/FolderBrowserItem.java
similarity index 95%
rename from ccm-cms/src/main/java/org/librecms/ui/BrowseDocumentsItem.java
rename to ccm-cms/src/main/java/org/librecms/ui/FolderBrowserItem.java
index e9d961ced..722df6db9 100644
--- a/ccm-cms/src/main/java/org/librecms/ui/BrowseDocumentsItem.java
+++ b/ccm-cms/src/main/java/org/librecms/ui/FolderBrowserItem.java
@@ -25,8 +25,8 @@ import java.util.Objects;
*
* @author Jens Pelzetter
*/
-public final class BrowseDocumentsItem implements
- Comparable {
+public final class FolderBrowserItem implements
+ Comparable {
private long itemId;
@@ -111,7 +111,7 @@ public final class BrowseDocumentsItem implements
}
@Override
- public int compareTo(final BrowseDocumentsItem other) {
+ public int compareTo(final FolderBrowserItem other) {
int result = title.compareTo(other.getTitle());
if (result != 0) {
@@ -157,10 +157,10 @@ public final class BrowseDocumentsItem implements
if (obj == null) {
return false;
}
- if (!(obj instanceof BrowseDocumentsItem)) {
+ if (!(obj instanceof FolderBrowserItem)) {
return false;
}
- final BrowseDocumentsItem other = (BrowseDocumentsItem) obj;
+ final FolderBrowserItem other = (FolderBrowserItem) obj;
if (itemId != other.getItemId()) {
return false;
}