示例#1
0
        public TrackObject(IFileAcManager manager, string id, bool enabled)
            : base(manager, id, enabled)
        {
            InitializeLocationsOnce();

            try {
                var information = GetLayouts();
                if (information != null)
                {
                    _layoutLocation = information.MainLayout;
                    InitializeLocationsInner(_layoutLocation);

                    LayoutId     = information.SimpleMainLayout ? null : Path.GetFileName(_layoutLocation);
                    IdWithLayout = information.SimpleMainLayout ? Id : $@"{Id}/{LayoutId}";
                    MultiLayouts = new BetterObservableCollection <TrackObjectBase>(
                        information.AdditionalLayouts.Select(x => {
                        var c              = new TrackExtraLayoutObject(manager, this, enabled, x);
                        c.PropertyChanged += Configuration_PropertyChanged;
                        return(c);
                    }).Prepend((TrackObjectBase)this));
                    return;
                }
            } catch (AcErrorException e) {
                AddError(e.AcError);
            }

            InitializeLocationsInner(Path.Combine(Location, "ui"));
            _layoutLocation = null;
            LayoutId        = null;
            IdWithLayout    = Id;
            MultiLayouts    = null;
        }
示例#2
0
        public TrackObject(IFileAcManager manager, string id, bool enabled)
                : base(manager, id, enabled) {
            InitializeLocationsOnce();

            try {
                var information = GetLayouts();
                if (information != null) {
                    _layoutLocation = information.MainLayout;
                    InitializeLocationsInner(_layoutLocation);

                    LayoutId = information.SimpleMainLayout ? null : Path.GetFileName(_layoutLocation);
                    IdWithLayout = information.SimpleMainLayout ? Id : $@"{Id}/{LayoutId}";
                    MultiLayouts = new BetterObservableCollection<TrackObjectBase>(
                            information.AdditionalLayouts.Select(x => {
                                var c = new TrackExtraLayoutObject(manager, this, enabled, x);
                                c.PropertyChanged += Configuration_PropertyChanged;
                                return c;
                            }).Prepend((TrackObjectBase)this));
                    return;
                }
            } catch (AcErrorException e) {
                AddError(e.AcError);
            }

            InitializeLocationsInner(Path.Combine(Location, "ui"));
            _layoutLocation = null;
            LayoutId = null;
            IdWithLayout = Id;
            MultiLayouts = null;
        }