Re: cloning nodes vs. creating new() ones

Matthew Hixson <[email protected]> Tue, 16 Sep 2003 10:57:46 -0700
Newsgroups gmane.comp.java.enhydra.xmlc
Message-ID <[email protected]>
On Tuesday, September 16, 2003, at 01:43  AM, Richard Kunze wrote:

> On Tuesday 16 September 2003 10:20, Matthew Hixson wrote:
>> Thanks, Jake.  I tried to restructure my code to be more similar to
>> what you had, but still ended up with doing it not much different than
>> I had before.  This time I populate the list of teachers from a static
>> list:
>>
>> 		HTMLSelectElement teacherDropdown = 
>> form.getElementTeacherDropdown();
>> 		HTMLOptionElement teacherName = form.getElementTeacherName();
>> 		teacherName.removeAttribute("id");
>> 		String[] teachers = new String[] { "Mrs. Wormwood", "Mr. Snyde", 
>> "Ms.
>> Ratchet" };
>> 		for(int i = 0;i < teachers.length;i++){
>> 			HTMLOptionElement teacherClone = (HTMLOptionElement)
>> teacherName.cloneNode(true);
>> 			teacherClone.setValue(new Integer(i).toString());
>> 			teacherClone.setLabel(teachers[i]);
>> 			teacherClone.getFirstChild().setNodeValue(teachers[i]);
>> 			teacherDropdown.add(teacherClone, null);
>> 		}
>> 		teacherDropdown.removeChild(teacherName);
>>
>> I still can't seem to get away from using getFirstChild() to get ahold
>> of the text inside the <option> tag, like so:
>>
>> <option id="teacherName">Mrs. Wormwood</option>
>>
>> How do you access the "Mrs. Wormwood" part?
>
> Use the generated method "setTextTeacherName(String)". This sets the 
> content
> of the first descendant of the node with id "teacherName". In your 
> example,
> thats the first child (i.e. the same node you are using), but the 
> difference
> is that "setText....()" doesn't break the template if e.g. the designer
> decides to make the text bold.

Thanks, Richard.  I was trying to muck with either teacherName or 
teacherClone directly and wasn't having much luck.  Now I get that I 
need to modify the original template and then clone it.
   Thanks,
     -M@