World: r3wp
[!RebGUI] A lightweight alternative to VID
older newer | first last |
Chris 7-Sep-2005 [1950] | For example, the dialect may be: #XXX-XX and produces: [0 3 numeric 0 1 #"-" 0 2 numeric][3 numeric #"-" 2 numeric] |
Graham 13-Sep-2005 [1951] | Any updates here? |
Ashley 14-Sep-2005 [1952] | Working on a number of 'layout fixes and adding support for a "return-after n" type keyword that should reduce the number of 'return's used in certain types of displays. |
Graham 14-Sep-2005 [1953] | Great. |
Pekr 14-Sep-2005 [1954x2] | one question - will there be better list/grid support? My rebol friend would use rebgui immediatelly, but is smiling and saying - those ppl don't design db releated apps? Wow can they live without multi-column text list or proper grid? :-) |
I told him those more complex styles will come later .... | |
Graham 14-Sep-2005 [1956] | there is multicolumn list now. |
Pekr 14-Sep-2005 [1957] | pretty weak though :-) |
Ashley 14-Sep-2005 [1958] | I'm using code like the following quite often now: display join settings/file " Summary" compose/only [ ... records: table 90x25 #W options ["Date" right .4 "User" left .2 "Description" left .4] data ( sql compose [select [date user description] from sys_records where (id) order by date desc] ) [ ; set record path record-path: dirize join file-path first face/selected ... ] ... ] The table widget is now very DB friendly. I haven't had a need for a grid widget, but then again my apps don't require spreadsheet type functionality. |
Pekr 14-Sep-2005 [1959x2] | Does it handle column resizing already? |
that was broken .. | |
Ashley 14-Sep-2005 [1961] | Column resizing and sorting now work correctly. In addition a number of useful accessor functions exist to more easily manage the data. From the online doco: 5.24 Table Columns and rows of values formatted according to a header definition block. Specification action block to execute when an item is selected. data block of values. options Optional multi word followed by column header entries in the form: string specifying column title word specifying column alignment decimal specifying column width as a percentage Runtime data block of values to display. picked block of currently selected row number(s). selected block of currently selected data. redraw function to redraw widget after data changes. |
Pekr 14-Sep-2005 [1962] | is there a multicolumn text list? Btw - why Carl did not check-in his updated and better list style as from VID 1.3 older IOS initiative for 1.3? |
Ashley 14-Sep-2005 [1963] | Plus the latest build lets you assign alt-click and dbl-click actions. |
Pekr 14-Sep-2005 [1964] | hmm, still the same issues - how they will be adressed? I know that event/focus system is not all that easy to change - but drop lists still work in non-system friendly manner - can't close it clicking away or pressing escape .... text-list does not allow multirow sellection (or it is part of its options?) I will better look into docs to stop asking what is maybe obvious :-) |
Ashley 14-Sep-2005 [1965] | Table and multi-column text-list are one and the same. Not involved in the VID 1.3 work so can't answer that. |
Pekr 14-Sep-2005 [1966x2] | table still needs a lot of work imo .... when you select record, move down by arrow down - when hilighted-row reaches the bottom, it does not cause srolling and row hilighting vanishes ... |
nice work on request-dir! | |
Ashley 14-Sep-2005 [1968] | Thanks, that and table still need a few minor aesthetic improvements but the base functionality is pretty solid. |
Pekr 14-Sep-2005 [1969x6] | can I have visual cell dividers? I mean - some styling istead of flat white design? It is list after all, so I will have to play with it ... |
another "bug" - maximize demo .... move last column to righ, minimize back - you can't see last column and there is no chance how to get to it .... I would expect horizontal scroller to appear ... | |
as for text-list multi-selection - dunno if I was understood incorrectly, or it was my fault to provide you with not so accurate description of how multi-selection with shift works .... however - it should be easy for you to check - just start Explorer and play with shift multi-selection ... | |
when you hold shift, it should remember the "last" press, but it means last before you pressed the shift. And that last point should not change. So - if you then select some other row, whatever the row is, it should still hilite rows between the initial point, and the point of your actual selection ... | |
I selected incorrect word last time .... "last" meant "initial" - it should work like anchor ..... simply you have one row selected ..... once you press shift, no matter what happens, that hilited row becomes kind of anchoring initial point. Then when you select whatever row, everything in between anchoring initial position and the point of your actual selection becomes hilighted/selected ... ufff, somehow can't express myself :-) | |
otherwise ctrl and other multiselection functionality is correct ... | |
Graham 17-Sep-2005 [1975] | Why does using alert sometimes close down the window it is being called from? |
Ashley 17-Sep-2005 [1976] | Haven't come across that one before. When it's happened was there anything in common between occurrences (I'm assuming its too sporadic for a reproducible test case)? |
Graham 18-Sep-2005 [1977x3] | Any plans to write accessor functions like 'get-text ? |
I guess what's happening is that 'alert shuts down any modal screens showing like this: display "" [ text "Non modal screen" return button "dialog" [ display/dialog "Test" [ text "Modal Screen" retur n button "Alert" [ alert "hello" ]]]] do-events | |
display "" [ text "Non modal screen" return button "dialog" [ display/dialog "Test" [ text "Modal Screen" return button "Alert" [ alert "hello" ]]]] do-events | |
Ashley 18-Sep-2005 [1980] | No plans with 'get-text, unless it was to do something over and above what face/text does (i.e. trim then show). The alert problem is related to RebGUI's liberal use of hide-popup to cope with drop-lists and edit-lists that need to be closed when another one is opened. I figured at the time that having more than one non-modal dialog open at the same time probably didn't make much sense - although an alert from within one is a valid case [in hindsight]. |
Graham 18-Sep-2005 [1981x3] | I just noticed that you can't initialise the data in a table with a copy [], but you have to 'clear it instead. table/data: copy [] append table/data [ ... ] table/redraw does not work but clear table/data append table/data [ ....] table/redraw does work |
Ashley, can we fix it so we can allow alerts within a modal window? | |
The other thing ( small ) is that rows from a database are normally returned like this [ [ .... ] [.... ] ] whereas table expects it's data like [ ............... ] we have to flatten it before sending it to the table. | |
Ashley 18-Sep-2005 [1984] | Alert ... to be fixed. Table data is normally changed with "insert clear data [...]" - this optimization needs to be documented. The table data representation shows my bias towards a simple flat structure and is compatible with RebDB (representing each row as a block makes sense for small volumes of data but is wasteful once sizable numbers of rows are being managed). Good observations, keep them coming. ;) |
Graham 19-Sep-2005 [1985x2] | I guess the slight problem with a flat structure is that you have more interdepencies in the code With a flat structure, I have to know that there are 4 elements in each row row: skip face/data first face/picked - 1 * 4 Whereas with blocks for rows I can do this instead row: skip face/data first face/picked - 1 |
that should be .. face/picked/1 - 1 | |
Robert 19-Sep-2005 [1987] | From my experience with Cyphre's table style, it makes sense to use a name/value block for the data. With this you can throw a block in any order and even one, that has more fields than being displayed. The latter makes a lot of sense if you just want to get back an internal ID. |
Graham 19-Sep-2005 [1988] | Also, when removing rows from a table, you have to remove each item in a row, rather than just the one block |
Henrik 19-Sep-2005 [1989] | One problem is sorting; You need to extract the row you need to use for sorting, create the sorting sequence and rebuild the block. Or is there a faster way? |
Graham 19-Sep-2005 [1990] | How does I detect a close event in the main window so I can do a clean up ? |
Ashley 20-Sep-2005 [1991] | Not easy at the moment. This probably needs to be a refinement handler block like scroll. |
Graham 20-Sep-2005 [1992] | Is there an updated list of the outstanding issues? |
Ashley 20-Sep-2005 [1993] | Latest build available at: http://www.dobeash.com/files/RebGUI-037.zip Issue log: http://www.dobeash.com/it/rebgui/issues.html *** Unzip this file into your existing RebGUI 0.3.0 distribution. Requires View 1.3.1 *** Highlights include: - Close handler refinement added to display function - Closing the main window when more than one is open now prompts for confirmation - New 'after keyword added to layout (helps with displays that arrange widgets in one or more columns) - Fixed major bugs with 'at positioning and window size determination - Couple of layout 'reverse bugs fixed - Documentation updated to reflect above changes - Number of minor bug fixes In the works - revamped focus system - basic menu widget - context menu widget - field-level validation - stabilize existing code-base for 0.4.0 beta release |
Graham 20-Sep-2005 [1994] | Cool. |
Pekr 20-Sep-2005 [1995x5] | I owe you my opinion on field level validation probably, so here we go ... |
As I already said, it is imo insufficient or even let's say incorrect to base field validation upon rebol datatypes. As we can't have our own datatypes, those available are just some kind of primitives, not of much of a use ... | |
mail: make email! [petr-:-nonsense] type? mail == email! | |
Back in old DOS days, with tools we worked with, we had following available: 1) VTG (Variable To Get) function - you could specify VTG$("AB"), and user was able to only enter A or B letter, nothing more - we used it to limit letters for floppy disk access 2) we had system of field-masks .... e.g. tel-number: (999) - 999 999 - then all non num chars were displayed in field, you could not delete them, they were skipped, and you was only able to write numbers .... if you wanted to allow chars, you used "X" insted of "9". Pretty powerfull concept - not too much complicated, and allowing you to limit bugs ppl can enter ... | |
In CA-Visual Objects, the logic was even more abstracted - you e.g. defined DB field tel-num, char(20). That field, you could use across your tables, and from the application pov, you defined mask objects - you could e.g. have different mask objects, defining behaviour, validation, mask, tight to the same tel-num, char(20) field ... | |
older newer | first last |