[jboss-cvs] jboss-seam/examples/seamdiscs/src/action/org/jboss/seam/example/trinidad ...

Peter Muir peter at bleepbleep.org.uk
Wed Mar 28 15:12:47 EDT 2007


  User: pmuir   
  Date: 07/03/28 15:12:47

  Added:       examples/seamdiscs/src/action/org/jboss/seam/example/trinidad 
                        TrinidadEntityQuery.java
  Log:
  Initial work on Richfaces/Trinidad example
  
  Revision  Changes    Path
  1.1      date: 2007/03/28 19:12:47;  author: pmuir;  state: Exp;jboss-seam/examples/seamdiscs/src/action/org/jboss/seam/example/trinidad/TrinidadEntityQuery.java
  
  Index: TrinidadEntityQuery.java
  ===================================================================
  package org.jboss.seam.example.trinidad;
  
  import java.util.ArrayList;
  import java.util.List;
  import java.util.StringTokenizer;
  
  import org.apache.myfaces.trinidad.model.CollectionModel;
  import org.apache.myfaces.trinidad.model.SortCriterion;
  import org.apache.myfaces.trinidad.model.SortableModel;
  import org.jboss.seam.framework.EntityQuery;
  
  
  public class TrinidadEntityQuery extends EntityQuery
  {
     private List<SortCriterion> sortCriteria;
     
     @Override
     public void setOrder(String order)
     {
        sortCriteria = asCriteria(order);
     }
     
     @Override
     public String getOrder()
     {
        return asSql(sortCriteria);
     }
     
     private String asSql (List<SortCriterion> criteria)
     {
        String sql = "";
        for (SortCriterion sortCriterion : criteria)
        {
           sql += sortCriterion.getProperty() + (sortCriterion.isAscending() ? " ASC" : " DESC");
        }
        if (!"".equals(sql))
        {
           sql.substring( 0, sql.length() -1 );
        }
        return sql;
     }
     
     private List<SortCriterion> asCriteria(String sql)
     {
        List<SortCriterion>  criteria = new ArrayList<SortCriterion>();
        StringTokenizer tokenizer = new StringTokenizer(sql, ",");
        while (tokenizer.hasMoreTokens())
        {
           SortCriterion sortCriterion;
           String fragment = tokenizer.nextToken();
           String s = fragment.substring(fragment.lastIndexOf(" "));
           if ("ASC".equalsIgnoreCase(s))
           {
              sortCriterion = new SortCriterion(fragment.substring(0, fragment.length() - 3), true);
           }
           else if ("DESC".equalsIgnoreCase(s))
           {
              sortCriterion = new SortCriterion(fragment.substring(0, fragment.length() - 4), false);
           }
           else
           {
              sortCriterion = new SortCriterion(fragment, false);
           }
           criteria.add(sortCriterion);
        }
        return criteria;
     }
     
     public CollectionModel getCollectionModel()
     {
        return new SortableModel() 
        {             
           @Override
           public boolean isSortable(String property)
           {
              return true;
           }
           
           @Override
           public List<SortCriterion> getSortCriteria()
           {
              return sortCriteria;
           }
           
           @Override
           public void setSortCriteria(List<SortCriterion> criteria)
           {
              sortCriteria = criteria;
           }
           
        };
     }
  }
  
  
  



More information about the jboss-cvs-commits mailing list