// Lors de la création d'un element, on va afficher un wizard que l'utilisateur peut annuler. // TIPS permet d'intercepter la création d'un enfant /// <summary> /// Execution d'un wizard lors de la création d'un élément /// </summary> /// <param name="element">The element.</param> /// <param name="defaultWizard">The default wizard.</param> /// <returns></returns> public bool ExecuteWizard(ModelElement element, IStrategyWizard defaultWizard) { if (!(element is ICustomizableElement)) { return(true); } try { StrategyElementElementAddedEventArgs e = new StrategyElementElementAddedEventArgs(element); foreach (StrategyBase strategy in GetStrategies(false)) { IStrategyAddElementInterceptor sa = strategy as IStrategyAddElementInterceptor; if (sa == null) { continue; } IStrategyWizard wizard = sa.GetWizard(element); if (wizard != null) { wizard.RunWizard(this, e); if (e.UserCancel) { return(false); } if (e.CancelBubble) { break; } } } if (!e.CancelBubble && defaultWizard != null) { defaultWizard.RunWizard(this, e); if (e.UserCancel) { return(false); } } OnElementAdded(e); Generator.GenerateWhenElementAdded(this.Store, CandleModel.GetInstance(this.Store), element as ICustomizableElement); return(true); } catch (Exception ex) { IIDEHelper ide = ServiceLocator.Instance.GetService <IIDEHelper>(); if (ide != null) { ide.ShowMessage(ex.Message); } return(false); } }
/// <summary> /// Ajout d'un élément /// </summary> /// <param name="e">The <see cref="DSLFactory.Candle.SystemModel.Strategies.StrategyElementElementAddedEventArgs"/> instance containing the event data.</param> /// <returns></returns> public virtual bool OnElementAdded(StrategyElementElementAddedEventArgs e) { foreach (StrategyBase strategy in GetStrategies(false)) { IStrategyAddElementInterceptor sa = strategy as IStrategyAddElementInterceptor; if (sa != null) { sa.OnElementAdded(this, e); if (e.UserCancel) { return(false); } if (e.CancelBubble) { break; } } } return(true); }