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@