public InformationViewModel()
        {
            this.Settings = SettingsHost.Instance <KanColleWindowSettings>();
            if (this.Settings?.Dock == Dock.Right || this.Settings?.Dock == Dock.Left || this.Settings?.IsSplit)
            {
                this.Vertical   = Visibility.Collapsed;
                this.Horizontal = Visibility.Visible;
            }
            else
            {
                this.Vertical   = Visibility.Visible;
                this.Horizontal = Visibility.Collapsed;
            }
            this.TabItems = new List <TabItemViewModel>
            {
                (this.Overview = new OverviewViewModel(this).AddTo(this)),
                (this.Fleets = new FleetsViewModel().AddTo(this)),
                (this.Shipyard = new ShipyardViewModel(this.Fleets).AddTo(this)),
                (this.Quests = new QuestsViewModel(this.Fleets).AddTo(this)),
                (this.Expeditions = new ExpeditionsViewModel(this.Fleets).AddTo(this)),
                (this.Tools = new ToolsViewModel(this.Fleets).AddTo(this)),
            };
            this.SystemTabItems = new List <TabItemViewModel>
            {
                SettingsViewModel.Instance,
                #region DEBUG
#if DEBUG
                new DebugTabViewModel().AddTo(this),
#endif
                #endregion
            };
            this.SelectedItem = this.TabItems.FirstOrDefault();

            this.Admiral   = new AdmiralViewModel().AddTo(this);
            this.Materials = new MaterialsViewModel().AddTo(this);
            this.Ships     = new ShipsViewModel().AddTo(this);
            this.SlotItems = new SlotItemsViewModel().AddTo(this);

            _AkashiTimer = new AkashiTimerViewModel();

            KanColleSettings.DisplayMaterialExtended.ValueChanged += (s, e) => this.MaterialExtended = e.NewValue;
            this.MaterialExtended = KanColleSettings.DisplayMaterialExtended;
        }
        public InformationViewModel()
        {
            this.Settings = SettingsHost.Instance <KanColleWindowSettings>();
            if (this.Settings?.Dock == Dock.Right || this.Settings?.Dock == Dock.Left || this.Settings?.IsSplit)
            {
                this.Vertical   = Visibility.Collapsed;
                this.Horizontal = Visibility.Visible;
            }
            else
            {
                this.Vertical   = Visibility.Visible;
                this.Horizontal = Visibility.Collapsed;
            }
            this.TabItems = new List <TabItemViewModel>
            {
                (this.Overview = new OverviewViewModel(this).AddTo(this)),
                (this.Fleets = new FleetsViewModel().AddTo(this)),
                (this.Shipyard = new ShipyardViewModel(this.Fleets).AddTo(this)),
                (this.Quests = new QuestsViewModel(this.Fleets).AddTo(this)),
                (this.Expeditions = new ExpeditionsViewModel(this.Fleets).AddTo(this)),
                (this.Tools = new ToolsViewModel(this.Fleets).AddTo(this)),
            };
            this.SystemTabItems = new List <TabItemViewModel>
            {
                SettingsViewModel.Instance,
                #region DEBUG
#if DEBUG
                new DebugTabViewModel().AddTo(this),
#endif
                #endregion
            };
            this.SelectedItem = this.TabItems.FirstOrDefault();

            this.Admiral   = new AdmiralViewModel().AddTo(this);
            this.Materials = new MaterialsViewModel().AddTo(this);
            this.Ships     = new ShipsViewModel().AddTo(this);
            this.SlotItems = new SlotItemsViewModel().AddTo(this);

            this.CompositeDisposable.Add(new PropertyChangedEventListener(this.Ships)
            {
                { nameof(this.Ships.Count), (sender, args) => this.RaisePropertyChanged(nameof(this.ShipsCountWarning)) }
            });
            this.CompositeDisposable.Add(new PropertyChangedEventListener(this.SlotItems)
            {
                { nameof(this.SlotItems.Count), (sender, args) => this.RaisePropertyChanged(nameof(this.SlotItemsCountWarning)) }
            });
            this.CompositeDisposable.Add(new PropertyChangedEventListener(KanColleWrapper.KanColleClient.Current.Homeport)
            {
                { nameof(KanColleWrapper.KanColleClient.Current.Homeport.Admiral), (sender, args) => {
                      this.CompositeDisposable.Add(new PropertyChangedEventListener(KanColleWrapper.KanColleClient.Current.Homeport.Admiral)
                        {
                            { nameof(KanColleWrapper.KanColleClient.Current.Homeport.Admiral.MaxShipCount), (sender2, args2) => this.RaisePropertyChanged(nameof(this.ShipsCountWarning)) },
                            { nameof(KanColleWrapper.KanColleClient.Current.Homeport.Admiral.MaxSlotItemCount), (sender2, args2) => this.RaisePropertyChanged(nameof(this.SlotItemsCountWarning)) }
                        });
                      this.RaisePropertyChanged(nameof(this.ShipsCountWarning));
                      this.RaisePropertyChanged(nameof(this.SlotItemsCountWarning));
                  } }
            });

            _AkashiTimer = new AkashiTimerViewModel();

            KanColleSettings.DisplayMaterialExtended.ValueChanged += (s, e) => this.MaterialExtended = e.NewValue;
            this.MaterialExtended = KanColleSettings.DisplayMaterialExtended;
        }