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