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(); } }
/// //////////////////////////////////////////////////////////////// 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); } } }