r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3-OLD1]

Graham
15-Feb-2009
[11396]
actions [
	text-list [
		[ text list 1 ]
		[ text-list 2 ]
	]
]
Anton
15-Feb-2009
[11397]
Perhaps lit-words could be used to indicate that it's a type, eg:

	actions [

  'text-list [ set-face ... ]  ; <-- Action for all text-lists in the 
  window.
	]
Graham
15-Feb-2009
[11398]
this would allow code reuse
Anton
15-Feb-2009
[11399]
(Ugh... the sight of hard-coded numbers make me a bit queasy...)
Graham
15-Feb-2009
[11400x2]
the numbers aren't there ...
just using the order  in the block
Anton
15-Feb-2009
[11402x2]
oh
so you meant:
	actions [
		text-list [
			[ ... ] ; <-- action for the first text-list
			[ ... ] ; <-- action for the second text-list
		]
	]
Graham
15-Feb-2009
[11404]
yes
Anton
15-Feb-2009
[11405x3]
Not bad.
And lit-words ? Another idea might to use them to identify the name-references 
(not the element types). eg
view [
	; Structure
	text-list: text-list  ; <-- Named text-list.
	text-list ; <-- Anonymous text-list.

	actions [
		text-list [
			[ ... ] ; <-- Action for first text-list
			[ ... ] ; <-- Action for second text-list
		]

  'text-list [ ... ] ; <-- Action for the specifically named text-list, 
  'text-list.
	]
]
Graham
15-Feb-2009
[11408]
the big question ... will this make making gui's harder or not?
Anton
15-Feb-2009
[11409x3]
Well, why are Unobtrusive Javascript people doing it ?
For quick little layouts we can see that the separation, with all 
those extra nested brackets and interpretation requires extra effort. 
But for large, complex layouts, the separation must have some benefit.
(<--- insert benefit here..)
Graham
15-Feb-2009
[11412x2]
I have lots of complex layouts ... so I think it will help.
Only way to find out is to test it though.
Anton
15-Feb-2009
[11414x2]
I think it makes things harder, at least for a short while. After 
that I cannot see...
The reason is that there is an extra name reference needed to associate 
the action to its element, because they are now separated. In large 
layouts, the separation of structure and behaviour puts these closely 
related aspects further apart, so it means more scrolling.
Graham
15-Feb-2009
[11416]
Except that the structure is now much smaller without all the behavior 
code mixed in .. so it's less scrolling :)
Anton
15-Feb-2009
[11417x2]
That's true, if you *just* want to look at structure.
But what makes "structure" an aspect that deserves such attention 
? It's still not clear to me.
Graham
15-Feb-2009
[11419]
http://en.wikipedia.org/wiki/Unobtrusive_Javascript
Anton
15-Feb-2009
[11420]
I think other aspects of a program could be more important, at other 
times, or simply at different places in the code. :-/
Graham
15-Feb-2009
[11421x5]
The unobtrusive solution is to register the necessary event handlers 
programmatically, rather than inline. 
so, say you had a number of text-lists that all had the same event 
handler, you just define it once instead of 3 times
where number = 3
for simple windows there is no gain.
It's only for large complex windows where the gains are seen.
Anton
15-Feb-2009
[11426]
Ah, that's why you mentioned stylize.
Graham
15-Feb-2009
[11427]
It's a form of code factoring.
Anton
15-Feb-2009
[11428]
It should be easy in rebol to define actions programmatically, or 
to make your own style of text-list before-hand.
Graham
15-Feb-2009
[11429]
why not make it automated by default?
Anton
15-Feb-2009
[11430x5]
Well.. why not?
I note the Unobtrusive Javascript wikipedia article example sets 
up the "hundreds of .. date fields" with the same action. (Of course 
I understand they could be subtly different, determined programmatically, 
but still..)
This could be done in rebol better using stylize-like functionality.
I think we don't really have the problem that's being solved in that 
article example.
inline syntax prevents the registration of more than one event handler 
for the element's onchange event

 - we don't have this problem in rebol. It looks like they are working 
 around a problem in html inline javascript specification.
Graham
15-Feb-2009
[11435]
I still like the cleaner separation of gui from function
Anton
15-Feb-2009
[11436x3]
Well, I think it can pretty easily be done for your own forms, by 
making a function that accepts an action specification, as above. 
Apply it to your forms and that's that. Eg. if you could say:

	window: layout [ ...text-list ... ]
	set-behaviours window [ text-list [...] ]
	view window


Wouldn't that be almost as good (if not better) than any built-in 
inline action specification ?
(such as we explored above.)
You just need to write the set-behaviours function :)
Graham
15-Feb-2009
[11439]
:)
Anton
15-Feb-2009
[11440]
Must go - exercise time.
Pekr
15-Feb-2009
[11441x4]
I think that your talk here is a little bit late for VID3, as it 
seems to me (according to docs), that those things were already decided 
...
As for actions (actors, reactors), having them separate from style 
structure? I can find it confusing ...
There is not just general 'do, like in R2, there is now many reactors. 
In order to better understand new architecture, here's some docs 
- http://www.rebol.net/wiki/R3_GUI...
Actions separation is done in stylize level ...
Graham
15-Feb-2009
[11445]
I  don't think it's too late ... noting is set in stone yet.