private void injectPhoneInitializationCode(BlockStatement block, Statement statementAfter) { // TODO check page name against container name IEnumerable<ControlInfoStructure> controls = PhoneCodeHelper.instance().PhonePlugin.getControlsForPage(methodBeingTraversed.Container.ToString()); IEnumerable<IStatement> injectedStatements = new List<IStatement>(); if (controls != null) { foreach (ControlInfoStructure controlInfo in controls) { injectedStatements = injectedStatements.Concat(getCodeForSettingEnabledness(controlInfo)); injectedStatements = injectedStatements.Concat(getCodeForSettingCheckedState(controlInfo)); injectedStatements = injectedStatements.Concat(getCodeForSettingVisibility(controlInfo)); } int stmtPos = block.Statements.IndexOf(statementAfter); block.Statements.InsertRange(stmtPos + 1, injectedStatements); } }
/// <summary> /// Called from the type specific rewrite method to rewrite the common part of all statements. /// </summary> public virtual void RewriteChildren(Statement statement) { //This is just an extension hook }