private IList<string> ApplyFilters(IList<ComDaBrowseElement> elements, int browseType)
{
List<string> names = new List<string>();
for (int ii = 0; ii < elements.Count; ii++)
{
ComDaBrowseElement element = elements[ii];
if (browseType == (int)OPCHDA_BROWSETYPE.OPCHDA_BRANCH)
{
if (!element.HasChildren)
{
continue;
}
}
if (browseType == (int)OPCHDA_BROWSETYPE.OPCHDA_LEAF)
{
if (!element.IsHistoricalItem || element.HasChildren)
{
continue;
}
}
if (browseType == (int)OPCHDA_BROWSETYPE.OPCHDA_ITEMS)
{
if (!element.IsHistoricalItem)
{
continue;
}
}
if (m_filters != null)
{
for (int jj = 0; jj < m_filters.Count; jj++)
{
if (!MatchFilter(element.BrowseName, m_filters[jj]))
{
continue;
}
}
}
if (browseType == (int)OPCHDA_BROWSETYPE.OPCHDA_ITEMS || browseType == (int)OPCHDA_BROWSETYPE.OPCHDA_FLAT)
{
names.Add(element.ItemId);
}
else
{
names.Add(element.BrowseName);
}
}
return names;
}