Update of /cvsroot/displaytag/displaytag/src/org/apache/taglibs/display/test
In directory sc8-pr-cvs1:/tmp/cvs-serv4301/src/org/apache/taglibs/display/test

Modified Files:
        ListHolder.java ListObject.java LongDateWrapper.java 
        ReportList.java ReportableListObject.java TestList.java 
        TotalWrapper.java Wrapper.java 
Log Message:
Reformatted the sources. Fixed some type casts that are not needed. Tabletag now calls 
reset just before returning from doEndTag.

Index: ListHolder.java
===================================================================
RCS file: 
/cvsroot/displaytag/displaytag/src/org/apache/taglibs/display/test/ListHolder.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ListHolder.java     4 Feb 2003 01:35:40 -0000       1.1.1.1
--- ListHolder.java     12 Jun 2003 17:22:17 -0000      1.2
***************
*** 20,33 ****
   **/
  
! public class ListHolder extends Object
! {
!    private List myList;
  
!    public ListHolder() {
!       myList = new TestList( 15 );
!    }
  
!    public List getList() {
!       return this.myList;
!    }
  }
--- 20,32 ----
   **/
  
! public class ListHolder extends Object {
!     private List myList;
  
!     public ListHolder() {
!         myList = new TestList(15);
!     }
  
!     public List getList() {
!         return this.myList;
!     }
  }

Index: ListObject.java
===================================================================
RCS file: 
/cvsroot/displaytag/displaytag/src/org/apache/taglibs/display/test/ListObject.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ListObject.java     4 Feb 2003 01:35:41 -0000       1.1.1.1
--- ListObject.java     12 Jun 2003 17:22:17 -0000      1.2
***************
*** 28,242 ****
   **/
  
! public class ListObject extends Object
! {
!    private static Random rnd = new Random();
!    private static List words = null;
  
!    public int id = -1;
!    public String name;
!    public String email;
!    public Date date;
!    public double money;
!    public String description;
!    public String longDescription;
!    public String status;
!    public String url;
  
!    public ListObject() {
!       this.setupRandomData();
!    }
  
!    public int getId()
!    {
!       return id;
!    }
  
!    public void setID ( int id )
!    {
!       this.id = id ;
!    }
  
!    public String getName()
!    {
!       return name;
!    }
  
!    public String getEmail()
!    {
!       return email;
!    }
!    
!    public void setEmail ( String email )
!    {
!       this.email = email ;
!    }
  
!    public Date getDate()
!    {
!       return date;
!    }
  
!    public double getMoney()
!    {
!       return money;
!    }
  
!    public String getDescription()
!    {
!       return description;
!    }
  
!    public String getLongDescription()
!    {
!       return longDescription;
!    }
  
!    public String getStatus()
!    {
!       return status;
!    }
  
!    public String getUrl()
!    {
!       return url;
!    }
  
!    public String getNullValue() {
!       return null;
!    }
  
!    public String toString() {
!       return "ListObject(" + id + ")";
!    }
  
!    public String toDetailedString() {
!       return
!          "ID:          " + this.id + "\n" +
!          "Name:        " + this.name + "\n" +
!          "Email:       " + this.email + "\n" +
!          "Date:        " + this.date + "\n" +
!          "Money:       " + this.money + "\n" +
!          "Description: " + this.description + "\n" +
!          "Status:      " + this.status + "\n" +
!          "URL:         " + this.url + "\n";
!    }
  
!    public void setupRandomData() {
!       this.id = rnd.nextInt( 99998 ) + 1;
!       this.money = ( rnd.nextInt( 999998 ) + 1 ) / 100;
  
!       String first = this.getRandomWord();
!       String last = this.getRandomWord();
  
!       this.name = StringUtil.toUpperCaseAt( first, 0 ) + " " +
!          StringUtil.toUpperCaseAt( last, 0 );
  
!       this.email = first + "-" + last + "@" +
!          this.getRandomWord() + ".com";
  
!       Calendar cal = Calendar.getInstance();
!       cal.add( Calendar.DATE, 365 - rnd.nextInt( 730 ) );
!       this.date = cal.getTime();
  
  
-       this.description = this.getRandomWord() + " " +
-          this.getRandomWord() + "...";
  
!       this.longDescription = this.getRandomWord() + " " +
!          this.getRandomWord() + " " +
!          this.getRandomWord() + " " +
!          this.getRandomWord() + " " +
!          this.getRandomWord() + " " +
!          this.getRandomWord() + " " +
!          this.getRandomWord() + " " +
!          this.getRandomWord() + " " +
!          this.getRandomWord() + " " +
!          this.getRandomWord() + " " +
!          this.getRandomWord() + " " +
!          this.getRandomWord();
  
  
-       this.status = this.getRandomWord().toUpperCase();
  
!       this.url = "http://www."; + last + ".org/";
!    }
  
  
  
!    public String getRandomWord() {
!       if( words == null ) { this.setupWordBase(); }
  
!       return ((String)words.get( rnd.nextInt( words.size() ) )).toLowerCase();
!    }
  
  
!    public void setupWordBase() {
!       String lorumIpsum =
!       "Lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy "+
!       "eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed diam "+
!       "voluptua At vero eos et accusam et justo duo dolores et ea rebum Stet "+
!       "clita kasd gubergren no sea takimata sanctus est Lorem ipsum dolor sit "+
!       "amet Lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam "+
!       "nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat "+
!       "sed diam voluptua At vero eos et accusam et justo duo dolores et ea "+
!       "rebum Stet clita kasd gubergren no sea takimata sanctus est Lorem "+
!       "ipsum dolor sit amet Lorem ipsum dolor sit amet consetetur sadipscing "+
!       "elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore magna "+
!       "aliquyam erat sed diam voluptua At vero eos et accusam et justo duo "+
!       "dolores et ea rebum Stet clita kasd gubergren no sea takimata sanctus "+
!       "est Lorem ipsum dolor sit amet "+
!       "Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse "+
!       "molestie consequat vel illum dolore eu feugiat nulla facilisis at vero "+
!       "eros et accumsan et iusto odio dignissim qui blandit praesent luptatum "+
!       "zzril delenit augue duis dolore te feugait nulla facilisi Lorem ipsum "+
!       "dolor sit amet consectetuer adipiscing elit sed diam nonummy nibh "+
!       "euismod tincidunt ut laoreet dolore magna aliquam erat volutpat "+
!       "Ut wisi enim ad minim veniam quis nostrud exerci tation ullamcorper "+
!       "suscipit lobortis nisl ut aliquip ex ea commodo consequat Duis autem "+
!       "vel eum iriure dolor in hendrerit in vulputate velit esse molestie "+
!       "consequat vel illum dolore eu feugiat nulla facilisis at vero eros et "+
!       "accumsan et iusto odio dignissim qui blandit praesent luptatum zzril "+
!       "delenit augue duis dolore te feugait nulla facilisi "+
!       "Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet "+
!       "doming id quod mazim placerat facer possim assum Lorem ipsum dolor sit "+
!       "amet consectetuer adipiscing elit sed diam nonummy nibh euismod "+
!       "tincidunt ut laoreet dolore magna aliquam erat volutpat Ut wisi enim ad "+
!       "minim veniam quis nostrud exerci tation ullamcorper suscipit lobortis "+
!       "nisl ut aliquip ex ea commodo consequat "+
!       "Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse "+
!       "molestie consequat vel illum dolore eu feugiat nulla facilisis "+
!       "At vero eos et accusam et justo duo dolores et ea rebum Stet clita kasd "+
!       "gubergren no sea takimata sanctus est Lorem ipsum dolor sit amet Lorem "+
!       "ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy "+
!       "eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed diam "+
!       "voluptua At vero eos et accusam et justo duo dolores et ea rebum Stet "+
!       "clita kasd gubergren no sea takimata sanctus est Lorem ipsum dolor sit "+
!       "amet Lorem ipsum dolor sit amet consetetur sadipscing elitr At "+
!       "accusam aliquyam diam diam dolore dolores duo eirmod eos erat et nonumy "+
!       "sed tempor et et invidunt justo labore Stet clita ea et gubergren kasd "+
!       "magna no rebum sanctus sea sed takimata ut vero voluptua est Lorem "+
!       "ipsum dolor sit amet Lorem ipsum dolor sit amet consetetur sadipscing "+
!       "elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore magna "+
!       "aliquyam erat "+
!       "Consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut "+
!       "labore et dolore magna aliquyam erat sed diam voluptua At vero eos et "+
!       "accusam et justo duo dolores et ea rebum Stet clita kasd gubergren no "+
!       "sea takimata sanctus est Lorem ipsum dolor sit amet Lorem ipsum dolor "+
!       "sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor "+
!       "invidunt ut labore et dolore magna aliquyam erat sed diam voluptua At "+
!       "vero eos et accusam et justo duo dolores et ea rebum Stet clita kasd "+
!       "gubergren no sea takimata sanctus est Lorem ipsum dolor sit amet Lorem "+
!       "ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy "+
!       "eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed diam "+
!       "voluptua At vero eos et accusam et justo duo dolores et ea rebum Stet "+
!       "clita kasd gubergren no sea takimata sanctus ";
  
!       words = new ArrayList();
!       StringTokenizer st = new StringTokenizer( lorumIpsum );
!       while( st.hasMoreTokens() ) {
!          String word = (String)st.nextToken();
!          words.add( word );
!       }
!    }
  
  
--- 28,231 ----
   **/
  
! public class ListObject extends Object {
!     private static Random rnd = new Random();
!     private static List words = null;
  
!     public int id = -1;
!     public String name;
!     public String email;
!     public Date date;
!     public double money;
!     public String description;
!     public String longDescription;
!     public String status;
!     public String url;
  
!     public ListObject() {
!         this.setupRandomData();
!     }
  
!     public int getId() {
!         return id;
!     }
  
!     public void setID(int id) {
!         this.id = id;
!     }
  
!     public String getName() {
!         return name;
!     }
  
!     public String getEmail() {
!         return email;
!     }
  
!     public void setEmail(String email) {
!         this.email = email;
!     }
  
!     public Date getDate() {
!         return date;
!     }
  
!     public double getMoney() {
!         return money;
!     }
  
!     public String getDescription() {
!         return description;
!     }
  
!     public String getLongDescription() {
!         return longDescription;
!     }
  
!     public String getStatus() {
!         return status;
!     }
  
!     public String getUrl() {
!         return url;
!     }
  
!     public String getNullValue() {
!         return null;
!     }
  
!     public String toString() {
!         return "ListObject(" + id + ")";
!     }
  
!     public String toDetailedString() {
!         return
!                 "ID:          " + this.id + "\n" +
!                 "Name:        " + this.name + "\n" +
!                 "Email:       " + this.email + "\n" +
!                 "Date:        " + this.date + "\n" +
!                 "Money:       " + this.money + "\n" +
!                 "Description: " + this.description + "\n" +
!                 "Status:      " + this.status + "\n" +
!                 "URL:         " + this.url + "\n";
!     }
  
!     public void setupRandomData() {
!         this.id = rnd.nextInt(99998) + 1;
!         this.money = (rnd.nextInt(999998) + 1) / 100;
  
!         String first = this.getRandomWord();
!         String last = this.getRandomWord();
  
!         this.name = StringUtil.toUpperCaseAt(first, 0) + " " +
!                 StringUtil.toUpperCaseAt(last, 0);
  
!         this.email = first + "-" + last + "@" +
!                 this.getRandomWord() + ".com";
  
+         Calendar cal = Calendar.getInstance();
+         cal.add(Calendar.DATE, 365 - rnd.nextInt(730));
+         this.date = cal.getTime();
  
  
!         this.description = this.getRandomWord() + " " +
!                 this.getRandomWord() + "...";
  
+         this.longDescription = this.getRandomWord() + " " +
+                 this.getRandomWord() + " " +
+                 this.getRandomWord() + " " +
+                 this.getRandomWord() + " " +
+                 this.getRandomWord() + " " +
+                 this.getRandomWord() + " " +
+                 this.getRandomWord() + " " +
+                 this.getRandomWord() + " " +
+                 this.getRandomWord() + " " +
+                 this.getRandomWord() + " " +
+                 this.getRandomWord() + " " +
+                 this.getRandomWord();
  
  
!         this.status = this.getRandomWord().toUpperCase();
  
+         this.url = "http://www."; + last + ".org/";
+     }
  
  
!     public String getRandomWord() {
!         if (words == null) {
!             this.setupWordBase();
!         }
  
!         return ((String) words.get(rnd.nextInt(words.size()))).toLowerCase();
!     }
  
  
!     public void setupWordBase() {
!         String lorumIpsum =
!                 "Lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam 
nonumy " +
!                 "eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed 
diam " +
!                 "voluptua At vero eos et accusam et justo duo dolores et ea rebum 
Stet " +
!                 "clita kasd gubergren no sea takimata sanctus est Lorem ipsum dolor 
sit " +
!                 "amet Lorem ipsum dolor sit amet consetetur sadipscing elitr sed 
diam " +
!                 "nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam 
erat " +
!                 "sed diam voluptua At vero eos et accusam et justo duo dolores et ea 
" +
!                 "rebum Stet clita kasd gubergren no sea takimata sanctus est Lorem " 
+
!                 "ipsum dolor sit amet Lorem ipsum dolor sit amet consetetur 
sadipscing " +
!                 "elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore 
magna " +
!                 "aliquyam erat sed diam voluptua At vero eos et accusam et justo duo 
" +
!                 "dolores et ea rebum Stet clita kasd gubergren no sea takimata 
sanctus " +
!                 "est Lorem ipsum dolor sit amet " +
!                 "Duis autem vel eum iriure dolor in hendrerit in vulputate velit 
esse " +
!                 "molestie consequat vel illum dolore eu feugiat nulla facilisis at 
vero " +
!                 "eros et accumsan et iusto odio dignissim qui blandit praesent 
luptatum " +
!                 "zzril delenit augue duis dolore te feugait nulla facilisi Lorem 
ipsum " +
!                 "dolor sit amet consectetuer adipiscing elit sed diam nonummy nibh " 
+
!                 "euismod tincidunt ut laoreet dolore magna aliquam erat volutpat " +
!                 "Ut wisi enim ad minim veniam quis nostrud exerci tation ullamcorper 
" +
!                 "suscipit lobortis nisl ut aliquip ex ea commodo consequat Duis 
autem " +
!                 "vel eum iriure dolor in hendrerit in vulputate velit esse molestie 
" +
!                 "consequat vel illum dolore eu feugiat nulla facilisis at vero eros 
et " +
!                 "accumsan et iusto odio dignissim qui blandit praesent luptatum 
zzril " +
!                 "delenit augue duis dolore te feugait nulla facilisi " +
!                 "Nam liber tempor cum soluta nobis eleifend option congue nihil 
imperdiet " +
!                 "doming id quod mazim placerat facer possim assum Lorem ipsum dolor 
sit " +
!                 "amet consectetuer adipiscing elit sed diam nonummy nibh euismod " +
!                 "tincidunt ut laoreet dolore magna aliquam erat volutpat Ut wisi 
enim ad " +
!                 "minim veniam quis nostrud exerci tation ullamcorper suscipit 
lobortis " +
!                 "nisl ut aliquip ex ea commodo consequat " +
!                 "Duis autem vel eum iriure dolor in hendrerit in vulputate velit 
esse " +
!                 "molestie consequat vel illum dolore eu feugiat nulla facilisis " +
!                 "At vero eos et accusam et justo duo dolores et ea rebum Stet clita 
kasd " +
!                 "gubergren no sea takimata sanctus est Lorem ipsum dolor sit amet 
Lorem " +
!                 "ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy " +
!                 "eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed 
diam " +
!                 "voluptua At vero eos et accusam et justo duo dolores et ea rebum 
Stet " +
!                 "clita kasd gubergren no sea takimata sanctus est Lorem ipsum dolor 
sit " +
!                 "amet Lorem ipsum dolor sit amet consetetur sadipscing elitr At " +
!                 "accusam aliquyam diam diam dolore dolores duo eirmod eos erat et 
nonumy " +
!                 "sed tempor et et invidunt justo labore Stet clita ea et gubergren 
kasd " +
!                 "magna no rebum sanctus sea sed takimata ut vero voluptua est Lorem 
" +
!                 "ipsum dolor sit amet Lorem ipsum dolor sit amet consetetur 
sadipscing " +
!                 "elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore 
magna " +
!                 "aliquyam erat " +
!                 "Consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt 
ut " +
!                 "labore et dolore magna aliquyam erat sed diam voluptua At vero eos 
et " +
!                 "accusam et justo duo dolores et ea rebum Stet clita kasd gubergren 
no " +
!                 "sea takimata sanctus est Lorem ipsum dolor sit amet Lorem ipsum 
dolor " +
!                 "sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor 
" +
!                 "invidunt ut labore et dolore magna aliquyam erat sed diam voluptua 
At " +
!                 "vero eos et accusam et justo duo dolores et ea rebum Stet clita 
kasd " +
!                 "gubergren no sea takimata sanctus est Lorem ipsum dolor sit amet 
Lorem " +
!                 "ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy " +
!                 "eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed 
diam " +
!                 "voluptua At vero eos et accusam et justo duo dolores et ea rebum 
Stet " +
!                 "clita kasd gubergren no sea takimata sanctus ";
  
!         words = new ArrayList();
!         StringTokenizer st = new StringTokenizer(lorumIpsum);
!         while (st.hasMoreTokens()) {
!             String word = (String) st.nextToken();
!             words.add(word);
!         }
!     }
  
  

Index: LongDateWrapper.java
===================================================================
RCS file: 
/cvsroot/displaytag/displaytag/src/org/apache/taglibs/display/test/LongDateWrapper.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** LongDateWrapper.java        4 Feb 2003 01:35:41 -0000       1.1.1.1
--- LongDateWrapper.java        12 Jun 2003 17:22:17 -0000      1.2
***************
*** 14,25 ****
  
  
! public class LongDateWrapper extends ColumnDecorator
! {
!    private DateFormat sdf = new SimpleDateFormat( "MM/dd/yyyy HH:mm:ss" );
  
!    public String decorate( Object columnValue )
!    {
!       Date t = (Date)columnValue;
!       return sdf.format( t );
!    }
  }
--- 14,23 ----
  
  
! public class LongDateWrapper extends ColumnDecorator {
!     private DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
  
!     public String decorate(Object columnValue) {
!         Date t = (Date) columnValue;
!         return sdf.format(t);
!     }
  }

Index: ReportList.java
===================================================================
RCS file: 
/cvsroot/displaytag/displaytag/src/org/apache/taglibs/display/test/ReportList.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ReportList.java     4 Feb 2003 01:35:41 -0000       1.1.1.1
--- ReportList.java     12 Jun 2003 17:22:17 -0000      1.2
***************
*** 18,50 ****
   **/
  
! public class ReportList extends ArrayList
! {
!    /**
!     * Creats a TestList that is filled with 20 ReportableListObject suitable for 
testing
!     */
  
!    public ReportList() {
!       super();
  
!       for( int i = 0; i < 20; i++ ) {
!          this.add( new ReportableListObject() );
!       }
  
!       Collections.sort( this );
!    }
  
!    /**
!     * Creates a TestList that is filled with [size] ReportableListObject suitable for
!     * testing.
!     */
  
!    public ReportList( int size ) {
!       super();
  
!       for( int i = 0; i < size; i++ ) {
!          this.add( new ReportableListObject() );
!       }
  
!       Collections.sort( this );
!    }
  }
--- 18,49 ----
   **/
  
! public class ReportList extends ArrayList {
!     /**
!      * Creats a TestList that is filled with 20 ReportableListObject suitable for 
testing
!      */
  
!     public ReportList() {
!         super();
  
!         for (int i = 0; i < 20; i++) {
!             this.add(new ReportableListObject());
!         }
  
!         Collections.sort(this);
!     }
  
!     /**
!      * Creates a TestList that is filled with [size] ReportableListObject suitable 
for
!      * testing.
!      */
  
!     public ReportList(int size) {
!         super();
  
!         for (int i = 0; i < size; i++) {
!             this.add(new ReportableListObject());
!         }
  
!         Collections.sort(this);
!     }
  }

Index: ReportableListObject.java
===================================================================
RCS file: 
/cvsroot/displaytag/displaytag/src/org/apache/taglibs/display/test/ReportableListObject.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** ReportableListObject.java   23 Mar 2003 20:54:47 -0000      1.2
--- ReportableListObject.java   12 Jun 2003 17:22:17 -0000      1.3
***************
*** 23,204 ****
   **/
  
! public class ReportableListObject extends Object implements Comparable
! {
!    private static Random rnd = new Random();
!    private static List words = null;
  
!    public String city;
!    public String project;
!    public String task;
!    public double amount;
  
!    public ReportableListObject() {
!       this.setupRandomData();
!    }
  
!    public String getCity()
!    {
!       return city;
!    }
  
!    public void setCity( String city )
!    {
!       this.city = city;
!    }
  
!    public String getProject()
!    {
!       return project;
!    }
  
!    public void setProject( String project )
!    {
!       this.project = project;
!    }
  
!    public String getTask()
!    {
!       return task;
!    }
  
!    public void setTask( String task )
!    {
!       this.task = task;
!    }
  
!    public double getAmount()
!    {
!       return amount;
!    }
  
!    public void setAmount( double amount )
!    {
!       this.amount = amount;
!    }
  
!    public String toString() {
!       return "ReportableListObject(" + city + ":" + project + ":" + amount + ")";
!    }
  
  
!    public void setupRandomData() {
!       this.amount = ( rnd.nextInt( 99999 ) + 1 ) / 100;
  
!       city = this.getRandomCity();
!       project = this.getRandomProject();
!       task = this.getRandomTask();
!    }
  
  
  
!    public String getRandomCity() {
!       String cities[] = {
!          "Roma","Olympia","Neapolis","Carthago"
!       };
  
!       return cities[rnd.nextInt( cities.length )];
!    }
  
!    public String getRandomProject() {
!       String projects[] = {
!          "Taxes","Arts","Army","Gladiators"
!       };
  
!       return projects[rnd.nextInt( projects.length )];
!    }
  
!    public String getRandomTask() {
!       if( words == null ) { this.setupWordBase(); }
  
!       return ((String)words.get( rnd.nextInt( words.size() ) )).toLowerCase() +
!          " " + ((String)words.get( rnd.nextInt( words.size() ) )).toLowerCase() +
!          " " + ((String)words.get( rnd.nextInt( words.size() ) )).toLowerCase() +
!       " " + ((String)words.get( rnd.nextInt( words.size() ) )).toLowerCase();
  
-    }
  
  
!    public void setupWordBase() {
!       String lorumIpsum =
!       "Lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy "+
!       "eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed diam "+
!       "voluptua At vero eos et accusam et justo duo dolores et ea rebum Stet "+
!       "clita kasd gubergren no sea takimata sanctus est Lorem ipsum dolor sit "+
!       "amet Lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam "+
!       "nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat "+
!       "sed diam voluptua At vero eos et accusam et justo duo dolores et ea "+
!       "rebum Stet clita kasd gubergren no sea takimata sanctus est Lorem "+
!       "ipsum dolor sit amet Lorem ipsum dolor sit amet consetetur sadipscing "+
!       "elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore magna "+
!       "aliquyam erat sed diam voluptua At vero eos et accusam et justo duo "+
!       "dolores et ea rebum Stet clita kasd gubergren no sea takimata sanctus "+
!       "est Lorem ipsum dolor sit amet "+
!       "Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse "+
!       "molestie consequat vel illum dolore eu feugiat nulla facilisis at vero "+
!       "eros et accumsan et iusto odio dignissim qui blandit praesent luptatum "+
!       "zzril delenit augue duis dolore te feugait nulla facilisi Lorem ipsum "+
!       "dolor sit amet consectetuer adipiscing elit sed diam nonummy nibh "+
!       "euismod tincidunt ut laoreet dolore magna aliquam erat volutpat "+
!       "Ut wisi enim ad minim veniam quis nostrud exerci tation ullamcorper "+
!       "suscipit lobortis nisl ut aliquip ex ea commodo consequat Duis autem "+
!       "vel eum iriure dolor in hendrerit in vulputate velit esse molestie "+
!       "consequat vel illum dolore eu feugiat nulla facilisis at vero eros et "+
!       "accumsan et iusto odio dignissim qui blandit praesent luptatum zzril "+
!       "delenit augue duis dolore te feugait nulla facilisi "+
!       "Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet "+
!       "doming id quod mazim placerat facer possim assum Lorem ipsum dolor sit "+
!       "amet consectetuer adipiscing elit sed diam nonummy nibh euismod "+
!       "tincidunt ut laoreet dolore magna aliquam erat volutpat Ut wisi enim ad "+
!       "minim veniam quis nostrud exerci tation ullamcorper suscipit lobortis "+
!       "nisl ut aliquip ex ea commodo consequat "+
!       "Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse "+
!       "molestie consequat vel illum dolore eu feugiat nulla facilisis "+
!       "At vero eos et accusam et justo duo dolores et ea rebum Stet clita kasd "+
!       "gubergren no sea takimata sanctus est Lorem ipsum dolor sit amet Lorem "+
!       "ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy "+
!       "eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed diam "+
!       "voluptua At vero eos et accusam et justo duo dolores et ea rebum Stet "+
!       "clita kasd gubergren no sea takimata sanctus est Lorem ipsum dolor sit "+
!       "amet Lorem ipsum dolor sit amet consetetur sadipscing elitr At "+
!       "accusam aliquyam diam diam dolore dolores duo eirmod eos erat et nonumy "+
!       "sed tempor et et invidunt justo labore Stet clita ea et gubergren kasd "+
!       "magna no rebum sanctus sea sed takimata ut vero voluptua est Lorem "+
!       "ipsum dolor sit amet Lorem ipsum dolor sit amet consetetur sadipscing "+
!       "elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore magna "+
!       "aliquyam erat "+
!       "Consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut "+
!       "labore et dolore magna aliquyam erat sed diam voluptua At vero eos et "+
!       "accusam et justo duo dolores et ea rebum Stet clita kasd gubergren no "+
!       "sea takimata sanctus est Lorem ipsum dolor sit amet Lorem ipsum dolor "+
!       "sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor "+
!       "invidunt ut labore et dolore magna aliquyam erat sed diam voluptua At "+
!       "vero eos et accusam et justo duo dolores et ea rebum Stet clita kasd "+
!       "gubergren no sea takimata sanctus est Lorem ipsum dolor sit amet Lorem "+
!       "ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy "+
!       "eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed diam "+
!       "voluptua At vero eos et accusam et justo duo dolores et ea rebum Stet "+
!       "clita kasd gubergren no sea takimata sanctus ";
  
!       words = new ArrayList();
!       StringTokenizer st = new StringTokenizer( lorumIpsum );
!       while( st.hasMoreTokens() ) {
!          String word = (String)st.nextToken();
!          words.add( word );
!       }
!    }
!    public int compareTo( Object o )
!    {
!       ReportableListObject o1 = this;
!       ReportableListObject o2 = (ReportableListObject)o;
  
!       if( o1.city.equals( o2.city ) ) {
!          if( o1.project.equals( o2.project ) ) {
!             return (int)(o2.amount - o1.amount);
!          } else {
!             return o1.project.compareTo( o2.project );
!          }
!       } else {
!          return o1.city.compareTo( o2.city );
!       }
!    }
  }
--- 23,198 ----
   **/
  
! public class ReportableListObject extends Object implements Comparable {
!     private static Random rnd = new Random();
!     private static List words = null;
  
!     public String city;
!     public String project;
!     public String task;
!     public double amount;
  
!     public ReportableListObject() {
!         this.setupRandomData();
!     }
  
!     public String getCity() {
!         return city;
!     }
  
!     public void setCity(String city) {
!         this.city = city;
!     }
  
!     public String getProject() {
!         return project;
!     }
  
!     public void setProject(String project) {
!         this.project = project;
!     }
  
!     public String getTask() {
!         return task;
!     }
  
!     public void setTask(String task) {
!         this.task = task;
!     }
  
!     public double getAmount() {
!         return amount;
!     }
  
!     public void setAmount(double amount) {
!         this.amount = amount;
!     }
  
!     public String toString() {
!         return "ReportableListObject(" + city + ":" + project + ":" + amount + ")";
!     }
  
  
!     public void setupRandomData() {
!         this.amount = (rnd.nextInt(99999) + 1) / 100;
  
!         city = this.getRandomCity();
!         project = this.getRandomProject();
!         task = this.getRandomTask();
!     }
  
  
+     public String getRandomCity() {
+         String cities[] = {
+             "Roma", "Olympia", "Neapolis", "Carthago"
+         };
  
!         return cities[rnd.nextInt(cities.length)];
!     }
  
!     public String getRandomProject() {
!         String projects[] = {
!             "Taxes", "Arts", "Army", "Gladiators"
!         };
  
!         return projects[rnd.nextInt(projects.length)];
!     }
  
!     public String getRandomTask() {
!         if (words == null) {
!             this.setupWordBase();
!         }
  
!         return ((String) words.get(rnd.nextInt(words.size()))).toLowerCase() +
!                 " " + ((String) words.get(rnd.nextInt(words.size()))).toLowerCase() +
!                 " " + ((String) words.get(rnd.nextInt(words.size()))).toLowerCase() +
!                 " " + ((String) words.get(rnd.nextInt(words.size()))).toLowerCase();
  
!     }
  
  
+     public void setupWordBase() {
+         String lorumIpsum =
+                 "Lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam 
nonumy " +
+                 "eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed 
diam " +
+                 "voluptua At vero eos et accusam et justo duo dolores et ea rebum 
Stet " +
+                 "clita kasd gubergren no sea takimata sanctus est Lorem ipsum dolor 
sit " +
+                 "amet Lorem ipsum dolor sit amet consetetur sadipscing elitr sed 
diam " +
+                 "nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam 
erat " +
+                 "sed diam voluptua At vero eos et accusam et justo duo dolores et ea 
" +
+                 "rebum Stet clita kasd gubergren no sea takimata sanctus est Lorem " 
+
+                 "ipsum dolor sit amet Lorem ipsum dolor sit amet consetetur 
sadipscing " +
+                 "elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore 
magna " +
+                 "aliquyam erat sed diam voluptua At vero eos et accusam et justo duo 
" +
+                 "dolores et ea rebum Stet clita kasd gubergren no sea takimata 
sanctus " +
+                 "est Lorem ipsum dolor sit amet " +
+                 "Duis autem vel eum iriure dolor in hendrerit in vulputate velit 
esse " +
+                 "molestie consequat vel illum dolore eu feugiat nulla facilisis at 
vero " +
+                 "eros et accumsan et iusto odio dignissim qui blandit praesent 
luptatum " +
+                 "zzril delenit augue duis dolore te feugait nulla facilisi Lorem 
ipsum " +
+                 "dolor sit amet consectetuer adipiscing elit sed diam nonummy nibh " 
+
+                 "euismod tincidunt ut laoreet dolore magna aliquam erat volutpat " +
+                 "Ut wisi enim ad minim veniam quis nostrud exerci tation ullamcorper 
" +
+                 "suscipit lobortis nisl ut aliquip ex ea commodo consequat Duis 
autem " +
+                 "vel eum iriure dolor in hendrerit in vulputate velit esse molestie 
" +
+                 "consequat vel illum dolore eu feugiat nulla facilisis at vero eros 
et " +
+                 "accumsan et iusto odio dignissim qui blandit praesent luptatum 
zzril " +
+                 "delenit augue duis dolore te feugait nulla facilisi " +
+                 "Nam liber tempor cum soluta nobis eleifend option congue nihil 
imperdiet " +
+                 "doming id quod mazim placerat facer possim assum Lorem ipsum dolor 
sit " +
+                 "amet consectetuer adipiscing elit sed diam nonummy nibh euismod " +
+                 "tincidunt ut laoreet dolore magna aliquam erat volutpat Ut wisi 
enim ad " +
+                 "minim veniam quis nostrud exerci tation ullamcorper suscipit 
lobortis " +
+                 "nisl ut aliquip ex ea commodo consequat " +
+                 "Duis autem vel eum iriure dolor in hendrerit in vulputate velit 
esse " +
+                 "molestie consequat vel illum dolore eu feugiat nulla facilisis " +
+                 "At vero eos et accusam et justo duo dolores et ea rebum Stet clita 
kasd " +
+                 "gubergren no sea takimata sanctus est Lorem ipsum dolor sit amet 
Lorem " +
+                 "ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy " +
+                 "eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed 
diam " +
+                 "voluptua At vero eos et accusam et justo duo dolores et ea rebum 
Stet " +
+                 "clita kasd gubergren no sea takimata sanctus est Lorem ipsum dolor 
sit " +
+                 "amet Lorem ipsum dolor sit amet consetetur sadipscing elitr At " +
+                 "accusam aliquyam diam diam dolore dolores duo eirmod eos erat et 
nonumy " +
+                 "sed tempor et et invidunt justo labore Stet clita ea et gubergren 
kasd " +
+                 "magna no rebum sanctus sea sed takimata ut vero voluptua est Lorem 
" +
+                 "ipsum dolor sit amet Lorem ipsum dolor sit amet consetetur 
sadipscing " +
+                 "elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore 
magna " +
+                 "aliquyam erat " +
+                 "Consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt 
ut " +
+                 "labore et dolore magna aliquyam erat sed diam voluptua At vero eos 
et " +
+                 "accusam et justo duo dolores et ea rebum Stet clita kasd gubergren 
no " +
+                 "sea takimata sanctus est Lorem ipsum dolor sit amet Lorem ipsum 
dolor " +
+                 "sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor 
" +
+                 "invidunt ut labore et dolore magna aliquyam erat sed diam voluptua 
At " +
+                 "vero eos et accusam et justo duo dolores et ea rebum Stet clita 
kasd " +
+                 "gubergren no sea takimata sanctus est Lorem ipsum dolor sit amet 
Lorem " +
+                 "ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy " +
+                 "eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed 
diam " +
+                 "voluptua At vero eos et accusam et justo duo dolores et ea rebum 
Stet " +
+                 "clita kasd gubergren no sea takimata sanctus ";
  
!         words = new ArrayList();
!         StringTokenizer st = new StringTokenizer(lorumIpsum);
!         while (st.hasMoreTokens()) {
!             String word = (String) st.nextToken();
!             words.add(word);
!         }
!     }
  
!     public int compareTo(Object o) {
!         ReportableListObject o1 = this;
!         ReportableListObject o2 = (ReportableListObject) o;
  
!         if (o1.city.equals(o2.city)) {
!             if (o1.project.equals(o2.project)) {
!                 return (int) (o2.amount - o1.amount);
!             }
!             else {
!                 return o1.project.compareTo(o2.project);
!             }
!         }
!         else {
!             return o1.city.compareTo(o2.city);
!         }
!     }
  }

Index: TestList.java
===================================================================
RCS file: 
/cvsroot/displaytag/displaytag/src/org/apache/taglibs/display/test/TestList.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** TestList.java       4 Feb 2003 01:35:41 -0000       1.1.1.1
--- TestList.java       12 Jun 2003 17:22:17 -0000      1.2
***************
*** 21,83 ****
   **/
  
! public class TestList extends ArrayList
! {
!    /**
!     * Creats a TestList that is filled with 60 ListObjects suitable for testing
!     */
  
!    public TestList() {
!       super();
  
!       for( int i = 0; i < 60; i++ ) {
!          this.add( new ListObject() );
!       }
!    }
  
!    /**
!     * Creates a TestList that is filled with [size] ListObjects suitable for
!     * testing.
!     */
  
!    public TestList( int size ) {
!       super();
  
!       for( int i = 0; i < size; i++ ) {
!          this.add( new ListObject() );
!       }
!    }
  
!    public TestList ( boolean duplicates , int size ) {
!          super();
!          // generate a random number between 1 and 3 and duplicate that many number 
of times.
!               
!               for( int i = 0; i < size; i++ ) {
!                        
!                        ListObject l1 = new ListObject();
!                        ListObject l2 = new ListObject();
!                        ListObject l3 = new ListObject();
  
!                        int random = new java.util.Random().nextInt ( 3 );
!                        for( int k = 0 ; k <= random ; k++ ) {
!                          this.add( l1 );
  
!                        }
!                        
!                        l1.setID ( l2.getId () );
!                                                
!                        random = new java.util.Random().nextInt ( 3 );
!                        for( int k = 0 ; k <= random ; k++ ) {
!                          this.add( l1 );this.add( l2 );
  
!                        }                       
!                        
!                        l1.setEmail ( l3.getEmail() );
!                        
!                        random = new java.util.Random().nextInt ( 3 );
!                        for( int k = 0 ; k <= random ; k++ ) {
!                               this.add( l1 );
!                        }
!            }   
!    }
  
  }
--- 21,83 ----
   **/
  
! public class TestList extends ArrayList {
!     /**
!      * Creats a TestList that is filled with 60 ListObjects suitable for testing
!      */
  
!     public TestList() {
!         super();
  
!         for (int i = 0; i < 60; i++) {
!             this.add(new ListObject());
!         }
!     }
  
!     /**
!      * Creates a TestList that is filled with [size] ListObjects suitable for
!      * testing.
!      */
  
!     public TestList(int size) {
!         super();
  
!         for (int i = 0; i < size; i++) {
!             this.add(new ListObject());
!         }
!     }
  
!     public TestList(boolean duplicates, int size) {
!         super();
!         // generate a random number between 1 and 3 and duplicate that many number 
of times.
  
!         for (int i = 0; i < size; i++) {
  
!             ListObject l1 = new ListObject();
!             ListObject l2 = new ListObject();
!             ListObject l3 = new ListObject();
  
!             int random = new java.util.Random().nextInt(3);
!             for (int k = 0; k <= random; k++) {
!                 this.add(l1);
! 
!             }
! 
!             l1.setID(l2.getId());
! 
!             random = new java.util.Random().nextInt(3);
!             for (int k = 0; k <= random; k++) {
!                 this.add(l1);
!                 this.add(l2);
! 
!             }
! 
!             l1.setEmail(l3.getEmail());
! 
!             random = new java.util.Random().nextInt(3);
!             for (int k = 0; k <= random; k++) {
!                 this.add(l1);
!             }
!         }
!     }
  
  }

Index: TotalWrapper.java
===================================================================
RCS file: 
/cvsroot/displaytag/displaytag/src/org/apache/taglibs/display/test/TotalWrapper.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** TotalWrapper.java   4 Feb 2003 01:35:41 -0000       1.1.1.1
--- TotalWrapper.java   12 Jun 2003 17:22:17 -0000      1.2
***************
*** 14,69 ****
   **/
  
! public class TotalWrapper extends Decorator
! {
!    private double cityTotal = 0;
!    private double grandTotal = 0;
  
!    /**
!     * After every row completes we evaluate to see if we should be drawing a
!     * new total line and summing the results from the previous group.
!     */
  
!    public String finishRow()
!    {
!       int listindex = this.getList().indexOf( this.getObject() );
!       ReportableListObject o1 = (ReportableListObject)this.getObject();
!       String nextCity = "";
  
!       cityTotal += o1.getAmount();
!       grandTotal += o1.getAmount();
  
!       if( listindex == this.getList().size() - 1 ) {
!          nextCity = "XXXXXX"; // Last row hack, it's only a demo folks...
!       } else {
!          nextCity = ( (ReportableListObject)this.getList().get( listindex + 1 ) 
).getCity();
!       }
  
!       StringBuffer sb = new StringBuffer( 1000 );
  
!       // City subtotals...
!       if( !nextCity.equals( o1.getCity() ) ) {
!          sb.append( "<tr><td>&nbsp;</td><td>&nbsp;</td><td><hr noshade 
size=\"1\"></td>" );
!          sb.append( "<td>&nbsp;</td></tr>" );
  
!          sb.append( "<tr><td>&nbsp;</td>" );
!          sb.append( "<td align=\"right\"><b>" + o1.getCity() + " 
Total:</b></td><td><b>" );
!          sb.append( cityTotal );
!          sb.append( "</b></td><td>&nbsp;</td></tr>" );
!          sb.append( "<tr><td colspan=\"4\">&nbsp;</td></tr>" );
  
!          cityTotal = 0;
!       }
  
!       // Grand totals...
!       if( listindex == this.getList().size() - 1 ) {
!          sb.append( "<tr><td colspan=\"4\"><hr noshade size=\"1\"></td></tr>" );
!          sb.append( "<tr><td>&nbsp;</td>" );
!          sb.append( "<td align=\"right\"><b>Grand Total:</b></td><td><b>" );
!          sb.append( grandTotal );
!          sb.append( "</b></td><td>&nbsp;</td></tr>" );
!       }
  
!       return sb.toString();
!    }
  
  
--- 14,68 ----
   **/
  
! public class TotalWrapper extends Decorator {
!     private double cityTotal = 0;
!     private double grandTotal = 0;
  
!     /**
!      * After every row completes we evaluate to see if we should be drawing a
!      * new total line and summing the results from the previous group.
!      */
  
!     public String finishRow() {
!         int listindex = this.getList().indexOf(this.getObject());
!         ReportableListObject o1 = (ReportableListObject) this.getObject();
!         String nextCity = "";
  
!         cityTotal += o1.getAmount();
!         grandTotal += o1.getAmount();
  
!         if (listindex == this.getList().size() - 1) {
!             nextCity = "XXXXXX"; // Last row hack, it's only a demo folks...
!         }
!         else {
!             nextCity = ((ReportableListObject) this.getList().get(listindex + 
1)).getCity();
!         }
  
!         StringBuffer sb = new StringBuffer(1000);
  
!         // City subtotals...
!         if (!nextCity.equals(o1.getCity())) {
!             sb.append("<tr><td>&nbsp;</td><td>&nbsp;</td><td><hr noshade 
size=\"1\"></td>");
!             sb.append("<td>&nbsp;</td></tr>");
  
!             sb.append("<tr><td>&nbsp;</td>");
!             sb.append("<td align=\"right\"><b>" + o1.getCity() + " 
Total:</b></td><td><b>");
!             sb.append(cityTotal);
!             sb.append("</b></td><td>&nbsp;</td></tr>");
!             sb.append("<tr><td colspan=\"4\">&nbsp;</td></tr>");
  
!             cityTotal = 0;
!         }
  
!         // Grand totals...
!         if (listindex == this.getList().size() - 1) {
!             sb.append("<tr><td colspan=\"4\"><hr noshade size=\"1\"></td></tr>");
!             sb.append("<tr><td>&nbsp;</td>");
!             sb.append("<td align=\"right\"><b>Grand Total:</b></td><td><b>");
!             sb.append(grandTotal);
!             sb.append("</b></td><td>&nbsp;</td></tr>");
!         }
  
!         return sb.toString();
!     }
  
  

Index: Wrapper.java
===================================================================
RCS file: 
/cvsroot/displaytag/displaytag/src/org/apache/taglibs/display/test/Wrapper.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Wrapper.java        4 Feb 2003 01:35:42 -0000       1.1.1.1
--- Wrapper.java        12 Jun 2003 17:22:17 -0000      1.2
***************
*** 18,90 ****
   **/
  
! public class Wrapper extends Decorator
! {
!    private SimpleDateFormat datefmt = null;
!    private DecimalFormat moneyfmt = null;
  
!    /**
!     * Creates a new Wrapper decorator who's job is to reformat some of the
!     * data located in our TestObject's.
!     */
  
!    public Wrapper()
!    {
!       super();
  
!       // Formats for displaying dates and money.
  
!       this.datefmt = new SimpleDateFormat( "MM/dd/yy" );
!       this.moneyfmt = new DecimalFormat( "$ #,###,###.00" );
!    }
  
!    public String getNullValue()
!    {
!       return null;
!    }
  
!    /**
!     * Returns the date as a String in MM/dd/yy format
!     */
  
!    public String getDate()
!    {
!       return this.datefmt.format( ( (ListObject)this.getObject() ).getDate() );
!    }
  
!    /**
!     * Returns the money as a String in $ #,###,###.00 format
!     */
  
!    public String getMoney()
!    {
!       return this.moneyfmt.format( ( (ListObject)this.getObject() ).getMoney() );
!    }
  
!    /**
!     * Returns the TestObject's ID as a hyperlink that the person can click on
!     * and "drill down" for more details.
!     */
  
!    public String getLink1()
!    {
!       ListObject obj = (ListObject)this.getObject();
!       int index = this.getListIndex();
  
!       return "<a href=\"details.jsp?index=" + index + "\">" + obj.getId() + "</a>";
!    }
  
!    /**
!     * Returns an "action bar" of sorts that allow the user to perform various
!     * actions on the TestObject based on it's id.
!     */
  
!    public String getLink2()
!    {
!       ListObject obj = (ListObject)this.getObject();
!       int id = obj.getId();
  
!       return "<a href=\"details.jsp?id=" + id + "&action=view\">View</a> | " +
!          "<a href=\"details.jsp?id=" + id + "&action=edit\">Edit</a> | " +
!          "<a href=\"details.jsp?id=" + id + "&action=delete\">Delete</a>";
!    }
  }
--- 18,83 ----
   **/
  
! public class Wrapper extends Decorator {
!     private SimpleDateFormat datefmt = null;
!     private DecimalFormat moneyfmt = null;
  
!     /**
!      * Creates a new Wrapper decorator who's job is to reformat some of the
!      * data located in our TestObject's.
!      */
  
!     public Wrapper() {
!         super();
  
!         // Formats for displaying dates and money.
  
!         this.datefmt = new SimpleDateFormat("MM/dd/yy");
!         this.moneyfmt = new DecimalFormat("$ #,###,###.00");
!     }
  
!     public String getNullValue() {
!         return null;
!     }
  
!     /**
!      * Returns the date as a String in MM/dd/yy format
!      */
  
!     public String getDate() {
!         return this.datefmt.format(((ListObject) this.getObject()).getDate());
!     }
  
!     /**
!      * Returns the money as a String in $ #,###,###.00 format
!      */
  
!     public String getMoney() {
!         return this.moneyfmt.format(((ListObject) this.getObject()).getMoney());
!     }
  
!     /**
!      * Returns the TestObject's ID as a hyperlink that the person can click on
!      * and "drill down" for more details.
!      */
  
!     public String getLink1() {
!         ListObject obj = (ListObject) this.getObject();
!         int index = this.getListIndex();
  
!         return "<a href=\"details.jsp?index=" + index + "\">" + obj.getId() + "</a>";
!     }
  
!     /**
!      * Returns an "action bar" of sorts that allow the user to perform various
!      * actions on the TestObject based on it's id.
!      */
  
!     public String getLink2() {
!         ListObject obj = (ListObject) this.getObject();
!         int id = obj.getId();
  
!         return "<a href=\"details.jsp?id=" + id + "&action=view\">View</a> | " +
!                 "<a href=\"details.jsp?id=" + id + "&action=edit\">Edit</a> | " +
!                 "<a href=\"details.jsp?id=" + id + "&action=delete\">Delete</a>";
!     }
  }




-------------------------------------------------------
This SF.NET email is sponsored by: eBay
Great deals on office technology -- on eBay now! Click here:
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
_______________________________________________
displaytag-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/displaytag-devel

Reply via email to