package LinGUIne.parts.advanced.projects; import LinGUIne.model.IProjectData; /** * A child node for a Project Explorer tree which has an IProjectData * object associated with it. * * @author Kyle Mullins */ public class ProjectDataNode extends ProjectExplorerNode{ private IProjectData nodeData; /** * Creates a new ProjectDataNode with the given name, the given * parent node, and the given ProjectData. * * @param name The name of this node. * @param parent This node's parent node. * @param data The ProjectData to be associated with this node. */ public ProjectDataNode(String name, ProjectExplorerNode parent, IProjectData data){ super(name, parent); nodeData = data; } /** * Returns the ProjectData associated with this node. */ public IProjectData getNodeData(){ return nodeData; } @Override public boolean hasIcon(){ return true; } @Override public String getIconFileName(){ return "file_obj.gif"; } @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((nodeData == null) ? 0 : nodeData.hashCode()); return result; } @Override public boolean equals(Object obj) { if(this == obj) { return true; } else if(!super.equals(obj) || !(obj instanceof ProjectDataNode)){ return false; } ProjectDataNode other = (ProjectDataNode)obj; if(nodeData == null) { if(other.nodeData != null) { return false; } } else if(!nodeData.equals(other.nodeData)) { return false; } return true; } }