/// //////////////////////////////////////////////////////////////// public static IVariableDynamique AssureVariableElementCible(CFiltreDynamique filtre, CObjetPourSousProprietes objetPourSousProprietes) { if (objetPourSousProprietes.ElementAVariableInstance as IElementAVariablesDynamiquesAvecContexteDonnee == null) { foreach (IVariableDynamique variable in filtre.ListeVariables) { if (variable.Nom == c_champElementSource) { return(variable); } } CVariableDynamiqueSysteme newVariable = new CVariableDynamiqueSysteme(filtre); newVariable.Nom = c_champElementSource; newVariable.SetTypeDonnee(new sc2i.expression.CTypeResultatExpression(objetPourSousProprietes.TypeAnalyse, false)); filtre.AddVariable(newVariable); return(newVariable); } else { filtre.ElementAVariablesExterne = null; while (filtre.ListeVariables.Length > 0) { filtre.RemoveVariable(filtre.ListeVariables[0]); } filtre.ElementAVariablesExterne = objetPourSousProprietes.ElementAVariableInstance as IElementAVariablesDynamiquesAvecContexteDonnee; return(null); } }
//--------------------------------------------------------------------------------------- private IVariableDynamique AssureVariableElementCible(CFiltreDynamique filtre, Type typeElement) { IVariableDynamique variableASupprimer = null; foreach (IVariableDynamique variable in filtre.ListeVariables) { if (variable.Nom == c_champElementSource) { if (variable.TypeDonnee.TypeDotNetNatif != typeElement) { variableASupprimer = variable; } else { return(variable); } } } if (variableASupprimer != null) { filtre.RemoveVariable(variableASupprimer); } CVariableDynamiqueSysteme newVariable = new CVariableDynamiqueSysteme(filtre); newVariable.Nom = c_champElementSource; newVariable.SetTypeDonnee(new sc2i.expression.CTypeResultatExpression(typeElement, false)); filtre.AddVariablePropreAuFiltre(newVariable); return(newVariable); }
private CVariableDynamique AssureVariableParent() { if (m_filtreDynamique == null) { return(null); } foreach (CVariableDynamique variable in m_filtreDynamique.ListeVariables) { if (variable.Nom == c_strNomVariableFiltre && variable is CVariableDynamiqueSysteme) { if (FolderParent == null || FolderParent.TypeElements == null) { m_filtreDynamique.RemoveVariable(variable); return(null); } else { CVariableDynamiqueSystemeInstance varSys = variable as CVariableDynamiqueSystemeInstance; varSys.SetInstance(FolderParent); return(variable); } } } //La variable n'existe pas if (FolderParent != null && FolderParent.TypeElements != null) { CVariableDynamiqueSystemeInstance variable = new CVariableDynamiqueSystemeInstance(); variable.SetInstance(FolderParent); variable.Nom = c_strNomVariableFiltre; m_filtreDynamique.AddVariable(variable); return(variable); } return(null); }