public void setNodeName(String newName) { if (node == null) { return; } // validate... 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); }