Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright ${year}, Red Hat, Inc. and individual contributors
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * This 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 software 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 GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.richfaces.component;
 
 
 import  javax.faces.component.UIComponent;

Author(s):
Brian Leathem
 
 public class ExtendedDataTableState implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
     protected ColumnsWidth columnsWidthState;
     protected ColumnsOrder columnsOrderState;
     protected ColumnsFilter columnsFilterState;
     protected ColumnsSort columnsSortState;
 
     public ExtendedDataTableState(UIDataTableBase extendedDataTable) {
          = new ColumnsWidth(extendedDataTable);
          = new ColumnsOrder(extendedDataTable);
          = new ColumnsFilter(extendedDataTable);
          = new ColumnsSort(extendedDataTable);
     }
 
     public ExtendedDataTableState(String tableState) {
         JSONMap json = null;
         if ((tableState != null) && (tableState.length() > 0)) {
             try {
                 json = new JSONMap(tableState);
             } catch (JSONException e) {
                 e.printStackTrace();
             }
         }
         if (json != null) {
              = new ColumnsWidth((JSONMapjson.get("columnsWidthState"));
              = new ColumnsOrder((JSONCollectionjson.get("columnsOrderState"));
              = new ColumnsFilter((JSONMapjson.get("columnsFilterState"));
              = new ColumnsSort((JSONMapjson.get("columnsSortState"));
         }
     }
 
     public JSONObject toJSON() {
         JSONObject json = new JSONObject();
         try {
             if ( != null && !.isEmpty()) {
                 json.put("columnsWidthState".toJSON());
             }
             if ( != null && !.isEmpty()) {
                 json.put("columnsOrderState".toJSON());
             }
             if ( != null && !.isEmpty()) {
                 json.put("columnsFilterState".toJSON());
             }
             if ( != null && !.isEmpty()) {
                 json.put("columnsSortState".toJSON());
             }
         } catch (JSONException e) {
             e.printStackTrace();
         }
         return json;
     }

    
Converts its state to String representation in JSON format.
 
     public String toString() {
         return toJSON().toString();
     }
    /*
     * @see ColumnsWidth#getColumnState(UIComponent)
     */
    public String getColumnWidth(UIComponent column) {
        return .getColumnState(column);
    }
    /*
     * @see ColumnsFilter#getColumnState(UIComponent)
     */
    public String getColumnFilter(UIComponent column) {
        return .getColumnState(column);
    }
    /*
     * @see ColumnsSort#getColumnState(UIComponent)
     */
    public String getColumnSort(UIComponent column) {
        return .getColumnState(column);
    }
    /*
     * @see ColumnsOrder#getColumnsOrder(UIComponent)
     */
    public String[] getColumnsOrder() {
        return .getColumnsOrder();
    }
abstract class ColumnsState implements Serializable {
    private static final long serialVersionUID = 1L;
    protected JSONObject json;

    
Return the value to which the column will map to in the resulting JSONMap
    abstract String getValueFromColumn(AbstractColumn column);

    
Initialize state from an extendedDataTable
    ColumnsState (UIDataTableBase extendedDataTable) {
        try {
            JSONWriter writer = new JSONStringer().object();
            Iterator<UIComponent> iterator = extendedDataTable.columns();
            while (iterator.hasNext()) { // initialize a map of all the columns
                UIComponent component = iterator.next();
                AbstractColumn column = (AbstractColumncomponent;
                writer.key(column.getId()).value(getValueFromColumn(column));
            }
             = new JSONObject(writer.endObject().toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    
Initialize state from JSON
    ColumnsState (JSONMap json) {
        if ((json != null) && (json.size() > 0)) {
            this. = new JSONObject(json);
        }
    }

    
Return the value mapped to by the given column, as stored in the json map.

Parameters:
column
Returns:
the width of the column. Returns null if not defined in the json map
    public String getColumnState(UIComponent column) {
        String state = null;
        if ( != null && !.isNull(column.getId())) {
            state = (String.opt(column.getId());
        }
        return state;
    }
    public boolean isEmpty() {
        return  == null || .length() == 0;
    }

    
Get state in JSON format.

Returns:
JSON object contains state
    public JSONMap toJSON() {
        return new JSONMap();
    }

    
Converts its state to String representation in JSON format.
    public String toString() {
        if ( == null) {
            return "";
        }
        return .toString();
    }
class ColumnsWidth extends ColumnsState implements Serializable {
    private static final long serialVersionUID = 1L;
    ColumnsWidth(UIDataTableBase extendedDataTable) {
        super(extendedDataTable);
    }
    ColumnsWidth(JSONMap json) {
        super(json);
    }
        return column.getWidth();
    }
class ColumnsFilter extends ColumnsState implements Serializable {
    private static final long serialVersionUID = 1L;
    ColumnsFilter(UIDataTableBase extendedDataTable) {
        super(extendedDataTable);
    }
    ColumnsFilter(JSONMap json) {
        super(json);
    }
        Object filterValue = column.getFilterValue();
        return filterValue == null ? null : filterValue.toString();
    }
class ColumnsSort extends ColumnsState implements Serializable {
    private static final long serialVersionUID = 1L;
    ColumnsSort(UIDataTableBase extendedDataTable) {
        super(extendedDataTable);
    }
    ColumnsSort(JSONMap json) {
        super(json);
    }
        Object sortOrder = column.getSortOrder();
        return sortOrder == null ? null : sortOrder.toString();
    }
class ColumnsOrder implements Serializable {
    private static final long serialVersionUID = 1;
    private JSONArray json;

    
Initialize state from an extendedDataTable
    ColumnsOrder (UIDataTableBase extendedDataTable) {
        String[] columnsOrder = (String[]) extendedDataTable.getAttributes().get("columnsOrder");
        if (columnsOrder != null) {
             = new JSONArray(Arrays.asList(columnsOrder));
        }
    }

    
Initialize state from JSON
    ColumnsOrder (JSONCollection json) {
        if ((json != null) && (json.size() > 0)) {
            this. = new JSONArray(json);
        }
    }

    
Return the order of the columns. The column order is determined according to the precedence: 1) the column order stored in the table state if it is not null 2) the columnsOrder attribute of the table if that is not null 3) the order of the columns in the component tree

Returns:
a String array representing the order of the columns by id.
    public String[] getColumnsOrder() {
        if ( == null) {
            return null;
        }
        String[] columnsOrder = new String[.length()];
        for (int i = 0; i < .length(); i++) {
            String columnId = (String.opt(i);
            columnsOrder[i] = columnId;
        }
        return columnsOrder;
    }
    public boolean isEmpty() {
        return  == null || .length() == 0;
    }

    
Get state in JSON format.

Returns:
JSON object contains state
    public JSONArray toJSON() {
        return ;
    }

    
Converts its state to String representation in JSON format.
    public String toString() {
        if ( == null) {
            return "";
        }
        return .toString();
    }
New to GrepCode? Check out our FAQ X