[Laszlo-dev] [Laszlo-user] How should states _really_ work?
André Bargull
a.bargull at intensis.de
Fri Mar 21 15:19:19 PDT 2008
> When the state is removed, the attribute retains the final value that
> it had when the state was still applied.
So, the example from
"http://www.openlaszlo.org/lps4/docs/developers/constraints.html#d0e66645"
won't work anymore in favor of LPP-631?
I'd expect if a constraint was removed when a state got applied, that
the same constraint will be re-installed after the state has been
removed. Basically just disabling/re-enabling the delegates for that
constraint.
> It is an error to specify an attribute in a state that _is_not_
> already declared in the parent.
But states rely on having helper-methods *and* helper-attributes, for
instance dragstate, there you've got "__dragstate_getnewpos" as a
helper-method and "__dragstate_xdoffset" as a helper-attribute. Both are
needed!
On 3/21/2008 10:03 PM, P T Withington wrote:
> I think we are converging on:
>
> 1) A state's primary purpose is to change the value of an attribute in
> its parent. Typically this means the state re-declares the attribute
> with a different initial value (which may be a constant or a
> constraint). When the state is applied, the attribute takes on the
> value specified by the state (which means removing any constraint
> specified in the parent). When the state is removed, the attribute
> retains the final value that it had when the state was still applied.
> It is an error to specify an attribute in a state that _is_not_
> already declared in the parent.
>
> 2) A state may need to specify some 'common subroutines' to support
> its constraints. These are written as methods in the state. The
> methods of a state will be methods of the parent of the state, but
> they may not use `super` calls. In this sense, they are simply common
> subroutine functions attached to the parent so that they can be
> invoked as `this.<name>`. It is an error to specify a method in a
> state that _is_ already defined in the parent.
>
> In summary: A state can change the values of an attribute in its
> parent and it can specify methods to be added to the parent in support
> of computing the changed values.
>
> In the above description, 'parent' refers to the dynamic parent of the
> state. That is, a state is subject to placement and affects the view
> that it is placed within, not the view it is declared within.
>
> ---
>
> There was lots of theory bandied about regarding what states might do
> in the abstract, but after surveying their current usage we believe
> the above definition is sufficient to support that usage and still
> tractable for compiling to JS2 runtimes.
>
> On 2008-03-21, at 10:33 EDT, André Bargull wrote:
>> Any news for this issue? It is still marked as 'unresolved' in my
>> local inbox..
>>
>>
>> On 2/23/2008 9:36 PM, P T Withington wrote:
>>> André points out that this example:
>>>
>>> http://www.openlaszlo.org/lps4/docs/developers/constraints.html#d0e66645
>>>
>>>
>>> Will not work, with my fix to LPP-631, because to fix that, I made
>>> states _remove_ the parent constraint when the state sets the the
>>> same attribute, so, once you drag one of the boxes, it will no
>>> longer track the other view.
>>>
>>> We can't have it both ways. Is
>>> http://jira.openlaszlo.org/jira/browse/LPP-631 not a bug after all?
>>>
>>>
>
>
More information about the Laszlo-dev
mailing list