Skip to content

Commit

Permalink
fixed #46 : Default sorting not working
Browse files Browse the repository at this point in the history
  • Loading branch information
RainerW committed Apr 24, 2012
1 parent e57ce6b commit a532120
Show file tree
Hide file tree
Showing 24 changed files with 113 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@
import de.bitnoise.sonferenz.web.pages.config.EditConfigurationPage;
import de.bitnoise.sonferenz.web.pages.config.EditTextePage;
import de.bitnoise.sonferenz.web.pages.config.EditUserRolesPage;
import de.bitnoise.sonferenz.web.pages.paper.TalksOverviewPage;
import de.bitnoise.sonferenz.web.pages.profile.MyProfilePage;
import de.bitnoise.sonferenz.web.pages.settings.SettingsPage;
import de.bitnoise.sonferenz.web.pages.statics.ConferencePage;
import de.bitnoise.sonferenz.web.pages.talks.TalksOverviewPage;
import de.bitnoise.sonferenz.web.pages.timetable.TimeTablePage;
import de.bitnoise.sonferenz.web.pages.users.UserOverviewPage;
import de.bitnoise.sonferenz.web.pages.voting.VotingOverviewPage;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,19 @@ protected List<TYPE_DB> getAllItemList(int first, int count, String propertyToSo
Sort sort=new Sort(new Order(direction, propertyToSort));
request = new PageRequest(f, count,sort);
} else {
request = new PageRequest(f, count);
Sort sort=createDefaultSorting();
if(sort!=null) {
request = new PageRequest(f, count, sort);
} else {
request = new PageRequest(f, count);
}
}
Page<TYPE_DB> result = getAllItems(request);
return result.getContent();
}

protected abstract Sort createDefaultSorting();

protected abstract Page<TYPE_DB> getAllItems(PageRequest request);

public abstract int size();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ public class TableBuilder<S> implements Serializable

private String _prefix;

private String _defaultSort;

public TableBuilder(String resourceTableName)
{
_prefix = resourceTableName;
Expand Down Expand Up @@ -251,9 +253,18 @@ protected void onInitPanels(RepeatingView view)
};
add(column);
}

public void setDefaultSort(String column) {
_defaultSort=column;
}

public abstract static class ActionColumn<T> implements Serializable
{
abstract public Component populate(String id, T row);
}

public String getDefaultSorting()
{
return _defaultSort;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
import org.apache.wicket.markup.repeater.RepeatingView;

import de.bitnoise.sonferenz.KonferenzSession;
import de.bitnoise.sonferenz.web.pages.paper.TalksOverviewPage;
import de.bitnoise.sonferenz.web.pages.statics.ConferencePage;
import de.bitnoise.sonferenz.web.pages.statics.ContactPage;
import de.bitnoise.sonferenz.web.pages.statics.InfoPage;
import de.bitnoise.sonferenz.web.pages.statics.RegisterPage;
import de.bitnoise.sonferenz.web.pages.talks.TalksOverviewPage;
import de.bitnoise.sonferenz.web.pages.whish.WhishOverviewPage;

public class FirstLevelBar extends Panel {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.domain.Sort.Order;

import de.bitnoise.sonferenz.service.v2.services.ConfigurationService;
import de.bitnoise.sonferenz.web.component.SortableServiceDataProvider;
Expand All @@ -30,13 +33,16 @@ public abstract class AbstractListPanel<VIEW_MODEL extends Serializable, DB_MODE

private DataTable<VIEW_MODEL> table;

private String _defaultSort;

public AbstractListPanel(String id, String headingId)
{
super(id);
TableBuilder<VIEW_MODEL> builder = new TableBuilder<VIEW_MODEL>(headingId);
initColumns(builder);
SortableServiceDataProvider<DB_MODEL, VIEW_MODEL> provider = createProvider();
List<IColumn<VIEW_MODEL>> columns = builder.getColumns();
_defaultSort = builder.getDefaultSorting();
Integer maxPageSize = config.getIntegerValue(100,
"table." + headingId + ".paginationSize",
"table.paginationSize");
Expand Down Expand Up @@ -99,9 +105,22 @@ protected VIEW_MODEL transferType(DB_MODEL dbObject)
{
return transferDbToViewModel(dbObject);
}

@Override
protected Sort createDefaultSorting()
{
return createDefaultSort();
}
};
}

protected Sort createDefaultSort() {
if(_defaultSort==null) {
return null;
}
return new Sort(Direction.ASC,_defaultSort);
}

protected abstract VIEW_MODEL transferDbToViewModel(DB_MODEL dbObject);

protected abstract Page<DB_MODEL> getItems(PageRequest request);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.domain.Sort.Order;

import de.bitnoise.sonferenz.facade.UiFacade;
import de.bitnoise.sonferenz.model.ConferenceModel;
Expand Down Expand Up @@ -82,6 +85,12 @@ public int size()
{
return facade.getAllConferencesCount();
}

@Override
protected Sort createDefaultSorting()
{
return new Sort(new Order(Direction.ASC, "shortName"));
}
};
DefaultDataTable<ConferenceListItem> table = new DefaultDataTable<ConferenceListItem>(
"conferenceTable", builder.getColumns(), provider, 20);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import de.bitnoise.sonferenz.web.action.WebAction;
import de.bitnoise.sonferenz.web.pages.conference.ConferenceOverviewPage;
import de.bitnoise.sonferenz.web.pages.conference.table.ConferenceListItem;
import de.bitnoise.sonferenz.web.pages.talks.ModelTalkList;
import de.bitnoise.sonferenz.web.pages.talks.TalksOverviewPage;
import de.bitnoise.sonferenz.web.pages.paper.ModelTalkList;
import de.bitnoise.sonferenz.web.pages.paper.TalksOverviewPage;

public class EditConference extends WebAction<IModel<ConferenceListItem>>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;

import de.bitnoise.sonferenz.facade.UiFacade;
import de.bitnoise.sonferenz.model.ConfigurationModel;
Expand Down Expand Up @@ -51,7 +52,9 @@ protected void initColumns(TableBuilder<ConfigViewModel> builder)
builder.addActions("actions", new Edit());
builder.addColumn("name");
builder.addColumn("value");
builder.setDefaultSort("name");
}


@Override
protected Component createAbovePanel(String id)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.bitnoise.sonferenz.web.pages.talks;
package de.bitnoise.sonferenz.web.pages.paper;

import org.apache.wicket.injection.web.InjectorHolder;
import org.apache.wicket.markup.html.form.Button;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.bitnoise.sonferenz.web.pages.talks;
package de.bitnoise.sonferenz.web.pages.paper;

import java.util.HashSet;
import java.util.Set;
Expand All @@ -12,6 +12,9 @@
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.domain.Sort.Order;


import de.bitnoise.sonferenz.facade.UiFacade;
Expand All @@ -20,8 +23,8 @@
import de.bitnoise.sonferenz.web.component.SortableServiceDataProvider;
import de.bitnoise.sonferenz.web.component.TableBuilder;
import de.bitnoise.sonferenz.web.component.link.AjaxLink;
import de.bitnoise.sonferenz.web.pages.talks.action.CreateTalk;
import de.bitnoise.sonferenz.web.pages.talks.action.EditOrViewTalk;
import de.bitnoise.sonferenz.web.pages.paper.action.CreateTalk;
import de.bitnoise.sonferenz.web.pages.paper.action.EditOrViewTalk;
import de.bitnoise.sonferenz.web.pages.users.UserOverviewPage;
import de.bitnoise.sonferenz.web.pages.users.action.CreateNewUser;
import de.bitnoise.sonferenz.web.toolbar.AddToolbarWithButton;
Expand Down Expand Up @@ -59,6 +62,7 @@ protected void onInitialize()
sortable();
action(new EditOrViewTalk());
}

});
// addColumn(new Column()
// {
Expand Down Expand Up @@ -112,6 +116,12 @@ public int size()
return facade.getAllTalksCount();
}

@Override
protected Sort createDefaultSorting()
{
return new Sort(new Order(Direction.ASC, "title"));
}

};
String text=content2.text("page.talkHeader","");
add(new Label("headerText",text).setEscapeModelStrings(false));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.bitnoise.sonferenz.web.pages.talks;
package de.bitnoise.sonferenz.web.pages.paper;

import java.io.Serializable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.bitnoise.sonferenz.web.pages.talks;
package de.bitnoise.sonferenz.web.pages.paper;

import de.bitnoise.sonferenz.model.TalkModel;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.bitnoise.sonferenz.web.pages.talks;
package de.bitnoise.sonferenz.web.pages.paper;

import java.util.ArrayList;

Expand All @@ -15,7 +15,7 @@
import de.bitnoise.sonferenz.web.component.navigation.NavCallbackInterface;
import de.bitnoise.sonferenz.web.pages.KonferenzPage;
import de.bitnoise.sonferenz.web.pages.UnauthorizedPanel;
import de.bitnoise.sonferenz.web.pages.talks.action.CreateTalk;
import de.bitnoise.sonferenz.web.pages.paper.action.CreateTalk;

@At(url = "/talks")
public class TalksOverviewPage extends KonferenzPage
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.bitnoise.sonferenz.web.pages.talks;
package de.bitnoise.sonferenz.web.pages.paper;

import org.apache.wicket.PageParameters;
import org.apache.wicket.model.Model;
Expand All @@ -9,9 +9,9 @@
import de.bitnoise.sonferenz.facade.UiFacade;
import de.bitnoise.sonferenz.model.TalkModel;
import de.bitnoise.sonferenz.web.pages.KonferenzPage;
import de.bitnoise.sonferenz.web.pages.talks.action.EditOrViewTalk;
import de.bitnoise.sonferenz.web.pages.paper.action.EditOrViewTalk;

@At(url = "/talk")
@At(url = "/paper")
public class ViewTalkPage extends KonferenzPage
{
public static final String PARAM_ID = "id";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.bitnoise.sonferenz.web.pages.talks;
package de.bitnoise.sonferenz.web.pages.paper;

import org.apache.wicket.injection.web.InjectorHolder;
import org.apache.wicket.markup.html.basic.Label;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package de.bitnoise.sonferenz.web.pages.talks.action;
package de.bitnoise.sonferenz.web.pages.paper.action;

import org.apache.wicket.Page;
import org.apache.wicket.model.IModel;

import de.bitnoise.sonferenz.web.action.WebMenuAction;
import de.bitnoise.sonferenz.web.pages.talks.TalksOverviewPage;
import de.bitnoise.sonferenz.web.pages.paper.TalksOverviewPage;

public class CreateTalk extends WebMenuAction<IModel<Object>>
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.bitnoise.sonferenz.web.pages.talks.action;
package de.bitnoise.sonferenz.web.pages.paper.action;

import org.apache.wicket.Page;
import org.apache.wicket.PageParameters;
Expand All @@ -13,10 +13,10 @@
import de.bitnoise.sonferenz.web.action.IWebAction;
import de.bitnoise.sonferenz.web.action.WebAction;
import de.bitnoise.sonferenz.web.pages.auth.LoginPage;
import de.bitnoise.sonferenz.web.pages.talks.ModelTalkList;
import de.bitnoise.sonferenz.web.pages.talks.RefToTalk;
import de.bitnoise.sonferenz.web.pages.talks.TalksOverviewPage;
import de.bitnoise.sonferenz.web.pages.talks.ViewTalkPage;
import de.bitnoise.sonferenz.web.pages.paper.ModelTalkList;
import de.bitnoise.sonferenz.web.pages.paper.RefToTalk;
import de.bitnoise.sonferenz.web.pages.paper.TalksOverviewPage;
import de.bitnoise.sonferenz.web.pages.paper.ViewTalkPage;
import de.bitnoise.sonferenz.web.pages.voting.UserVoteItem;

public class EditOrViewTalk extends WebAction<IModel<Object>>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@
import de.bitnoise.sonferenz.web.component.TableBuilder;
import de.bitnoise.sonferenz.web.component.TableBuilder.Column;
import de.bitnoise.sonferenz.web.pages.base.AbstractListPanel;
import de.bitnoise.sonferenz.web.pages.paper.EditTalkPanel;
import de.bitnoise.sonferenz.web.pages.paper.RefToTalk;
import de.bitnoise.sonferenz.web.pages.paper.action.EditOrViewTalk;
import de.bitnoise.sonferenz.web.pages.profile.MyOverviewPanel.TalkListItem;
import de.bitnoise.sonferenz.web.pages.talks.EditTalkPanel;
import de.bitnoise.sonferenz.web.pages.talks.RefToTalk;
import de.bitnoise.sonferenz.web.pages.talks.action.EditOrViewTalk;
import de.bitnoise.sonferenz.web.pages.whish.ReftoWhish;
import de.bitnoise.sonferenz.web.pages.whish.action.EditOrViewWhish;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;


import de.bitnoise.sonferenz.facade.UiFacade;
Expand Down Expand Up @@ -146,6 +148,12 @@ public int size()
{
return facade.getUserCount();
}

@Override
protected Sort createDefaultSorting()
{
return new Sort(Direction.ASC,"login");
}
};
return provider;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;


import de.bitnoise.sonferenz.KonferenzSession;
Expand All @@ -26,7 +28,7 @@
import de.bitnoise.sonferenz.web.component.table.ListPanel;
import de.bitnoise.sonferenz.web.component.table.VoteColumn;
import de.bitnoise.sonferenz.web.component.table.VoteMultiStateColumn;
import de.bitnoise.sonferenz.web.pages.talks.action.EditOrViewTalk;
import de.bitnoise.sonferenz.web.pages.paper.action.EditOrViewTalk;

public class ListVotesPanel extends ListPanel<UserVoteItem>
{
Expand Down Expand Up @@ -187,6 +189,12 @@ protected UserVoteItem transferType(TalkModel dbObject)
// voteService.vote(dbObject, dbObject.getOwner(), 2);
return item;
}

@Override
protected Sort createDefaultSorting()
{
return new Sort(Direction.ASC,"title");
}
};
// SortableServiceDataProvider2<TalkModel, UserVoteItem> provider = new SortableServiceDataProvider2<TalkModel, TalkModel>(
// talks) {
Expand Down
Loading

0 comments on commit a532120

Please sign in to comment.