55 lines
1.6 KiB
C#
55 lines
1.6 KiB
C#
using bts.api;
|
|
using bts.spark;
|
|
using mbts;
|
|
using mbts.co2;
|
|
using mbts.persist;
|
|
using mbts.spark;
|
|
using mbts.ui;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.Composition;
|
|
using System.IO;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Media;
|
|
using static mbts.ui.shell.ProtoBufSerializationHelper;
|
|
|
|
namespace bts.shell {
|
|
[Export(typeof(IShellModule))]
|
|
class MarketShellModule : IShellModule {
|
|
[ImportingConstructor]
|
|
public MarketShellModule(IBus bus, MDConsumer consumer, UserSettingsHub settings_hub, OrdersModel orders_model) {
|
|
_tsf = new TimeAndSalesWindowFactory(this, bus, consumer, settings_hub);
|
|
_mvf = new MarketViewWindowFactory(this, bus, settings_hub, orders_model);
|
|
}
|
|
|
|
TimeAndSalesWindowFactory _tsf;
|
|
MarketViewWindowFactory _mvf;
|
|
|
|
#region IShellModule
|
|
|
|
public ImageSource icon => Icons.Date;
|
|
|
|
public string name => "Market";
|
|
|
|
public int priority => 10;
|
|
|
|
public IEnumerable<SparkCommand> actions => new [] {
|
|
SparkCommands.PickMarketView,
|
|
SparkCommands.PickTimeAndSales
|
|
};
|
|
|
|
public Task<IShellWindow> create(Stream load_stream) {
|
|
if (try_deserialize(load_stream, out ShellSerializationHeader header)) {
|
|
if (header.name == _tsf.name) return _tsf.load_window(load_stream, header.version);
|
|
if (header.name == _mvf.name) return _mvf.load_window(load_stream, header.version);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public void Dispose() {
|
|
Disposable.dispose(ref _tsf);
|
|
Disposable.dispose(ref _mvf);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |