1 23 24 package org.infoglue.deliver.taglib.structure; 25 26 import java.util.ArrayList ; 27 import java.util.Collections ; 28 import java.util.Comparator ; 29 import java.util.List ; 30 31 import javax.servlet.jsp.JspException ; 32 33 import org.infoglue.cms.util.sorters.HardcodedPageComparator; 34 import org.infoglue.cms.util.sorters.PageComparator; 35 import org.infoglue.deliver.taglib.TemplateControllerTag; 36 37 public class SortPagesTag extends TemplateControllerTag 38 { 39 private static final long serialVersionUID = 3257003254859576632L; 40 41 private Comparator comparator; 42 43 private List input = new ArrayList (); 44 45 private String sortProperty = "NavigationTitle"; 46 private String nameProperty = "NavigationTitle"; 47 private String sortOrder = "asc"; 48 private boolean numberOrder = false; 49 private String type = "PageComparator"; 50 private String namesInOrderString = null; 51 52 55 public SortPagesTag() 56 { 57 super(); 58 } 59 60 63 public int doEndTag() throws JspException 64 { 65 if(this.type.equalsIgnoreCase("HardcodedPageComparator") || namesInOrderString != null) 66 this.comparator = new HardcodedPageComparator(sortProperty, sortOrder, numberOrder, nameProperty, namesInOrderString, getController()); 67 else 68 this.comparator = new PageComparator(sortProperty, sortOrder, numberOrder, getController()); 69 70 Collections.sort(input, comparator); 71 produceResult(input); 72 return EVAL_PAGE; 73 } 74 75 78 public void setInput(final String input) throws JspException 79 { 80 this.input = evaluateList("contentSort", "input", input); 81 } 82 83 86 public void setSortProperty(final String sortProperty) throws JspException 87 { 88 this.sortProperty = evaluateString("contentSort", "sortProperty", sortProperty); 89 } 90 91 92 95 public void setSortOrder(final String sortOrder) throws JspException 96 { 97 this.sortOrder = evaluateString("contentSort", "sortOrder", sortOrder); 98 } 99 100 103 public void setType(final String type) throws JspException 104 { 105 this.type = type; 106 } 107 108 public void setNamesInOrderString(final String namesInOrderString) throws JspException 109 { 110 this.namesInOrderString = namesInOrderString; 111 } 112 113 public void setNumberOrder(boolean numberOrder) 114 { 115 this.numberOrder = numberOrder; 116 } 117 } 118 | Popular Tags |