⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sortfiltermodel.java

📁 struts框架的jsf组件的核心实用例子集合
💻 JAVA
字号:
package com.corejsf;import java.util.Arrays;import java.util.Comparator;import javax.faces.model.DataModel;import javax.faces.model.DataModelListener;public class SortFilterModel extends DataModel {   private DataModel model;   private Row[] rows;   private static Comparator byLast = new      Comparator() {         public int compare(Object o1, Object o2) {            Row r1 = (Row) o1;            Row r2 = (Row) o2;            Name n1 = (Name) r1.getData();            Name n2 = (Name) r2.getData();            return n1.getLast().compareTo(n2.getLast());         }      };   private static Comparator byFirst = new      Comparator() {         public int compare(Object o1, Object o2) {            Row r1 = (Row) o1;            Row r2 = (Row) o2;            Name n1 = (Name) r1.getData();            Name n2 = (Name) r2.getData();            return n1.getFirst().compareTo(n2.getFirst());         }      };   private class Row {      private int row;      public Row(int row) {         this.row = row;      }      public Object getData() {         int originalIndex = model.getRowIndex();         model.setRowIndex(row);         Object thisRowData = model.getRowData();         model.setRowIndex(originalIndex);         return thisRowData;      }   }   public SortFilterModel(DataModel model) {      this.model = model;      int rowCnt = model.getRowCount();      if(rowCnt != -1) {         rows = new Row[rowCnt];         for(int i=0; i < rowCnt; ++i) {            rows[i] = new Row(i);         }      }   }   public String sortByLast() {      Arrays.sort(rows, byLast);      return null;   }   public String sortByFirst() {      Arrays.sort(rows, byFirst);      return null;   }   public void setRowIndex(int rowIndex) {      if(rowIndex == -1 || rowIndex >= model.getRowCount()) {         model.setRowIndex(rowIndex);      }      else {         model.setRowIndex(rows[rowIndex].row);      }   }      // The following methods delegate directly to the    // decorated model      public boolean isRowAvailable() {      return model.isRowAvailable();   }   public int getRowCount() {      return model.getRowCount();   }   public Object getRowData() {      return model.getRowData();   }   public int getRowIndex() {      return model.getRowIndex();   }   public Object getWrappedData() {      return model.getWrappedData();   }   public void setWrappedData(Object data) {      model.setWrappedData(data);   }   public void addDataModelListener(DataModelListener listener) {      model.addDataModelListener(listener);   }   public DataModelListener[] getDataModelListeners() {      return model.getDataModelListeners();   }   public void removeDataModelListener(DataModelListener listener) {      model.removeDataModelListener(listener);   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -