Jason Williams (Progress Software) asked a question.
This object provides an alternate solution to using a treeview OCX, and demonstrate the power of ABL to achieve fast and sophisticated UI Objects. It supports all the basic treeview features, as well as drag and drop, node moves, popup menu's, plus it can load nodes in a very fast way (1000 nodes in 0.73 seconds on a 2GHz CPU, so faster than the MS OCX).
It works fine on Linux with Wine (much easier than with OCX's) so it helps to open the door to this configuration. The package includes sample code and documentation.
27-AUG-2008:
Fixed missing usage of the {&pure4gltvrootpath}Â preprocessor in an include file reference that used to be OK before
25-AUG-2008:
Added code to the updateNode API so it can also handle the new node options introduced in October last year.
25-FEB-2008 (actually done on 25-JAN-2008):
Improved the creation of dyn popup menu on right click by first deleting a possible existing dyn popup menu. Before that, it was sometimes necessary to do a double right-click in order to obtain a wanted popup menu.
03-DEC-2007:
Ability to set the fgcolor, bgcolor, font and tooltips at the node level.
03-OCT-2007:
Added the ability to define the root path of pureabltv so one can embed it in a package without any external dependency (case of ABHack). The windows.p and winfunc.p are also modified to work with the root path.
05-AUG-2007:
Fixed little regression due to the previous fix... the CAN-DO('+,-,*', LAST-EVENT:LABEL) could catch any printable event due to the '*' item Solution was to use CAN-DO('+,-,~~~*', LAST-EVENT:LABEL)
04-AUG-2007:
Fixed regression introduced with the search on keyStroke for the '-', '+' and '*' key events. Indeed, they were caught by the focusCatcher combo-box to perform search on keyStroke instead of letting the fMainKeyEvent procedure doing the initial collapse, expand or expandAll functionalities
25-JUL-2007:
1) Added support of the Aero skin for winVista
2) Review to remove errors returned by functions for compliance with more consistent error handling introduced in 10.1C See the release notes for more information
19-JUN-2007: New option in addNode of pure4glTv to superceed the autoSort TV option for one single node, and made abhack use it for the parameters. See header comment of addNode() for more info
16-JUN-2007:
1) New ApplyEntry strong override to really apply entry to the treeview by using the focusCatcher combo.
2) New search by keyStroke feature. When the focus is in the treeview (actually in the hidden focusCatcher static combo), pure4gltv now maintains a string composed by the last keystrokes with up to 1500ms between each strike (above this time, the string is reset to blank), then searches the next brother node (same parent as current node) which label begins with the mentioned string. The search uses an index against parent + label that has always been present, so this feature is very fast and cool.
When we cannot find a next brother based on the searched label, then pure4gltv tries to find a first brother node. Of course, when the search is successful, then the found brother node is selected and brought into the viewPort if necessary with the selectNode API
3) Added protection against unsupported skins like aero now for WinVista (until) someone sends me the necessary pictures). When I find out the theme is not supported in the tvSkins directory, pure4gltv goes into classic mode and gives some details in the tooltip of the EMPTY square on the right bottom corner.
09-JUN-2007:
1) implemented a new nodeDisplay event a bit similar to a Browse ROW-DISPLAY event (see release notes)
2) Provided additional pictures to be used in a new prospy++ and in ABHack
24-JAN-2007: Supply a few additional treeview pictures to be used in an enhanced version of the Prospy++ that works with the OE 10 new Log Manager
12-NOV-2006: Fixed little cosmetic issue on resizeObject: if the treeview is empty, then hide the scrollbars in the tvframe
Jully 2006: Restructuration regarding the support of multiple skins (XP Luna, Royale and Classic included). A few new API's like getSelectedNodeKey(). New expandAll functionality on '*' key. Little cosmetic issue consisting in moving the vertical scrollbar by one pixel on the right...
29-MAR-2005: Changed Doc to PDF, improvement of scrolling with keyboard, fix of few minor cosmetic issues, implementation of a preprocessor to use the windows.p library shipped with Dynamics.
Is this code considered open source? Is this something that can be used in a commercial product? Since this is a community piece of code I understand that it is not something that is supported by Progress, and knowing this we would like to use it to implement it for 64 bit progress.
Hi Dan, I was a progress.com employee (as Tech support engineer, and consultant) when I made this adm2 component, so I probably did not dare to stamp it loudly as 'opensource' in its code or release note, although the code was given away very quickly. Anyway I gave it to the progress community very quickly, so its code is pretty free of use, in as-is mode.
Kind regards
/S