001 /***************************************************************************** 002 * MODULE DESCRIPTION 003 ****************************************************************************** 004 * 005 * NAME: HtmlLinkColumn.java 006 * LANGUAGE: Java 2 007 * DATE: 11.02.2002 008 * AUTHOR: Miika Nurminen, University of Jyväskylä (JYU) 009 * PURPOSE: Abstraction of HTML table column with linked text 010 * 011 ****************************************************************************** 012 * COPYRIGHT (C) Kiuru group 013 * Limited rights granted. Please refer to license 014 *****************************************************************************/ 015 016 /***************************************************************************** 017 * UPDATES 018 ****************************************************************************** 019 * 020 * 11.2.2003 / mn 021 * - Initial version 022 * 023 ******************************************************************************/ 024 package kiurubeans; 025 import kotkabeans.RS2; 026 027 /** 028 * Abstraction of HTML table column with linked text. 029 */ 030 public class HtmlLinkColumn extends HtmlColumn { 031 032 /** Holds value of property linkBase. */ 033 private String linkBase; 034 035 /** Holds value of property linkField. */ 036 private String linkField; 037 038 /** Predicate used in determining if a link is outputted */ 039 private Predicate linkPredicate = null; 040 /** If link is empty, emptytext is used as a link text */ 041 private String emptytext = ""; 042 043 /** Creates a new instance of HtmlLinkColumn 044 * 045 * @param linkbase base document used in links 046 * @param linkfield db field used to retrieve link value 047 * @param title title to be shown in th 048 * @param field field name of related db row 049 */ 050 public HtmlLinkColumn(String field,String title,String linkbase,String linkfield) { 051 super(field,title); 052 setLinkBase(linkbase); 053 setLinkField(linkfield); 054 } 055 056 /** Creates a new instance of HtmlLinkColumn 057 * 058 * @param linkbase base document used in links 059 * @param linkfield db field used to retrieve link value 060 * @param title title to be shown in th 061 * @param field field name of related db row 062 * @param emptytext linktext to written if field value is empty 063 */ 064 public HtmlLinkColumn(String field,String title,String linkbase,String linkfield,String emptytext) { 065 super(field,title); 066 setLinkBase(linkbase); 067 setLinkField(linkfield); 068 if (emptytext!=null) 069 this.emptytext = emptytext; 070 } 071 072 /** Creates a new instance of HtmlLinkColumn 073 * 074 * @param linkbase base document used in links 075 * @param linkfield db field used to retrieve link value 076 * @param title title to be shown in th 077 * @param field field name of related db row 078 */ 079 public HtmlLinkColumn(Field field,String title,String linkbase,String linkfield) { 080 super(field,title); 081 setLinkBase(linkbase); 082 setLinkField(linkfield); 083 } 084 085 /** Creates a new instance of HtmlLinkColumn 086 * 087 * @param linkbase base document used in links 088 * @param linkfield db field used to retrieve link value 089 * @param linkPredicate predicate to determine if a link is valid 090 * @param title title to be shown in th 091 * @param field field name of related db row 092 */ 093 public HtmlLinkColumn(Field field,String title,String linkbase,String linkfield,Predicate linkPredicate) { 094 super(field,title); 095 setLinkBase(linkbase); 096 setLinkField(linkfield); 097 this.linkPredicate = linkPredicate; 098 } 099 100 101 /** Getter for property baseLink. 102 * @return Value of property baseLink. 103 */ 104 public String getLinkBase() { 105 return this.linkBase; 106 } 107 108 /** Setter for property baseLink. 109 * @param baseLink New value of property baseLink. 110 */ 111 public void setLinkBase(String baseLink) { 112 this.linkBase = baseLink; 113 } 114 115 /** Getter for property linkField. 116 * @return Value of property linkField. 117 * 118 */ 119 public String getLinkField() { 120 return this.linkField; 121 } 122 123 /** Setter for property linkField. 124 * @param linkField New value of property linkField. 125 */ 126 public void setLinkField(String linkField) { 127 this.linkField = linkField; 128 } 129 130 /** Returns current table cell data as string 131 * @return data to be put in <td></td> 132 * @param rs RS2 where data is retrieved 133 */ 134 public String getCellData(RS2 rs) { 135 String s = getFieldValue(rs); 136 if (this.linkPredicate!=null) { 137 if (!this.linkPredicate.test(s)) return s; 138 } 139 return HtmlBean.getLink(s, 140 getLinkBase()+getFieldValue(rs, getLinkField()), 141 this.emptytext); 142 } 143 } 144 /*************************************************************************************************** 145 * COPYRIGHT (C) KIURU -PROJECT GROUP 146 * Limited rights granted. Please refer to license. 147 **************************************************************************************************/