001    /*****************************************************************************
002    *                             MODULE DESCRIPTION
003    ******************************************************************************
004    *
005    *      NAME:     HtmlCheckColumn.java
006    *      LANGUAGE: Java 2
007    *      DATE:     11.02.2002
008    *      AUTHOR:   Miika Nurminen, University of Jyväskylä (JYU)
009    *
010    ******************************************************************************
011    *                  COPYRIGHT (C) Kiuru group
012    *             Limited rights granted. Please refer to license
013    *****************************************************************************/
014    
015    /*****************************************************************************
016     *                                 UPDATES
017    ******************************************************************************
018    *
019    * 11.2.2003 / mn
020    *   - Initial version
021    *
022    ******************************************************************************/
023    package kiurubeans;
024    import kotkabeans.RS2;
025    
026    /**
027     * Abstraction of HTML table column with checkbox
028     */
029    public class HtmlCheckColumn extends HtmlColumn {
030      
031      /** Holds value of property name. */
032      private String name;
033      
034      /** Predicate that determines if the checkbox is checked*/
035      private Predicate checkPredicate;
036      
037      /** Creates a new instance of HtmlCheckColumn - dummy empty constructor */
038      public HtmlCheckColumn() {
039      }
040      
041      /** Creates a new instance of HtmlCheckColumn 
042       * @param title title to be shown in th
043       * @param field field name of related db row
044       * @param name name attribute of the checkbox
045       */
046      public HtmlCheckColumn(String field,String title,String name) {
047        super(field,title);
048        setName(name);
049      }
050    
051      /** Creates a new instance of HtmlCheckColumn
052       * @param field related db column
053       * @param title title to be shown in th
054       * @param name name attribute of the checkbox
055       */
056      public HtmlCheckColumn(Field field,String title,String name) {
057        super(field,title);
058        setName(name);
059      }
060      
061      /** Creates a new instance of HtmlCheckColumn
062       * @param field related db column
063       * @param title title to be shown in th
064       * @param name name attribute of the checkbox
065       * @param checkPredicate predicate to determine whether the checkbox is checked
066       */
067      public HtmlCheckColumn(Field field,String title,String name,Predicate checkPredicate) {
068        super(field,title);
069        setName(name);
070        this.checkPredicate = checkPredicate;
071      }
072    
073      /** Getter for property name.
074       * @return Value of property name.
075       */
076      public String getName() {
077        return this.name;
078      }
079      
080      /** Setter for property name.
081       * @param name New value of property name.
082       */
083      public void setName(String name) {
084        this.name = name;
085      }
086    
087      /** 
088       * Returns current table cell data as string
089       *
090       * @return data to be put in <td></td>
091       * @param rs RS2 where data is retrieved
092       */
093      public String getCellData(RS2 rs) {
094        StringBuffer result = new StringBuffer(30);
095        String s = getFieldValue(rs);
096        result.append("<input type=\"checkbox\" name=\""+getName()+"\" value=\""+s+"\"");
097        if ( (this.checkPredicate!=null) && (this.checkPredicate.test(s)) )
098          result.append(" checked=\"checked\"");
099        result.append(" />");
100        return result.toString();
101      }
102      
103    }
104    /***************************************************************************************************
105     *               COPYRIGHT (C) KIURU -PROJECT GROUP
106     *               Limited rights granted. Please refer to license.
107     **************************************************************************************************/