Files
spark/src/client/spark/Modules/Market/MarketShellModule.cs
T

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
}
}