Vector vectAttribute = Utils.breakUp(strAttributePath, "/");
//get device's domain
String strDeviceDomain = vectAttribute.elementAt(0).toString();
//get device domain node
TreeNodeDomain domainNode = (TreeNodeDomain) TreeUtilities.getANode(m_treeTable.getTree(), strDeviceDomain);
TreeNodeMember memberNode = null;
if(domainNode != null)
{
//test if node domain has been built
if(domainNode.isBuilt())
{
//get family node
TreeNodeFamily familyNode = domainNode.getNodeFamily(vectAttribute.elementAt(1).toString());
if(familyNode != null)
{
if(familyNode.isBuilt())
{
memberNode = familyNode.getNodeMember(vectAttribute.elementAt(2).toString());
if(memberNode != null)
{
if(!memberNode.isBuilt())
{
try
{
memberNode.addAttributes();
memberNode.setBuilt(true);
}
catch (DevFailed e)
{
System.out.println("Device " + memberNode.getDeviceName() + " is not alive." );
memberNode.setBuilt(true);
}
}
}
}
else
{
familyNode.addMembers(true);
familyNode.setBuilt(true);
memberNode = familyNode.getNodeMember(vectAttribute.elementAt(2).toString());
if(memberNode != null)
{
if(!memberNode.isBuilt())
{
try
{
memberNode.addAttributes();
memberNode.setBuilt(true);
}
catch (DevFailed e)
{
System.out.println("Device " + memberNode.getDeviceName() + " is not alive." );
}
}
}
}
// get the good attribute node and check it
String strAttribute = vectAttribute.elementAt(3).toString();
if(memberNode != null)
{
TreeNodeAttribute attributeNode = memberNode.getNodeAttribute(strAttribute);
if(attributeNode != null)
{
//check this node
//check corresponding column of this node
m_model.setValueAt(new Boolean(true), attributeNode, 1);
//add this node in vector selectedNodes
vectSelectedNodes.add(attributeNode);
}
}
}
}
/** Create all families*/
/** Create all members of the good family */
/** Check the good member node */
else
{
//add families to domain node
domainNode.addFamilies();
domainNode.setBuilt(true);
//get family name
String strDeviceFamily = vectAttribute.elementAt(1).toString();
//get family node which contains member node
TreeNodeFamily familyNode = domainNode.getNodeFamily(strDeviceFamily);
if(familyNode != null)
{
//add members to family node
familyNode.addMembers(true);
familyNode.setBuilt(true);
SpRecordingDevices.updateRecordabilityNodes(familyNode.children());
// get member node
String strDeviceMember = vectAttribute.elementAt(2).toString();
memberNode = familyNode.getNodeMember(strDeviceMember);
if (memberNode != null)
{
TreeNodeAttribute attributeNode = memberNode.getNodeAttribute(vectAttribute
.elementAt(3).toString());
if (attributeNode != null)
{
// check this node
// check corresponding column of this node