Or, a klever hacker would realize that they should just define a setter for the parent password attribute that applies the setting where it is actually needed (saving the overhead of events that the person who wrote the $once constraint was trying to avoid). I.e., 'push' the password field to where it is needed.

[cc-ing John.  there is probably a place in the docs for the following:]

Remember Adam's first principle of constraints: "They are really handy for rapid prototyping, but eventually you want to eliminate them."

On 2007-10-10, at 18:43 EDT, Henry Minsky wrote:

If you look in the edittext component, it says the internal text field
is  using a 'once'
constraint to look at the parent.password

lps/components/lz/edittext.lzx:

        <_internalinputtext name="field"
            password="$once{parent.password}"

So the internal field is not looking at the parent.password value more
than once at init time.
That could be changed to an 'always' constraint, I imagine that would
work better.



On 10/10/07, James Robey <[EMAIL PROTECTED]> wrote:
Hi all, I think i may have found a bug in the edittext component, but i thought someone might show this to be correct behavior in a way I don't yet see. The issue is setting password="true" on an <edittext/> component. It doesn't seem like the password attribute can be constrained. This example might also reveal a bug with $immediately{} constraints wherein "classroot"
and "parent" don't exist when the constraint is evaluated.

Anyone have advice on how to make this work?

Test case: none of these fields (save the last hardcoded editext) has
password styling.

 <canvas proxied="false" debug="true">
    <debug/>

    <class name="pwtest">
        <attribute name="passwordB" type="boolean" value="true"/>
        <attribute name="passwordS" type="string" value="true"/>
        <attribute name="passwordE" type="expression" value="true"/>

        <simplelayout axis="y"/>

        <edittext password="${classroot.passwordB}"/>
        <edittext password="${classroot.passwordS}"/>
        <edittext password="${classroot.passwordE}"/>

        <edittext password="$immediately{classroot.passwordB}"/>
        <edittext password="$immediately{classroot.passwordS}"/>
        <edittext password="$immediately{classroot.passwordE}"/>

        <edittext password="$once{classroot.passwordB}"/>
        <edittext password="$once{classroot.passwordS}"/>
        <edittext password="$once{classroot.passwordE}"/>

        <edittext password="true"/>
    </class>

    <pwtest/>

</canvas>


--
Henry Minsky
Software Architect
[EMAIL PROTECTED]

Reply via email to