Bug #8586
Fields are not in FIELD-GROUP until they are enabled
100%
Related issues
History
#1 Updated by Vladimir Tsichevski 3 months ago
The program:
DEFINE BUTTON focusable4. DEFINE BUTTON focusable1. DEFINE FRAME innerFrame focusable1 WITH SIZE 60 BY 2 AT ROW 3 COL 1. DEFINE FRAME outerFrame focusable4 WITH SIZE 80 BY 15. FRAME innerFrame:FRAME = FRAME outerFrame:HANDLE. // Print frame tab ring PROCEDURE PrintTabRing: DEFINE INPUT PARAMETER fr AS HANDLE NO-UNDO. DEFINE VARIABLE w AS HANDLE NO-UNDO. MESSAGE "Tab ring" fr:NAME. w = fr:FIRST-CHILD:FIRST-TAB-ITEM. DO WHILE w <> ?: MESSAGE w:NAME. w = w:NEXT-TAB-ITEM. END. END PROCEDURE. RUN PrintTabRing(FRAME outerFrame:HANDLE). ENABLE focusable4 WITH FRAME outerFrame. RUN PrintTabRing(FRAME outerFrame:HANDLE). WAIT-FOR GO OF FRAME outerFrame.
This program prints frame FIELD-GROUP
contents before any fields are enabled in the frame and after.
In OE it prints focusable4
, innerFrame
before any fields are enabled in the frame and innerFrame
, focusable4
after (field, which is explicitly enabled, moved to the end of group, which matches the docs).
In FWD it prints nothing before any fields are enabled in the frame and innerFrame
, focusable4
after.
#5 Updated by Vladimir Tsichevski about 1 month ago
- Related to Bug #8673: Deduce the logic behind OE focus management and implement in FWD added
#6 Updated by Vladimir Tsichevski about 1 month ago
- % Done changed from 0 to 50
- Status changed from New to WIP
The problem seems to be in FieldGroup.getExtremeTabItem()
method, where only realized items are selected:
private GenericWidget<?> getExtremeTabItem(boolean first) { ... while (iter.hasNext()) { GenericWidget<?> widget = iter.next(); if (widget._isRealized() && widget.isTabStop().booleanValue()) ^^^^^^^^^^^^^^^^^ { return widget; } } return null; }
#7 Updated by Vladimir Tsichevski about 1 month ago
- Status changed from WIP to Review
- % Done changed from 50 to 100
I fixed the private FieldGroup.nextTabItem()
in similar way.
Now the complete tab ring can be traversed from 4gl for unrealized widgets.
The branch 8586a contains the fix in rev. 15256. Please, review.
#8 Updated by Greg Shah about 1 month ago
Hynek: Please review.
#9 Updated by Hynek Cihlar about 1 month ago
- Status changed from Review to Internal Test
8586a revision 15256,
Nice simplification of nextTabItem
!
The changes also affect other use cases like ENABLE
and PROMPT-FOR
. See how getExtremeTabItem
gets called as a result of these statements and try to come up with a test case to make sure it still works.
The changes should be ChUI regression tested.
#10 Updated by Alexandru Lungu 23 days ago
Vladimir, are the changes in 8586a going to fix #8068 as well. If so, what testing do you think are required for this?
#11 Updated by Vladimir Tsichevski 23 days ago
Alexandru Lungu wrote:
Vladimir, are the changes in 8586a going to fix #8068 as well. If so, what testing do you think are required for this?
No, unfortunately fixing 8068 requires serious re-designing the data model under FWD focus management,
#13 Updated by Vladimir Tsichevski 14 days ago
Greg Shah wrote:
Have you completed the ChUI regression testing?
Not yet.
#14 Updated by Vladimir Tsichevski 14 days ago
Vladimir Tsichevski wrote:
Greg Shah wrote:
Have you completed the ChUI regression testing?
Not yet.
ChUI regression testing complete. No new test failures detected.
#16 Updated by Vladimir Tsichevski 13 days ago
Greg Shah wrote:
This can merge to trunk now.
Done. Trunk rev. 15302.