private static ValueObject CreateEnumValueObject(IConditionAction conditionOrAction)
        {
            var         defaultIndex = CalculateDefaultIndex(conditionOrAction);
            ValueObject vo;

            vo = new ValueObject(conditionOrAction.EnumValues);
            vo.SelectedItemIndex = defaultIndex;
            return(vo);
        }
        public EditCondition(IConditionAction condObject, WindowPosition position)
        {
            defaultPosition = position;

            InitializeComponent();
            DataContext = condObject;

            defaultPosition?.SetWindowPosition(this);
        }
        private static int CalculateDefaultIndex(IConditionAction conditionOrAction)
        {
            int defaultIndex = 0;
            int idx          = 0;

            foreach (EnumValue value in conditionOrAction.EnumValues)
            {
                if (value.IsDefault)
                {
                    defaultIndex = idx;
                    break;
                }
                idx++;
            }
            return(defaultIndex);
        }
        /// <summary>
        /// clone the object and all its content
        /// </summary>
        /// <param name="clone"></param>
        protected void Clone(IConditionAction clone)
        {
            ConditionActionBase co = (ConditionActionBase)clone;

            co.Name        = Name;
            co.DataType    = DataType;
            co.DefaultBool = DefaultBool;
            co.DefaultText = DefaultText;
            co.Background  = Background;
            co.TooltipText = TooltipText;
            co.EnumValues  = new ObservableCollection <EnumValue>();
            foreach (EnumValue value in EnumValues)
            {
                co.EnumValues.Add(value.Clone());
            }
        }
        public static ValueObject Create(IConditionAction conditionOrAction)
        {
            ValueObject vo;

            switch (conditionOrAction.DataType)
            {
            case ValueDataType.Text:
                vo = new ValueObject(conditionOrAction.DefaultText, ValueDataType.Text);
                break;

            case ValueDataType.Enumeration:
                vo = CreateEnumValueObject(conditionOrAction);
                break;

            case ValueDataType.Bool:
                vo = new ValueObject(conditionOrAction.DefaultText, ValueDataType.Bool);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            vo.ConditionOrActionParent = conditionOrAction;
            return(vo);
        }
 public EventerAction(IConditionAction act, IConditionActionParameters actionParameters)
 {
     action     = act;
     parameters = actionParameters;
 }