Beispiel #1
0
 protected override void OnItemDoubleClick(AcObjectNew obj)
 {
     if (obj is WeatherObject weather)
     {
         QuickDrive.Show(weatherId: weather.Id);
     }
 }
Beispiel #2
0
        private static string _selectNextTrackLayoutId; // TODO

        protected override void OnItemDoubleClick(AcObjectNew obj)
        {
            if (obj is TrackObjectBase track)
            {
                QuickDrive.Show(track: track);
            }
        }
Beispiel #3
0
        Uri IAcObjectsUriProvider.GetUri(AcObjectNew obj)
        {
            switch (obj?.GetType().Name)
            {
            case nameof(CarObject):
                return(UriExtension.Create(
                           SettingsHolder.Content.OldLayout ? "/Pages/Selected/SelectedCarPage.xaml?Id={0}" :
                           "/Pages/Selected/SelectedCarPage_New.xaml?Id={0}",
                           obj.Id));

            case nameof(TrackObject):
            case nameof(TrackObjectBase):
            case nameof(TrackExtraLayoutObject):
                return(UriExtension.Create("/Pages/Selected/SelectedTrackPage.xaml?Id={0}", obj.Id));

            case nameof(ShowroomObject):
                return(UriExtension.Create("/Pages/Selected/SelectedShowroomPage.xaml?Id={0}", obj.Id));

            case nameof(WeatherObject):
                return(UriExtension.Create("/Pages/Selected/SelectedWeatherPage.xaml?Id={0}", obj.Id));

            case nameof(ReplayObject):
                return(UriExtension.Create("/Pages/Selected/SelectedReplayPage.xaml?Id={0}", obj.Id));

            case nameof(FontObject):
                return(UriExtension.Create("/Pages/Selected/SelectedFontPage.xaml?Id={0}", obj.Id));

            case nameof(DriverModelObject):
                return(UriExtension.Create("/Pages/Selected/SelectedDriverModelPage.xaml?Id={0}", obj.Id));

            case nameof(PpFilterObject):
                return(UriExtension.Create("/Pages/Selected/SelectedPpFilterPage.xaml?Id={0}", obj.Id));

            case nameof(PythonAppObject):
                return(UriExtension.Create("/Pages/Selected/SelectedPythonAppPage.xaml?Id={0}", obj.Id));

            case nameof(UserChampionshipObject):
                return(UriExtension.Create("/Pages/Selected/SelectedUserChampionship.xaml?Id={0}", obj.Id));

            case nameof(CarSkinObject):
                return(UriExtension.Create("/Pages/Selected/SelectedCarSkinPage.xaml?Id={0}&CarId={1}", obj.Id, ((CarSkinObject)obj).CarId));

            case nameof(CarSetupObject):
                return(UriExtension.Create("/Pages/Selected/SelectedCarSetupPage.xaml?Id={0}&CarId={1}", obj.Id, ((CarSetupObject)obj).CarId));

            case nameof(TrackSkinObject):
                return(UriExtension.Create("/Pages/Selected/SelectedTrackSkinPage.xaml?Id={0}&TrackId={1}", obj.Id, ((TrackSkinObject)obj).TrackId));

            case nameof(RemoteCarSetupObject):
                return(UriExtension.Create("/Pages/Selected/SelectedRemoteCarSetupPage.xaml?Id={0}&CarId={1}&RemoteSource={2}", obj.Id,
                                           ((RemoteCarSetupObject)obj).CarId, ((RemoteCarSetupObject)obj).Source));

            case nameof(ServerPresetObject):
                return(UriExtension.Create("/Pages/ServerPreset/SelectedPage.xaml?Id={0}", obj.Id));
            }

            throw new NotImplementedException("Not supported type: " + obj?.GetType().Name);
        }
        public static Uri GetUri(AcObjectNew obj)
        {
            if (_provider == null)
            {
                throw new Exception(@"Provider is missing");
            }

            return(_provider.GetUri(obj));
        }
Beispiel #5
0
        private static string _selectNextTrackLayoutId; // TODO

        protected override void OnItemDoubleClick(AcObjectNew obj)
        {
            var track = obj as TrackObjectBase;

            if (track == null)
            {
                return;
            }
            QuickDrive.Show(track: track);
        }
        protected override void OnItemDoubleClick(AcObjectNew obj)
        {
            var championship = obj as UserChampionshipObject;

            if (championship == null)
            {
                return;
            }
            UserChampionships.NavigateToChampionshipPage(championship);
        }
        protected override void OnItemDoubleClick(AcObjectNew obj)
        {
            var weather = obj as WeatherObject;

            if (weather == null)
            {
                return;
            }
            QuickDrive.Show(weather: weather);
        }
Beispiel #8
0
        public async Task CloneAsync(string oldId, string newId, bool newEnabled)
        {
            if (!Directories.Actual)
            {
                return;
            }
            if (oldId == null)
            {
                throw new ArgumentNullException(nameof(oldId));
            }

            // find object which is being renamed
            var wrapper = GetWrapperById(oldId);
            var obj     = wrapper?.Value as T;

            if (obj == null)
            {
                throw new ArgumentException(ToolsStrings.AcObject_IdIsWrong, nameof(oldId));
            }

            // files to move
            var    currentLocation = obj.Location;
            string newLocation;

            try {
                newLocation = Directories.GetLocation(newId, newEnabled);
            } catch (Exception) {
                throw new InformativeException(ToolsStrings.Common_CannotDo, ToolsStrings.AcObject_DisablingNotSupported_Commentary);
            }

            if (FileUtils.Exists(newLocation))
            {
                throw new ToggleException(ToolsStrings.AcObject_PlaceIsTaken);
            }

            var currentAttached = GetAttachedFiles(currentLocation).NonNull().ToList();
            var newAttached     = GetAttachedFiles(newLocation).NonNull().ToList();

            if (newAttached.Any(FileUtils.Exists))
            {
                throw new ToggleException(ToolsStrings.AcObject_PlaceIsTaken);
            }

            // let’s move!
            try {
                await CloneOverrideAsync(oldId, newId, currentLocation, newLocation, currentAttached.Zip(newAttached, Tuple.Create), newEnabled);

                AcObjectNew.MoveRatings <T>(oldId, newId, true);
            } catch (InformativeException) {
                throw;
            } catch (Exception e) {
                throw new ToggleException(e.Message);
            }
        }
Beispiel #9
0
 protected override void OnItemDoubleClick(AcObjectNew obj)
 {
     if (obj is ReplayObject replay)
     {
         GameWrapper.StartReplayAsync(new Game.StartProperties(new Game.ReplayProperties {
             Name               = replay.Id,
             TrackId            = replay.TrackId,
             TrackConfiguration = replay.TrackConfiguration,
             WeatherId          = replay.WeatherId
         }));
     }
 }
Beispiel #10
0
        public async Task RenameAsync([NotNull] string oldId, [NotNull] string newId, bool newEnabled)
        {
            if (!Directories.Actual)
            {
                return;
            }
            if (oldId == null)
            {
                throw new ArgumentNullException(nameof(oldId));
            }

            if (GetWrapperById(newId)?.Value.Enabled == newEnabled)
            {
                throw new ToggleException("Object with the same ID already exists.");
            }

            // find object which is being renamed
            var wrapper = GetWrapperById(oldId);
            var obj     = wrapper?.Value as T;

            if (obj == null)
            {
                throw new ArgumentException(ToolsStrings.AcObject_IdIsWrong, nameof(oldId));
            }

            // files to move
            var currentLocation = obj.Location;
            var newLocation     = Directories.GetLocation(newId, newEnabled);

            if (FileUtils.Exists(newLocation))
            {
                throw new ToggleException(ToolsStrings.AcObject_PlaceIsTaken);
            }

            var currentAttached = GetAttachedFiles(currentLocation).NonNull().ToList();
            var newAttached     = GetAttachedFiles(newLocation).NonNull().ToList();

            if (newAttached.Any(FileUtils.Exists))
            {
                throw new ToggleException(ToolsStrings.AcObject_PlaceIsTaken);
            }

            // let’s move!
            try {
                await MoveOverrideAsync(oldId, newId, currentLocation, newLocation, currentAttached.Zip(newAttached, Tuple.Create), newEnabled);

                AcObjectNew.MoveRatings <T>(oldId, newId, false);
            } catch (InformativeException) {
                throw;
            } catch (Exception e) {
                throw new ToggleException(e.Message);
            }
        }
Beispiel #11
0
        public AcListPage()
        {
            SelectMode = false;

            _selectedWrapper = new DelayedPropertyWrapper <AcItemWrapper>(async v => {
                CurrentObject = v?.Loaded();

                if (v != null && SettingsHolder.Content.ScrollAutomatically)
                {
                    await Task.Delay(1);
                    _list?.ScrollIntoView(_list.SelectedItem);
                }
            });
        }
 protected override void OnItemDoubleClick(AcObjectNew obj)
 {
     if (!(obj is ServerPresetObject server))
     {
         return;
     }
     if (server.IsRunning)
     {
         server.StopServerCommand.Execute();
     }
     else
     {
         server.RunServerCommand.ExecuteAsync().Ignore();
     }
 }
        protected override void OnItemDoubleClick(AcObjectNew obj)
        {
            var replay = obj as ReplayObject;

            if (replay == null)
            {
                return;
            }

            GameWrapper.StartReplayAsync(new Game.StartProperties(new Game.ReplayProperties {
                Name               = replay.Id,
                TrackId            = replay.TrackId,
                TrackConfiguration = replay.TrackConfiguration,
                WeatherId          = replay.WeatherId
            }));
        }
Beispiel #14
0
        protected override void OnItemDoubleClick(AcObjectNew obj)
        {
            var server = obj as ServerPresetObject;

            if (server == null)
            {
                return;
            }
            if (server.IsRunning)
            {
                server.StopServerCommand.Execute();
            }
            else
            {
                server.RunServerCommand.Execute();
            }
        }
Beispiel #15
0
        private void OnSelectedItemChanged(AcObjectNew newValue)
        {
            if (InnerItemsSource == null)
            {
                return;
            }

            if (InnerItemsSource.CurrentItem != newValue)
            {
                InnerItemsSource.MoveCurrentToOrNull(newValue);
                UpdateSelected();
            }

            if (SelectionMode != SelectionMode.Single && _listBox != null)
            {
                _ignoreSelectionChange = true;
                _listBox.SelectedItems.Clear();
                _listBox.SelectedItems.Add(InnerItemsSource.CurrentItem);
                _ignoreSelectionChange = false;
            }
        }
Beispiel #16
0
 public static void SetGenericObject(DependencyObject obj, AcObjectNew value)
 {
     obj.SetValue(GenericObjectProperty, value);
 }
Beispiel #17
0
 public AcItemWrapper(AcObjectNew value)
 {
     _isLoaded = true;
     _value    = value;
 }
Beispiel #18
0
 public AcObjectEventArgs(AcObjectNew obj)
 {
     AcObject = obj;
 }