GWT SortableTable窗口部件 : 表 « GWT « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » GWT » 屏幕截图 
GWT SortableTable窗口部件



/*
 * SortableTable Widget for GWT library of Google, Inc.
 
 * Copyright (c) 2006 Parvinder Thapar
 * http://psthapar.googlepages.com/
 
 * This library is free software; you can redistribute 
 * it and/or modify it under the terms of the GNU Lesser 
 * General Public License as published by the Free Software 
 * Foundation; either version 2.1 of the License, or 
 * (at your option) any later version. This library is 
 * distributed in the hope that it will be useful, but 
 * WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY  or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNULesser General Public License for more details. 
 * You should have received a copy of the GNU Lesser General 
 * PublicLicense along with this library; if not, write to the 
 * Free Software Foundation, Inc.,  
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA  
 */
package com.java2s.gwt.client;

import java.util.ArrayList;
import java.util.List;
import java.util.Collections;
import java.util.Iterator;
import java.util.Date;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
import com.google.gwt.user.client.ui.HTMLTable.RowFormatter;

import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.SourcesTableEvents;
import com.google.gwt.user.client.ui.TableListener;
public class GWTClient implements EntryPoint{

    /**
     * This is the entry point method.
     */
    public void onModuleLoad() {
      
        final SortableTable sortableTable = new SortableTable();
        
        sortableTable.setWidth(500 "px");
        sortableTable.setStyleName("sortableTable");
        sortableTable.setBorderWidth(1);
        sortableTable.setCellPadding(4);
        sortableTable.setCellSpacing(1);

        sortableTable.addColumnHeader("Employee",  0);
        sortableTable.addColumnHeader("Days"1);
        sortableTable.addColumnHeader("Hire Date"2);
        sortableTable.addColumnHeader("Bonus"3);
        
      // The rowIndex should begin with 1 as rowIndex 0 is for the Header
      // Any row with index == 0 will not be displayed.
        sortableTable.setValue(10"Parvinder Thapar");
        sortableTable.setValue(11new Integer(28));
        sortableTable.setValue(12new SimpleDate(20051025));
        sortableTable.setValue(13new Float("125.27"));

        sortableTable.setValue(20"David Brooks");
        sortableTable.setValue(21new Integer(32));
        sortableTable.setValue(22new SimpleDate(200041));
        sortableTable.setValue(23new Float("105.78"));

        sortableTable.setValue(30"Raj Rajendran");
        sortableTable.setValue(31new Integer(30));
        sortableTable.setValue(32new SimpleDate(2001129));
        sortableTable.setValue(33new Float("236.82"));

        sortableTable.setValue(40"Brian Foley");
        sortableTable.setValue(41new Integer(38));
        sortableTable.setValue(42new SimpleDate(2003224));
        sortableTable.setValue(43new Float("489.29"));

        sortableTable.setValue(50"Visala Dhara");
        sortableTable.setValue(51new Integer(30));
        sortableTable.setValue(52new SimpleDate(2001423));
        sortableTable.setValue(53new Float("892.72"));

        sortableTable.setValue(60"Wasim Khan");
        sortableTable.setValue(61new Integer(35));
        sortableTable.setValue(62new SimpleDate(1999710));
        sortableTable.setValue(63new Float("1242.89"));

        sortableTable.setValue(70"Bob Hammel");
        sortableTable.setValue(71new Integer(56));
        sortableTable.setValue(72new SimpleDate(1995214));
        sortableTable.setValue(73new Float("107.21"));

        sortableTable.setValue(80"Jeanie Sa-ville");
        sortableTable.setValue(81new Integer(58));
        sortableTable.setValue(82new SimpleDate(198961));
        sortableTable.setValue(83new Float("2372.42"));

        sortableTable.setValue(90"Scott Loyet");
        sortableTable.setValue(91new Integer(42));
        sortableTable.setValue(92new SimpleDate(1992229));
        sortableTable.setValue(93new Float("896.74"));

        sortableTable.setValue(100"Dennis Twiss");
        sortableTable.setValue(101new Integer(59));
        sortableTable.setValue(102new SimpleDate(1990415));
        sortableTable.setValue(103new Float("1896.74"));
        
        sortableTable.setValue(110"Mike McIntosh");
        sortableTable.setValue(111new Integer(76));
        sortableTable.setValue(112new SimpleDate(1982525));
        sortableTable.setValue(113new Float("689.77"));
        
        sortableTable.setValue(120"Andrews Andy");
        sortableTable.setValue(121new Integer(62));
        sortableTable.setValue(122new SimpleDate(1994115));
        sortableTable.setValue(123new Float("829.24"));

        sortableTable.setValue(130"Bob Regent");
        sortableTable.setValue(131new Integer(29));
        sortableTable.setValue(132new SimpleDate(1996312));
        sortableTable.setValue(133new Float("621.52"));
        
        sortableTable.setValue(140"Chris Chalmers");
        sortableTable.setValue(141new Integer(32));
        sortableTable.setValue(142new SimpleDate(199741));
        sortableTable.setValue(143new Float("804.26"));
        
        sortableTable.setValue(150"Christopher Mathrusse");
        sortableTable.setValue(151new Integer(64));
        sortableTable.setValue(152new SimpleDate(2005910));
        sortableTable.setValue(153new Float("761.25"));
        
        sortableTable.setValue(160"John Smith");
        sortableTable.setValue(161new Integer(56));
        sortableTable.setValue(162new SimpleDate(1992316));
        sortableTable.setValue(163new Float("789.29"));
        
        sortableTable.setValue(170"Jane Smith");
        sortableTable.setValue(171new Integer(45));
        sortableTable.setValue(172new SimpleDate(1989725));
        sortableTable.setValue(173new Float("2254.87"));
        
        sortableTable.setValue(180"Jason Chen");
        sortableTable.setValue(181new Integer(37));
        sortableTable.setValue(182new SimpleDate(1995824));
        sortableTable.setValue(183new Float("978.32"));
        
        sortableTable.setValue(190"Tina Matt");
        sortableTable.setValue(191new Integer(49));
        sortableTable.setValue(192new SimpleDate(1998915));
        sortableTable.setValue(193new Float("189.64"));
        
        sortableTable.setValue(200"Roxanne Rocks");
        sortableTable.setValue(201new Integer(43));
        sortableTable.setValue(202new SimpleDate(19921112));
        sortableTable.setValue(203new Float("1209.73"));
        
      // In your application code, the following should be part 
        // of the looop that adds the data to the Table.
        // Since we have some hard-coded data here, this is done 
        // separately down here....
        // Please note that this is totally optional. This has nothing
        // to do with the Sorting capabilities of the widget.
        // This is just the cosmetics injection to the table.
        
        // Set Style Name for the header
      RowFormatter rowFormatter = sortableTable.getRowFormatter();
      rowFormatter.setStyleName(0"tableHeader");
      
      // Set the Styles for the Data Rows and Columns
      CellFormatter cellFormatter = sortableTable.getCellFormatter();
      // Set the styles for the headers
      for (int colIndex=0; colIndex<4; colIndex++){
        cellFormatter.setStyleName(0, colIndex, "headerStyle");
        cellFormatter.setAlignment(0, colIndex, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_MIDDLE);
      }

      for(int rowIndex=1; rowIndex<21; rowIndex++){
        if(rowIndex%== 0){
          rowFormatter.setStyleName(rowIndex, "customRowStyle");
        }else{
          rowFormatter.setStyleName(rowIndex, "tableRow");
        }
        for (int colIndex=0; colIndex<4; colIndex++){
          cellFormatter.setStyleName(rowIndex, colIndex, "customFont");
          if(colIndex == || colIndex == 3){
            cellFormatter.setAlignment(rowIndex, colIndex, HasHorizontalAlignment.ALIGN_RIGHT, HasVerticalAlignment.ALIGN_MIDDLE);
          }else if(colIndex == 0){
            cellFormatter.setAlignment(rowIndex, colIndex, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_MIDDLE);
          }if(colIndex == 2){
            cellFormatter.setAlignment(rowIndex, colIndex, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_MIDDLE);
          }
        }
      }
        
        // Add the table to the doc
      RootPanel.get("slot1").add(sortableTable);
    }
}



 class SimpleDate extends Date {

  public SimpleDate(){
    super();
  }
  
  public SimpleDate(int year, int month, int date){
    super(year-1900, month-1, date);
  }
  
  public int compareTo(Object other) {
    Date otherDate = (Date)other;
    return super.compareTo(otherDate);
  }
  
  public String toString(){
    return this.formatDate_DDMONYYYY(this);
  }

  /*
   * formatDate_DDMONYYYY
   
   * Formats the date in DDMONYYYY format
   
   * @param (Date to be formatted)
   * @return String
   */
  private String formatDate_DDMONYYYY(Date date){
    String[] MONTHS = {
      "Jan",
      "Feb",
      "Mar",
      "Apr",
      "May",
      "Jun",
      "Jul",
      "Aug",
      "Sep",
      "Oct",
      "Nov",
      "Dec"
    };    
    StringBuffer dateStr = new StringBuffer();
    if(date.getDate() 10){
      dateStr.append("0");
    }
    dateStr.append(date.getDate());
    dateStr.append(" ");
    
    dateStr.append(MONTHS[date.getMonth()]);
    dateStr.append(" ");
    
    dateStr.append((date.getYear()+1900));
    return dateStr.toString();
  }      
  
  /*
   * formatDate_MMDDYYYY
   
   * Formats the date in MMDDYYYY format
   
   * @param (Date to be formatted)
   * @return String
   */
  private String formatDate_MMDDYYYY (Date date){
    StringBuffer strDate = new StringBuffer();
    if(this.getMonth() 9){
      strDate.append("0");
    }
    strDate.append(this.getMonth()+1);
    strDate.append("/");
    if(this.getDate() 10){
      strDate.append("0");
    }
    strDate.append(this.getDate());
    strDate.append("/");
    strDate.append((this.getYear()+1900));
    
    return strDate.toString();
  }
}


/*
 * SortableTable Widget for GWT library of Google, Inc.
 
 * Copyright (c) 2006 Parvinder Thapar
 * http://psthapar.googlepages.com/
 
 * This library is free software; you can redistribute 
 * it and/or modify it under the terms of the GNU Lesser 
 * General Public License as published by the Free Software 
 * Foundation; either version 2.1 of the License, or 
 * (at your option) any later version. This library is 
 * distributed in the hope that it will be useful, but 
 * WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY  or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNULesser General Public License for more details. 
 * You should have received a copy of the GNU Lesser General 
 * PublicLicense along with this library; if not, write to the 
 * Free Software Foundation, Inc.,  
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA  
 */


/*
 * RowData defines one row in a Sortable Table
 */
 class RowData implements Comparable {
  
  // Maintains the list of the columns in the table
  List columnValues = new ArrayList();
  
  // Keeps the current column index being sorted
  int sortColIndex = 0;

  /*
   * addColumnValue
   
   * Adds the Comparable Value in the List of columns
   
   * @param Comparable
   */
  public void addColumnValue(Comparable value){
    this.columnValues.add(value);
  }
  
  /*
   * addColumnValue
   
   * Adds the Comparable Value in the specific index in the
   * List of columns
   
   * @param colIndex (int)
   * @param Comparable
   */
  public void addColumnValue(int index, Comparable value){
    if(index >= this.columnValues.size()){
      addNullColumns(index);
    }
    this.columnValues.set(index, value);
  }  

  /*
   * getColumnValue
   
   * Retrieves the Comparable Object from the List of columns
   
   * @param colIndex (int)
   * @return Object
   */
  public Object getColumnValue(int index){
    return this.columnValues.get(index);
  }  
  
  /*
   * addColumnValues
   
   * Retrieves the list of column values
   
   * @return List
   */
  public List getColumnValues() {
    return columnValues;
  }

  /*
   * setColumnValues
   
   * Sets the List to the List of column values
   
   * @param List
   */
  public void setColumnValues(List columnValues) {
    this.columnValues = columnValues;
  }

  /*
   * getSortColIndex
   
   * Returns the current column index being sorted
   
   * @return colIndex (int)
   */
  public int getSortColIndex() {
    return sortColIndex;
  }

  /*
   * setSortColIndex
   
   * Sets the current column index being sorted
   
   * @param colIndex (int)
   */
  public void setSortColIndex(int sortColIndex) {
    this.sortColIndex = sortColIndex;
  }

  /*
   * compareTo
   
   * Implementation of Interface Comparable 
   * Returns the compare result to another RowData object
   
   * @param colIndex (int)
   */
  public int compareTo(Object other) {
    if(null == other){
      return -1;
    }
    RowData otherRow = (RowData)other;
    Comparable obj1 = (Comparable)this.getColumnValue(this.sortColIndex);
    Comparable obj2 = (Comparable)otherRow.getColumnValue(this.sortColIndex);
    return obj1.compareTo(obj2);
  }
  
  /*
   * addNullColumns
   
   * Adds the Null columns in the table row
   *  
   * @param colIndex (int)
   * @deprecated
   */
  private void addNullColumns(int index){
    for(int nullIndex=this.columnValues.size(); nullIndex<=index; nullIndex++){
      columnValues.add(null);
    }
  }
}

/*
 * SortableTable Widget for GWT library of Google, Inc.
 
 * Copyright (c) 2006 Parvinder Thapar
 * http://psthapar.googlepages.com/
 
 * This library is free software; you can redistribute 
 * it and/or modify it under the terms of the GNU Lesser 
 * General Public License as published by the Free Software 
 * Foundation; either version 2.1 of the License, or 
 * (at your option) any later version. This library is 
 * distributed in the hope that it will be useful, but 
 * WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY  or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNULesser General Public License for more details. 
 * You should have received a copy of the GNU Lesser General 
 * PublicLicense along with this library; if not, write to the 
 * Free Software Foundation, Inc.,  
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA  
 */

/*
 * Sortable Interface defines the signatures and the 
 * constants for the sortable table
 */
interface Sortable {
  // Constants defining the current direction of the 
  // sort on a column
  public static int SORT_ASC = 0;
  public static int SORT_DESC = 1;
  
  /*
   * sort
   
   * Defines what happens when the column is sorted
   
   * @param columnIndex to be sorted (int)
   */
  public void sort(int columnIndex);
}

/*
 * SortableTable Widget for GWT library of Google, Inc.
 
 * Copyright (c) 2006 Parvinder Thapar
 * http://psthapar.googlepages.com/
 
 * This library is free software; you can redistribute 
 * it and/or modify it under the terms of the GNU Lesser 
 * General Public License as published by the Free Software 
 * Foundation; either version 2.1 of the License, or 
 * (at your option) any later version. This library is 
 * distributed in the hope that it will be useful, but 
 * WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY  or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNULesser General Public License for more details. 
 * You should have received a copy of the GNU Lesser General 
 * PublicLicense along with this library; if not, write to the 
 * Free Software Foundation, Inc.,  
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA  
 */




/*
 * SortableTable is a type of FlexTable which allows Sorting
 * on its column. Sorting is done totally on the client side.
 * No server side call is made in this table.
 
 * Current implementation of Sortable Table needs <code>Comparable</code>
 * Object in its column values to be able to sort them correctly
 
 * The objects being set in the column values must implement the interface
 * <code>Comparable</code> and implement methods: compareTo() and 
 * toString()
 *  
 * {@link com.google.gwt.user.client.ui.FlexTable}
 * {@link java.lang.Comparable}
 */
class SortableTable extends FlexTable implements Sortable, TableListener {
  
  // Holds the current column being sorted
  private int sortColIndex    =  -1;
  
  // Holds the current direction of sort: Asc/ Desc
  private int sortDirection    =  -1;
  
  // The default image to show acending order arrow
  private String sortAscImage   = "images/asc.gif";
  
  //The default image to show descending order arrow
  private String sortDescImage  = "images/desc.gif";
  
  // The default image to show the blank image
  // This is needed to paint the columns other than
  // the one which is being sorted.
  // Should be same length and width as the asc/ desc
  // images.
  private String blankImage    = "images/blank.gif";

  // Holds the data rows of the table
  // This is a list of RowData Object
  private List tableRows       = new ArrayList();
  
  // Holds the data for the column headers
  private List tableHeader     = new ArrayList();
  
  /*
   * Default Constructor
   
   * Calls the super class constructor
   * and adds a TableListener object
   */
  public SortableTable(){
    super();
    this.addTableListener(this);
  }

  /*
   * addColumnHeader
   
   * Adds the Column Header to the table
   * Uses the rowIndex 0 to add the header names.
   * Renders the name and the asc/desc/blank gif 
   * to the column
   
   * @param columnName (String)
   * @param columnIndex (int)
   */
  public void addColumnHeader(String name, int index){
    tableHeader.add(index, name);
    this.renderTableHeader(name, index);
  }
  
  /*
   * setValue
   
   * Sets the values in specifed row/column
   * Expects a Comparable Object for sorting
   *  
   * @param rowIndex (int)
   * @param columnIndex (int)
   * @param Value (Comparable)
   */
  public void setValue(int rowIndex, int colIndex, Comparable value){
    // The rowIndex should begin with 1 as rowIndex 0 is for the Header
    // Any row with index == 0 will not be displayed.
    if(rowIndex == 0){
      return;
    }
    
    if((rowIndex-1>= this.tableRows.size() || null == tableRows.get(rowIndex-1)){
      tableRows.add(rowIndex-1new RowData());
    }
    
    RowData rowData = (RowData)this.tableRows.get(rowIndex-1)
    rowData.addColumnValue(colIndex, value);
    this.setHTML(rowIndex, colIndex, "" + value.toString()"");
  }
  
  /*
   * sort
   
   * Implementation of Sortable Interface, this
   * method decribes how to sort the specified
   * column. It checks the current sort direction
   * and flips it
   *  
   * @param columnIndex (int)
   */
  public void sort(int columnIndex){
    Collections.sort(this.tableRows);
    if(this.sortColIndex != columnIndex){
      // New Column Header clicked
      // Reset the sortDirection to ASC
      this.sortDirection = SORT_ASC;
    }else{
      // Same Column Header clicked
      // Reverse the sortDirection
      this.sortDirection = (this.sortDirection == SORT_ASC)? SORT_DESC:SORT_ASC; 
    }
    this.sortColIndex = columnIndex;
  }
  
  /*
   * onCellClicked
   
   * Implementation of Table Listener Interface, this
   * method decribes what to do when a cell is clicked
   * It checks for the header row and calls the sort 
   * method to sort the table
   *  
   * @param sender (SourcesTableEvents)
   * @param rowIndex (int)
   * @param colIndex (int)
   */
  public void onCellClicked(SourcesTableEvents sender, int row, int col) {
    if(row != 0){
      return;
    }
    this.setSortColIndex(col);
    this.sort(col);
    this.drawTable();
  }  

  /*
   * getSortAscImage
   
   * Getter for Sort Ascending Image
   
   * @return String
   */
  public String getSortAscImage() {
    return sortAscImage;
  }

  /*
   * setSortAscImage
   
   * Setter for Sort Ascending Image
   
   * @param relative path + image name (String)
   * e.g. images/asc.gif
   */
  public void setSortAscImage(String sortAscImage) {
    this.sortAscImage = sortAscImage;
  }

  /*
   * getSortDescImage
   
   * Getter for Sort Descending Image
   
   * @return String
   */
  public String getSortDescImage() {
    return sortDescImage;
  }

  /*
   * setSortDescImgage
   
   * Setter for Sort Descending Image
   
   * @param relative path + image name (String)
   * e.g. images/desc.gif
   */
  public void setSortDescImgage(String sortDescImgage) {
    this.sortDescImage = sortDescImgage;
  }
  
  /*
   * getBlankImage
   
   * Getter for blank Image
   
   * @return String
   */
  public String getBlankImage() {
    return blankImage;
  }

  /*
   * setBlankImage
   
   * Setter for the blank Image
   
   * @param relative path + image name (String)
   * e.g. images/blank.gif
   */
  public void setBlankImage(String blankImage) {
    this.blankImage = blankImage;
  }
  
  /*
   * drawTable
   
   * Renders the header as well as the body 
   * of the table
   */
  protected void drawTable(){
    this.displayTableHeader();
    this.displayTableBody();
  }
  
  /*
   * displayTableHeader
   
   * Renders only the table header
   */
  private void displayTableHeader(){
    int colIndex=0;
    for(Iterator colHeaderIter = this.tableHeader.iterator(); colHeaderIter.hasNext();){
      String colHeader = (String)colHeaderIter.next();
      this.renderTableHeader(colHeader, colIndex++);
    }
  }
  
  /*
   * displayTableBody
   
   * Renders the body or the remaining rows of the table
   * except the header.
   * It checks the sort direction and displays the rows 
   * accordingly
   */
  private void displayTableBody(){
    if(this.sortDirection == SORT_ASC || this.sortDirection == -1){
      // Ascending order and Default Display
      for(int rowIndex=0; rowIndex<tableRows.size(); rowIndex++){
        RowData columns = (RowData)tableRows.get(rowIndex);
        for(int colIndex=0; colIndex<columns.getColumnValues().size(); colIndex++){
          Object value = columns.getColumnValue(colIndex);
          if(null != value){
            this.setHTML(rowIndex+1, colIndex, value.toString());
          }
        }
      }
    }else{
      // Descending Order Display
      for(int rowIndex=tableRows.size()-1, rowNum = 1; rowIndex>=0; rowIndex--, rowNum++){
        RowData columns = (RowData)tableRows.get(rowIndex);
        for(int colIndex=0; colIndex<columns.getColumnValues().size(); colIndex++){
          Object value = columns.getColumnValue(colIndex);
          if(null != value){
            this.setHTML(rowNum, colIndex, value.toString());
          }
        }
      }
    }
  }
  
  /*
   * setSortColIndex
   
   * Sets the current column index being sorted
   
   * @param column index being sorted (int)
   */
  private void setSortColIndex(int sortIndex){
    for(int rowIndex=0; rowIndex<tableRows.size(); rowIndex++){
      RowData row = (RowData)tableRows.get(rowIndex);
      row.setSortColIndex(sortIndex);
    }
  }
  
  /*
   * renderTableHeader
   * Renders a particular column in the Table Header
   
   * @param Column Name (String)
   * @param Column Index (int) 
   */
  private void renderTableHeader(String name, int index){
    StringBuffer headerText = new StringBuffer();
    headerText.append(name);
    headerText.append("&nbsp;<img border='0' src=");
    if(this.sortColIndex == index){
      if(this.sortDirection == SORT_ASC){
        headerText.append("'" this.sortAscImage + "' alt='Ascending' ");  
      }else{
        headerText.append("'" this.sortDescImage + "' alt='Descending' ");
      }
    }else{
      headerText.append("'" this.blankImage + "'");
    }
    headerText.append("/>");

    this.setHTML(0, index, headerText.toString());
  }
}

           
       
GWT-SortableTable.zip( 9 k)
Related examples in the same category
1. 绝对位置表
2. 动态表
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.