001 /*****************************************************************************
002 * MODULE DESCRIPTION
003 ******************************************************************************
004 *
005 * NAME: HtmlColumn.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
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
029 *
030 * @author Miika Nurminen
031 */
032 public abstract class HtmlColumn {
033
034 /** Holds value of property title. */
035 private String title;
036
037 /** Holds value of property fieldName. */
038 private String fieldName;
039
040 /** Holds value of property field. */
041 private Field field;
042
043 /** Creates a new instance of HtmlColumn - dummy empty constructor*/
044 public HtmlColumn() {
045 }
046
047 /** Creates a new instance of HtmlColumn
048 * @param field related db column
049 * @param title title to be shown in th
050 */
051 public HtmlColumn(Field field,String title) {
052 assignValues(field,title);
053 }
054
055 /** Creates a new instance of HtmlColumn
056 * @param title title to be shown in th
057 * @param field field name of related db row
058 */
059 public HtmlColumn(String field,String title) {
060 assignValues(field,title);
061 }
062
063 /**
064 * Assigns property values in bean
065 *
066 * @deprecated field should be of type Field. however, htmlcombinedcolumn uses this.
067 * @see HtmlCombinedColumn
068 * @param field db field name
069 * @param title title to be shown in th
070 */
071 protected void assignValues(String field,String title) {
072 setTitle(title);
073 setFieldName(field);
074 }
075
076 /**
077 * Assigns property values in bean.
078 *
079 * @param field information about db field
080 * @param title title to be shown in th
081 */
082 protected void assignValues(Field field,String title) {
083 setTitle(title);
084 setField(field);
085 }
086
087 /** Getter for property title.
088 * @return Value of property title.
089 */
090 public String getTitle() {
091 return this.title;
092 }
093
094 /** Setter for property title.
095 * @param title New value of property title.
096 */
097 public void setTitle(String title) {
098 this.title = title;
099 }
100
101 /** Getter for property fieldName.
102 * @return Value of property fieldName.
103 */
104 public String getFieldName() {
105 if (getField()!=null) return getField().getAlias();
106 return this.fieldName;
107 }
108
109 /** Setter for property fieldName.
110 * @param fieldName New value of property fieldName.
111 */
112 public void setFieldName(String fieldName) {
113 this.fieldName = fieldName;
114 }
115
116
117 /** Getter for property field.
118 * @return Value of property field.
119 *
120 */
121 public Field getField() {
122 return this.field;
123 }
124
125 /** Setter for property field.
126 * @param field New value of property field.
127 */
128 public void setField(Field field) {
129 this.field = field;
130 }
131
132
133 /** Returns current table cell data as string. Inherited classes override this.
134 * @return data to be put in <td></td>
135 * @param rs RS2 where data is retrieved.
136 */
137 public abstract String getCellData(RS2 rs);
138
139
140 /**
141 * Returns string value for a given db field
142 * @param rs RS2 where data is retrieved
143 * @param fieldName fieldname to seek
144 * @return string value for the field
145 */
146 protected String getFieldValue(RS2 rs,String fieldName) {
147 try {
148 return SimpleDb.getString(rs,fieldName);
149 }
150 catch (java.lang.Exception e) {
151 return "";
152 }
153 }
154
155 /**
156 * Returns string value for current db field
157 * @param rs RS2 where data is retrieved
158 * @return string value for the field
159 */
160 protected String getFieldValue(RS2 rs) {
161 if (getField()==null) return getFieldValue(rs,getFieldName());
162 try {
163 return getField().getFieldValue(rs);
164 }
165 catch (java.lang.Exception e) {
166 return "";
167 }
168 }
169
170 /** Returns header data. If order data is linked, returns
171 * @link if true, generates link
172 * @return data to be put in <th></th>
173 * @param link if true, generates a link
174 * @param basedocument column-independent data
175 */
176 public String getHeader(String basedocument,boolean link) {
177 if ((getTitle()==null) || (getTitle().length()==0)) return "";
178 if (link==false) return getTitle();
179 else {
180 return HtmlBean.getLink(getTitle(), basedocument+getFieldName());
181 }
182 }
183
184 }
185 /***************************************************************************************************
186 * COPYRIGHT (C) KIURU -PROJECT GROUP
187 * Limited rights granted. Please refer to license.
188 **************************************************************************************************/