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}