World: r3wp
[View] discuss view related issues
older newer | first last |
Henrik 1-Jan-2006 [3695] | hmm... could you give an example? my brain is a bit fried right now :-) |
JaimeVargas 1-Jan-2006 [3696x6] | Right now all *data model* is a block. But you may want to be able to access a file of bytes and some particular fields in that stream. |
So, instead of forcing the conversion of the bytes stream in the block data model. The list view could interrogate the controller to extract the data from the base model. | |
So list-view will say to an intermediary function give me the first row of values. This intermediary function ask the conversion func aka the controller to extract and conver the data from the reall *data model*. The controller returns this to the list-view list-view displays the row of data. | |
So LIST-VIEW will use the MVC paradigm. (Model-View-Controler http://en.wikipedia.org/wiki/Model-view-controller) | |
This way LIST-VIEW is *data-model* independant. Programmer doesn't waste ram or cpu cycles converting all data to from *real data model* to LIST-VIEW expected *data model*. The programmer only need to write the controler part. Which is taylor for efficiency. You only need to extract the values that are visible by the LIST-VIEW at any given moment from the *real data model*. | |
The current list-view is quite nice. ;-) | |
Graham 1-Jan-2006 [3702] | are there any real life rebol widget examples doing this ? |
JaimeVargas 1-Jan-2006 [3703x2] | Nope. One of my problems with VID and RebGUI is that the gfx are to tightly couple with the data representation. So a change in data representation implies a change in the gfx code. |
It think it will be nicer if we could decouple the gfx widget code from data representation making it data model agnostic | |
Henrik 1-Jan-2006 [3705x2] | what it can do right now is append, change, remove and insert rows. so this would be kind of an ACQUIRE function that calls a controller function that returns a value that can be inserted into DATA with insert-row or append-row? |
with the point being, that you call your data source and insert the data into the list using a single function | |
JaimeVargas 1-Jan-2006 [3707] | Yes. That sounds good. ACQUIRE. |
Henrik 1-Jan-2006 [3708] | I'll take a look at it, maybe tomorrow. close to bedtime now :-) |
Graham 1-Jan-2006 [3709x2] | Anyone point me to where Cyphre's pattern generator is ? |
It was supposed to be in viewtop/view/tests .. | |
Anton 1-Jan-2006 [3711x4] | Henrik, just looking at your list-view, and noticed a little thing that can be optimized: b: [] insert tail insert tail b 1 2 b ;== [1 2] b: [] insert insert tail b 1 2 b ;== [1 2] |
Also this: toggle "Single" 70 [li/select-mode: to-word face/text] of 'select-mode toggle "Row" true 70 [li/select-mode: to-word face/text] of 'select-mode toggle "Multi" 70 [li/select-mode: to-word face/text] of 'select-mode toggle "Multi-row" 70 [li/select-mode: to-word face/text] of 'select-mode toggle "Column" 70 [li/select-mode: to-word face/text] of 'select-mode can be optimized to this: style my-toggle toggle 70 [li/select-mode: to-word face/text] of 'select-mode toggle "Single" toggle "Row" true toggle "Multi" toggle "Multi-row" toggle "Column" halving the amount of code in this case. | |
I see you are successfully basing on FACE. Just a point about placement of custom facets; I would put all the facets that already exist in face at the top, then follow with all your custom ones. That way, someone who reads your code can see which is which. Furthermore, if by some chance the FACE definition ever changes (adding or removing a facet), it will be easier to see where the fault lies. Eg: list-view: face with [ size: 500x300 edge: make edge [...] ; my custom facets colors: [...] ; <--- this is the same name and I suppose the same concept as used in VID ; (but it's still custom from list-view's point of view) select-modes: [single multi row multi-row column] ; etc... ] | |
What I meant to say about the face definition changing - say for instance a COLORS facet was added to FACE. Then, you would be unintentionally overriding the View system's one and probably introducing bugs, because the View system would expect it to be used a particular way and might render the face incorrectly given the data you've put into it. It might also change that data when you expect it to remain, etc etc. | |
Volker 1-Jan-2006 [3715x2] | mvc - thats like supply in the real list works. So there are demos :) |
Not "real", the inbuild one. | |
Henrik 2-Jan-2006 [3717] | anton: First one: Alright. :-) Second one: All that code will be thrown out and there will be a different demo later Third one: You have a point. I'll look at the issue of sorting standard vs. custom facets. |
Robert 2-Jan-2006 [3718x2] | Henrik, Cyphre once did a list-view for me. It has some really nice things in it. Take a look at http://www.robertmuench.de/projects/data-form for some docs on it. |
Let me know, if you want to take a look at the source code. | |
Henrik 2-Jan-2006 [3720] | thanks! I'll take a look at it. |
[unknown: 9] 2-Jan-2006 [3721] | Cool stuff. |
Pekr 2-Jan-2006 [3722x2] | yes, absolutly ... IIRC Robert suggested his form dialect to be accepted for VID, no? |
it would be good if RebGui had similar schemas ... | |
Henrik 2-Jan-2006 [3724] | version 0.0.14 uploaded Changes: Fix: Documentation updates Fix: Multiple lists accidentally shared the LIST-SIZE value New: Custom layout block can now have multiple rows at the cost of horizontal resizability New: Now using ROW-FACE to store the custom layout block New: If HDR-COLS is set to a single word in a block, it will take the width of the list view. Fix: Code size optimization of navigation functions Info: The version between 0.0.12 and 0.0.14 is mysteriously missing... :-) The demo has been changed a bit to test custom layouts and multiple lists. http://www.hmkdesign.dk/rebol/list-view.r http://www.hmkdesign.dk/rebol/list-view.html |
Graham 2-Jan-2006 [3725] | possible to configure slider width as an option ? |
Henrik 2-Jan-2006 [3726] | try list-view/scr/resize/x <value> |
Graham 2-Jan-2006 [3727] | i'm using your list in my chatclient ... |
Henrik 2-Jan-2006 [3728] | nice. :-) screenshot? |
Graham 2-Jan-2006 [3729x3] | .. well, using version 0.0.11 :) |
http://www.compkarori.com/reb/if you have IE and plugin. | |
or, http://www.compkarori.com/reb/pluginchat.rif using rebol. | |
Henrik 2-Jan-2006 [3732] | please note that now when using custom layout, it's not possible to have a horizontallly resizable list, because it's hard to determine how the elements should be resized without making the layout code complex (if no one has any suggestions, that is...) |
Graham 2-Jan-2006 [3733] | I think rebgui assigns percentages to each column for horiz resizing. |
Henrik 2-Jan-2006 [3734x2] | that's a good idea! I think I'll implement that soon. |
oh well... off to bed. lots of work tomorrow | |
[unknown: 9] 2-Jan-2006 [3736] | ** Script Error: case has no value ** Where: read-msg ** Near: case [ parse clientmsg ['cmd set usercmd block!] [ case [ parse usercmd ['set-userstate set chat-users block!] [ update-chatlist]]] parse clientmsg ['action set userblock block! set cmdblock block!] [] parse clientmsg ['chat set userblock block! set payload block!] [ if error? set/any 'err try [ payload: load payload insert tail payload now if all [payload/1 = "Eliza" f-10/data] [ return] repend/only chat-list msgline: copy payload either viewed? chat-lay [ f-chat/pane/size/y: append-msg reduce msgline f-chat/pane/size/y f-sld/redrag f-chat/size/y / max 1 f-chat/pane/size/y f-sld/step: 1 / max 1 (length? chat-list) if f-sld/data = 1 [ slide-chatpane 1] show [f-chat f-sld]] [ display-chat/new 10x10]] [ probe disarm err]] true []] foreach channel chatroom-peers >> |
Graham 3-Jan-2006 [3737] | That's an old version now. As you've discovered, 'case isn't defined in the plugin. I've used Ladislav's 'case for the later versions .. Don't know why you're seeing this now .. unless it was cached. A later version if not the latest is http://www.compkarori.com/reb/pluginchat5.r |
Henrik 3-Jan-2006 [3738x2] | bug: the background doesn't scale above something that looks like 800x600 |
is something supposed to happen when you select a user from the list? It reacts very slowly and sometime require multiple clicks before it responds | |
Graham 3-Jan-2006 [3740x5] | The list doesn't work in the browser as the list needs AGG. It works in View, but doesn't do anything at present except display online status. It scales for me fine up to 1024x768. |
Make sure it is version 0.0.15 ... | |
Just tried it again .. you're right. The list elements react very slowly. Wonder why that is ? | |
Maybe I need to try your latest list-view ? | |
the buttons at the list top react okay though .. just the rows are sluggish. | |
older newer | first last |