作成された日時でメモを表示しているvaadinテーブルがあります。デフォルトでは、エントリを時系列で降順に並べ替えます (つまり、最新のものを一番上にしてから、最初のメモの順に並べます)。新しい値を追加すると、一番上にあるはずです。これは、Vaadin を使用する Java EE Web アプリケーションです。
私は試した ...
setSortContainerPropertyId(NoteContainer.DATE_CREATED);
setSortAscending(false);
sort();
私の NoteTable コンストラクター内。ただし、並べ替え機能を DATE_CREATED 列に追加しただけです。その列ヘッダーをクリックすると、ソートが開始されます。適切な解決策を教えてください...?
テーブル クラス コンストラクターに注意してください。
public NoteTable()
{
dataSource = new NoteContainer();
setContainerDataSource(dataSource);
NoteTableColumnGenerator columnGenerator = new NoteTableColumnGenerator();
addGeneratedColumn(ACTION, columnGenerator);
addGeneratedColumn(CREATED_BY, columnGenerator);
addGeneratedColumn(TEXT, columnGenerator);
setVisibleColumns(NoteContainer.NATURAL_COL_ORDER);
setSizeFull();
Object[] columns = getVisibleColumns();
for (int i = 0; i < columns.length; i++)
{
if (((String) columns[i]).equals(NoteContainer.DATE_CREATED))
setColumnWidth(columns[i], 150);
else if (((String) columns[i]).equals(NoteContainer.CREATED_BY))
setColumnWidth(columns[i], 150);
else if (((String) columns[i]).equals(NoteContainer.ACTION))
setColumnWidth(columns[i], 150);
else
setColumnWidth(columns[i], 550);
}
setColumnHeaders(NoteContainer.COL_HEADERS_ENGLISH);
setSelectable(true);
setImmediate(true);
setSortContainerPropertyId(NoteContainer.DATE_CREATED);
setSortAscending(false);
sort();
}
コンテナクラス
public class NoteContainer extends BeanItemContainer<CaseNote> implements Serializable
{
private static final long serialVersionUID = -5926608449530066014L;
public static final String DATE_CREATED = "dateCreated";
public static final String CREATED_BY = "createdBy";
public static final String TEXT = "text";
public static final String ACTION = "Action";
public static final Object[] NATURAL_COL_ORDER = new Object[] {
ACTION, DATE_CREATED, CREATED_BY, TEXT
};
public static final String[] COL_HEADERS_ENGLISH = new String[] {
"ACTION", "Date Created/Updated", "Created/Updated By", "Note"
};
/**
* Default Constructor.
*
*/
public NoteContainer()
{
super(CaseNote.class);
}
}
注 : CaseNote はエンティティ クラスです。