//------------------------------------------------------------------- private void FillListeTypesFournisseursPossibles() { m_cmbTypeExtracteur.BeginUpdate(); m_cmbTypeExtracteur.Items.Clear(); string strIdSource = GetIdSourceSelectionnee(); if (strIdSource != null) { CParametreSourceChart p = m_chartSetup.ParametresDonnees.GetSourceFV(strIdSource); if (p != null) { foreach (Type tp in CGestionnaireFournisseursValeursSerie.GetTypesFournisseursConnus()) { IFournisseurValeursSerie f = Activator.CreateInstance(tp) as IFournisseurValeursSerie; if (f != null && f.IsApplicableToSource(p)) { CDescriptionFournisseurValeurs desc = new CDescriptionFournisseurValeurs(f.LabelType, tp); m_cmbTypeExtracteur.Items.Add(desc); } } } } m_cmbTypeExtracteur.DisplayMember = "Libelle"; m_cmbTypeExtracteur.ValueMember = "Type"; m_cmbTypeExtracteur.EndUpdate(); if (m_fournisseurValeurs != null) { for (int n = 0; n < m_cmbTypeExtracteur.Items.Count; n++) { CDescriptionFournisseurValeurs desc = m_cmbTypeExtracteur.Items[n] as CDescriptionFournisseurValeurs; if (desc != null && desc.Type == m_fournisseurValeurs.GetType()) { m_cmbTypeExtracteur.SelectedIndex = n; break; } } } // m_cmbTypeExtracteur.SelectedValue = m_fournisseurValeurs.GetType(); ShowDetailFournisseur(); }
//------------------------------------------------------------------- private void ShowDetailFournisseur() { CDescriptionFournisseurValeurs desc = null; if (m_cmbTypeExtracteur.SelectedIndex >= 0) { desc = m_cmbTypeExtracteur.Items[m_cmbTypeExtracteur.SelectedIndex] as CDescriptionFournisseurValeurs; } if (desc == null) { if (m_editeurEnCours != null) { ((Control)m_editeurEnCours).Visible = false; m_panelDetailExtracteur.Controls.Remove((Control)m_editeurEnCours); ((Control)m_editeurEnCours).Dispose(); m_editeurEnCours = null; } return; } if (m_fournisseurValeurs == null || m_fournisseurValeurs.GetType() != desc.Type) { m_fournisseurValeurs = Activator.CreateInstance(desc.Type) as IFournisseurValeursSerie; } m_panelDetailExtracteur.SuspendDrawing(); if (m_fournisseurValeurs != null) { string strId = GetIdSourceSelectionnee(); if (strId == null) { m_fournisseurValeurs = null; } else { m_fournisseurValeurs.SourceId = strId; } Type tp = CGestionnaireEditeursFournisseursValeurs.GetTypeEditeur(m_fournisseurValeurs.GetType()); if (tp != null && (m_editeurEnCours == null || m_editeurEnCours.GetType() != tp)) { if (m_editeurEnCours != null) { ((Control)m_editeurEnCours).Visible = false; m_panelDetailExtracteur.Controls.Remove(((Control)m_editeurEnCours)); ((Control)m_editeurEnCours).Dispose(); m_editeurEnCours = null; } m_editeurEnCours = Activator.CreateInstance(tp, new object[0]) as IEditeurFournisseurValeursSerieDeTypeConnu; if (m_editeurEnCours != null) { Control ctrl = m_editeurEnCours as Control; m_panelDetailExtracteur.Controls.Add(ctrl); ctrl.Dock = DockStyle.Fill; } } if (m_editeurEnCours != null) { m_editeurEnCours.InitChamps(m_chartSetup, m_fournisseurValeurs); } } m_panelDetailExtracteur.ResumeDrawing(); }