Ejemplo n.º 1
0
        public CResultAErreurType <CParametresInitialisationEtape> MajChamps()
        {
            CParametresInitialisationEtape parametre = new CParametresInitialisationEtape();
            CResultAErreurType <CParametresInitialisationEtape> result = new CResultAErreurType <CParametresInitialisationEtape>();

            foreach (CFormuleNommee formuleNommée in m_panelFormules.GetFormules())
            {
                if (formuleNommée.Formule == null) //|| !typeof(IAffectableAEtape).IsAssignableFrom(formuleNommée.Formule.TypeDonnee.TypeDotNetNatif))
                {
                    result.EmpileErreur(I.T("Formula @1 is invalid (should return an object that can be assigned to a step)|20066",
                                            formuleNommée.Libelle));
                }
            }
            C2iExpression formule = m_txtFormuleInitialisation.Formule;

            if (formule == null && !m_txtFormuleInitialisation.ResultAnalyse)
            {
                result.EmpileErreur(m_txtFormuleInitialisation.ResultAnalyse.Erreur);
            }
            if (formule != null)
            {
                parametre.FormuleInitialisation = formule;
            }
            if (result)
            {
                parametre.Affectations.Formules = m_panelFormules.GetFormules();
                result.DataType = parametre;
            }
            parametre.RecalculerAffectationsSurRedemarrage  = m_chkRecalculerAffectations.Checked;
            parametre.ReevaluerInitialisationSurRedemarrage = m_chkReevaluerFormuleSurRedemarrage.Checked;
            return(result);
        }
        //-------------------------------------------------------
        private void InitChamps()
        {
            CFiltreData filtre = new CFiltreData(CProcessInDb.c_champTypeCible + "=@1",
                                                 typeof(CEtapeWorkflow).ToString());

            m_txtSelectProcess.Init(typeof(CProcessInDb),
                                    filtre,
                                    "Libelle",
                                    true);
            if (m_blocProcess.DbKeyProcess != null)
            {
                CProcessInDb process = new CProcessInDb(CContexteDonneeSysteme.GetInstance());
                if (process.ReadIfExists(m_blocProcess.DbKeyProcess))
                {
                    m_txtSelectProcess.ElementSelectionne = process;
                }
            }
            m_process = m_blocProcess.Process;
            m_txtInstructions.Text   = m_blocProcess.Instructions;
            m_chkManualStart.Checked = m_blocProcess.DemarrageManuel;
            CParametresInitialisationEtape parametres = m_blocProcess.TypeEtape != null ? m_blocProcess.TypeEtape.ParametresInitialisation : new CParametresInitialisationEtape();

            m_panelAffectations.Init(parametres);
            m_chkUtiliserSortieProcessCommeCodeRetour.Checked = m_blocProcess.UtiliserLaValeurDeSortieDeProcessCommeCodeRetour;

            UpdateVisuProcess();
        }
Ejemplo n.º 3
0
 public void Init(CParametresInitialisationEtape parametres)
 {
     m_panelFormules.Init(parametres.Affectations.Formules.ToArray(), typeof(CWorkflow), new CFournisseurPropDynStd());
     m_txtFormuleInitialisation.Init(new CFournisseurPropDynStd(), typeof(CEtapeWorkflow));
     m_txtFormuleInitialisation.Formule          = parametres.FormuleInitialisation;
     m_chkRecalculerAffectations.Checked         = parametres.RecalculerAffectationsSurRedemarrage;
     m_chkReevaluerFormuleSurRedemarrage.Checked = parametres.ReevaluerInitialisationSurRedemarrage;
 }
        private void m_btnOk_Click(object sender, EventArgs e)
        {
            List <CFormuleNommee> lst = new List <CFormuleNommee>();
            CResultAErreurType <CParametresInitialisationEtape> result = m_panelFormules.MajChamps();

            if (!result)
            {
                CFormAlerte.Afficher(result.Erreur);
                return;
            }
            m_parametre  = result.DataType;
            DialogResult = DialogResult.OK;
            Close();
        }
        public static CParametresInitialisationEtape EditeParametres(CParametresInitialisationEtape parametres)
        {
            CFormEditeParametresInitialisationEtape form = new CFormEditeParametresInitialisationEtape();

            form.m_parametre = CCloner2iSerializable.Clone(parametres) as CParametresInitialisationEtape;
            CParametresInitialisationEtape retour = parametres;

            if (form.ShowDialog() == DialogResult.OK)
            {
                retour = form.m_parametre;
            }
            form.Dispose();
            return(retour);
        }
Ejemplo n.º 6
0
        /// //////////////////////////////////////////////////
        protected override void Editeur_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
        {
            if (ObjetEdite == null)
            {
                return;
            }
            if (LockEdition)
            {
                return;
            }

            if (e.Data.GetDataPresent(typeof(CReferenceObjetDonnee)))
            {
                CReferenceObjetDonnee reference = e.Data.GetData(typeof(CReferenceObjetDonnee)) as CReferenceObjetDonnee;
                if (reference.TypeObjet == typeof(CModeleAffectationUtilisateurs))
                {
                    Point pt        = PointToClient(new Point(e.X, e.Y));
                    Point ptLogique = GetLogicalPointFromDisplay(pt);
                    CWorkflowEtapeDessin dessinEtape = ObjetEdite.SelectionnerElementDuDessus(ptLogique) as CWorkflowEtapeDessin;
                    if (dessinEtape != null)
                    {
                        CModeleAffectationUtilisateurs modele = reference.GetObjet(CSc2iWin32DataClient.ContexteCourant) as CModeleAffectationUtilisateurs;
                        if (modele != null)
                        {
                            CParametresAffectationEtape parametres = modele.ParametresAffectation;
                            if (parametres != null)
                            {
                                CParametresInitialisationEtape parametre = dessinEtape.Initializations;
                                CParametresAffectationEtape    parAff    = parametre.Affectations;
                                if (parAff != null)
                                {
                                    if (MessageBox.Show(I.T("Replace current assignments(Yes) or add new assignemnts(No) ?|20135"), "",
                                                        MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                                    {
                                        parAff = new CParametresAffectationEtape();
                                    }
                                    parAff.AddFormules(parametres.Formules);
                                    parametre.Affectations      = parAff;
                                    dessinEtape.Initializations = parametre;
                                    e.Effect = DragDropEffects.Link;
                                    Refresh();
                                    return;
                                }
                            }
                        }
                    }
                }
            }

            List <CDonneeDragDropObjetGraphique> datas = GetDragDropData(e.Data);

            if (datas == null || datas.Count == 0)
            {
                return;
            }

            List <I2iObjetGraphique> candidats = new List <I2iObjetGraphique>();

            foreach (CRectangleDragForObjetGraphique rct in RectsDrags)
            {
                candidats.Add(rct.ObjetGraphique);
            }

            Point             ptLocal = GetLogicalPointFromDisplay(PointToClient(new Point(e.X, e.Y)));
            I2iObjetGraphique parent  = ObjetEdite.SelectionnerElementConteneurDuDessus(ptLocal, candidats);

            parent = DessinWorkflow;;
            if (parent == null)
            {
                e.Effect = DragDropEffects.None;
            }
            else
            {
                List <I2iObjetGraphique> nouveaux = new List <I2iObjetGraphique>();
                foreach (CRectangleDragForObjetGraphique rct in RectsDrags)
                {
                    rct.RectangleDrag = rct.Datas.GetDragDropPosition(ptLocal);
                    rct.RectangleDrag = GetRectangleSelonModesActives(rct.RectangleDrag, ptLocal);
                    // rct.RectangleDrag.Offset((int)(AutoScrollPosition.X / Echelle), (int)(AutoScrollPosition.Y / Echelle));

                    //Si dummy de création (type de bloc), création d'une nouvelle étape
                    I2iObjetGraphique objetGraphique = rct.Datas.ObjetDragDrop;
                    CDummyObjetWorkflowPourCreation dummyCreation = objetGraphique as CDummyObjetWorkflowPourCreation;
                    if (dummyCreation != null)
                    {
                        CTypeEtapeWorkflow typeEtape = dummyCreation.TypeEtape;
                        if (typeEtape == null)
                        {
                            typeEtape = new CTypeEtapeWorkflow(DessinWorkflow.TypeWorkflow.ContexteDonnee);
                            typeEtape.CreateNewInCurrentContexte();
                            typeEtape.Workflow = DessinWorkflow.TypeWorkflow;
                            typeEtape.Bloc     = Activator.CreateInstance(dummyCreation.TypeBloc, new object[] { typeEtape }) as CBlocWorkflow;
                        }
                        CWorkflowEtapeDessin graphEtape = new CWorkflowEtapeDessin();
                        graphEtape.TypeEtape = typeEtape;
                        objetGraphique       = graphEtape;
                        objetGraphique.Size  = dummyCreation.Size;
                    }

                    JusteBeforePositionneSurApresDragDrop(objetGraphique);
                    bool bParentIsInSelec = objetGraphique.Parent != null && candidats.Contains(objetGraphique.Parent);

                    bool bHasMove = false;

                    if (e.Effect == DragDropEffects.Copy)
                    {
                        Dictionary <Type, object> dicObjetsPourCloner = new Dictionary <Type, object>();
                        AddObjectsForClonerSerializer(dicObjetsPourCloner);
                        objetGraphique = (I2iObjetGraphique)objetGraphique.GetCloneAMettreDansParent(parent, dicObjetsPourCloner);

                        if (objetGraphique == null || !parent.AddChild(objetGraphique))
                        {
                            e.Effect = DragDropEffects.None;
                            objetGraphique.CancelClone();
                            continue;
                        }
                        else
                        {
                            objetGraphique.Parent = parent;
                            nouveaux.Add(objetGraphique);
                        }
                        bHasMove = true;
                    }
                    else
                    {
                        bHasMove = true;
                        if (objetGraphique.Parent != parent)
                        {
                            if (objetGraphique.Parent != null)
                            {
                                if (!bParentIsInSelec)
                                {
                                    objetGraphique.Parent.RemoveChild(objetGraphique);
                                }
                            }
                            else
                            {
                                nouveaux.Add(objetGraphique);
                            }
                            if (!bParentIsInSelec)
                            {
                                if (!parent.AddChild(objetGraphique))
                                {
                                    e.Effect = DragDropEffects.None;
                                    continue;
                                }
                                else
                                {
                                    objetGraphique.Parent = parent;
                                }
                            }
                        }
                    }


                    if (!bParentIsInSelec && bHasMove)
                    {
                        Point ptDrop = new Point(rct.RectangleDrag.Left, rct.RectangleDrag.Top);
                        objetGraphique.PositionAbsolue = ptDrop;
                    }
                }
                if (nouveaux.Count > 0)
                {
                    RefreshSelectionChanged = false;
                    Selection.Clear();
                    Selection.AddRange(nouveaux);
                    RefreshSelectionChanged = true;
                    DeclencheAfterAddElements(nouveaux);
                    Refresh();
                }
            }


            ElementModifie();
            EnDeplacement = false;
            Dessiner(true, true);
        }
        private void InitChamps()
        {
            m_bIsInitializing = true;
            m_txtFormuleElementEdite.Init(new CFournisseurPropDynStd(), typeof(CEtapeWorkflow));
            m_txtFormuleElementEdite.Formule = m_blocFormulaire.FormuleElementEditePrincipal;
            m_txtFormuleElementSecondaire.Init(new CFournisseurPropDynStd(), typeof(CEtapeWorkflow));
            m_txtFormuleElementSecondaire.Formule = m_blocFormulaire.FormuleElementEditeSecondaire;
            m_txtFormuleInstructions.Init(new CFournisseurPropDynStd(), typeof(CEtapeWorkflow));
            m_txtFormuleInstructions.Formule   = m_blocFormulaire.FormuleInstructions;
            m_rbtnStandard.Checked             = m_blocFormulaire.IsStandardForm;
            m_rbtnFormulaireSpecifique.Checked = !m_blocFormulaire.IsStandardForm;
            InitSelectFormulaire(m_txtFormuleElementEdite);
            InitSelectFormulaire(m_txtFormuleElementSecondaire);

            m_listeDbKeysFormulaires.Clear();
            foreach (CDbKey nKeyForm in m_blocFormulaire.ListeDbKeysFormulaires)
            {
                m_listeDbKeysFormulaires.Add(nKeyForm);
            }

            if (m_blocFormulaire.DbKeyFormulaireSecondaire != null)
            {
                CFormulaire form = new CFormulaire(CContexteDonneeSysteme.GetInstance());
                if (form.ReadIfExists(m_blocFormulaire.DbKeyFormulaireSecondaire))
                {
                    m_txtSelectFormulaireSecondaire.ElementSelectionne = form;
                }
                m_formulaireSecondaireSelectionne = form;
            }
            m_wndListeFormules.Init(m_blocFormulaire.FormulesConditionFin.ToArray(),
                                    typeof(CEtapeWorkflow),
                                    new CFournisseurPropDynStd());
            m_lnkSelectFormulaires.Visible = m_rbtnFormulaireSpecifique.Checked;
            m_panelRestrictions.Init(m_blocFormulaire.Restrictions);

            CParametresInitialisationEtape parametres = m_blocFormulaire.TypeEtape != null ? m_blocFormulaire.TypeEtape.ParametresInitialisation : new CParametresInitialisationEtape();

            m_panelAffectations.Init(parametres);
            m_chkHideOnChangeForm.Checked       = m_blocFormulaire.MasquerSurChangementDeFormulaire;
            m_chkLockItemWhenComplete.Checked   = m_blocFormulaire.LockerElementEditeEnFinDEtape;
            m_chkMasquerApresValidation.Checked = m_blocFormulaire.HideAfterValidation;
            m_chkSecondaireEnEdition.Checked    = m_blocFormulaire.SecondaireEnEdition;

            m_chkPromptToEnd.Checked       = m_blocFormulaire.PromptForEndWhenAllConditionsAreOk;
            m_chkPasserSiPasErreur.Checked = m_blocFormulaire.NePasExecuterSiToutesConditionsRemplies;

            m_chkUseStopHandler.Checked = m_blocFormulaire.ParametreDeclencheurStop != null;
            if (m_blocFormulaire.ParametreDeclencheurStop != null)
            {
                m_panelParametreDeclenchement.Visible = true;
                m_panelParametreDeclenchement.Init(m_blocFormulaire.ParametreDeclencheurStop);
            }
            else
            {
                m_panelParametreDeclenchement.Visible = false;
            }

            UpdateVisuLinkFormulaires();

            InitPanelGestionErreur();
            m_panelChamps.ElementEdite = m_blocFormulaire.TypeEtape;

            m_txtExceptionRestriction.Text = m_blocFormulaire.RestrictionExceptionContext;

            m_bIsInitializing = false;
        }
 public CParametresInitialisationEtape EditeParametres(CParametresInitialisationEtape parametres)
 {
     return(CFormEditeParametresInitialisationEtape.EditeParametres(parametres));
 }