World: r3wp
[View] discuss view related issues
older newer | first last |
Henrik 17-Sep-2006 [5516] | I'm not wondering about it. I used Cyphre's video to kickstart LIST-VIEW development. :-) But I think this is an area of VID that remains a mystery to most users, as there is very little documentation around to explain how it works. Maybe that's why there isn't that many custom VID faces around. I seem to remember a ton of custom classes for MUI on the Amiga. |
Janeks 18-Sep-2006 [5517] | If I am calling (loading) a layout from web server script with http://someurl?some=cgivarsand then displaying, than I cannot it unview: info-resp: read browseUrl reduce load info-resp either viewed? infowin [ unview infowin ;Does not work!? view/options/title/new infowin [all-over] "Info:" ][ view/options/title/new infowin [all-over] "Info:" ] F.ex. I want that there does not appear new windows. But I need to use /new refinement, because I need possibility for user to go back (activate) on another window. Is it connected with Rebol scopes? And how to avoid new window? |
Graham 18-Sep-2006 [5518] | unview/only infowin .. is the syntax for closing a single named window |
Janeks 18-Sep-2006 [5519x2] | I alredy tried it but - no success! |
I solved it so that loaded just info win definition block: either value? 'infowin [ unview/only infowin ;Šitais nestrādā nezkāpēc infowin: layout info-layout view/options/title/new infowin [all-over] "Info:" ][ infowin: layout info-layout view/options/title/new infowin [all-over] "Info:" ] Than it works. But why it is so? | |
Anton 18-Sep-2006 [5521] | You must tell us what the value of INFOWIN is. |
Janeks 18-Sep-2006 [5522x2] | Info-win is block for layout definition. |
But in first case it was layout | |
Anton 18-Sep-2006 [5524x2] | Ok, there is confusion between the layout spec block and the resulting window face. A pattern I use very often: infospec: [ area button ... ] infowin: layout infospec either viewed? infowin [ ; bring the window to the front (or do the taskbar flash thing) infowin/changes: [restore activate] show infowin ][ view/new infowin ] |
In your first code, UNVIEW does not work because it does not take any arguments. As Graham said, to name the window to close, you must write: unview/ONLY your-window | |
Maxim 18-Sep-2006 [5526x3] | or even better |
unview/ONLY find-window face | |
which closes the window relative to an actual button... | |
Janeks 19-Sep-2006 [5529x2] | Anton, my first code unview does not wor also with /only. I tried it! |
The problem was that I could not unview (also with only) if I loded layout from remote script formed on web server. I can unview when I formed layout locally. | |
Anton 19-Sep-2006 [5531] | How does the remote script look ? How do you load the layout spec from the remote script ? |
Janeks 19-Sep-2006 [5532] | Remote script is mapserver template that returns map layer feature data based on coordinates: Something like: info-win: layout [ text "Fld:" text "[fldName]" ;this finaly looks just - text "value from table" etc ] |
Anton 19-Sep-2006 [5533] | Ok, so remote script looks like: -------------------------- rebol [] info-win: layout [ ...] -------------------------- Local script looks like: -------------------------- rebol [] info-win: do remote-script-url ; Now info-win is a FACE object ; Only do the above line once, otherwise you will create a *new* face and set 'info-win to it, forgetting the old one !! ; The following code is done more than once: either viewed? info-win [ info-win/changes: [restore activate] show info-win ][ view/new info-win ] |
Janeks 20-Sep-2006 [5534] | So, did I got idea right: The remote script is treated as new scope. Note: In may cases there are some differences remote script is without rebol header and is loaded with "reduce load" |
Anton 20-Sep-2006 [5535x2] | So remote file looks like this: ------------------------------- [ text "Fld:" text "[fldName]" etc. ] --------------------------- Local script should maybe look like this: --------------------------- rebol [] if all [ value? 'info-win viewed? info-win ][ unview/only info-win ] info-resp: read remote-script.r replace info-resp "[fldName]" "value from table" ; etc.... spec: load info-resp info-win: layout spec view/new info-win do-events |
There is no "scope" in rebol. When you read from a url, you create a new string. That is, READ returns a new string. When you set a word to that new string, you "switch" the word away from its old value (if it had one.) Eg: At the beginning of this example, the word 'info-resp has no value (It is unset!). Now, we set its value to the string returned by READ: info-resp: read url Now, 'info-resp points to a string "[ text ... ]" Let's do it again: info-resp: read url We have re-set 'info-resp to a new string! (even though old string and new string look exactly same.) The old string may still exist as a value somewhere, but 'info-resp does not know about it anymore. Normally this is not a problem. -- However, look at this example: 1) window: layout [box red] 2) view/new window 3) window: layout [box red] 4) unview/only window On line 1, LAYOUT creates a face object which we assign to the word 'window . (So 'window points to a face.) On line 2, VIEW opens the value of 'window as a window. On line 3, LAYOUT creates a *new* face object which we assign to the word 'window. So 'window points to a *new* face, and it has forgotten about the old face. However, the old face is **still open as a window**. So we have lost our reference to the old window face, and it is now more difficult for us to close it. So line 3 has created a problem. On line 4, we try to close the new window face, but we are unsuccessful because the new window face is not open. | |
Janeks 20-Sep-2006 [5537] | Now I believe, that I understood. If it is just a variable with a value, than there is not problem, but layout are not doing just a face value assignment to a variable, but <b>creates new</b> one face and add reference to that face to variable. |
Anton 20-Sep-2006 [5538x3] | No, LAYOUT only creates a face. It does not add a reference to a variable. The set-word (eg. info-win: ) takes the value that LAYOUT returns, and associates it with the word (eg. 'info-win ). |
Actually, I think you understand ok. Yes, LAYOUT creates a *new* face every time. | |
For those creating documentation involving a face hierarchy, here's a function which may help to visualise it: do http://anton.wildit.net.au/rebol/doc/demo-to-3d-layout-image.r | |
Graham 21-Sep-2006 [5541] | Anyone any ideas of how to take a plain paper form and turn it into an electronic form that can have text entered into it and then print it ? |
Henrik 21-Sep-2006 [5542x2] | as in X-forms? |
in open office you can create X-forms that can be converted to PDF, opened in adobe reader as a form which then can be printed | |
Graham 21-Sep-2006 [5544x3] | Looking for a Rebol solution :) |
But interesting .. | |
So, open office can create a pdf form ? | |
Henrik 21-Sep-2006 [5547] | yes, straight out of the box |
Graham 21-Sep-2006 [5548] | So, how then to prepopulate the form ? |
Henrik 21-Sep-2006 [5549] | I haven't played too much with that, but I think it's possible. |
Graham 21-Sep-2006 [5550] | So, you create an xml form which acrobat can read?? |
Henrik 21-Sep-2006 [5551x3] | yes |
if you export it as PDF | |
http://www.openoffice.org/dev_docs/features/2.0/images/xforms.jpg | |
Graham 21-Sep-2006 [5554x2] | Say you scan an existing paper form into jpg. |
how to go from there ? | |
Henrik 21-Sep-2006 [5556] | you'd place it as a background image on the document page and then place the text fields where you want them. |
Graham 21-Sep-2006 [5557x2] | How to print it though? |
save as PNG and print? | |
Henrik 21-Sep-2006 [5559x2] | no, you'd export it as PDF, open it in adobe reader and print it there |
you can fill the form inside adobe reader | |
Graham 21-Sep-2006 [5561] | So, if you export as pdf... you can then do a search and replace for the prepopulated text and then present this to acrobat? |
Henrik 21-Sep-2006 [5562x2] | I'm not sure I follow you there... |
is the form not meant to be populated manually by a user? | |
Graham 21-Sep-2006 [5564] | I want to take an existing paper form .. prefill it with some default values that vary for each user... get the user to fill in the rest and then print. |
Henrik 21-Sep-2006 [5565] | those default values will vary with the user? |
older newer | first last |