Feature #5151
Add complete support for tree-list OCX triggers
70%
Related issues
History
#1 Updated by Adrian Lungu over 5 years ago
- Related to Bug #5118: TREELIST widget issues added
#3 Updated by Adrian Lungu over 5 years ago
- Assignee set to Adrian Lungu
- Status changed from New to WIP
Some of the tree based widgets don't have conversion support for some ocx-triggers:
- OnChangeNode (supported)
- OnChangeNodeDirect (added in 3821c/rev. 12049)
- OnChangeTopVisibleNode (added in 3821c/rev. 12049)
- OnClick (reworked in 3821c/rev.11995)
- OnCollapsed (supported)
- OnColumnSorting (added in 3821c/rev. 12017)
- OnDblClick (reworked in 3821c/rev.11997)
- OnExpanded (supported)
- OnExpanding (supported)
- OnKeyDown (supported)
- OnMouseLeftDown (added in 3821c/rev.11995)
- OnMouseLeftUp (added in 3821c/rev.11995)
- OnMouseRightDown (added in 3821c/rev. 12017)
- OnMouseRightUp (added in 3821c/rev.11995)
- OnTreeDragDrop (added in 3821c/rev.12038)
- OnTreeDragOver (added in 3821c/rev.12038)
- OnTreeDragStart (added in 3821c/rev.12038)
#4 Updated by Greg Shah over 5 years ago
- Project changed from FWD to User Interface
#5 Updated by Greg Shah over 5 years ago
Please summarize the steps for adding the needed support.
#6 Updated by Adrian Lungu over 5 years ago
OnTreeDrag* triggers and they seem to be compatible with our current effort with OLEDRAGDROP, OLEDRAOVER and OLEDRAGSTART events. I am currently working on adding support to those by:
- add conversion support with proper trigger call and parameters:
p-DraggedNodeId,p-NodeIdAtMousePosandp-Accept. - add tree-list properties matching
p-DraggedNodeId,p-NodeIdAtMousePos:DRAGGED-NODEandDRAGGER-OVER-NODEas they are not part of the standardOLE*events. - add runtime support such that the properties are set at client-side before firing the trigger.
I haven't tested yet the OnChangeNodeDirect and OnChangeTopVisibleNode and I can't say yet when they are fired.
#7 Updated by Adrian Lungu over 5 years ago
Committed 3821c/rev. 12038 regarding OnTreeDrag* OCX event triggers. The tests are mostly accurate; however, the implemented OLE drag mechanism for tree-list has some issues regarding OLEDRAGOVER. The trigger should be fired only once per hovered node. In FWD, the trigger is fired multiple times (a lot) as long as the dragging hovers a node.
Starting to investigate OnChangeNodeDirect, OnChangeTopVisibleNode and find a fix for the OLEDRAGOVER.
#8 Updated by Adrian Lungu over 5 years ago
- % Done changed from 0 to 70
OnChangeNodeDirectis fired when the selected node is changed due to user node selection. In contrast toOnChangeNode,OnChangeNodeDirectdoes not fire when the selection is implicitlly changed (due to a collapse or node remove for example).OnChangeTopVisibleNodeis fired when the top visible node (the one which is the first in the viewport) is changed. This can happen when the tree-list is scrolled or the first node is removed.
#9 Updated by Adrian Lungu over 5 years ago
Committed 3821c/rev. 12049 adding support for OnChangeNodeDirect and OnChangeTopVisibleNode. In this process, I reworked the topNode property of tree widgets such that it stores a node id (not a node index). Going to fix remaining side-issues: #5151-8 OLEDRAGOVER multiple calls, performance issue on tree-list scroll and properly set SCROLL-NODE-COUNT value.
#10 Updated by Eugenie Lyzenko over 5 years ago
Adrian,
I need to change customer specific code that uses modified TreeGuiImp.setCurrentNode(TreeNode<N> node, boolean trigger, boolean direct). Previously we used 2 parametrs call TreeGuiImp.setCurrentNode(TreeNode<N> node, boolean trigger). What the 3-rd option default value is better, true or false?
#11 Updated by Adrian Lungu over 5 years ago
The direct flag is set on true when setCurrentNode is fired due to a user specific action (usually a mouse press on another node). Otherwise, it should be set on false meaning that the setCurrentNode is fired due to a implicit action (node collapse, node remove, node add etc.).
#12 Updated by Adrian Lungu over 5 years ago
I can't tell if is is safe to presume a default value for direct - maybe the majority of node changes are due to implicit actions, so false may be more often encountered.
#14 Updated by Vladimir Tsichevski almost 5 years ago
- Related to Bug #5622: TREEVIEW widget issues added
#15 Updated by Vladimir Tsichevski almost 5 years ago
The second argument for the OnKeyDown event is integer key modifiers mask. It is currently converted as new logical(false).
Note also, that the TREEVIEW KeyDown and the TREELIST OnKeyDown events differ: the former has its first keyCode argument of INPUT-OUTPUT type. Currently both events are treated with the same code in ocx_conversion_rules, so the first argument is INPUT for TREEVIEW also, which is not correct.