5.8 KiB
5.8 KiB
source_files, generated_at, model, schema_version, sha256
| source_files | generated_at | model | schema_version | sha256 | |
|---|---|---|---|---|---|
|
2026-04-17T16:01:00.422137+00:00 | zai-org/GLM-5-FP8 | 1 | ea98f9d39127a201 |
GroupImportViewModel Documentation
1. Purpose
GroupImportViewModel is the ViewModel responsible for importing Groups and TestObjects from .grp files in a WPF/Prism-based application. It orchestrates the complete import workflow: file browsing, parsing source files into group/channel structures, validating data, previewing import contents, and executing the import on a background thread. The class implements IGroupImportViewModel and serves as the data context for three views (IGroupImportOptionsView, IGroupImportPreviewView, IGroupImportImportView).
2. Public Interface
Constructor
public GroupImportViewModel(
IGroupImportOptionsView optionsView,
IGroupImportPreviewView previewView,
IGroupImportImportView importView,
IRegionManager regionManager,
IEventAggregator eventAggregator,
IUnityContainer unityContainer)
Initializes the ViewModel, wires up view DataContexts, creates interaction requests, and subscribes to RaiseNotification and BusyIndicatorChangeNotification events.
Public Methods
| Method | Signature | Description |
|---|---|---|
ParseSourceFiles |
void ParseSourceFiles(string userTags) |
Reads .grp files from SourceFiles, parsing groups and channels. Populates Groups and Channels arrays. |
Import |
void Import() |
Queues the import operation on a background thread via ThreadPool.QueueUserWorkItem. |
SetStatus |
void SetStatus(string message, Color color) |
Updates ImportProgressColor, hides progress bar, sets ImportProgressText, and invokes EnableUI. |
Reset |
void Reset() |
Re-initializes the ViewModel to default state (clears SourceFiles, Channels, Groups, resets progress UI). |
CheckGroupName |
void CheckGroupName() |
Validates group names for duplicates within the import and against existing groups (if Overwrite is false). Sets GroupNameHasError on each group. |
OnPropertyChanged |
void OnPropertyChanged(string propertyName) |
Raises the PropertyChanged event. |
InvalidateChannels |
void InvalidateChannels() |
Raises PropertyChanged for IncompleteChannels and CompleteChannels. |
Cleanup |
void Cleanup() |
Empty implementation. |
CleanupAsync |
Task CleanupAsync() |
Returns Task.CompletedTask. |
Initialize |
void Initialize() / void Initialize(object parameter) / void Initialize(object parameter, object model) |
Empty implementations. |
InitializeAsync |
Task InitializeAsync() / Task InitializeAsync(object parameter) |
Return Task.CompletedTask. |
Activated |
void Activated() |
Empty implementation. |
Commands
| Property | Type | Description |
|---|---|---|
ImportBrowseCommand |
DelegateCommand |
Opens an OpenFileDialog for selecting .grp files. Sets SourceFiles and BrowseOk, then invokes SwitchNavSteps with Preview step. |
Public Properties
| Property | Type | Description |
|---|---|---|
ImportOptionsView |
IGroupImportOptionsView |
The options view instance. |
ImportPreviewView |
IGroupImportPreviewView |
The preview view instance. |
ImportView |
IGroupImportImportView |
The import view instance. |
NotificationRequest |
InteractionRequest<Notification> |
Interaction request for notifications. |
ConfirmationRequest |
InteractionRequest<Confirmation> |
Interaction request for confirmations. |
IsDirty |
bool |
Always returns false (private setter never called). |
IsBusy |
bool |
Bound to BusyIndicatorChangeNotification event. |
IsMenuIncluded |
bool |
Menu inclusion flag. |
IsNavigationIncluded |
bool |
Navigation inclusion flag. |
HeaderInfo |
string |
Returns "MainRegion". |
ImportProgressText |
string |
Status text for import progress bar. |
ImportProgressColor |
Color |
Color of the import progress bar. |
ImportProgressBarVisibility |
Visibility |
Controls progress bar visibility. |
ImportProgressValue |
double |
Percentage complete of import process. |
SourceFiles |
string[] |
Array of .grp file paths to parse. Initialized to empty array. |
BrowseOk |
bool |
Indicates if file browse completed successfully. Default false. |
Groups |
GroupGRPImportGroup[] |
All parsed groups. Initialized to empty array. |
Channels |
GroupGRPImportChannel[] |
All channels from all groups. Setter calls InvalidateChannels(). |
IncompleteChannels |
GroupGRPImportChannel[] |
Computed: channels that will NOT be imported (errors other than InvalidFullScaleInput or InvalidInvertInput). |
CompleteChannels |
GroupGRPImportChannel[] |
Computed: channels that WILL be imported (no error, or only InvalidFullScaleInput/InvalidInvertInput). |
Logger |
FileUtils.LogDelegate |
Logging facility. If null, no logging occurs. |
SwitchNavSteps |
SwitchNavStepsDelegate |
Command for switching navigation steps. |
CheckGroupExists |
CheckGroupExistsDelegate |
Command to check if a group exists in the application. |
CheckSensorExists |
CheckSensorExistsDelegate |
Command to check if a sensor exists. |
CreateGroup |
CreateGroupDelegate |
Command to create a group. |
AddChannel |
AddChannelToGroupDelegate |
Command to add a channel to a group. |
CommitGroups |
CommitGroupsDelegate |
Command to commit groups to the database. |
DisableUI |
Disable_UIDelegate |
Command to disable the UI during import. |
EnableUI |
Enable_UIDelegate |
Command to enable the UI after import. |
Events
public event PropertyChangedEventHandler PropertyChanged;
3. Invariants
- File Format:
.grpfiles