001package com.hfg.html; 002 003 004import com.hfg.xml.XMLNode; 005 006//------------------------------------------------------------------------------ 007/** 008 * Represents a list option (<option>) tag. 009 * 010 * @author J. Alex Taylor, hairyfatguy.com 011 */ 012//------------------------------------------------------------------------------ 013// com.hfg XML/HTML Coding Library 014// 015// This library is free software; you can redistribute it and/or 016// modify it under the terms of the GNU Lesser General Public 017// License as published by the Free Software Foundation; either 018// version 2.1 of the License, or (at your option) any later version. 019// 020// This library is distributed in the hope that it will be useful, 021// but WITHOUT ANY WARRANTY; without even the implied warranty of 022// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 023// Lesser General Public License for more details. 024// 025// You should have received a copy of the GNU Lesser General Public 026// License along with this library; if not, write to the Free Software 027// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 028// 029// J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com 030// jataylor@hairyfatguy.com 031//------------------------------------------------------------------------------ 032 033public class Option extends HTMLTagWithCoreEvents 034{ 035 036 //########################################################################## 037 // CONSTRUCTORS 038 //########################################################################## 039 040 //-------------------------------------------------------------------------- 041 public Option() 042 { 043 super(HTML.OPTION); 044 } 045 046 //-------------------------------------------------------------------------- 047 public Option(String inText) 048 { 049 this(); 050 setText(inText); 051 setValue(inText); 052 setSelected(false); 053 } 054 055 //-------------------------------------------------------------------------- 056 public Option(int inText) 057 { 058 this(inText + ""); 059 } 060 061 //-------------------------------------------------------------------------- 062 public Option(long inText) 063 { 064 this(inText + ""); 065 } 066 067 //-------------------------------------------------------------------------- 068 public Option(float inText) 069 { 070 this(inText + ""); 071 } 072 073 //-------------------------------------------------------------------------- 074 public Option(double inText) 075 { 076 this(inText + ""); 077 } 078 079 //-------------------------------------------------------------------------- 080 public Option(Object inText) 081 { 082 this(inText != null ? inText.toString() : ""); 083 } 084 085 //-------------------------------------------------------------------------- 086 public Option(String inText, String inValue) 087 { 088 this(); 089 setText(inText); 090 setValue(inValue); 091 setSelected(false); 092 } 093 094 //-------------------------------------------------------------------------- 095 public Option(String inText, int inValue) 096 { 097 this(inText, inValue + ""); 098 } 099 100 //-------------------------------------------------------------------------- 101 public Option(String inText, long inValue) 102 { 103 this(inText, inValue + ""); 104 } 105 106 //-------------------------------------------------------------------------- 107 public Option(String inText, float inValue) 108 { 109 this(inText, inValue + ""); 110 } 111 112 //-------------------------------------------------------------------------- 113 public Option(String inText, double inValue) 114 { 115 this(inText, inValue + ""); 116 } 117 118 //-------------------------------------------------------------------------- 119 public Option(String inText, Object inValue) 120 { 121 this(inText, inValue != null ? inValue.toString() : ""); 122 } 123 124 //-------------------------------------------------------------------------- 125 public Option(int inText, boolean inSelected) 126 { 127 this(inText + "", inSelected); 128 } 129 130 //-------------------------------------------------------------------------- 131 public Option(long inText, boolean inSelected) 132 { 133 this(inText + "", inSelected); 134 } 135 136 //-------------------------------------------------------------------------- 137 public Option(float inText, boolean inSelected) 138 { 139 this(inText + "", inSelected); 140 } 141 142 //-------------------------------------------------------------------------- 143 public Option(double inText, boolean inSelected) 144 { 145 this(inText + "", inSelected); 146 } 147 148 //-------------------------------------------------------------------------- 149 public Option(Object inText, boolean inSelected) 150 { 151 this(inText != null ? inText.toString() : "", inSelected); 152 } 153 154 //-------------------------------------------------------------------------- 155 public Option(String inText, boolean inSelected) 156 { 157 this(); 158 setText(inText); 159 setValue(inText); 160 setSelected(inSelected); 161 } 162 163 //-------------------------------------------------------------------------- 164 public Option(String inText, String inValue, boolean inSelected) 165 { 166 this(); 167 setText(inText); 168 setValue(inValue); 169 setSelected(inSelected); 170 } 171 172 //-------------------------------------------------------------------------- 173 public Option(String inText, int inValue, boolean inSelected) 174 { 175 this(inText, inValue + "", inSelected); 176 } 177 178 //-------------------------------------------------------------------------- 179 public Option(String inText, long inValue, boolean inSelected) 180 { 181 this(inText, inValue + "", inSelected); 182 } 183 184 //-------------------------------------------------------------------------- 185 public Option(String inText, float inValue, boolean inSelected) 186 { 187 this(inText, inValue + "", inSelected); 188 } 189 190 //-------------------------------------------------------------------------- 191 public Option(String inText, double inValue, boolean inSelected) 192 { 193 this(inText, inValue + "", inSelected); 194 } 195 196 //-------------------------------------------------------------------------- 197 public Option(String inText, Object inValue, boolean inSelected) 198 { 199 this(inText, inValue != null ? inValue.toString() : "", inSelected); 200 } 201 202 //-------------------------------------------------------------------------- 203 public Option(XMLNode inXMLNode) 204 { 205 this(); 206 initFromXMLNode(inXMLNode); 207 } 208 209 //########################################################################## 210 // PUBLIC METHODS 211 //########################################################################## 212 213 //-------------------------------------------------------------------------- 214 public Option setSelected(boolean inSelected) 215 { 216 if (inSelected) 217 { 218 setAttribute(HTML.SELECTED, "true"); 219 } 220 else 221 { 222 removeAttribute(HTML.SELECTED); 223 } 224 225 return this; 226 } 227 228 //-------------------------------------------------------------------------- 229 public boolean isSelected() 230 { 231 return hasAttribute(HTML.SELECTED); 232 } 233 234 //-------------------------------------------------------------------------- 235 public Option setValue(String inValue) 236 { 237 setAttribute(HTML.VALUE, inValue); 238 239 return this; 240 } 241 242 //-------------------------------------------------------------------------- 243 public String getValue() 244 { 245 return getAttributeValue(HTML.VALUE); 246 } 247 248 //-------------------------------------------------------------------------- 249 public Option setText(String inValue) 250 { 251 setContent(inValue); 252 253 return this; 254 } 255 256 //-------------------------------------------------------------------------- 257 public String getText() 258 { 259 return getContent(); 260 } 261 262 //-------------------------------------------------------------------------- 263 public Option setDisabled(boolean inValue) 264 { 265 if (inValue) 266 { 267 setAttribute(HTML.DISABLED, "1"); 268 } 269 else 270 { 271 removeAttribute(HTML.DISABLED); 272 } 273 274 return this; 275 } 276 277 //-------------------------------------------------------------------------- 278 public boolean isDisabled() 279 { 280 return hasAttribute(HTML.DISABLED); 281 } 282 283 //-------------------------------------------------------------------------- 284 public Option setTitle(String inValue) 285 { 286 setAttribute(HTML.TITLE, inValue); 287 288 return this; 289 } 290 291 // Overrides for HTMLTag setters to allow method chaining. 292 293 //-------------------------------------------------------------------------- 294 @Override 295 public Option addClass(String inValue) 296 { 297 return (Option) super.addClass(inValue); 298 } 299 300 //-------------------------------------------------------------------------- 301 @Override 302 public Option setClass(String inValue) 303 { 304 return (Option) super.setClass(inValue); 305 } 306 307 //-------------------------------------------------------------------------- 308 @Override 309 public Option setId(String inValue) 310 { 311 return (Option) super.setId(inValue); 312 } 313 314 //-------------------------------------------------------------------------- 315 @Override 316 public Option setStyle(CharSequence inValue) 317 { 318 return (Option) super.setStyle(inValue); 319 } 320 321 //-------------------------------------------------------------------------- 322 @Override 323 public Option addStyle(String inValue) 324 { 325 return (Option) super.addStyle(inValue); 326 } 327 328 // Overrides for HTMLTagWithCoreEvents setters to allow method chaining. 329 330 //-------------------------------------------------------------------------- 331 @Override 332 public Option setOnClick(String inValue) 333 { 334 return (Option) super.setOnClick(inValue); 335 } 336 337 //-------------------------------------------------------------------------- 338 @Override 339 public Option setOnDblClick(String inValue) 340 { 341 return (Option) super.setOnDblClick(inValue); 342 } 343 344 //-------------------------------------------------------------------------- 345 @Override 346 public Option setOnMouseDown(String inValue) 347 { 348 return (Option) super.setOnMouseDown(inValue); 349 } 350 351 //-------------------------------------------------------------------------- 352 @Override 353 public Option setOnMouseMove(String inValue) 354 { 355 return (Option) super.setOnMouseMove(inValue); 356 } 357 358 //-------------------------------------------------------------------------- 359 @Override 360 public Option appendToOnMouseOut(String inValue) 361 { 362 return (Option) super.appendToOnMouseOut(inValue); 363 } 364 365 //-------------------------------------------------------------------------- 366 @Override 367 public Option setOnMouseOut(String inValue) 368 { 369 return (Option) super.setOnMouseOut(inValue); 370 } 371 372 //-------------------------------------------------------------------------- 373 @Override 374 public Option appendToOnMouseOver(String inValue) 375 { 376 return (Option) super.appendToOnMouseOver(inValue); 377 } 378 379 //-------------------------------------------------------------------------- 380 @Override 381 public Option setOnMouseOver(String inValue) 382 { 383 return (Option) super.setOnMouseOver(inValue); 384 } 385 386 //-------------------------------------------------------------------------- 387 @Override 388 public Option setOnMouseUp(String inValue) 389 { 390 return (Option) super.setOnMouseUp(inValue); 391 } 392 393 //-------------------------------------------------------------------------- 394 @Override 395 public Option setOnKeyDown(String inValue) 396 { 397 return (Option) super.setOnKeyDown(inValue); 398 } 399 400 //-------------------------------------------------------------------------- 401 @Override 402 public Option setOnKeyPress(String inValue) 403 { 404 return (Option) super.setOnKeyPress(inValue); 405 } 406 407 //-------------------------------------------------------------------------- 408 @Override 409 public Option setOnKeyUp(String inValue) 410 { 411 return (Option) super.setOnKeyUp(inValue); 412 } 413}