private void m_lnkAjouter_LinkClicked(object sender, EventArgs e) { CEntiteOrganisationnelle entite = (CEntiteOrganisationnelle)CFormSelectObjetHierarchique.SelectObjet(typeof(CEntiteOrganisationnelle), null); if (entite != null) { //Vérifie qu'aucun parent n'est affecté à l'élément ArrayList lst = new ArrayList(m_wndListeEos.ListeSource); foreach (CRelationElement_EO rel in lst) { if (rel.EntiteOrganisationnelle.IsParentOf(entite)) { CFormAlerte.Afficher(I.T("The object ever belong to this entity|128") + " (" + rel.EntiteOrganisationnelle.Libelle + ")", EFormAlerteType.Exclamation); return; } if (rel.EntiteOrganisationnelle.IsChildOf(entite)) { rel.Delete(); } } CRelationElement_EO newRel = new CRelationElement_EO(m_objet.ContexteDonnee); newRel.CreateNewInCurrentContexte(); newRel.EntiteOrganisationnelle = entite; newRel.ElementLie = m_objet; m_wndListeEos.ListeSource = CRelationElement_EO.GetListeRelationsForElement(m_objet); m_wndListeEos.Refresh(); } }
//------------------------------------------------ private void m_arbre_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node.Checked) { CRelationElement_EO rel = (CRelationElement_EO)m_tableEOToRelation[e.Node]; if (rel == null) { CEntiteOrganisationnelle eo = (CEntiteOrganisationnelle)m_arbre.GetObjetInNode(e.Node); foreach (CRelationElement_EO relTmp in CRelationElement_EO.GetListeRelationsForElement((CObjetDonneeAIdNumerique)m_elementEdite)) { if (relTmp.EntiteOrganisationnelle.Id == eo.Id) { rel = relTmp; break; } } } if (rel != null) { ChangeElementAChamps(rel); return; } } ChangeElementAChamps(null); }
private void m_lnkSupprimer_LinkClicked(object sender, EventArgs e) { if (m_wndListeEos.SelectedItems.Count == 0) { return; } CRelationElement_EO rel = (CRelationElement_EO)m_wndListeEos.SelectedItems[0]; if (CFormAlerte.Afficher(I.T("Supprimer le lien à l'élément sélectionné ?|126"), EFormAlerteType.Question) == DialogResult.Yes) { rel.Delete(); m_wndListeEos.Refresh(); } }
private void m_arbre_AfterCheck(object sender, TreeViewEventArgs e) { if (m_bIsInitialising) { return; } if (e.Node.Checked) { CRelationElement_EO relSel = (CRelationElement_EO)m_tableEOToRelation[e.Node.Tag]; if (relSel == null) { foreach (CRelationElement_EO rel in CRelationElement_EO.GetListeRelationsForElement((CObjetDonneeAIdNumerique)m_elementEdite)) { if (rel.EntiteOrganisationnelle.Id == ((CObjetDonneeAIdNumerique)m_arbre.GetObjetInNode(e.Node)).Id) { relSel = rel; break; } } if (relSel == null) { relSel = new CRelationElement_EO(m_elementEdite.ContexteDonnee); relSel.CreateNewInCurrentContexte(); relSel.ElementLie = (CObjetDonneeAIdNumerique)m_elementEdite; relSel.EntiteOrganisationnelle = (CEntiteOrganisationnelle)m_arbre.GetObjetInNode(e.Node); } m_tableEOToRelation[(CEntiteOrganisationnelle)m_arbre.GetObjetInNode(e.Node)] = relSel; } if (e.Node.IsSelected) { ChangeElementAChamps(relSel); } } else { ChangeElementAChamps(null); } if (OnChangeEOS != null) { OnChangeEOS(this, new EventArgs()); } }
//----------------------------------------------------------- private void CFormAffectationEntitesOrganisationnelles_Load(object sender, EventArgs e) { sc2i.win32.common.CWin32Traducteur.Translate(this); m_lblEntite.Text = m_objet.DescriptionElement; m_extModeEdition.ModeEdition = false; m_btnOk.Visible = false; CSessionClient session = CSessionClient.GetSessionForIdSession(CTimosApp.SessionClient.IdSession); CRestrictionUtilisateurSurType rest = session.GetInfoUtilisateur().GetRestrictionsSurObjet(m_objet, m_objet.ContexteDonnee.IdVersionDeTravail); if (rest.CanModifyType() && !m_objet.ContexteDonnee.IsEnEdition) { rest = session.GetInfoUtilisateur().GetRestrictionsSur(typeof(CRelationElement_EO), m_objet.ContexteDonnee.IdVersionDeTravail); m_lnkAjouter.Visible = rest.CanCreateType(); m_lnkSupprimer.Visible = rest.CanDeleteType(); m_btnOk.Visible = m_lnkAjouter.Visible || m_lnkSupprimer.Visible; m_extModeEdition.ModeEdition = m_btnOk.Visible; m_objet.BeginEdit(); m_bStopEditionSurSortie = true; } m_wndListeEos.ListeSource = CRelationElement_EO.GetListeRelationsForElement(m_objet); }
public void Init(IElementAEO element) { m_arbre.BeginUpdate(); m_panelChamps.ElementEdite = null; m_panelChamps.InitPanel(null, null); m_arbre.Nodes.Clear(); m_elementEdite = element; if (element == null) { return; } CListeObjetsDonnees listeRelations = CRelationElement_EO.GetListeRelationsForElement((CObjetDonneeAIdNumerique)element); CFiltreData filtre = null; if (!m_gestionnaireModeEdition.ModeEdition) { string strIds = ""; foreach (CRelationElement_EO rel in listeRelations) { strIds += rel.EntiteOrganisationnelle.Id + ","; } if (strIds != "") { strIds = strIds.Substring(0, strIds.Length - 1); filtre = new CFiltreData(CEntiteOrganisationnelle.c_champId + " in (" + strIds + ")"); } else { filtre = new CFiltreDataImpossible(); } } // Filtre les Entités qu'on a le droit de voir dans l'interface (gestion des exceptions sur Type d'EO) Type tpElement = element.GetType(); CListeObjetDonneeGenerique <CEntiteOrganisationnelle> lstEO = new CListeObjetDonneeGenerique <CEntiteOrganisationnelle>(element.ContexteDonnee); List <string> lstIdsEOsNePasAfficher = new List <string>(); foreach (CEntiteOrganisationnelle eo in lstEO) { if (eo.TypeEntite != null && eo.TypeEntite.HasExceptionForType(tpElement)) { lstIdsEOsNePasAfficher.Add(eo.Id.ToString()); } } if (lstIdsEOsNePasAfficher.Count > 0) { string strIdsEOsNePasAfficher = String.Join(",", lstIdsEOsNePasAfficher.ToArray()); filtre = CFiltreData.GetAndFiltre (filtre, new CFiltreData(CEntiteOrganisationnelle.c_champId + " not in (" + strIdsEOsNePasAfficher + ")")); } m_arbre.Init(typeof(CEntiteOrganisationnelle), "EntiteFilles", CEntiteOrganisationnelle.c_champIdParent, "Libelle", filtre, null); m_bIsInitialising = true; m_tableEOToRelation.Clear(); foreach (CRelationElement_EO rel in listeRelations) { m_tableEOToRelation[rel.EntiteOrganisationnelle] = rel; m_arbre.SetChecked(rel.EntiteOrganisationnelle, true); TreeNode node = m_arbre.GetNodeFor(rel.EntiteOrganisationnelle); while (node != null) { node = node.Parent; if (node != null) { node.Expand(); } } //m_arbre.EnsureVisible ( rel.EntiteOrganisationnelle ); } m_bIsInitialising = false; m_arbre.EndUpdate(); BeginInvoke(new FillHeritageDelegate(FillHeritage)); }
//--------------------------------------------------------- public CResultAErreur MajChamps() { if (m_panelChamps.ElementEdite != null) { m_panelChamps.AffecteValeursToElement(); } CResultAErreur result = CResultAErreur.True; Hashtable tableRelationsToDelete = new Hashtable(); Hashtable tableEntiteToRelation = new Hashtable(); foreach (CRelationElement_EO rel in CRelationElement_EO.GetListeRelationsForElement((CObjetDonneeAIdNumerique)m_elementEdite)) { tableRelationsToDelete[rel.EntiteOrganisationnelle] = true; tableEntiteToRelation[rel.EntiteOrganisationnelle] = rel; } ArrayList lstSelected = new ArrayList(); foreach (CEntiteOrganisationnelle entite in m_arbre.ElementsSelectionnes) { bool bShouldAdd = true; foreach (CEntiteOrganisationnelle entiteTest in lstSelected.ToArray()) { if (entiteTest.IsChildOf(entite)) { lstSelected.Remove(entiteTest); } if (entiteTest.IsParentOf(entite)) { bShouldAdd = false; break; } } if (bShouldAdd) { lstSelected.Add(entite); } } foreach (CEntiteOrganisationnelle entite in lstSelected) { tableRelationsToDelete[entite] = false; if (tableEntiteToRelation[entite] == null) { CRelationElement_EO rel = new CRelationElement_EO(m_elementEdite.ContexteDonnee); rel.CreateNewInCurrentContexte(); rel.EntiteOrganisationnelle = entite; rel.ElementLie = (CObjetDonneeAIdNumerique)m_elementEdite; } } foreach (DictionaryEntry entry in tableRelationsToDelete) { if ((bool)entry.Value) { CRelationElement_EO rel = (CRelationElement_EO)tableEntiteToRelation[entry.Key]; result = rel.Delete(); if (!result) { return(result); } } } return(result); }