source_files, generated_at, model, schema_version, sha256
source_files
generated_at
model
schema_version
sha256
DataPRO/DataPRO/Pages/ATDMonitorStatusPage.cs
DataPRO/DataPRO/Pages/CopyAndTrimPage.cs
DataPRO/DataPRO/Pages/RenameTestPage.cs
DataPRO/DataPRO/Pages/DownloadAndView.cs
DataPRO/DataPRO/Pages/TimedWaitControl.xaml.cs
DataPRO/DataPRO/Pages/ModalPage.xaml.cs
DataPRO/DataPRO/Pages/SplashScreen.xaml.cs
DataPRO/DataPRO/Pages/AddGraphPage.cs
DataPRO/DataPRO/Pages/StatusLinePage.cs
DataPRO/DataPRO/Pages/EditGraphPage.cs
DataPRO/DataPRO/Pages/RealtimePage.cs
DataPRO/DataPRO/Pages/DownloadDataPage.cs
DataPRO/DataPRO/Pages/ChangeView.xaml.cs
DataPRO/DataPRO/Pages/EditUserDetailsPage.cs
DataPRO/DataPRO/Pages/LoginControl2.xaml.cs
DataPRO/DataPRO/Pages/UsersPage.cs
2026-04-17T15:46:52.496358+00:00
zai-org/GLM-5-FP8
1
ddb7d9cc557ee4d9
DataPRO Pages Module Documentation
1. Purpose
This module contains the page definitions and UI controls that comprise the main interface of the DataPRO application. It provides specialized pages for user management (authentication, user editing), test configuration and monitoring (ATD Monitor Status, Status Line Check, Realtime diagnostics), data export operations (Copy and Trim, Rename Test, Download and View), and graph management (Add/Edit Graph). All page classes inherit from a common DataPROPage base class (or RunTestBase for wizard-style pages) and implement a consistent pattern for navigation, button handling, and lifecycle management via OnSetActive() and UnSet() methods.
2. Public Interface
ATDMonitorStatusPage
Member
Signature
Description
Constructor
ATDMonitorStatusPage(DataModel.TabPageItem item)
Initializes with transparent background, search control enabled, and creates an embedded Controls.TestSetups.ATDMonitorStatus control
CurrentTest
DataModel.TestTemplate (setter only)
Forwards the test template to the internal _statusControl
UniqueId
string
Returns constant "TestSetups_ATDMonitorStatusPage"
UnSet
void UnSet()
Overrides base implementation (calls base only)
CopyAndTrimPage
Member
Signature
Description
Constructor
CopyAndTrimPage(DataModel.TabPageItem item)
Initializes with UsesModifyEnhancements = true, no save/next buttons
UniqueId
string
Returns "Review_ExportData_CopyAndTrim"
DownloadFolder
string
Gets/sets download folder path (default: string.Empty)
IsROI
bool
Gets/sets ROI flag (default: false)
TestItem
string
Gets/sets test item identifier
AvailableTestIds
List<string>
Gets/sets list of available test IDs
DTSFilePath
string
Gets/sets DTS file path
RenameTestPage
Member
Signature
Description
Constructor
RenameTestPage(DataModel.TabPageItem item)
Initializes similarly to CopyAndTrimPage with UsesModifyEnhancements = true
UniqueId
string
Returns "Review_ExportData_Rename"
AvailableTestNames
List<string>
Gets/sets list of available test names (in addition to IDs from CopyAndTrimPage)
DownloadAndView
Member
Signature
Description
Constructor
DownloadAndView(DataModel.TabPageItem item)
Basic constructor
Constructor
DownloadAndView(DataModel.TabPageItem item, int possibleSteps)
Constructor with step count for wizard navigation
UniqueId
string
Returns constant "Record_DownloadAndView"
NavigateToROIDownload
void NavigateToROIDownload()
Sets current step to _downloadROIControlNavStep
OnSetActive
void OnSetActive()
Resets ROINext_OK and ALLNext_OK flags, subscribes to AutomaticModeStatusEvent via IEventAggregator
UnSet
void UnSet()
Clears search term and calls StartSearch(string.Empty) on _downloadROIControl
TimedWaitControl
Member
Signature
Description
Constructor
TimedWaitControl()
Parameterless constructor
Constructor
TimedWaitControl(MainWindow MainWindow)
Constructor with main window reference
ManualResetEvent
System.Threading.ManualResetEvent
Gets/sets synchronization primitive
MarkDone
void MarkDone()
Signals the ManualResetEvent and sets it to null
SetValuePercent
void SetValuePercent(double d)
Updates progress bar via ctrlStatusRibbon.SetProgressValue()
SetActive
void SetActive()
Empty implementation
SetStatusMessage
void SetStatusMessage(string msg)
Sets status text via ctrlStatusRibbon.SetStatusTextNoTranslate()
CancelButtonVisibility
Visibility
Bindable property for cancel button visibility
PropertyChanged
event PropertyChangedEventHandler
INotifyPropertyChanged implementation
ModalPage
Member
Signature
Description
Constructor
ModalPage()
Parameterless constructor
Constructor
ModalPage(MainWindow MainWindow)
Constructor with main window reference
SetContent
void SetContent(IModalContent content)
Sets modal content, calls OnSetActive(), assigns CloseFunction
OnCloseDelegate
delegate void OnCloseDelegate()
Delegate type for close callbacks
IModalContent Interface
Member
Signature
Description
DialogResult
System.Windows.Forms.DialogResult
Gets the dialog result
CloseFunction
OnCloseDelegate
Gets/sets the close callback
OnSetActive
void OnSetActive()
Called when content becomes active
PromptString
string
Gets/sets prompt text
ReusableMessageBox
bool
Flag for reusable message box scenarios
SetButtons
void SetButtons(PageButton[] buttons)
Sets page buttons
DefaultButton
PageButton
Gets/sets the default button
SplashScreen
Member
Signature
Description
Constructor
SplashScreen()
Initializes with Xceed license key, ShowInTaskbar = false, ResizeMode = NoResize
Version
string (setter)
Sets txt_VersionString.Text
DbVersion
string (setter)
Sets txt_DbVersionString.Text
LicensedTo
string (setter)
Sets txt_LicensedTo.Text
LicenseType
DataProLicensingEnums.LicenseType
Gets/sets license type; setter calls SetBackgroundImage()
Copyright
string (setter)
Sets txt_Copyright.Text
SetBackgroundImage
void SetBackgroundImage()
Updates banner image based on RunTestVariables.IsTSRAIRGo and LicenseType
AddGraphPage
Member
Signature
Description
Constructor
AddGraphPage(DataModel.TabPageItem item)
Initializes with no search/select controls, no next/back buttons
UniqueId
string
Returns "Review_ViewData_AddGraph"
saveButton
Controls.PageButton
Public field for Save button
saveAsButton
Controls.PageButton
Public field for Save As button
saveAndAddAnotherButton
Controls.PageButton
Public field for Save and Add Another button
AddPageButtons
void AddPageButtons()
Creates Cancel, Save, SaveAs, SaveAndAddAnother, View buttons
OnButtonPress
bool OnButtonPress(Controls.PageButton button)
Handles button presses; View and Cancel navigate to previous page
StatusLinePage
Member
Signature
Description
Constructor
StatusLinePage(DataModel.TabPageItem item)
Creates Controls.TestSetupsControl with Color_ApplicationTileCalibration
UniqueId
string
Returns constant "Diagnostics_StatusLineCheck"
OnSetActive
void OnSetActive()
Calls SetRunButtonEnabled()
OnButtonPress
bool OnButtonPress(Controls.PageButton button)
Handles Record_StatusLineCheckRunButton to call SetNewTest()
EditGraphPage
Member
Signature
Description
Constructor
EditGraphPage(DataModel.TabPageItem item)
Initializes similarly to AddGraphPage
UniqueId
string
Returns "Review_ViewData_EditGraph"
IsSingleChannelGraph
bool
Setter disables saveButton when true
saveButton, saveAsButton, saveAndEditAnotherButton
Controls.PageButton
Public button fields
OnButtonPress
bool OnButtonPress(Controls.PageButton button)
Handles button presses; SaveAndEditAnother, View, and Cancel navigate to previous page
RealtimePage
Member
Signature
Description
Constructor
RealtimePage(DataModel.TabPageItem item)
Creates Controls.TestSetupsControl with Color_ApplicationTileCalibration
UniqueId
string
Returns constant "Diagnostics_Realtime"
OnButtonPress
bool OnButtonPress(Controls.PageButton button)
Handles Record_RealtimeRunButton, logs user action via APILogger.Log()
DownloadDataPage
Member
Signature
Description
Constructor
DownloadDataPage(DataModel.TabPageItem item)
Creates Controls.TestSetupsControl with Color_ApplicationTileCollectData
UniqueId
string
Returns constant "Record_DownloadAndView"
OnButtonPress
bool OnButtonPress(Controls.PageButton button)
Handles Record_DownloadData_RunButton, logs user action via APILogger.Log()
ChangeView
Member
Signature
Description
Constructor
ChangeView()
Subscribes to Activated and Deactivated events
AvailableUsers
User[]
Gets/sets all available users for selection
FilteredUsers
User[]
Gets filtered users based on tbSearch.Text (searches UserName and Name fields)
OK_Click
void OK_Click(object sender, RoutedEventArgs e)
Calls App.ChangeView() and MainWindow.CloseChangeView()
Cancel_Click
void Cancel_Click(object sender, RoutedEventArgs e)
Calls MainWindow.CloseChangeView()
Window_Closing
void Window_Closing(object sender, CancelEventArgs e)
Cancels close and calls CloseChangeView() instead
EditUserDetailsPage
Member
Signature
Description
Constructor
EditUserDetailsPage(DataModel.TabPageItem item)
Creates three NavSteps with EditUserInfoControl, EditUserPermissionsControl, EditUserVisibilityControl
UniqueId
string
Returns "Admin_Users_EditUserDetails_Page"
IsAddPage
bool
Controls add/edit mode; setter updates IsAdd and _userInfoControl.IsAdd
CurrentUser
DTS.Slice.Users.User
Gets/sets current user; propagates to all child controls
OnSetActive
void OnSetActive()
Sets modified state to Unmodified, resets nav to first step
SaveAndExitButtonPress
void SaveAndExitButtonPress()
Validates, commits via UserCollection.UsersList.Commit(), navigates to previous page
SaveButtonPress
void SaveButtonPress()
Validates and commits without navigation
Validate
bool Validate(ref List<string> errors, ref List<string> warnings, bool displayWindow)
Aggregates validation from all three child controls
LoginControl2
Member
Signature
Description
Constructor
LoginControl2()
Parameterless constructor, sets version string
Constructor
LoginControl2(MainWindow MainWindow)
Constructor with main window reference
Users
UserData[]
Gets sorted, filtered user list from UserCollection.GetAllUsers()
RememberPassword
bool
Gets/sets remember password flag
SetActive
void SetActive()
Navigates to home page if current user matches default
UpdateUsers
void UpdateUsers()
Raises PropertyChanged for Users
button_Click
void button_Click(object sender, RoutedEventArgs e)
Handles login via App.LoginUser(), optionally saves credentials, shows license prompts
UsersPage
Member
Signature
Description
Constructor
UsersPage(DataModel.TabPageItem item)
Creates Controls.UserListControl with transparent background
UniqueId
string
Returns "Admin_Users"
OnSetActive
void OnSetActive()
Updates user list, publishes ProgressBarEvent
OnButtonPress
bool OnButtonPress(Controls.PageButton button)
Handles Add, Edit, Delete buttons
ChallengeUserDelete
void ChallengeUserDelete(User[] users)
Shows confirmation dialog, performs deletion via UserCollection.UsersList.Delete()
SetPagePermissions
void SetPagePermissions()
Restricts buttons based on admin status and license type (TSRAIR, Standard, StandardSite disable Add)
3. Invariants
UniqueId Consistency : Every page must return a constant string from UniqueId property. This is used for page identification and navigation.
Constructor Pattern : All DataPROPage-derived classes must accept a DataModel.TabPageItem parameter passed to the base constructor.
Button Handling Pattern : Button presses are handled via OnButtonPress(PageButton button) with Enum.TryParse to match button IDs defined in nested ButtonIds enums.
User Deletion Rules (UsersPage):
Default users (Admin, PowerUser, User, Guest) cannot be deleted unless they are duplicates without default IDs
Users cannot delete themselves
Delete button visibility is controlled by `IsADefault