internal DataviewHeaderBase CreateDataviewHeaders(Task task, int tableIndex) { bool isTableLocal = task.IsTableLocal(tableIndex); DataviewHeaderBase dataviewHeader = (isTableLocal ? new LocalDataviewHeader(task, tableIndex) : (DataviewHeaderBase) new RemoteDataviewHeader(task)); return(dataviewHeader); }
/// <summary> /// When the parser encounters the end of an element, it calls this method /// </summary> /// <param name="elementName"></param> /// <param name="elementValue"></param> /// <param name="attributes"></param> public void endElement(string elementName, string elementValue, NameValueCollection attributes) { String valueStr = attributes[ConstInterface.MG_ATTR_TABLE_INDEX]; if (valueStr != null) { int tableIndex = XmlParser.getInt(valueStr); DataviewHeaderBase dataviewHeader = _dataviewHeadersFactory.CreateDataviewHeaders(_task, tableIndex); attributes.Remove(ConstInterface.MG_ATTR_TABLE_INDEX); dataviewHeader.SetAttributes(attributes); _dataviewHeaders[dataviewHeader.Id] = dataviewHeader; } }
/// <summary> /// find links /// </summary> /// <param name="predicate"> find link according to the predicate</param> /// <returns></returns> internal DataviewHeaderBase Find(Predicate <DataviewHeaderBase> predicate) { IEnumerator dataviewHeaders = _dataviewHeaders.Values.GetEnumerator(); while (dataviewHeaders.MoveNext()) { DataviewHeaderBase dataviewHeader = (DataviewHeaderBase)dataviewHeaders.Current; if (predicate(dataviewHeader)) { return(dataviewHeader); } } return(null); }