public bool Execute()
        {
            if (BaseApplication.MainInstance == null)
            {
                //ramane apoi sa le numaram sa fie ok
                BaseApplication.MainInstance = new BaseApplication(1000);
            }
            FlowComponent       current = StartNode.GetDefaultNextControl();
            ExecutionUnitOutput eo      = null;
            Object dataToken            = null;

            while ((current != null) && (!(current is FlowStop)))
            {
                //trecem la urmatorul nod si executam tot ce se poate:d
                //procesam datele
                if (current is FlowProcessing)
                {
                    //eo=(current as ProcessingBlock).ProcessData(dataToken, BaseApplication.MainInstance);
                    //dataToken = (current as ProcessingBlock).ProcessData(dataToken, BaseApplication.MainInstance);
                    //if (dataToken == null) return false;
                    eo        = (current as FlowProcessing).ExecutionUnit.Execute(dataToken);
                    dataToken = eo.ObjectOutput;
                    if (dataToken == null)
                    {
                        return(false);
                    }

                    current = current.GetDefaultNextControl();
                }
                else if (current is FlowDecision)
                {
                    eo        = (current as FlowDecision).ExecutionUnit.Execute(dataToken);
                    dataToken = eo.ObjectOutput;
                    bool cond = eo.DecisionOutput;
                    //bool cond = (current as DecisionBlock).EvaluateCondition(dataToken, BaseApplication.MainInstance);
                    //dataToken = (current as DecisionBlock).GetData(dataToken, BaseApplication.MainInstance);
                    if (dataToken == null)
                    {
                        return(false);
                    }
                    if (cond)
                    {
                        current = (current as FlowDecision).GetDefaultNextControl();
                    }
                    else
                    {
                        current = ((current as FlowDecision).GetNegationNextControl() as FlowComponent);
                    }
                }
            }
            return(true);
        }