diff options
Diffstat (limited to 'client/NOTES')
-rw-r--r-- | client/NOTES | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/client/NOTES b/client/NOTES new file mode 100644 index 0000000..34b730b --- /dev/null +++ b/client/NOTES @@ -0,0 +1,66 @@ +-*- auto-fill -*- +############################# +# LUA programmer i klienten # +############################# +OnChanged eventen kan som udgangspunkt daekke alle behov for +udfoerelse af LUA kode. + +OnChanged lua koden skal returnere en boolean som er true hvis feltet +er valid, eller false hvis det ikke er. + +Der skal stilles en raekke metoder til raadighed for programmerne, som +kan interagere med felterne i makroen. + - getValue(feltnavn) + - setValue(feltnavn) + +Feltets egen vaerdig skal vaere tilknyttet lua variables 'value' saa +det er let at lave simpel validering af feltets vaerdi. + +Der skal som udgangspunkt kun vaere et LUA objekt pr. macro, for at +sikre gode svartider. Naar et nyt program skal udfoeres skal stakken +saaledes kunne genbruges (tidligere vaerdier skal fjernes og nye skal +indsaettes). + +LUA programmerne i XML'en: +<lineedit name="linse4" + regexp="[24]*" + map="axis" + lua_validator="if( tonumber(value) == 42 ) then return true else return false end" + value="90K"/> + +eller maaske + +<lineedit name="linse4" + regexp="[24]*" + map="axis" + value="90K"> + if( tonumber(value) == 42 ) + then + return true + else + return false + end +</lineedit> + +eller en loesning inspireret af query/maps paa serveren: +<luaprograms> + <luaprogram name="dims"> + if( tonumber(value) == 42 ) + then + return true + else + return false + end + </luaprogram> +</luaprograms> +<lineedit name="linse4" + regexp="[24]*" + map="axis" + lua="dims" + value="90K"/> + +Det skal helt klart vaere sidstnaevnte! + +Der kan laves sanity checks paa runtime for at sikre at der ikke +opstaar uendelige ulykker. +F.eks kan man checke om man er i gang med setValue paa feltet selv.
\ No newline at end of file |