private void btCreateScenario_Click(object sender, RoutedEventArgs e) { ThroughScenarioSave(() => { var selectScenarioTypeControl = new NewScenarioSelectionView(); var dialogView = new DialogView(selectScenarioTypeControl); dialogView.Show(); selectScenarioTypeControl.SingleActionScenario += () => { dialogView.Close(); NewScenario(new SingleActionScenario()); }; selectScenarioTypeControl.RemoteScenario += () => { dialogView.Close(); NewScenario(new RemoteScenario()); }; selectScenarioTypeControl.CompositeScenario += () => { dialogView.Close(); var selectCompositeScenarioType = new NewCompositeScenarioSelectionView(); var dialogViewComposite = new DialogView(selectCompositeScenarioType); selectCompositeScenarioType.Selected += (valueType) => { dialogViewComposite.Close(); var scenario = new CompositeScenario() { ValueType = valueType }; NewScenario(scenario); }; dialogViewComposite.Show(); }; }); }
public void Revert(ScenarioBase scenario) { _scenario = (CompositeScenario)scenario; complexActionView.BeginInit(); complexActionView.Refresh(new ActionHolder(_scenario.TargetAction), _scenario); complexActionView.EndInit(); Refresh(); }
public static void BeginCompositeScenarioSettings(CompositeScenario compositeScenario, Action <bool> callback) { var control = CreateControl(compositeScenario); var dialog = new DialogView((FrameworkElement)control); if (compositeScenario.ValueType is StateValueType) { dialog.Caption = "В данном окне можно настроить значение по умолчанию и статусы, " + "которые может принимать и возвращать данный сценарий. " + "Для того, чтобы добавить статус, нужно ввести в поле ввода " + "его название и нажать \"+\". Для выбора значения сценария по " + "умолчанию, нужно выбрать любой статус из списка."; } else if (compositeScenario.ValueType is FloatValueType) { dialog.Caption = "Выберите числовое значение, которое сценарий будет принимать при инициализации. Настройте максимальное и минимальное значение, которое можно задать сценарию."; } else { dialog.Caption = "Выберите значение, которое сценарий будет принимать при инициализации."; } bool ignoreCloseEvent = false; control.ApplyClicked += () => { ignoreCloseEvent = true; callback?.Invoke(true); dialog.Close(); }; dialog.Closed += (o, e) => { if (!ignoreCloseEvent) { callback?.Invoke(false); } }; dialog.Show(); }
public CompositeScenarioView(CompositeScenario scenario) { InitializeComponent(); buttons.AddNewClick += () => complexActionView.AddFirst(); btScaleMinus.Click += (o, e) => { if (scale.ScaleY > 0.2) { scale.ScaleX -= 0.1; scale.ScaleY -= 0.1; } }; btScalePlus.Click += (o, e) => { scale.ScaleX += 0.1; scale.ScaleY += 0.1; }; btSettings.Click += (o, e) => { ActionControlResolver.BeginCompositeScenarioSettings( _scenario, (result) => { if (result) { Modified?.Invoke(); } }); }; _scenario = scenario; Refresh(); complexActionView.BeginInit(); complexActionView.Refresh(new ActionHolder(_scenario.TargetAction), _scenario); complexActionView.EndInit(); complexActionView.Modified += (element) => Modified?.Invoke(); }
private void btComplexScenario_Click(object sender, RoutedEventArgs e) { CompositeScenario?.Invoke(); }