public void AddRange(CodeSwitchOption[] value) { if (value == null) { throw new ArgumentNullException("value"); } for (int i = 0; i < value.Length; i++) { Add(value[i]); } }
public CodeSwitchStatement(CodeExpression target, CodeSwitchOption[] options, params CodeStatement[] defaultStatements) { _target = target; _options = new CodeSwitchOptionCollection(OptionsChanged, options); foreach (CodeSwitchOption option in options) { option.SetTarget(_target); } _defaultStatements = base.FalseStatements; _defaultStatements.AddRange(defaultStatements); Refresh(); }
private void Refresh() { int optionCount = _options.Count; CodeSwitchOption firstOption = (optionCount > 0 ? _options[0] : null); if (_firstOption != firstOption) { if (_firstOption != null) { _firstOption.SetActualStmt(null); } _firstOption = firstOption; if (_firstOption != null) { _firstOption.SetActualStmt(this); } } CodeStatementCollection defaultStatements = (optionCount > 1 ? ((CodeConditionStatement) _options[optionCount - 1]).FalseStatements : base.FalseStatements); if (_defaultStatements != defaultStatements) { defaultStatements.Clear(); if (_defaultStatements != null) { defaultStatements.AddRange(_defaultStatements); _defaultStatements.Clear(); } _defaultStatements = defaultStatements; } CodeConditionStatement conditionStmt = this; foreach (CodeConditionStatement option in _options) { if (option != firstOption) { conditionStmt.FalseStatements.Clear(); conditionStmt.FalseStatements.Add(option); conditionStmt = option; } } if (conditionStmt == this) { base.Condition = new CodePrimitiveExpression(false); } }
private void OptionsChanged(CollectionChangeAction action, CodeSwitchOption option) { if (action == CollectionChangeAction.Add) { option.SetTarget(_target); } else if (action == CollectionChangeAction.Remove) { option.SetTarget(null); } Refresh(); }
public bool Contains(CodeSwitchOption value) { return List.Contains(value); }
public int Add(CodeSwitchOption value) { return List.Add(value); }
public CodeSwitchOptionCollection(CodeSwitchOption[] value) { AddRange(value); }
public CodeSwitchOptionCollection(CollectionChanged changed, CodeSwitchOption[] value) { AddRange(value); _changed = changed; }
private void NotifyChanged(CollectionChangeAction action, CodeSwitchOption option) { if (_changed != null) { _changed(action, option); } }
public void Remove(CodeSwitchOption value) { List.Remove(value); }
public void Insert(int index, CodeSwitchOption value) { List.Insert(index, value); }
public int IndexOf(CodeSwitchOption value) { return List.IndexOf(value); }
public void CopyTo(CodeSwitchOption[] array, int index) { List.CopyTo(array, index); }