if (newName == null) {
throw new ValidationException("Empty DataNode Name");
}
ProjectController parent = (ProjectController) getParent();
DataNodeDefaults oldPref = parent.getDataNodePreferences();
DataChannelDescriptor dataChannelDescriptor = (DataChannelDescriptor) getApplication()
.getProject()
.getRootNode();
Collection<DataNodeDescriptor> matchingNode = dataChannelDescriptor
.getNodeDescriptors();
Iterator<DataNodeDescriptor> it = matchingNode.iterator();
while (it.hasNext()) {
DataNodeDescriptor node = it.next();
if (node.getName().equals(newName)) {
// there is an entity with the same name
throw new ValidationException("There is another DataNode named '"
+ newName
+ "'. Use a different name.");
}
}
// passed validation, set value...
// TODO: fixme....there is a slight chance that domain is different than the one
// cached node belongs to
ProjectUtil.setDataNodeName((DataChannelDescriptor) parent
.getProject()
.getRootNode(), node, newName);
oldPref.copyPreferences(newName);
}