public void Initialize(Session session, NodeId typeId)
{
ItemsLV.Items.Clear();
AdjustColumns();
if (session == null)
{
return;
}
ILocalNode root = session.NodeCache.Find(typeId) as ILocalNode;
if (root == null)
{
return;
}
m_session = session;
SortedDictionary<string,InstanceDeclaration> instances = new SortedDictionary<string,InstanceDeclaration>();
InstanceDeclaration declaration = new InstanceDeclaration();
declaration.Instance = root;
declaration.DisplayPath = Utils.Format("({0})", root.NodeClass);
declaration.Description = Utils.Format("{0}", root.Description);
declaration.DataType = "NodeId";
IVariableBase variable = root as IVariableBase;
if (variable != null)
{
INode dataType = m_session.NodeCache.Find(variable.DataType);
if (dataType != null)
{
declaration.DataType = Utils.Format("{0}", dataType);
}
if (variable.ValueRank >= 0)
{
declaration.DataType += "[]";
}
}
instances.Add(declaration.DisplayPath, declaration);
CollectInstances(root, String.Empty, instances);
foreach (InstanceDeclaration instance in instances.Values)
{
AddItem(instance);
}
AdjustColumns();
}
#endregion