Пример #1
0
        private void m_menuArbreGanttAdd_Click(object sender, EventArgs e)
        {
            CElementDeGanttProjet eltProjet = m_gantt.SelectedElement as CElementDeGanttProjet;

            if (eltProjet != null)
            {
                CProjet projet = new CProjet(eltProjet.ProjetAssocie.ContexteDonnee);
                projet.CreateNew();
                projet.Projet = eltProjet.ProjetAssocie;
                CFormNavigateurPopup.Show(new CFormEditionProjet(projet), FormWindowState.Maximized);
                if (!projet.IsValide() || !projet.VerifieDonnees(false).Result)
                {
                    return;
                }
                Init();
            }
        }
Пример #2
0
        /// ////////////////////////////////////////////////////////////////
        private void CControlEdition_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            Point             ptSouris     = GetLogicalPointFromDisplay(new Point(e.X, e.Y));
            I2iObjetGraphique wndNouvelEle = null;

            switch (ModeEdition)
            {
            case EModeEditeurProjet.Selection:
                break;


            case EModeEditeurProjet.Projet:

                if (BeforeAddElement != null && !BeforeAddElement())
                {
                    break;
                }

                CProjet nouveauProjet;
                if (m_bModeCreation)
                {
                    nouveauProjet = new CProjet(WndProjetEdite.Projet.ContexteDonnee);
                    nouveauProjet.CreateNew();
                }
                else
                {
                    CFiltreData filtre = new CFiltreDataAvance(CProjet.c_nomTable, "HasNo(" + CProjet.c_champIdParent + ") AND " + CProjet.c_champCodeSystemeComplet + " not like @1", ProjetEnCreation.CodeSystemePartiel + "%");

                    //string strIdsPrjsToIgnore = ProjetEnCreation.Id.ToString();
                    //foreach (CProjet prjFils in ProjetEnCreation.ProjetsFils)
                    //    strIdsPrjsToIgnore += "," + prjFils.Id.ToString();
                    //filtre = CFiltreData.GetAndFiltre(filtre, new CFiltreDataAvance(CProjet.c_nomTable, CProjet.c_champId + " not in (" + strIdsPrjsToIgnore +")"));
                    CListeObjetsDonnees lstPrjs    = new CListeObjetsDonnees(ProjetEnCreation.ContexteDonnee, typeof(CProjet), filtre);
                    CFormListeProjet    frmProjets = new CFormListeProjet(lstPrjs);
                    nouveauProjet = (CProjet)CFormNavigateurPopupListe.SelectObject(frmProjets, null, "");

                    if (nouveauProjet == null)
                    {
                        return;
                    }
                }

                nouveauProjet.Projet = ProjetEnCreation;

                nouveauProjet.DesignerProjetX = e.X;
                nouveauProjet.DesignerProjetY = e.Y;

                wndNouvelEle = new CWndProjetBrique(nouveauProjet);
                break;


            case EModeEditeurProjet.Intervention:
                if (BeforeAddElement != null && !BeforeAddElement())
                {
                    break;
                }

                CIntervention nouvelleInter;

                if (m_bModeCreation)
                {
                    nouvelleInter = new CIntervention(WndProjetEdite.Projet.ContexteDonnee);
                    nouvelleInter.CreateNew();
                }
                else
                {
                    CFiltreData             filtre    = new CFiltreDataAvance(CIntervention.c_nomTable, "HasNo(" + CProjet.c_champId + ")");
                    CListeObjetsDonnees     lstInter  = new CListeObjetsDonnees(ProjetEnCreation.ContexteDonnee, typeof(CIntervention), filtre);
                    CFormListeInterventions frmInters = new CFormListeInterventions(lstInter);
                    nouvelleInter = (CIntervention)CFormNavigateurPopupListe.SelectObject(frmInters, null, "");
                    if (nouvelleInter == null)
                    {
                        return;
                    }
                }

                nouvelleInter.DesignerProjetX = e.X;
                nouvelleInter.DesignerProjetY = e.Y;
                nouvelleInter.Projet          = WndProjetEdite.Projet;
                wndNouvelEle = new CWndIntervention(nouvelleInter);
                break;

            case EModeEditeurProjet.LienStart:
                I2iObjetGraphique o = WndProjetEdite.GetObjetFilsFromPoint(ptSouris);
                if (o != null && o is IWndElementDeProjetPlanifiable)
                {
                    m_eleDebutLien = (IWndElementDeProjetPlanifiable)o;
                    ModeEdition    = EModeEditeurProjet.LienEnd;
                }

                break;

            case EModeEditeurProjet.LienEnd:
                ModeEdition = EModeEditeurProjet.LienStart;
                I2iObjetGraphique ele = WndProjetEdite.GetObjetFilsFromPoint(ptSouris);
                bool bCreer           = true;
                if (ele != null && ele != m_eleDebutLien && ele is IWndElementDeProjetPlanifiable)
                {
                    foreach (I2iObjetGraphique objet in ObjetEdite.Childs)
                    {
                        if (objet is CWndLienDeProjet)
                        {
                            CWndLienDeProjet wndLien = (CWndLienDeProjet)objet;
                            if (wndLien.ElementArrivee == m_eleDebutLien &&
                                wndLien.ElementDepart == ele ||
                                wndLien.ElementArrivee == ele &&
                                wndLien.ElementDepart == m_eleDebutLien)
                            {
                                bCreer = false;
                                break;
                            }
                        }
                    }

                    if (bCreer && BeforeAddElement != null && !BeforeAddElement())
                    {
                        break;
                    }

                    if (bCreer)
                    {
                        CLienDeProjet lien = new CLienDeProjet(WndProjetEdite.Projet.ContexteDonnee);
                        lien.CreateNewInCurrentContexte();
                        lien.ElementA = m_eleDebutLien.ElementDuProjet;
                        lien.ElementB = ((IWndElementDeProjetPlanifiable)ele).ElementDuProjet;
                        lien.Projet   = WndProjetEdite.Projet;

                        CWndLienDeProjet wndLien = new CWndLienDeProjet(lien);
                        wndLien.ElementDepart  = (IWndElementDeProjetPlanifiable)m_eleDebutLien;
                        wndLien.ElementArrivee = (IWndElementDeProjetPlanifiable)ele;
                        wndNouvelEle           = wndLien;
                        ModeEdition            = EModeEditeurProjet.LienStart;
                    }
                }
                break;
            }
            if (wndNouvelEle != null)
            {
                Point pt = new Point(ptSouris.X - wndNouvelEle.Size.Width / 2, ptSouris.Y - wndNouvelEle.Size.Height / 2);
                wndNouvelEle.Position = pt;
                WndProjetEdite.AddChild(wndNouvelEle);

                Selection.Clear();
                Selection.Add(wndNouvelEle);
                //Refresh();

                if (AfterAddElement != null)
                {
                    AfterAddElement(wndNouvelEle);
                }
            }
        }