コード例 #1
0
        private void OnEditOptionsExecute()
        {
            var placeOptVM = new PlaceOptionsViewModel(Place.Options);

            if (InsService.ShowDialog(placeOptVM) == true)
            {
                Place.Update();
            }
        }
コード例 #2
0
        private void OnEditTreeOptionsExecute()
        {
            var treeOptionsVM = new TreeOptionsViewModel(Tree.TreeOptions);

            if (InsService.ShowDialog(treeOptionsVM) == true)
            {
                // Обновление расчета елочек
                Tree.UpdateVisual();
            }
        }
コード例 #3
0
        /// <summary>
        /// Определение расчетного сервиса по Options
        /// </summary>
        /// <returns>Изменилось или нет</returns>
        public bool DefineCalcService()
        {
            bool res = false;

            if (CalcService == null || !CalcService.IsIdenticalOptions(Options))
            {
                CalcService = InsService.GetCalcService(Options);
                res         = true;
            }
            return(res);
        }
コード例 #4
0
        public override int SetAttributes(Drawable drawable, DrawableTraits traits)
        {
            var dbPt     = drawable as DBPoint;
            var insPoint = InsService.FindInsPoint(dbPt.Position, dbPt.Database);

            if (insPoint != null && insPoint.InsValue != null)
            {
                traits.TrueColor = Color.FromColor(insPoint.InsValue.Requirement.Color).EntityColor;
                return(1);
            }
            return(base.SetAttributes(drawable, traits));
        }
コード例 #5
0
        private void OnShowOptionsExecute(FrontGroup group)
        {
            var fgOptionsVM = new FrontGroupOptionsViewModel(group.Options, group);

            if (InsService.ShowDialog(fgOptionsVM) == true)
            {
                if (fgOptionsVM.SelectedExtents != null)
                {
                    group.SelectRegion = fgOptionsVM.SelectedExtents.Value;
                }
                group.Update();
            }
        }
コード例 #6
0
ファイル: InsViewModel.cs プロジェクト: vildar82/GP_PIK_Acad
 private void OnUpdateExecute()
 {
     try
     {
         Inspector.Clear();
         Model?.Update();
     }
     catch (Exception ex)
     {
         InsService.ShowMessage(ex, "");
     }
     Inspector.Show();
     Inspector.Clear();
 }
コード例 #7
0
        private void OnShowHouseOptionsExecute(House house)
        {
            HouseOptions houseOptions = house.Options ?? new HouseOptions(house.FrontGroup.Options);

            var fgOptionsVM = new FrontGroupOptionsViewModel(houseOptions, null);

            if (InsService.ShowDialog(fgOptionsVM) == true)
            {
                if (!houseOptions.Equals(house.FrontGroup.Options))
                {
                    house.Options = houseOptions;
                    house.Update();
                }
            }
        }
コード例 #8
0
        public Place AddPlace(ObjectId placeId)
        {
            // Проверка нет ли уже такой площадки (по placeId)
            var place = FindPlace(placeId);

            if (place != null)
            {
                InsService.ShowMessage("Эта площадка уже добавлена - " + place.Name, System.Windows.MessageBoxImage.Information);
                return(null);
            }
            place = new Place(placeId, this);
            Places.Add(place);
            place.Update();
            return(place);
        }
コード例 #9
0
ファイル: InsViewModel.cs プロジェクト: vildar82/GP_PIK_Acad
        private void OnEditInsOptionsExecute()
        {
            var optVM = new InsOptionsViewModel(Model.Options);

            if (InsService.ShowDialog(optVM) == true)
            {
                bool needUpdate;
                Model.SetOptions(optVM.InsOptions, out needUpdate);
                if (needUpdate)
                {
                    OnUpdateExecute();
                }
                UpdateBinding();
            }
        }
コード例 #10
0
        private void OnEditPointExecute(InsPoint insPoint)
        {
            var building = insPoint?.Building;
            //if (building == null) return;

            var oldBuildingType = building?.BuildingType ?? Elements.Buildings.BuildingTypeEnum.Living;

            var selectedPoints = Tree.Points.Where(w => w.IsSelected).ToList();

            var insPointVM = new InsPointViewModel(insPoint, selectedPoints.Count == 1);

            //var uiVisualizerService = ServiceLocator.Default.ResolveType<IUIVisualizerService>();
            if (InsService.ShowDialog(insPointVM) != true)
            {
                return;
            }
            // Если измениля тип здания - то пересчет всех точек на этом здании
            if (building != null && oldBuildingType != building.BuildingType)
            {
                //// Учет изменения типа здания для всех точек на этом здании
                Tree.Model.ChangeBuildingType(building);
            }
            else
            {
                if (selectedPoints.Count > 1)
                {
                    selectedPoints.Remove(insPoint);
                    foreach (var selPt in selectedPoints)
                    {
                        selPt.Height = insPoint.Height;
                        if (insPoint.Window != null)
                        {
                            selPt.Window = insPoint.Window;
                        }
                        selPt.Update();
                    }
                }
                // Обновление точки
                insPoint.Update();
            }

            // Обновление елочек
            Tree.UpdateVisualTree(insPoint);

            // Сохранение точки в словарь
            insPoint.SaveInsPoint();
        }
コード例 #11
0
        public override bool WorldDraw(Drawable drawable, WorldDraw wd)
        {
            var dbPt = drawable as DBPoint;
            // Найти инсоляционную точку
            var insPoint = InsService.FindInsPoint(dbPt.Position, dbPt.Database);

            if (insPoint != null && insPoint.VisualPoint != null)
            {
                var draws = insPoint.VisualPoint.CreateVisual();
                foreach (var item in draws)
                {
                    item.WorldDraw(wd);
                    item.Dispose(); // ???
                }
                return(true);
            }
            return(base.WorldDraw(drawable, wd));
        }
コード例 #12
0
 /// <summary>
 /// Добавление новой площадки
 /// </summary>
 private void InsAddPlaceExecute()
 {
     try
     {
         var selPlace = new SelectPlace();
         var placeId  = selPlace.Select();
         if (!placeId.IsValidEx())
         {
             return;
         }
         var place = Place.AddPlace(placeId);
         if (place != null)
         {
             place.IsVisualPlaceOn = true;
         }
         // Запись статистики
         PluginStatisticsHelper.AddStatistic();
     }
     catch (Exception ex)
     {
         InsService.ShowMessage(ex, "Ошибка");
     }
 }
コード例 #13
0
        private void InsAddFrontExecute()
        {
            // Выбор области на чертеже
            var       selectGroup = new SelectGroup(Front.Model.Doc);
            Extents3d selReg;

            try
            {
                selReg = selectGroup.Select();
            }
            catch
            {
                return;
            }

            // Проверка, что в указанной области есть свободные дома
            if (!Front.Model.Map.Houses.GetHousesInExtents(selReg).Any(h => h.FrontGroup == null))
            {
                // В области новой группы не должно быть домов из других групп
                InsService.ShowMessage($"В выбранной области нет домов не входящих в другие группы.", System.Windows.MessageBoxImage.Error);
                return;
            }

            // Создание группы фронтонов
            try
            {
                var frontGroup = FrontGroup.New(selReg, Front);
                Front.AddGroup(frontGroup);
                // Запись статистики
                PluginStatisticsHelper.AddStatistic();
            }
            catch (Exception ex)
            {
                InsService.ShowMessage(ex, "Ошибка при создании группы фронтонов.");
            }
        }
コード例 #14
0
 private void InsAddPointExecute()
 {
     try
     {
         // Выбор точки на чертеже и задание параметров окна
         var      selPt = new SelectPoint();
         InsPoint p     = selPt.SelectNewPoint(Tree.Model);
         if (p != null)
         {
             // Расчет и добавление точки
             Tree.AddPoint(p);
             // Включение зон инсоляции точки
             p.IsVisualIllumsOn = true;
             // Сохранение точки
             p.SaveInsPoint();
             // Запись статистики
             PluginStatisticsHelper.AddStatistic();
         }
     }
     catch (Exception ex)
     {
         InsService.ShowMessage(ex, "Ошибка");
     }
 }
コード例 #15
0
 private void OnSelectColorExecute(TileLevel level)
 {
     level.Color = InsService.ColorPicker(level.Color);
 }
コード例 #16
0
 private void OnSelectColorExecute(TreeVisualOption treeVisOpt)
 {
     treeVisOpt.Color = InsService.ColorPicker(treeVisOpt.Color);
 }