//---------------------------------------------------------------------------------- /// <summary> /// Retourne le type de form qui sait éditer le type demandé /// </summary> /// <param name="tp"></param> /// <returns></returns> public static CReferenceTypeForm GetRefFormToEdit(Type typeAEditer) { // Cherche dans le dictionnaire des Forms préférés CReferenceTypeForm refTypeForm = null; if (CDictionnaireTypeEditeTypeFormPrefere.GetInstance().TryGetValue(typeAEditer, out refTypeForm)) { if (refTypeForm != null) { return(refTypeForm); } } // Si pas de préféré, on prend le Form "système" (comme avant) foreach (System.Reflection.Assembly ass in AppDomain.CurrentDomain.GetAssemblies()) { foreach (Type tp in ass.GetExportedTypes()) { object[] attribs = tp.GetCustomAttributes(typeof(ObjectEditeur), true); if (attribs != null && attribs.Length == 1) { ObjectEditeur objEdit = (ObjectEditeur)attribs[0]; if (objEdit.TypeEdite == typeAEditer) { CReferenceTypeFormBuiltIn tpFormSys = new CReferenceTypeFormBuiltIn(); tpFormSys.TypeForm = tp; return(tpFormSys); } } } } return(null); }
//--------------------------------------------------------------------------- private CFormEditionStandard NewCFormEdition(CObjetDonneeAIdNumeriqueAuto objet, CListeObjetsDonnees liste) { if (m_strProprieteObjetAEditer.Trim() != "") { objet = (CObjetDonneeAIdNumeriqueAuto)CInterpreteurTextePropriete.GetValue(objet, m_strProprieteObjetAEditer); liste = liste.GetDependances(m_strProprieteObjetAEditer); } CFormEditionStandard frm = null; // YK 20/02/09 : On utilise ici le nouveau CFormFinder if (m_referenceForm == null) { m_referenceForm = CFormFinder.GetRefFormToEdit(m_typeObjet); } if (m_referenceForm != null) { frm = (CFormEditionStandard)m_referenceForm.GetForm(objet, liste); } if (frm != null) { if (AfterCreateFormEdition != null) { AfterCreateFormEdition(this, frm); } frm.AfterSuppression += new ObjetDonneeEventHandler(OnSuppressionDansFormEdition); frm.AfterValideModification += new ObjetDonneeEventHandler(OnValidationDansFormEdition); frm.AfterAnnulationModification += new ObjetDonneeEventHandler(OnAnnulationDansFormEdition); } return(frm); }
/// ////////////////////////////////////////////////////////////// public CGestionnaireAjoutModifSuppObjetDonnee ( Type typeObjets, CReferenceTypeForm referenceForm) { m_typeObjet = typeObjets; m_referenceForm = referenceForm; }
//-------------------------------------------------------------------------- public override Form GetForm(CObjetDonneeAIdNumeriqueAuto objetDonnee, CListeObjetsDonnees liste) { CReferenceTypeForm refType = GetFinalRefTypeForm(objetDonnee); if (refType != null) { return(refType.GetForm(objetDonnee, liste)); } return(null); }
//----------------------------------------------------------------------------------------- public override Form GetForm() { CReferenceTypeForm refType = GetFinalRefTypeForm(null); if (refType != null) { return(refType.GetForm()); } return(null); }
//----------------------------------- private CReferenceTypeForm GetTypeFormToEdit(Type typeObjet) { CReferenceTypeForm refTypeForm = null; if (!m_dicTypeObjetToTypeFormEdition.TryGetValue(typeObjet, out refTypeForm)) { refTypeForm = CFormFinder.GetRefFormToEdit(typeObjet); m_dicTypeObjetToTypeFormEdition[typeObjet] = refTypeForm; } return(refTypeForm); }
/// ////////////////////////////////////////////////////////////// public CGestionnaireAjoutModifSuppObjetDonnee ( Type typeObjets, CReferenceTypeForm referenceFormEdition, CObjetDonneeAIdNumeriqueAuto objetContainer, string strChampLienParent) { m_typeObjet = typeObjets; m_referenceForm = referenceFormEdition; m_objetContainer = objetContainer; m_strChampLienParent = strChampLienParent; }
private void AfficheElement(IObjetHierarchiqueACodeHierarchique objet) { //Type typeForm = CFormFinder.GetTypeFormToEdit(objet.GetType()); //if (typeForm == null || !typeForm.IsSubclassOf(typeof(CFormEditionStandard))) // return; //CFormEditionStandard form = (CFormEditionStandard)Activator.CreateInstance(typeForm, new object[] { objet }); //CTimosApp.Navigateur.AffichePage(form); CReferenceTypeForm refTypeForm = CFormFinder.GetRefFormToEdit(objet.GetType()); if (refTypeForm != null) { CFormEditionStandard form = refTypeForm.GetForm((CObjetDonneeAIdNumeriqueAuto)objet) as CFormEditionStandard; if (form != null) { CSc2iWin32DataNavigation.Navigateur.AffichePage(form); } } }
//------------------------------------------------------------------ private void m_linkControl_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) { CObjetDonneeAIdNumeriqueAuto obj = this.SelectedObject as CObjetDonneeAIdNumeriqueAuto; if (obj == null) { return; } CReferenceTypeForm refTypeForm = GetTypeFormToEdit(obj.GetType()); if (refTypeForm != null) { IFormNavigable frm = refTypeForm.GetForm(obj) as IFormNavigable; if (frm != null) { CSc2iWin32DataNavigation.Navigateur.AffichePage(frm); } } }
private CResultAErreur EditeElementInterne(CObjetDonnee objet, bool bInNewOnglet, string strCodeFormEdition) { CResultAErreur result = CResultAErreur.True; CReferenceTypeForm refTypeForm = null; if (strCodeFormEdition != string.Empty) { refTypeForm = sc2i.win32.data.navigation.CFormFinder.GetRefFormToEdit(objet.GetType(), strCodeFormEdition); } else { refTypeForm = sc2i.win32.data.navigation.CFormFinder.GetRefFormToEdit(objet.GetType()); } if (refTypeForm == null) { result.EmpileErreur(I.T("The system is not able to edit elements of type '@1'|1076", objet.GetType().ToString())); return(result); } try { CFormEditionStandard form = refTypeForm.GetForm((CObjetDonneeAIdNumeriqueAuto)objet) as CFormEditionStandard; if (bInNewOnglet) { AffichePageDansNouvelOnglet(form); } else { AffichePage(form); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
//------------------------------------------------------------------ private void m_linkControl_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) { CObjetDonneeAIdNumeriqueAuto obj = this.ElementSelectionne as CObjetDonneeAIdNumeriqueAuto; if (obj == null) { return; } Type typeForm = m_typeFormEdition; //if ( typeForm == null && ElementSelectionne != null ) // typeForm = CFormFinder.GetRefFormToEdit ( ElementSelectionne.GetType() ); if (ElementSelectionne != null) { CFormEditionStandard form; if (typeForm != null) { form = (CFormEditionStandard)Activator.CreateInstance( typeForm, new object[] { obj }); CSc2iWin32DataNavigation.Navigateur.AffichePage(form); } else { CReferenceTypeForm refTypeForm = CFormFinder.GetRefFormToEdit(ElementSelectionne.GetType()); if (refTypeForm != null) { form = refTypeForm.GetForm(obj) as CFormEditionStandard; if (form != null) { CSc2iWin32DataNavigation.Navigateur.AffichePage(form); } } } } }