CCM NG/ccm-cms: Vaadion prototype of folder browser

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5010 8810af33-2d31-482b-a856-94f89814c4df

Former-commit-id: 2bcf8737af
pull/2/head
jensp 2017-09-27 05:57:38 +00:00
parent f97e036b3e
commit 5026f0884e
8 changed files with 365 additions and 166 deletions

View File

@ -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 <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
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<Folder> folderTree;
private final Grid<BrowseDocumentsItem> 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<Folder> getFolderTree() {
return folderTree;
}
public Grid<BrowseDocumentsItem> getDocumentsGrid() {
return documentsGrid;
}
}

View File

@ -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

View File

@ -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;
}

View File

@ -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<ContentSection> {
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<ContentSection> {
.setId(COL_DELETE)
.setCaption("Delete");
setSelectionMode(SelectionMode.NONE);
setDataProvider(controller.getSectionsDataProvider());
if (controller.getPermissionChecker().isPermitted("admin")) {

View File

@ -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 <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
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<Folder> folderTree;
private final Grid<FolderBrowserItem> 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<Folder> getFolderTree() {
return folderTree;
}
public Grid<FolderBrowserItem> 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();
}
}
}

View File

@ -47,8 +47,8 @@ import javax.transaction.Transactional;
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@ViewScoped
class BrowseDocumentsDataProvider
extends AbstractBackEndDataProvider<BrowseDocumentsItem, String> {
class FolderBrowserDataProvider
extends AbstractBackEndDataProvider<FolderBrowserItem, String> {
private static final long serialVersionUID = 7693820518000376630L;
@ -77,8 +77,8 @@ class BrowseDocumentsDataProvider
@Transactional(Transactional.TxType.REQUIRED)
@Override
protected Stream<BrowseDocumentsItem> fetchFromBackEnd(
final Query<BrowseDocumentsItem, String> query) {
protected Stream<FolderBrowserItem> fetchFromBackEnd(
final Query<FolderBrowserItem, String> 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<BrowseDocumentsItem, String> query) {
final Query<FolderBrowserItem, String> 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());

View File

@ -42,7 +42,7 @@ import javax.transaction.Transactional;
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@ViewScoped
public class BrowseDocumentsFolderTreeDataProvider
public class FolderBrowserFolderTreeDataProvider
extends AbstractBackEndHierarchicalDataProvider<Folder, String> {
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

View File

@ -25,8 +25,8 @@ import java.util.Objects;
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
public final class BrowseDocumentsItem implements
Comparable<BrowseDocumentsItem> {
public final class FolderBrowserItem implements
Comparable<FolderBrowserItem> {
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;
}