Exemplo n.º 1
0
        public static void Invoke()
        {
            var selectDialog = new GenericSelectEntitiesDialog <TransportSystem>(
                "Выберите транспортную систему",
                TransportSystem.PropertyMatcher(),
                App.DataBase.GetCollection <TransportSystem>().FindAll());

            if (selectDialog.Selected == null)
            {
                return;
            }
            _selectedSystem = selectDialog.Selected[0];

            _availableRoadTypes = App.DataBase.GetCollection <RoadTypes>().FindOne(ct => ct.IsPrimary);

            _idToNameCitiesMap = App.DataBase.GetCitiesOfTransportSystem(_selectedSystem)
                                 .ToDictionary(c => c.Id, c => c.Name);
            _nameToIdCitiesMap = _idToNameCitiesMap
                                 .ToDictionary(kv => kv.Value, kv => kv.Key);

            _dialog = new GenericEntityDialog <Road>()
            {
                Title     = "Маршруты",
                ListTitle = "Доступные маршруты",
                OpenAddNewItemWindowButtonTitle = "Открыть окно для добавления маршрута",
                AddNewItemWindowTitle           = "Добавить маршрут",
                UpdateItemWindowTitle           = "Обновить маршрут",
                AddItemFunction          = AddRoad,
                UpdateItemFunction       = UpdateRoad,
                RemoveItemFunction       = RemoveRoad,
                UpdateCollectionFunction = UpdateCollection
            };

            _dialog.AddColumns(Road.PropertyMatcher(_idToNameCitiesMap));

            InitFromCityProperty();
            InitToCityProperty();
            InitLengthProperty();
            InitCostProperty();
            InitTimeProperty();
            InitRoadTypeProperty();
            InitTimeTableProperty();

            UpdateCollection();
            _dialog.ShowDialog();
        }
        // init methods
        private void InitTransportSystemsProperty()
        {
            _transportSystemsControl = new GenericTableRowControl <TransportSystem>()
            {
                TitleValue   = "Транспортные системы",
                TitleToolTip = "Представляет собой набор транпортных систем по которым будет работать алгоритм",
                OnAdd        = alreadyUsedTransportSystems => {
                    var dialog = new GenericSelectEntitiesDialog <TransportSystem>(
                        "Выберите транспортные системы учавствующие в работе алгоритма",
                        TransportSystem.PropertyMatcher(),
                        _availableTransportSystems.Where(ts => !alreadyUsedTransportSystems.Contains(ts)));
                    return(dialog.Selected);
                },
                Value = _config.TransportSystems
            };
            _transportSystemsControl.AddColumns(TransportSystem.PropertyMatcher());

            PropertiesPanelLeft.Children.Add(_transportSystemsControl.GetUiElement);
        }
        private void InitUnusedRoadTypesProperty()
        {
            _roadUnusedTypesControl = new GenericTableRowControl <RoadType>()
            {
                TitleValue   = "Фильтр не используемых маршрутов",
                TitleToolTip =
                    "Представляет собой набор типов маршрутов, маршрут имеющий тип из списка не будет использоваться в работе алгоритма",
                OnAdd = alreadyUsedRoadTypes => {
                    var dialog = new GenericSelectEntitiesDialog <RoadType>(
                        "Выборите не используемые маршруты",
                        RoadType.PropertyMatcher(),
                        _availableRoadTypes.Values.Where(rt => !alreadyUsedRoadTypes.Contains(rt)));
                    return(dialog.Selected);
                },
                Value = _config.RoadTypes
            };
            _roadUnusedTypesControl.AddColumns(RoadType.PropertyMatcher());

            PropertiesPanelRight.Children.Add(_roadUnusedTypesControl.GetUiElement);
        }
        private void InitCityTagsProperty()
        {
            _cityTagsControl = new GenericTableRowControl <CityTag>()
            {
                TitleValue   = "Выбор центральных нас. пунктов",
                TitleToolTip =
                    "Представляет собой набор тэгов, нас. пункт имеющий хотя-бы 1 тег из списка будет считаться центральным",
                OnAdd = alreadyUsedCityTags => {
                    var dialog = new GenericSelectEntitiesDialog <CityTag>(
                        "Выберите типы центральных населенных пунктов",
                        CityTag.PropertyMatcher(),
                        _availableCityTags.Values.Where(ct => !alreadyUsedCityTags.Contains(ct)));
                    return(dialog.Selected);
                },
                Value = _config.CityTags
            };
            _cityTagsControl.AddColumns(CityTag.PropertyMatcher());

            PropertiesPanelRight.Children.Add(_cityTagsControl.GetUiElement);
        }
Exemplo n.º 5
0
        private static void InitTagsProperty()
        {
            _tagsControl = new GenericTableRowControl <CityTag>()
            {
                TitleValue   = "Тэги нас. пункта",
                TitleToolTip =
                    "Представляет собой набор тэгов которые принадлежат данному нас. пункту, используется при спецификации алгоритма",
                OnAdd = alreadyUsedCityTags => {
                    var dialog = new GenericSelectEntitiesDialog <CityTag>(
                        "Добавить тэги к населенному пункту",
                        CityTag.PropertyMatcher(),
                        _availableCityTags.Values.Where(ct => !alreadyUsedCityTags.Contains(ct)));
                    return(dialog.Selected);
                }
            };
            _tagsControl.AddColumns(CityTag.PropertyMatcher());

            _dialog.AddProperty(
                _tagsControl.GetUiElement,
                () => _tagsControl.Value = new List <CityTag>(),
                c => _tagsControl.Value  = c.Tags);
        }
Exemplo n.º 6
0
        private static void InitTransportSystemsProperty()
        {
            _transportSystemsControl = new GenericTableRowControl <TransportSystem>()
            {
                TitleValue   = "Транспортные системы",
                TitleToolTip =
                    "Список транспортных систем к которым принадлежит данный населенный пункт",
                OnAdd = alreadyUsedTransportSystems => {
                    var dialog = new GenericSelectEntitiesDialog <TransportSystem>(
                        "Добавить транспортные системы к населенному пункту",
                        TransportSystem.PropertyMatcher(),
                        _availableTransportSystems.Where(ts => !alreadyUsedTransportSystems.Contains(ts)));
                    return(dialog.Selected);
                }
            };
            _transportSystemsControl.AddColumns(TransportSystem.PropertyMatcher());

            _dialog.AddProperty(
                _transportSystemsControl.GetUiElement,
                () => _transportSystemsControl.Value = new List <TransportSystem>(),
                c => _transportSystemsControl.Value  =
                    _availableTransportSystems.Where(ts => c.TransportSystemIds.Contains(ts.Id)).ToList());
        }