public void Init( CAffectationsProprietes affectations, IFournisseurProprietesDynamiques fournisseur, Type typeElementModifie, CObjetPourSousProprietes objetSource) { ArrayList lstControles = new ArrayList(m_panelControles.Controls); foreach (Control ctrl in lstControles) { ctrl.Visible = false; m_panelControles.Controls.Remove(ctrl); ctrl.Dispose(); } CDefinitionProprieteDynamique[] defs = fournisseur.GetDefinitionsChamps(typeElementModifie, 0); m_panelControles.SuspendDrawing(); List <CDefinitionProprieteDynamique> lstDefs = new List <CDefinitionProprieteDynamique>(defs); lstDefs.Sort((x, y) => x.Nom.CompareTo(y.Nom)); foreach (CDefinitionProprieteDynamique def in lstDefs) { if (!def.IsReadOnly) { CPanelAffectationPropriete panel = new CPanelAffectationPropriete(); panel.Dock = DockStyle.Top; m_panelControles.Controls.Add(panel); C2iExpression formule = affectations.GetFormuleFor(def); panel.Init(def, formule, fournisseur, objetSource); m_panelControles.BringToFront(); } } m_panelControles.ResumeDrawing(); }
private void m_lnkAdd_LinkClicked(object sender, EventArgs e) { CResultAErreur result = CResultAErreur.True; IAllocateurSupprimeurElements allocateur = m_elementEdite as IAllocateurSupprimeurElements; if (m_elementEdite != null) { if (m_zoneMultiple.SourceFormula != null) { Type tp = m_zoneMultiple.SourceFormula.TypeDonnee.TypeDotNetNatif; CAffectationsProprietes affectations = SelectAffectation(); if (tp != null && affectations != null) { object obj = null; try { if (allocateur != null) { result = allocateur.AlloueElement(tp); if (result) { obj = result.Data; } } else { obj = Activator.CreateInstance(tp); } } catch (Exception ex) { result.EmpileErreur(new CErreurException(ex)); } if (obj == null | !result) { result.EmpileErreur(I.T("Error while allocating element|20003")); CFormAfficheErreur.Show(result.Erreur); return; } result = affectations.AffecteProprietes(obj, m_elementEdite, m_fournisseurProprietes); if (!result) { result.EmpileErreur(I.T("Some values cannot be assigned|20004")); CFormAfficheErreur.Show(result.Erreur); } MajChamps(false); if (!m_listeElementsAdd.Contains(obj)) { m_listeElementsAdd.Add(obj); m_lastAddedelement = obj; CUtilControlesWnd.DeclencheEvenement(C2iWndZoneMultiple.c_strIdEvenementAddElement, this); } UpdateFromSource(); } } } }
//----------------------------------------------------------------------- private ListViewItem GetItem(CAffectationsProprietes affectation) { foreach (ListViewItem item in m_wndListe.Items) { if (item.Tag == affectation) { return(item); } } return(null); }
private void m_wndAdd_LinkClicked(object sender, EventArgs e) { CAffectationsProprietes affectation = new CAffectationsProprietes(); affectation.Libelle = I.T("Set @1|20015", (m_listeEditee.Count + 1).ToString()); m_listeEditee.Add(affectation); ListViewItem item = new ListViewItem(); FillItem(item, affectation); m_wndListe.Items.Add(item); item.Selected = true; }
void itemCopier_Click(object sender, EventArgs e) { if (m_wndListe.SelectedItems.Count == 1) { CAffectationsProprietes affectation = m_wndListe.SelectedItems[0].Tag as CAffectationsProprietes; CResultAErreur result = CSerializerObjetInClipBoard.Copy(affectation, c_signatureClipboard); if (!result) { CFormAlerte.Afficher(result); } } }
public CAffectationsProprietes GetAffectations() { CAffectationsProprietes affectation = new CAffectationsProprietes(); foreach (Control ctrl in m_panelControles.Controls) { CPanelAffectationPropriete panel = ctrl as CPanelAffectationPropriete; if (panel != null) { affectation.SetAffectation(panel.Propriete, panel.Formule); } } return(affectation); }
//----------------------------------------------------------------------- private void AfficheAffectation(CAffectationsProprietes affectation) { SaveCurrent(); m_affectationsEditee = affectation; m_panelContientAffectation.Visible = m_affectationsEditee != null; if (m_affectationsEditee != null) { m_panelAffectation.Init( m_affectationsEditee, m_fournisseur, m_typeElement, m_objetSource); m_txtLibelle.Text = m_affectationsEditee.Libelle; m_txtCondition.Formule = m_affectationsEditee.FormuleCondition; m_txtFormuleGlobale.Formule = m_affectationsEditee.GlobalFormula; } }
void itemColler_Click(object sender, EventArgs e) { I2iSerializable objet = null; CResultAErreur result = CSerializerObjetInClipBoard.Paste(ref objet, c_signatureClipboard); if (!result) { CFormAlerte.Afficher(result); return; } CAffectationsProprietes affectation = objet as CAffectationsProprietes; if (affectation != null) { m_listeEditee.Add(affectation); ListViewItem item = new ListViewItem(); FillItem(item, affectation); m_wndListe.Items.Add(item); item.Selected = true; } }
public CMenuItemAvecAffectation(CAffectationsProprietes affectation) : base(affectation.Libelle) { m_affectation = affectation; }
//----------------------------------------------------------------------- private void FillItem(ListViewItem item, CAffectationsProprietes affectation) { item.Text = affectation.Libelle; item.Tag = affectation; }
/// /////////////////////////////////////// protected override CResultAErreur MySerialize(C2iSerializer serializer) { int nVersion = GetNumVersion(); CResultAErreur result = serializer.TraiteVersion(ref nVersion); if (!result) { return(result); } // Sérialise le formule source result = serializer.TraiteObject <C2iExpression>(ref m_formuleSource); if (!result) { return(result); } // Sérialise les colonnes result = serializer.TraiteListe <CColonneListeSpeedStd>(Columns); if (!result) { return(result); } // Sérialise les affectations des nouveaux objets //result = serializer.TraiteObject<CAffectationsProprietes>(ref m_affectationsInitiales); //if (!result) // return result; if (nVersion < 5 && serializer.Mode == ModeSerialisation.Lecture) { CAffectationsProprietes affectation = null; result = serializer.TraiteObject <CAffectationsProprietes>(ref affectation); if (!result) { return(result); } m_listeAffectationsInitiales.Clear(); m_listeAffectationsInitiales.Add(affectation); } else { result = serializer.TraiteListe <CAffectationsProprietes>(m_listeAffectationsInitiales); if (!result) { return(result); } } result = serializer.TraiteObject <CPointeurFiltreDynamiqueInDb>(ref m_filter); if (!result) { return(result); } bool bHasType = m_typeSource != null; serializer.TraiteBool(ref bHasType); if (bHasType) { serializer.TraiteType(ref m_typeSource); } serializer.TraiteString(ref m_strMessageConfirmationSuppression); serializer.TraiteBool(ref m_bHasAddButton); serializer.TraiteBool(ref m_bHasDeleteButton); if (nVersion >= 1) { result = serializer.TraiteObject <IReferenceFormEdition>(ref m_referenceFormEdition); } else { m_referenceFormEdition = null; } if (!result) { return(result); } if (nVersion >= 2) { serializer.TraiteBool(ref m_bUserCustomizable); } if (nVersion >= 3) { serializer.TraiteBool(ref m_bHasDetailButton); serializer.TraiteObject <C2iExpression>(ref m_formuleElementToEdit); } if (nVersion >= 4) { serializer.TraiteBool(ref m_bUseCheckBoxes); } if (nVersion >= 6) { serializer.TraiteBool(ref m_bHasFitlerButton); } return(result); }
public CResultAErreur FillDataSet(DataSet ds, C2iWnd fenetre, IObjetDonneeAChamps objetEdite, CListeRestrictionsUtilisateurSurType lstRestrictions) { CResultAErreur result = CResultAErreur.True; if (m_formulaire == null) { result.EmpileErreur("m_formulaire is null"); return(result); } if (fenetre != null) { try { ArrayList lst = fenetre.AllChilds(); bool bConserverCeGroupe = false; CRestrictionUtilisateurSurType restrictionSurObjetEdite = lstRestrictions.GetRestriction(objetEdite.GetType()); foreach (object obj in lst) { if (obj is I2iWebControl) { I2iWebControl webControl = (I2iWebControl)obj; if (webControl.WebLabel == "") { continue; } C2iWnd wndControl = webControl as C2iWnd; if (wndControl != null) { // Traite la visibilité du champ C2iExpression expVisible = wndControl.Visiblity; if (expVisible != null) { CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objetEdite); CResultAErreur resVisible = expVisible.Eval(ctx); if (resVisible && resVisible.Data != null) { if (resVisible.Data.ToString() == "0" || resVisible.Data.ToString().ToUpper() == "FALSE") { continue; } } } // Applique les restrictions bool bIsEditable = true; if (wndControl is C2iWndFormule || wndControl is C2iWndPanel || wndControl is C2iWndSlidingPanel) { bIsEditable = false; } else if ((bool)m_row[c_champIsInfosSecondaires]) { // Si c'est un groupe d'infos secondaire, aucun champ n'est éditable bIsEditable = false; } else if (wndControl is C2iWndChampCustom) { // Sinon on regarde les restrictions du champ C2iWndChampCustom wndChamp = (C2iWndChampCustom)wndControl; CChampCustom cc = wndChamp.ChampCustom; if (restrictionSurObjetEdite != null) { ERestriction rest = restrictionSurObjetEdite.GetRestriction(cc.CleRestriction); if ((rest & ERestriction.ReadOnly) == ERestriction.ReadOnly) { bIsEditable = false; } } } CChampTimosWebApp champWeb = new CChampTimosWebApp(ds, webControl, objetEdite, m_formulaire.Id, "-1", bIsEditable); result = champWeb.FillDataSet(ds); CTodoValeurChamp valeur = new CTodoValeurChamp(ds, objetEdite, champWeb, m_formulaire.Id, bIsEditable); result = valeur.FillDataSet(ds); bConserverCeGroupe = true; } } // Traitement dans le cas d'un sous-formulaire else if (obj is C2iWndConteneurSousFormulaire) { C2iWndConteneurSousFormulaire subForm = (C2iWndConteneurSousFormulaire)obj; if (subForm != null && subForm.SubFormReference != null) { C2iWnd frm = sc2i.formulaire.subform.C2iWndProvider.GetForm(subForm.SubFormReference); if (frm != null) { if (subForm.EditedElement != null) { C2iExpression expression = subForm.EditedElement; CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objetEdite); CResultAErreur resEval = expression.Eval(ctx); if (!resEval) { result += resEval; return(result); } IObjetDonneeAChamps sousObjetEdite = resEval.Data as IObjetDonneeAChamps; if (sousObjetEdite != null) { // Traite la visibilité du champ var ctxSousObjet = new CContexteEvaluationExpression(sousObjetEdite); C2iExpression expVisible = subForm.Visiblity; if (expVisible != null) { CResultAErreur resVisible = expVisible.Eval(ctxSousObjet); if (resVisible && resVisible.Data != null) { if (resVisible.Data.ToString() == "0" || resVisible.Data.ToString().ToUpper() == "FALSE") { continue; } } } bConserverCeGroupe = true; FillDataSet(ds, frm, sousObjetEdite, lstRestrictions); } } } } } // Traitement dans le cas d'une Child Zone else if (obj is C2iWndZoneMultiple) { C2iWndZoneMultiple childZone = (C2iWndZoneMultiple)obj; C2iWndSousFormulaire sousFenetre = childZone.FormulaireFils; bool bHasAddButton = childZone.HasAddButton; bool bCanCreate = false; if (childZone.SourceFormula != null) { CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(objetEdite); C2iExpression source = childZone.SourceFormula; Type tp = source.TypeDonnee.TypeDotNetNatif; if (tp != null) { // Gestion des restrictions CRestrictionUtilisateurSurType restrictions = lstRestrictions.GetRestriction(tp); if (restrictions != null) { bCanCreate = restrictions.CanCreateType(); } } CResultAErreur resEval = source.Eval(ctxEval); if (!resEval) { result += resEval; return(result); } object datas = resEval.Data; if (datas != null) { bConserverCeGroupe = true; IEnumerable collection = datas as IEnumerable; if (collection != null) { // La source de données est une collection, il s'agit certainement de caractéristiques // Mais c'est peut-être aussi un Workbook, un Site, un Projet... on ne sait pas car ça dépend du paramétrage m_row[c_champTitreCaracteristiques] = childZone.WebLabel; m_row[c_champCanAddCaracteristiques] = bHasAddButton && bCanCreate; int nOrdre = 0; foreach (var data in collection) { IObjetDonneeAChamps objEdite = data as IObjetDonneeAChamps; if (objEdite != null) { CCaracteristique caracWeb = new CCaracteristique( ds, objEdite as IObjetDonneeAIdNumeriqueAuto, tp, objetEdite.GetType().ToString(), ((IObjetDonneeAIdNumeriqueAuto)objetEdite).Id, nOrdre++, m_formulaire.Id, false); caracWeb.FillDataSet(ds, sousFenetre, objEdite, lstRestrictions); } } // Création d'un template if (childZone.Affectations.Count > 0) { CAffectationsProprietes affectation = childZone.Affectations[0]; if (tp != null && affectation != null) { IAllocateurSupprimeurElements allocateur = objetEdite as IAllocateurSupprimeurElements; object newObj = null; try { if (allocateur != null) { result = allocateur.AlloueElement(tp); if (result) { newObj = result.Data; } } else { newObj = Activator.CreateInstance(tp); } } catch (Exception ex) { result.EmpileErreur(new CErreurException(ex)); } if (newObj == null | !result) { result.EmpileErreur(I.T("Error while allocating element|20003")); } result = affectation.AffecteProprietes(newObj, objetEdite, new CFournisseurPropDynStd(true)); if (!result) { result.EmpileErreur(I.T("Some values cannot be assigned|20004")); } CCaracteristique caracTemplate = new CCaracteristique( ds, newObj as IObjetDonneeAIdNumeriqueAuto, tp, objetEdite.GetType().ToString(), ((IObjetDonneeAIdNumeriqueAuto)objetEdite).Id, nOrdre++, m_formulaire.Id, true); caracTemplate.FillDataSet(ds, sousFenetre, newObj as IObjetDonneeAChamps, lstRestrictions); } } } else { // La source de donnée est un objet unique IObjetDonneeAChamps objEdite = datas as IObjetDonneeAChamps; if (objEdite != null) { FillDataSet(ds, sousFenetre, objEdite, lstRestrictions); } } } } } } /*if (!bConserverCeGroupe) * { * DataTable dt = ds.Tables[c_nomTable]; * if (dt != null) * dt.Rows.Remove(m_row); * }*/ } catch (Exception ex) { result.EmpileErreur(ex.Message); return(result); } } return(result); }