public void Update(IEnumerable<CodeFile> files) {
				var filter = Filter;
				var rule = new ExtractingRule(Enumerable.Repeat(filter, 1));
				var fileList = files.ToList();
				ExactMatch = fileList.Where(f => f.ReadOnly).All(
						f => f.RangesEquals(filter.ElementName, rule.ExtractRange2Elements(f.Ast)));
				Text = (ExactMatch ? "* " : "")
				       + fileList.Select(f => f.Ast).Select(filter.CountRemovableTargets).Sum() + ": " + filter;
			}
		private bool CanApplyAll(ExtractingRule rule = null) {
			rule = rule ?? InferRule();
			return btnApply.Enabled && FreezedFiles.All(
					f => f.RangesEquals(rule.ExtractRange2Elements(f.Ast)));
		}