serversortandpagedbean.java
来自「OperaMasks是一种基于J2EE的Web开发技术」· Java 代码 · 共 85 行
JAVA
85 行
package demo.grid.dynamic;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import org.operamasks.faces.annotation.Bind;
import org.operamasks.faces.annotation.ComponentAttributes;
import org.operamasks.faces.annotation.ManagedBean;
import org.operamasks.faces.annotation.ManagedBeanScope;
import org.operamasks.faces.component.grid.CheckboxSelectionModel;
import org.operamasks.faces.component.grid.GridColumn;
import org.operamasks.faces.component.grid.GridColumnModel;
import org.operamasks.faces.component.grid.GridHeaderModel;
import org.operamasks.faces.component.grid.GridSelectionModel;
import org.operamasks.faces.component.grid.SortDirection;
import org.operamasks.faces.component.grid.provider.ArrayProviderAdapter;
import org.operamasks.faces.component.grid.provider.GridDataProvider;
import org.operamasks.faces.component.grid.provider.GridViewProvider;
import demo.StockBean.Quote;
import demo.grid.GridBeanHelper;
@ManagedBean(scope = ManagedBeanScope.REQUEST)
@SuppressWarnings( { "unused", "serial" })
public class ServerSortAndPagedBean {
private Quote[] data = GridBeanHelper.stockData;
@Bind(id = "grid", attribute = "dataProvider")
private GridDataProvider dataProvider = new ArrayGridDataProvider(data);
@ComponentAttributes(id = "grid")
public Map<String, Object> getGridConfig() {
Map<String, Object> config = new HashMap<String, Object>();
config.put("paged", Boolean.TRUE);
config.put("rows", new Integer(10));
config.put("var", "gridDataItem");
config.put("remoteSort", Boolean.TRUE);
return config;
}
@Bind(id = "grid", attribute = "viewProvider")
private GridViewProvider provider = new GridViewProvider() {
public GridColumnModel getColumnModel(Object input) {
GridColumnModel model = GridBeanHelper.createStockColumnModel();
GridColumn column = model.getColumn("change_percent");
column.setValue("#{gridDataItem.change}");
column = model.getColumn("lastupdate");
column.setValue("#{gridDataItem.lastUpdated}");
return model;
}
public GridHeaderModel getHeaderModel(Object input) {
return GridBeanHelper.createStandardStockHeader();
}
public GridSelectionModel getSelectionModel(Object input) {
return new CheckboxSelectionModel();
}
};
private class ArrayGridDataProvider extends ArrayProviderAdapter {
private static final long serialVersionUID = 1L;
private Object[] objs;
public ArrayGridDataProvider(Object[] objs) {
super(objs);
this.objs = objs;
}
@SuppressWarnings("unchecked")
public void sort(final GridColumn column, final SortDirection direction) {
if ("company".equals(column.getId()))
Arrays.sort((Quote[]) objs, new Comparator<Quote>() {
public int compare(Quote o1, Quote o2) {
int result = o1.getCompany().compareTo(o2.getCompany());
return (direction == SortDirection.ASC) ? result : Math
.abs(result);
}
});
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?