1
私はAjaxfallbacktableに問題があります - pagenationがうまくいきます - データ読み込み - すべてが簡単です - でもデフォルトのソートが動作します - トンすべての列にアップダウンボタンを追加する方法を見つけ出す - とにかく私はここにここに が私のテーブルであるwicketで上/下の並べ替えが機能しない - AjaxFallBackTable
List<IColumn<logParsed>> columns = new ArrayList<IColumn<logParsed>>();
columns.add(new PropertyColumn<logParsed>(new Model<String>("Number of Entries"), "numberOfEntries") {
@Override
public String getCssClass()
{
return "numeric";
}
});
columns.add(new PropertyColumn<logParsed>(new Model<String>("Last Seen"), "lastSeen"));
columns.add(new PropertyColumn<logParsed>(new Model<String>("Host Name"), "hostName") {
@Override
public String getCssClass()
{
return "hostname";
}
});
columns.add(new PropertyColumn<logParsed>(new Model<String>("Log Message"), "logMessage"));
logProvider<logParsed> LogProvider = new logProvider<logParsed>(logParsedDao.findAll());
final AjaxFallbackDefaultDataTable<logParsed> dataTable = new AjaxFallbackDefaultDataTable<logParsed>("table", columns,
LogProvider, 10) {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected Item<logParsed> newRowItem(String id, int index, IModel<logParsed> model) {
return new OddEvenItem<logParsed>(id, index, model);
}
};
/* add(new OrderByBorder("sortByHighest", "numberOfEntries", LogProvider)
{
private static final long serialVersionUID = 1L;
@Override
protected void onSortChanged()
{
dataTable.setCurrentPage(0);
}
}); */
add(dataTable);
をしたい私は、テーブルを並べ替えることができるようにすることは、私のdataProviderです:
public class LogProvider<logParsed> extends SortableDataProvider{
/**
*
*/
private static final long serialVersionUID = 1L;
private LogParsedDao logParsedDao;
private List<logParsed> list = new ArrayList<logParsed>();
public LogProvider(List<logParsed> sentList){
setSort("numberOfEntries",SortOrder.DESCENDING);
list = sentList;
}
public Iterator iterator(int first, int count) {
//ArrayList<logParsed> newList = (ArrayList<logParsed>) logParsedDao.findAll();
//Collections.sort(newList, comparator);
Iterator<logParsed> iterator = null;
try {
if(getSort() != null) {
Collections.sort(list, new Comparator<logParsed>() {
private static final long serialVersionUID = 1L;
public int compare(logParsed sl1, logParsed sl2) {
int result=1;
PropertyModel<Comparable> model1= new PropertyModel<Comparable>(sl1, getSort().getProperty());
PropertyModel<Comparable> model2= new PropertyModel<Comparable>(sl2, getSort().getProperty());
if(model1.getObject() == null && model2.getObject() == null)
result = 0;
else if(model1.getObject() == null)
result = 1;
else if(model2.getObject() == null)
result = -1;
else
result = ((Comparable)model1.getObject()).compareTo(model2.getObject());
result = getSort().isAscending() ? result : -result;
return result;
}
});
}
if (list.size() > (first+count))
iterator = list.subList(first, first+count).iterator();
else
iterator = list.iterator();
}
catch (Exception e) {
e.printStackTrace();
}
return iterator;
}
public int size() {
// TODO Auto-generated method stub
return list.size();
}
public IModel model(final Object object) {
return new AbstractReadOnlyModel<logParsed>() {
@Override
public logParsed getObject() {
return (logParsed) object;
}
};
}
}
ありがとうございます - columns.add(新しいPropertyColumn(新しいモデル( "最後に見た")、 "lastSeen"、 "lastSeen")); 私は上記のように変更し、それは魔法のように働いた –