Skip to content

Commit 1a5dde7

Browse files
committed
replace IAmQueryExecutor with RunQueryCommand
1 parent 424a5b1 commit 1a5dde7

5 files changed

Lines changed: 30 additions & 27 deletions

File tree

sources/RevitDBExplorer/MainWindow.xaml.cs

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
namespace RevitDBExplorer
3232
{
33-
internal partial class MainWindow : Window, INotifyPropertyChanged, IRecipient<OpenWindowCommand>
33+
internal partial class MainWindow : Window, INotifyPropertyChanged, IRecipient<OpenWindowCommand>, IRecipient<RunQueryCommand>
3434
{
3535
private readonly IMessenger iAmMessenger;
3636
private readonly QueryEditorViewModel queryEditorVM;
@@ -149,7 +149,7 @@ public MainWindow()
149149

150150
queryEditorVM = new QueryEditorViewModel(TryQueryDatabase, GenerateScriptForQueryAndOpenRDS);
151151
queryVisualizationVM = new QueryVisualizationVM();
152-
workspacesVM = new WorkspacesViewModel(iAmMessenger, queryEditorVM, OpenRDSWithGivenScript);
152+
workspacesVM = new WorkspacesViewModel(iAmMessenger, OpenRDSWithGivenScript);
153153
visualizationsManagerVM = new VisualizationsManagerVM(rvController);
154154

155155
InitializeComponent();
@@ -165,7 +165,20 @@ public MainWindow()
165165
globalKeyboardHook.KeyDown += GlobalKeyboardHook_KeyDown;
166166
}
167167

168-
168+
169+
public void Receive(OpenWindowCommand cmd)
170+
{
171+
SaveUserSettings();
172+
var window = new MainWindow(cmd.sourceOfObjects);
173+
window.Owner = this;
174+
window.Show();
175+
}
176+
public void Receive(RunQueryCommand cmd)
177+
{
178+
queryEditorVM.Query(cmd.query);
179+
}
180+
181+
169182
private async Task InitializeAsync()
170183
{
171184
(IsNewVerAvailable, NewVersionLink) = await VersionChecker.CheckIfNewVersionIsAvailable();
@@ -225,13 +238,7 @@ private void Workspaces_SelectedItemChanged(SelectedItemChangedEventArgs obj)
225238
{
226239
UpdateVisualizations();
227240
}
228-
public void Receive(OpenWindowCommand cmd)
229-
{
230-
SaveUserSettings();
231-
var window = new MainWindow(cmd.sourceOfObjects);
232-
window.Owner = this;
233-
window.Show();
234-
}
241+
235242
private async void TryQueryDatabase(string query)
236243
{
237244
Workspaces.Reset();
@@ -422,4 +429,6 @@ protected virtual void OnPropertyChanged([CallerMemberName] String propertyName
422429
}
423430

424431
internal sealed record OpenWindowCommand(SourceOfObjects sourceOfObjects);
432+
internal sealed record RunQueryCommand(string query);
433+
425434
}

sources/RevitDBExplorer/UIComponents/List/ListVM.cs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ internal class ListVM : BaseViewModel
2828
private readonly ObservableCollection<DynamicGridViewColumn> columnsFor1;
2929
private readonly ObservableCollection<DynamicGridViewColumn> columnsFor2;
3030
private readonly IMessenger iAmMessenger;
31-
private readonly IAmQueryExecutor queryExecutor;
3231
private readonly IAmScriptOpener scriptOpener;
3332
private ObservableCollection<IListItem> listItems = new();
3433
private ObservableCollection<DynamicGridViewColumn> columns = new();
@@ -163,10 +162,9 @@ public bool IsComparisonActive
163162
}
164163

165164

166-
public ListVM(IMessenger iAmMessenger, IAmQueryExecutor queryExecutor, IAmScriptOpener scriptOpener)
165+
public ListVM(IMessenger iAmMessenger, IAmScriptOpener scriptOpener)
167166
{
168-
this.iAmMessenger = iAmMessenger;
169-
this.queryExecutor = queryExecutor;
167+
this.iAmMessenger = iAmMessenger;
170168
this.scriptOpener = scriptOpener;
171169
columnsFor1 = new ObservableCollection<DynamicGridViewColumn>()
172170
{
@@ -396,7 +394,7 @@ private void SearchForParameterValue(object obj)
396394
{
397395
if (obj is SnoopableParameter snoopableParameter)
398396
{
399-
queryExecutor.Query(snoopableParameter.GenerateQueryForForParameterValue());
397+
iAmMessenger.Send(new RunQueryCommand(snoopableParameter.GenerateQueryForForParameterValue()));
400398
}
401399
}
402400
private void GenerateCSharpCode(object obj, TemplateInputsKind inputsKind)
@@ -433,10 +431,7 @@ private async void Reload()
433431

434432
internal record class ListSelectedItemChangedEventArgs(IListItem OldOne, IListItem NewOne);
435433

436-
internal interface IAmQueryExecutor
437-
{
438-
void Query(string query);
439-
}
434+
440435
internal interface IAmScriptOpener
441436
{
442437
void Open(string script);

sources/RevitDBExplorer/UIComponents/QueryEditor/QueryEditorViewModel.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
namespace RevitDBExplorer.UIComponents.QueryEditor
1010
{
11-
internal class QueryEditorViewModel : BaseViewModel, IAmQueryExecutor
11+
internal class QueryEditorViewModel : BaseViewModel
1212
{
1313
private readonly IAutocompleteItemProvider databaseQueryAutocompleteItemProvider = new AutocompleteItemProvider();
1414
private readonly Action<string> tryQueryDatabase;
@@ -85,7 +85,7 @@ public void ResetDatabaseQuery()
8585
databaseQuery = "";
8686
OnPropertyChanged(nameof(DatabaseQuery));
8787
}
88-
void IAmQueryExecutor.Query(string query)
88+
public void Query(string query)
8989
{
9090
DatabaseQuery = query;
9191
}

sources/RevitDBExplorer/UIComponents/Workspaces/WorkspaceViewModel.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,11 @@ public GridLength FirstColumnWidth
8787
}
8888

8989

90-
public WorkspaceViewModel(IMessenger iAmMessenger, IAmQueryExecutor queryExecutor, Action<string> openRDSWithGivenScript)
90+
public WorkspaceViewModel(IMessenger iAmMessenger, Action<string> openRDSWithGivenScript)
9191
{
9292
this.iAmMessenger = new MessengerWithSender(this, iAmMessenger);
9393
this.openRDSWithGivenScript = openRDSWithGivenScript;
94-
listVM = new ListVM(this.iAmMessenger, queryExecutor, this);
94+
listVM = new ListVM(this.iAmMessenger, this);
9595
ExplorerTree.SelectedItemChanged += Tree_SelectedItemChanged;
9696
UtilityTree.SelectedItemChanged += Tree_SelectedItemChanged;
9797
List.SelectedItemChanged += List_SelectedItemChanged;

sources/RevitDBExplorer/UIComponents/Workspaces/WorkspacesViewModel.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ internal class WorkspacesViewModel : BaseViewModel, IRecipient<OpenWorkspaceComm
2222
{
2323
private readonly IMessenger iAmMessenger;
2424
private readonly Action<string> openRDSWithGivenScript;
25-
private readonly IAmQueryExecutor queryExecutor;
2625
private readonly ObservableCollection<WorkspaceViewModel> workspaces = new ObservableCollection<WorkspaceViewModel>();
2726
private WorkspaceViewModel selectedWorkspace;
2827
private double firstColumnWidth;
@@ -71,11 +70,11 @@ public double Width
7170
}
7271

7372

74-
public WorkspacesViewModel(IMessenger iAmMessenger, IAmQueryExecutor queryExecutor, Action<string> openRDSWithGivenScript)
73+
public WorkspacesViewModel(IMessenger iAmMessenger, Action<string> openRDSWithGivenScript)
7574
{
7675
this.iAmMessenger = iAmMessenger;
7776
iAmMessenger.RegisterAll(this);
78-
this.queryExecutor = queryExecutor;
77+
7978
this.openRDSWithGivenScript = openRDSWithGivenScript;
8079
firstColumnWidth = AppSettings.Default.FirstColumnWidth;
8180
}
@@ -157,7 +156,7 @@ private WorkspaceViewModel GetFirstAvailableWorkspace()
157156
}
158157
private WorkspaceViewModel CreateNewWorkspace()
159158
{
160-
var workspace = new WorkspaceViewModel(iAmMessenger, queryExecutor, openRDSWithGivenScript);
159+
var workspace = new WorkspaceViewModel(iAmMessenger, openRDSWithGivenScript);
161160
workspace.IsActive = false;
162161
workspace.ListSelectedItemChanged += Workspace_ListSelectedItemChanged;
163162
workspace.TreeSelectedItemChanged += Workspace_TreeSelectedItemChanged;

0 commit comments

Comments
 (0)