Ejemplo n.º 1
0
        // 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);
            }
        }
Ejemplo n.º 2
0
 /// <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);
 }