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); }
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); }
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 }); } } }
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); }
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); }
static void OnActualViewChanged(HostView hostView) { if (actualViewChanged != null) { actualViewChanged(); } }
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); }
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); } }
private void DetachFromHostView() { if (_hostView != null) { _hostView.InputMessage -= OnInputMessage; _hostView = null; } }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); var window = new HostView(); var vm = new HostViewModel(); window.DataContext = vm; window.Show(); }
internal void SetHostView(HostView hostView) { DetachFromHostView(); if (hostView != null) { hostView.InputMessage += OnInputMessage; _hostView = hostView; } }
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); }
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(); }
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); }
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); }
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(); } } } }
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); } }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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)); } }
public override FrameworkElement Operate(HostView.Operation op, double[] operands) { return FrameworkElementAdapters.ContractToViewAdapter(_contract.Operate(OperationHostAdapters.ViewToContractAdapter(op), operands)); }
public HostObjectViewToContractHostAdapter(HostView.HostObject view) { this.view = view; }
public override void Initialize(HostView.HostObject host) { HostObjectViewToContractHostAdapter hostAdapter = new HostObjectViewToContractHostAdapter(host); contract.Initialize(hostAdapter); }
internal static Calculator.Contracts.IOperationContract ViewToContractAdapter(HostView.Operation view) { return ((OperationContractToViewAdapter)view).Contract; }