Feature #12062
replacement for the DBI ctSchedule ActiveX control (scheduler)
Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:
0%
billable:
No
vendor_id:
GCD
case_num:
version_reported:
version_resolved:
reviewer:
production:
No
env_name:
topics:
History
#1 Updated by Greg Shah 14 days ago
Replacement for the DBI ctSchedule ActiveX control (scheduler)¶
Project: User Interface
Problem¶
ctSchedule is an appointment scheduler (ctSchedule.ocx 6.0). Members used include AddKeyTimeBar, AddBarStyle, BarKeyID, AddKeyAppointment and AppointTimeStart; events include BarPreDrop, ScheduleClick, AppSelect and AppDblClick.
It implements a scheduling feature in service screens: resources or dates on one axis, time on the other, with bars or appointments that the user selects, double-clicks, moves and resizes. Neither FWD nor the 4GL has a scheduler widget.
Work¶
- Inventory every member and event used, from the converted source, and their semantics from the vendor help files.
- Implement a scheduler widget for the web and Swing clients covering that surface, including drag and drop of bars or appointments with the vendor's pre-drop veto events. Consider basing it on an established JavaScript scheduling component for the web client.
- Share the implementation between ctSchedule, ctSched and ctMDay where their models overlap.
- Register the control's CLSID in the OCX registry (
ocx-registry.xml), mapping it to the target widget, as #11919 did for ctToolBar. - Decode the design-time state the control keeps in the
.wrxstorage at conversion time, so that it exists after conversion. - Implement the members and events listed above on the target, with the vendor's semantics: argument types, return values, defaults, and the order in which events fire. Members of the type library that are not used become no-ops with a conversion warning, as the OCX pipeline already does.
- Follow the OCX emulation playbook attached to #11919: an OpenEdge test program with goldens for each member and event, recorded input sequences for the interactive parts, and Lyra automation.
- Update the gap marking and the OCX registry documentation.
Testcases¶
Each member and event above, exercised on Windows OpenEdge with the real control to produce goldens, then run against the FWD replacement on the web and Swing clients. The vendor help files are the reference where behaviour cannot be observed directly.