コード例 #1
0
        void save(HostView host)
        {
            if (this.SelectResult == null)
            {
                this.ShowDialog("提示信息", "选择结果为空!", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
                return;
            }

            var local = CommonDataManager.GetLocalCase(base.LocalID);

            local.LockedTaskID = this.SelectResult.TaskID;
            local.Serialize();

            var rule = CommonDataManager.GetAminRule(base.LocalID);

            if (_lockedRule.LockedTimeTable?.Count == 0)
            {
                rule.TimeTableLockedTimes = null;
            }
            else
            {
                rule.TimeTableLockedTimes = _lockedRule;
            }

            rule.Serialize(base.LocalID);

            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #2
0
        void save(HostView host)
        {
            var rule = base.GetClRule(base.LocalID);

            // 1.清除同时开课规则
            rule.ClassHourSameOpens.Clear();

            if (this.Rules != null)
            {
                foreach (var r in this.Rules)
                {
                    var samopenRule = new XYKernel.OS.Common.Models.Mixed.Rule.ClassHourSameOpenRule()
                    {
                        Details = new List <XYKernel.OS.Common.Models.Mixed.Rule.SameOpenDetailsModel>(),
                        Weight  = (int)r.Weight
                    };

                    var maxIndex = r.Classes.Max(c => c.HourIndexs.Count);

                    // 遍历填充详细
                    for (int i = 0; i < maxIndex; i++)
                    {
                        var item = new XYKernel.OS.Common.Models.Mixed.Rule.SameOpenDetailsModel();
                        item.Index   = i;
                        item.Classes = new List <string>();

                        if (r.Classes.Count > 1)
                        {
                            // 过滤选中班级
                            r.Classes.ForEach(c =>
                            {
                                if (c.HourIndexs.Count >= i + 1)
                                {
                                    if (c.HourIndexs[i].IsChecked)
                                    {
                                        item.Classes.Add(c.ID);
                                    }
                                }
                            });

                            if (item.Classes.Count > 1)
                            {
                                samopenRule.Details.Add(item);
                            }
                        }
                    }

                    rule.ClassHourSameOpens.Add(samopenRule);
                }
            }

            // 2.序列化
            base.SerializePatternRule(rule, base.LocalID);

            // 4.序列化规则
            OSKernel.Presentation.Models.Enums.MixedRuleEnum.ClassHourSameOpen.RuleSerialize(base.LocalID, this.Rules);

            // 3.弹出提示
            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #3
0
        private void RefreshVisualTrees()
        {
            m_VisualTrees.Clear();

            List <GUIView> guiViews = new List <GUIView>();

            GUIViewDebuggerHelper.GetViews(guiViews);
            var it = UIElementsUtility.GetPanelsIterator();

            while (it.MoveNext())
            {
                HostView view = guiViews.FirstOrDefault(v => v.GetInstanceID() == it.Current.Key) as HostView;
                if (view == null)
                {
                    continue;
                }

                // Skip this window
                if (view.actualView == this)
                {
                    continue;
                }

                var panel     = it.Current.Value;
                var panelMode = UIRDebugUtility.GetPanelRepaintMode(panel);
                if (panelMode != RepaintMode.Standard)
                {
                    m_VisualTrees.Add(new VisualTreeDebug()
                    {
                        panel = panel
                    });
                }
            }
        }
コード例 #4
0
        protected void OnEnterPanel()
        {
            var p = panel as BaseVisualElementPanel;

            if (p != null)
            {
                if (graphViewShader == null)
                {
                    graphViewShader = EditorGUIUtility.LoadRequired("GraphView/GraphViewUIE.shader") as Shader;
                }
                p.standardShader = graphViewShader;
                HostView ownerView = p.ownerObject as HostView;
                if (ownerView != null && ownerView.actualView != null)
                {
                    ownerView.actualView.antiAliasing = 4;
                }

                // Changing the updaters is assumed not to be a normal use case, except maybe for Unity debugging
                // purposes. For that reason, we don't track updater changes.
                Panel.BeforeUpdaterChange += OnBeforeUpdaterChange;
                Panel.AfterUpdaterChange  += OnAfterUpdaterChange;
                UpdateDrawChainRegistration(true);
            }

            // Force DefaultCommonDark.uss since GraphView only has a dark style at the moment
            UIElementsEditorUtility.ForceDarkStyleSheet(this);
        }
コード例 #5
0
        void save(HostView host)
        {
            var rule = CommonDataManager.GetAminRule(base.LocalID);

            rule.ClassHourPriorityBalance.Clear();

            var hasOneSelect = this.Rules.Any(r => r.Classes.Count(c => c.IsChecked) == 1);

            if (hasOneSelect)
            {
                this.ShowDialog("提示信息", "至少选择两个班级齐头", CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Warning);
                return;
            }

            var filters = this.Rules.Where(r => r.Classes.Count(c => c.IsChecked) >= 2);

            if (filters?.Count() > 0)
            {
                foreach (var f in filters)
                {
                    var balanceRule = new XYKernel.OS.Common.Models.Administrative.Rule.TeacherPriorityBalanceRule()
                    {
                        CourseID  = f.CourseID,
                        TeacherID = f.TeacherID,
                        ClassIDs  = f.Classes.Where(c => c.IsChecked)?.Select(s => s.ID)?.ToList(),
                        Weight    = (int)f.Weight
                    };
                    rule.ClassHourPriorityBalance.Add(balanceRule);
                }
            }

            rule.Serialize(base.LocalID);
            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #6
0
 static void OnActualViewChanged(HostView hostView)
 {
     if (actualViewChanged != null)
     {
         actualViewChanged();
     }
 }
コード例 #7
0
ファイル: PickingData.cs プロジェクト: yaoya/UnityDecompiled
        internal static string GetName(UIElementsDebugger.ViewPanel viewPanel)
        {
            HostView hostView = viewPanel.View as HostView;
            string   name;

            if (hostView != null)
            {
                EditorWindow actualView = hostView.actualView;
                if (actualView != null)
                {
                    if (!string.IsNullOrEmpty(actualView.name))
                    {
                        name = actualView.name;
                        return(name);
                    }
                    name = actualView.GetType().Name;
                    return(name);
                }
                else if (!string.IsNullOrEmpty(hostView.name))
                {
                    name = hostView.name;
                    return(name);
                }
            }
            name = viewPanel.Panel.visualTree.name;
            return(name);
        }
コード例 #8
0
        void save(HostView host)
        {
            var rule = base.GetClRule(base.LocalID);

            var cl = base.GetClCase(base.LocalID);

            rule.AmPmClassHours.Clear();

            var results = Rules.Where(r => r.IsChecked);

            if (results != null)
            {
                foreach (var r in results)
                {
                    var ampm = new XYKernel.OS.Common.Models.Mixed.Rule.AmPmClassHourRule()
                    {
                        ClassID  = r.ClassID,
                        CourseID = r.CourseID,
                        LevelID  = r.LevelID,
                        AmMax    = r.AmMax,
                        PmMax    = r.PmMax,
                        Weight   = (int)r.Weight
                    };
                    rule.AmPmClassHours.Add(ampm);
                }

                base.SerializePatternRule(rule, base.LocalID);
                this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
            }
        }
コード例 #9
0
 private void DetachFromHostView()
 {
     if (_hostView != null)
     {
         _hostView.InputMessage -= OnInputMessage;
         _hostView = null;
     }
 }
コード例 #10
0
ファイル: App.xaml.cs プロジェクト: JudFai/Lab1_SPO
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            var window = new HostView();
            var vm     = new HostViewModel();

            window.DataContext = vm;
            window.Show();
        }
コード例 #11
0
        internal void SetHostView(HostView hostView)
        {
            DetachFromHostView();

            if (hostView != null)
            {
                hostView.InputMessage += OnInputMessage;
                _hostView              = hostView;
            }
        }
コード例 #12
0
        void save(HostView host)
        {
            var cl = base.GetClCase(base.LocalID);

            cl.RoomLimit = this.RoomLimit;

            base.Serialize(cl, base.LocalID);

            this.ShowDialog("提示信息", "保存成功!", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #13
0
        void setRule(object obj)
        {
            var mixRule = CommonDataManager.GetMixedRule(base.LocalID);

            UIRule   rule       = obj as UIRule;
            HostView ruleWindow = new HostView(rule.RuleEnum);

            ruleWindow.Closed += (s, arg) =>
            {
                switch (rule.RuleEnum)
                {
                case Models.Enums.MixedRuleEnum.AmPmClassHour:
                    rule.Record = mixRule.AmPmClassHours.Count;
                    break;

                case Models.Enums.MixedRuleEnum.ClassHourAverage:
                    rule.Record = mixRule.ClassHourAverages.Count;
                    break;

                case Models.Enums.MixedRuleEnum.ClassHourSameOpen:
                    rule.Record = mixRule.ClassHourSameOpens.Count;
                    break;

                case Models.Enums.MixedRuleEnum.CourseArrangeContinuous:
                    rule.Record = mixRule.ArrangeContinuous.Count;
                    break;

                case Models.Enums.MixedRuleEnum.CourseLimit:
                    rule.Record = mixRule.CourseLimits.Count;
                    break;

                case Models.Enums.MixedRuleEnum.CourseTime:
                    rule.Record = mixRule.CourseTimes.Count;
                    break;

                case Models.Enums.MixedRuleEnum.TeacherMaxDaysPerWeek:
                    rule.Record = mixRule.MaxDaysPerWeek.Count;
                    break;

                case Models.Enums.MixedRuleEnum.TeacherMaxGapsPerDay:
                    rule.Record = mixRule.MaxGapsPerDay.Count;
                    break;

                case Models.Enums.MixedRuleEnum.TeacherMaxHoursDaily:
                    rule.Record = mixRule.MaxHoursDaily.Count;
                    break;

                case Models.Enums.MixedRuleEnum.TeacherTime:
                    rule.Record = mixRule.TeacherTimes.Count;
                    break;
                }
            };
            ruleWindow.ShowDialog();
        }
コード例 #14
0
        void save(HostView host)
        {
            var rule = CommonDataManager.GetAminAlgoRule(base.LocalID);

            if (this.GetCurrentRuleEnum() == AdministrativeAlgoRuleEnum.ClassHoursSameStarting)
            {
                rule.ClassHoursSameStartingDays.Clear();
                foreach (var r in Rules)
                {
                    var perweek = new ClassHoursSameStartingDayRule()
                    {
                        Active = r.IsActive,
                        Weight = r.Weight,
                        ID     = r.ClassHours?.Select(ch => ch.ID)?.ToArray(),
                        UID    = r.UID,
                    };
                    rule.ClassHoursSameStartingDays.Add(perweek);
                }
            }
            else if (this.GetCurrentRuleEnum() == AdministrativeAlgoRuleEnum.ClassHoursSameStartingHour)
            {
                rule.ClassHoursSameStartingHours?.Clear();
                foreach (var r in Rules)
                {
                    var perweeks = new ClassHoursSameStartingHourRule()
                    {
                        Active = r.IsActive,
                        Weight = r.Weight,
                        ID     = r.ClassHours?.Select(ch => ch.ID)?.ToArray(),
                        UID    = r.UID,
                    };
                    rule.ClassHoursSameStartingHours?.Add(perweeks);
                }
            }
            else if (this.GetCurrentRuleEnum() == AdministrativeAlgoRuleEnum.ClassHoursSameStartingTime)
            {
                rule.ClassHoursSameStartingTimes?.Clear();
                foreach (var r in Rules)
                {
                    var perweeks = new ClassHoursSameStartingTimeRule()
                    {
                        Active = r.IsActive,
                        Weight = r.Weight,
                        Id     = r.ClassHours?.Select(ch => ch.ID)?.ToArray(),
                        UID    = r.UID,
                    };
                    rule.ClassHoursSameStartingTimes?.Add(perweeks);
                }
            }

            rule.Serialize(base.LocalID);

            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #15
0
        async void OpenWindowCommandAction(WindowOptionsModel option)
        {
            var window = new HostView();

            var viewModel = window.DataContext as HostViewModel;

            viewModel.Option = option;

            window.Content = Activator.CreateInstance(option.ContentType);

            await window.ShowDialog(Application.Current.MainWindow);
        }
コード例 #16
0
        private void DoViewsPanel()
        {
            GUILayout.Label("Views Panel", EditorStyles.boldLabel);
            List <GUIView> guiViews = new List <GUIView>();

            GUIViewDebuggerHelper.GetViews(guiViews);
            var it = UIElementsUtility.GetPanelsIterator();

            while (it.MoveNext())
            {
                HostView view = guiViews.FirstOrDefault(v => v.GetInstanceID() == it.Current.Key) as HostView;
                if (view == null)
                {
                    continue;
                }

                // Skip this window
                if (view.actualView == this)
                {
                    continue;
                }

                var    panel     = it.Current.Value;
                var    panelMode = UIRDebugUtility.GetPanelRepaintMode(panel);
                string name      = panel.name;
                var    mode      = (RepaintMode)EditorGUILayout.EnumPopup(name, panelMode);
                if (panelMode != mode)
                {
                    if (Panel.BeforeUpdaterChange != null)
                    {
                        Panel.BeforeUpdaterChange();
                    }
                    UIRDebugUtility.SwitchPanelRepaintMode(panel, mode);
                    if (mode == RepaintMode.UIR)
                    {
                        view.actualView.depthBufferBits = 24;
                    }
                    else
                    {
                        view.actualView.depthBufferBits = 0;
                    }
                    view.actualView.MakeParentsSettingsMatchMe();
                    if (Panel.AfterUpdaterChange != null)
                    {
                        Panel.AfterUpdaterChange();
                    }
                }
            }
        }
コード例 #17
0
        private void RefreshPanelChoices()
        {
            m_PanelChoices.Clear();
            m_PanelToEditorWindow.Clear();
            List <GUIView> guiViews = new List <GUIView>();

            GUIViewDebuggerHelper.GetViews(guiViews);
            var it = UIElementsUtility.GetPanelsIterator();

            while (it.MoveNext())
            {
                GUIView view = guiViews.FirstOrDefault(v => v.GetInstanceID() == it.Current.Key);
                if (view == null)
                {
                    continue;
                }

                // Skip this window
                HostView hostView = view as HostView;
                if (hostView != null && hostView.actualView == this)
                {
                    continue;
                }

                var p = it.Current.Value;
                m_PanelChoices.Add(new PanelChoice {
                    panel = p, name = p.name
                });
                if (hostView != null && hostView.actualView != null)
                {
                    m_PanelToEditorWindow.Add(p, hostView.actualView);
                }
            }

            var menu           = m_PanelSelect.menu;
            var menuItemsCount = menu.MenuItems().Count;

            // Clear previous items
            for (int i = 0; i < menuItemsCount; i++)
            {
                menu.RemoveItemAt(0);
            }

            foreach (var panelChoice in m_PanelChoices)
            {
                menu.AppendAction(panelChoice.ToString(), OnSelectPanel, DropdownMenuAction.AlwaysEnabled, panelChoice);
            }
        }
コード例 #18
0
 internal static bool CanDebugView(this EditorWindow editorWindow, HostView hostView)
 {
     if (hostView == null)
     {
         return(true);
     }
     if (hostView.actualView == editorWindow)
     {
         return(false);
     }
     if (editorWindow is UIElementsEventsDebugger)
     {
         return(!(hostView.actualView is UIElementsDebugger));
     }
     return(true);
 }
コード例 #19
0
        void save(HostView host)
        {
            var rule = base.GetCLAlgoRule(base.LocalID);

            if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.ClassHoursRequiredStartingTimes)
            {
                rule.ClassHoursRequiredStartingTimes.Clear();
                foreach (var r in Rules)
                {
                    var model = new ClassHoursRequiredStartingTimesRule
                    {
                        UID       = r.UID,
                        Times     = r.Periods,
                        Weight    = r.Weight,
                        Active    = r.IsActive,
                        ClassID   = r.ClassID,
                        CourseID  = r.CourseID,
                        TeacherID = r.TeacherID,
                        TagID     = r.TagID
                    };
                    rule.ClassHoursRequiredStartingTimes.Add(model);
                }
            }

            else if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.ClassHoursRequiredTimes)
            {
                rule.ClassHoursRequiredTimes?.Clear();
                foreach (var r in Rules)
                {
                    var model = new ClassHoursRequiredTimesRule()
                    {
                        UID       = r.UID,
                        Times     = r.Periods,
                        Active    = r.IsActive,
                        Weight    = r.Weight,
                        ClassID   = r.ClassID,
                        CourseID  = r.CourseID,
                        TeacherID = r.TeacherID,
                        TagID     = r.TagID
                    };
                    rule.ClassHoursRequiredTimes?.Add(model);
                }
            }

            base.SerializePatternAlgo(rule, base.LocalID);
            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #20
0
        void save(HostView host)
        {
            var rule = CommonDataManager.GetAminAlgoRule(base.LocalID);

            if (this.GetCurrentRuleEnum() == AdministrativeAlgoRuleEnum.ClassHoursRequiredStartingTimes)
            {
                rule.ClassHoursRequiredStartingTimes.Clear();
                foreach (var r in Rules)
                {
                    var model = new ClassHoursRequiredStartingTimesRule
                    {
                        UID       = r.UID,
                        Times     = r.Periods,
                        Weight    = (int)r.Weight,
                        Active    = r.IsActive,
                        ClassID   = r.ClassID,
                        CourseID  = r.CourseID,
                        TeacherID = r.TeacherID
                    };
                    rule.ClassHoursRequiredStartingTimes.Add(model);
                }
            }

            else if (this.GetCurrentRuleEnum() == AdministrativeAlgoRuleEnum.ClassHoursRequiredTimes)
            {
                rule.ClassHoursRequiredTimes?.Clear();
                foreach (var r in Rules)
                {
                    var model = new ClassHoursRequiredTimesRule()
                    {
                        UID       = r.UID,
                        Times     = r.Periods,
                        Active    = r.IsActive,
                        Weight    = (int)r.Weight,
                        ClassID   = r.ClassID,
                        CourseID  = r.CourseID,
                        TeacherID = r.TeacherID
                    };
                    rule.ClassHoursRequiredTimes?.Add(model);
                }
            }

            rule.Serialize(base.LocalID);
            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #21
0
        public ScrollBarViewTests()
        {
            Application.Init(new FakeDriver(), new FakeMainLoop(() => FakeConsole.ReadKey(true)));

            var top = Application.Top;

            _hostView = new HostView()
            {
                Width  = Dim.Fill(),
                Height = Dim.Fill(),
                Top    = 0,
                Lines  = 30,
                Left   = 0,
                Cols   = 100
            };

            top.Add(_hostView);
        }
コード例 #22
0
        void save(HostView host)
        {
            var rule = CommonDataManager.GetAminRule(base.LocalID);

            rule.HalfDayWork.Clear();

            this.Rules.Where(r => r.IsChecked)?.ToList()?.ForEach(r =>
            {
                var halfDay = new XYKernel.OS.Common.Models.Administrative.Rule.TeacherHalfDayWorkRule()
                {
                    TeacherID = r.TeacherID,
                    Weight    = (int)r.Weight
                };
                rule.HalfDayWork.Add(halfDay);
            });

            rule.Serialize(base.LocalID);
            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.None);
        }
コード例 #23
0
        void save(HostView host)
        {
            var rule = base.GetClRule(base.LocalID);

            rule.ClassHourAverages.Clear();

            this.Rules.Where(r => r.IsChecked)?.ToList()?.ForEach(r =>
            {
                var average = new XYKernel.OS.Common.Models.Mixed.Rule.ClassHourAverageRule()
                {
                    ClassID = r.ClassID,
                    MinDay  = r.MinDay,
                    Weight  = (int)r.Weight
                };
                rule.ClassHourAverages.Add(average);
            });

            base.SerializePatternRule(rule, base.LocalID);
            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #24
0
        void save(HostView host)
        {
            var rule = CommonDataManager.GetAminRule(base.LocalID);

            rule.MaxGapsPerDay.Clear();

            this.Rules.Where(r => r.IsChecked)?.ToList()?.ForEach(r =>
            {
                var gapsRule = new XYKernel.OS.Common.Models.Administrative.Rule.TeacherMaxGapsPerDayRule()
                {
                    TeacherID   = r.TeacherID,
                    MaxIntervel = r.MaxGaps,
                    Weight      = (int)r.Weight
                };
                rule.MaxGapsPerDay.Add(gapsRule);
            });

            rule.Serialize(base.LocalID);
            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #25
0
        void save(HostView host)
        {
            var rule = base.GetClRule(base.LocalID);

            rule.MaxHoursDaily.Clear();

            this.Rules.Where(r => r.IsChecked)?.ToList()?.ForEach(r =>
            {
                var dailyRule = new XYKernel.OS.Common.Models.Mixed.Rule.TeacherMaxHoursDailyRule()
                {
                    TeacherID = r.TeacherID,
                    MaxHour   = r.MaxHours,
                    Weight    = (int)r.Weight
                };
                rule.MaxHoursDaily.Add(dailyRule);
            });

            base.SerializePatternRule(rule, base.LocalID);
            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #26
0
        void save(HostView host)
        {
            var rule = base.GetCLAlgoRule(base.LocalID);

            if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.ClassHoursMaxConcurrencyInSelectedTime)
            {
                rule.ClassHoursMaxConcurrencyInSelectedTimes.Clear();
                foreach (var r in Rules)
                {
                    var model = new ClassHoursMaxConcurrencyInSelectedTimeRule
                    {
                        UID    = r.UID,
                        Active = r.IsActive,
                        ID     = r.ClassHours?.Select(ch => ch.ID)?.ToArray(),
                        MaxConcurrencyNumber = r.MaxConcurrency,
                        Times = r.Periods,
                    };
                    rule.ClassHoursMaxConcurrencyInSelectedTimes.Add(model);
                }
            }

            else if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.ClassHoursOccupyMaxTimeFromSelection)
            {
                rule.ClassHoursOccupyMaxTimeFromSelections?.Clear();
                foreach (var r in Rules)
                {
                    var model = new ClassHoursOccupyMaxTimeFromSelectionRule()
                    {
                        UID             = r.UID,
                        Times           = r.Periods,
                        Active          = r.IsActive,
                        ID              = r.ClassHours?.Select(ch => ch.ID)?.ToArray(),
                        MaxOccupyNumber = r.MaxOccupy,
                    };
                    rule.ClassHoursOccupyMaxTimeFromSelections?.Add(model);
                }
            }

            base.SerializePatternAlgo(rule, base.LocalID);
            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #27
0
        void save(HostView host)
        {
            var rule = CommonDataManager.GetAminAlgoRule(base.LocalID);

            if (this.GetCurrentRuleEnum() == AdministrativeAlgoRuleEnum.MinDaysBetweenClassHours)
            {
                rule.MinDaysBetweenClassHours.Clear();
                foreach (var r in Rules)
                {
                    var model = new MinDaysBetweenClassHoursRule()
                    {
                        Active  = r.IsActive,
                        Weight  = (int)r.Weight,
                        ID      = r.ClassHours?.Select(ch => ch.ID)?.ToArray(),
                        MinDays = r.MinDays,
                        UID     = r.UID,
                    };
                    rule.MinDaysBetweenClassHours.Add(model);
                }
            }
            else if (this.GetCurrentRuleEnum() == AdministrativeAlgoRuleEnum.MaxDaysBetweenClassHours)
            {
                rule.MaxDaysBetweenClassHours?.Clear();
                foreach (var r in Rules)
                {
                    var model = new MaxDaysBetweenClassHoursRule()
                    {
                        Active  = r.IsActive,
                        Weight  = (int)r.Weight,
                        ID      = r.ClassHours?.Select(ch => ch.ID)?.ToArray(),
                        MaxDays = r.MaxDays,
                        UID     = r.UID,
                    };
                    rule.MaxDaysBetweenClassHours?.Add(model);
                }
            }

            rule.Serialize(base.LocalID);

            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #28
0
        void save(HostView host)
        {
            var rule = base.GetCLAlgoRule(base.LocalID);

            rule.ClassHoursNotOverlaps.Clear();

            foreach (var r in this.Rules)
            {
                var model = new ClassHoursNotOverlapRule()
                {
                    Active = r.IsActive,
                    Weight = r.Weight,
                    ID     = r.ClassHours?.Select(ch => ch.ID)?.ToArray(),
                    UID    = r.UID,
                };
                rule.ClassHoursNotOverlaps.Add(model);
            }

            base.SerializePatternAlgo(rule, base.LocalID);
            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #29
0
        void save(HostView host)
        {
            var rule = CommonDataManager.GetAminRule(base.LocalID);

            // 1.清楚之前的结果
            rule.AmPmNoContinues.Clear();

            // 2.教师列表(过滤教师)
            this.Teachers.Where(t => t.IsChecked)?.ToList()?.ForEach(t =>
            {
                rule.AmPmNoContinues.Add(new XYKernel.OS.Common.Models.Administrative.Rule.TeacherAmPmNoContinousRule()
                {
                    TeacherID = t.ID,
                    Weight    = (int)t.Weight
                });
            });

            // 3.弹出提示(保存成功)
            rule.Serialize(base.LocalID);
            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
コード例 #30
0
        protected virtual void PopulatePanelChoices(List <IPanelChoice> panelChoices)
        {
            List <GUIView> guiViews = new List <GUIView>();

            GUIViewDebuggerHelper.GetViews(guiViews);
            var it = UIElementsUtility.GetPanelsIterator();

            while (it.MoveNext())
            {
                // Skip this debugger window
                GUIView  view     = guiViews.FirstOrDefault(v => v.GetInstanceID() == it.Current.Key);
                HostView hostView = view as HostView;
                if (!m_DebuggerWindow.CanDebugView(hostView))
                {
                    continue;
                }

                var p = it.Current.Value;
                panelChoices.Add(new PanelChoice(p));
            }
        }
コード例 #31
0
 public override FrameworkElement Operate(HostView.Operation op, double[] operands)
 {
     return FrameworkElementAdapters.ContractToViewAdapter(_contract.Operate(OperationHostAdapters.ViewToContractAdapter(op), operands));
 }
コード例 #32
0
 public HostObjectViewToContractHostAdapter(HostView.HostObject view)
 {
     this.view = view;
 }
コード例 #33
0
 public override void Initialize(HostView.HostObject host)
 {            
     HostObjectViewToContractHostAdapter hostAdapter = new HostObjectViewToContractHostAdapter(host);
     contract.Initialize(hostAdapter);
 }
コード例 #34
0
 internal static Calculator.Contracts.IOperationContract ViewToContractAdapter(HostView.Operation view)
 {
     return ((OperationContractToViewAdapter)view).Contract;
 }