Skip to content

Commit

Permalink
Implement default sort option
Browse files Browse the repository at this point in the history
  • Loading branch information
eschleb committed Mar 1, 2024
1 parent ce94251 commit 4340b88
Showing 1 changed file with 15 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.namics.oss.magnolia.appbuilder.contextmenu.ContentAppContextMenuDefinition;
import com.namics.oss.magnolia.appbuilder.contextmenu.RootAppContextMenuDefinition;
import com.namics.oss.magnolia.appbuilder.dropconstraint.NodeTypeConstraintAwareDropConstraintDefinition;
import com.vaadin.shared.data.sort.SortDirection;
import info.magnolia.ui.actionbar.definition.ActionbarDefinition;
import info.magnolia.ui.actionbar.definition.ActionbarSectionDefinition;
import info.magnolia.ui.actionbar.definition.ConfiguredActionbarDefinition;
Expand All @@ -37,6 +38,7 @@ public class BrowserAppBuilder<T, DS extends DatasourceDefinition> {
private DropConstraintDefinition dropConstraint;
private List<ColumnDefinition<T>> columnDefinitions;
private Map<String, String> nodeTypeIcons;
private Map<String, SortDirection> sortBy;
private BiFunction<DropConstraintDefinition, List<ColumnDefinition<T>>, List<ContentViewDefinition<T>>> contentViewFactory;

public BrowserAppBuilder<T, DS> contentViews(final BiFunction<DropConstraintDefinition, List<ColumnDefinition<T>>, List<ContentViewDefinition<T>>> contentViewFactory) {
Expand Down Expand Up @@ -102,6 +104,18 @@ public BrowserAppBuilder<T, DS> nodeTypeIcons(final Map<String, String> nodeType
return this;
}

public BrowserAppBuilder<T, DS> sortBy(final String propertyName, final SortDirection direction) {
return sortBy(Stream.concat(
Stream.ofNullable(sortBy).map(Map::entrySet).flatMap(Collection::stream),
Stream.of(Map.entry(propertyName, direction))
).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));
}

public BrowserAppBuilder<T, DS> sortBy(final Map<String, SortDirection> sortBy) {
this.sortBy = sortBy;
return this;
}

public BrowserAppBuilder<T, DS> dropConstraint(final DropConstraintDefinition dropConstraint) {
this.dropConstraint = dropConstraint;
return this;
Expand Down Expand Up @@ -195,6 +209,7 @@ private JcrDatasourceDefinition getJcrDatasource(
jcrDatasourceDefinition.setWorkspace(workspace);
jcrDatasourceDefinition.setRootPath("/");
jcrDatasourceDefinition.setAllowedNodeTypes(allowedNodeTypes);
jcrDatasourceDefinition.setSortBy(sortBy);
return jcrDatasourceDefinition;
}

Expand Down

0 comments on commit 4340b88

Please sign in to comment.