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 **************************************************************************************************/