Vector vectAttribute = Utils.breakUp(strAttributePath, "/");
if ((vectAttribute != null) && (vectAttribute.size() > 3)) {
// 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) {
String errorMessage = "Cannot add member " + DevFailedUtils.toString(e);
TechnicalDataMessageManager.notifyNewErrorDetected(new Exception(errorMessage), false);
}
}
}
}
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) {
String errorMessage = "Cannot add attribute " + DevFailedUtils.toString(e);
TechnicalDataMessageManager.notifyNewErrorDetected(new Exception(errorMessage), false);
}
}
}
}
// 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());