Feature #5151
Add complete support for tree-list OCX triggers
70%
Related issues
History
#1 Updated by Adrian Lungu about 3 years ago
- Related to Bug #5118: TREELIST widget issues added
#3 Updated by Adrian Lungu about 3 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 about 3 years ago
- Project changed from FWD to User Interface
#5 Updated by Greg Shah about 3 years ago
Please summarize the steps for adding the needed support.
#6 Updated by Adrian Lungu about 3 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-NodeIdAtMousePos
andp-Accept
. - add tree-list properties matching
p-DraggedNodeId
,p-NodeIdAtMousePos
:DRAGGED-NODE
andDRAGGER-OVER-NODE
as 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 about 3 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 about 3 years ago
- % Done changed from 0 to 70
OnChangeNodeDirect
is fired when the selected node is changed due to user node selection. In contrast toOnChangeNode
,OnChangeNodeDirect
does not fire when the selection is implicitlly changed (due to a collapse or node remove for example).OnChangeTopVisibleNode
is 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 about 3 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 about 3 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 about 3 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 about 3 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 over 2 years ago
- Related to Bug #5622: TREEVIEW widget issues added
#15 Updated by Vladimir Tsichevski over 2 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.