diff --git a/src/client/spark/core/ShellInterface/UserSettings/ISettingsMigrationRule.cs b/src/client/spark/core/ShellInterface/UserSettings/ISettingsMigrationRule.cs index ce301199a..ef6ca5d64 100644 --- a/src/client/spark/core/ShellInterface/UserSettings/ISettingsMigrationRule.cs +++ b/src/client/spark/core/ShellInterface/UserSettings/ISettingsMigrationRule.cs @@ -1,4 +1,5 @@ -using bts.shell.pnl; +using bts.shell.orderbook; +using bts.shell.pnl; using bts.utils; using mbts.ui.settings; using System; @@ -15,6 +16,7 @@ namespace bts.settings { // determine the various windows to which such rules apply. interface IFillsGridSettingsMigrationRule : ISettingsMigrationRule { } interface IMarketViewGridSettingsMigrationRule : ISettingsMigrationRule { } + interface IOrderBookGridSettingsMigrationRule : ISettingsMigrationRule { } interface IPAndLGridSettingsMigrationRule : ISettingsMigrationRule { } interface IPNLSettingsMigrationRule : ISettingsMigrationRule { } interface ISyntheticManagementMigrationRule : ISettingsMigrationRule { } diff --git a/src/client/spark/core/ShellInterface/UserSettings/UserSettingsHub.cs b/src/client/spark/core/ShellInterface/UserSettings/UserSettingsHub.cs index 50dd84359..a88ba714c 100644 --- a/src/client/spark/core/ShellInterface/UserSettings/UserSettingsHub.cs +++ b/src/client/spark/core/ShellInterface/UserSettings/UserSettingsHub.cs @@ -1,5 +1,6 @@ using bts; using bts.settings; +using bts.shell.orderbook; using bts.shell.pnl; using bts.utils; using mbts.spark; @@ -28,6 +29,9 @@ namespace mbts.persist { _pandl_propi = ImmutableProperty.create(us => us.pnl_grid, (us, gs) => us.with(provided_pnl_gridsettings: gs)), _synth_propi = ImmutableProperty.create(us => us.synthetic_management_grid, (us, gs) => us.with(provided_synthetic_management_gridsettings: gs)); + static readonly IImmutableProperty + _orderbook_propi = ImmutableProperty.create(us => us.order_book_grid, (us, gs) => us.with(order_book_grid: gs)); + static readonly IImmutableProperty _pnl_propi = ImmutableProperty.create(us => us.pnl, (us, pnl) => us.with(pnl: pnl)); @@ -35,6 +39,7 @@ namespace mbts.persist { readonly BehaviorSubject _default_settings_subject = new BehaviorSubject(UserSettings.factory_defaults); readonly IEnumerable _fills_migration_rules; readonly IEnumerable _mview_migration_rules; + readonly IEnumerable _orderbook_migration_rules; readonly IEnumerable _pandl_migration_rules; readonly IEnumerable _pnl_migration_rules; readonly IEnumerable _synth_migration_rules; @@ -47,6 +52,7 @@ namespace mbts.persist { IUserPersist persist, [ImportMany]IEnumerable fills_migration_rules, [ImportMany]IEnumerable mview_migration_rules, + [ImportMany]IEnumerable orderbook_migration_rules, [ImportMany]IEnumerable pandl_migration_rules, [ImportMany]IEnumerable pnl_migration_rules, [ImportMany]IEnumerable synth_migration_rules) { @@ -54,6 +60,7 @@ namespace mbts.persist { _persist = persist; _fills_migration_rules = fills_migration_rules ?? Enumerable.Empty(); _mview_migration_rules = mview_migration_rules ?? Enumerable.Empty(); + _orderbook_migration_rules = orderbook_migration_rules ?? Enumerable.Empty(); _pandl_migration_rules = pandl_migration_rules ?? Enumerable.Empty(); _pnl_migration_rules = pnl_migration_rules ?? Enumerable.Empty(); _synth_migration_rules = synth_migration_rules ?? Enumerable.Empty(); @@ -130,6 +137,12 @@ namespace mbts.persist { _mview_migration_rules, _mview_propi); + public IWindowSettingsManager create_orderbook_settings_manager(OrderBookGridSettings instance_settings) => + _create_settings_manager( + instance_settings, + _orderbook_migration_rules, + _orderbook_propi); + public IWindowSettingsManager create_pandl_settings_manager(GridSettings instance_settings) => _create_settings_manager( instance_settings,