public void mouseClicked(MouseEvent e) {
    //if the mouse was left clicked on 
    //the node then 
    if (m_clickAvailable) {
      //determine if the click was on a node or not
      int s = -1;
      
      for (int noa = 0; noa < m_numNodes;noa++) {
	if (m_nodes[noa].m_quad == 18) {
	  //then is on the screen
	  calcScreenCoords(noa);
	  if (e.getX() <= m_nodes[noa].m_center + m_nodes[noa].m_side 
	      && e.getX() 
	      >= m_nodes[noa].m_center - m_nodes[noa].m_side &&
	      e.getY() >= m_nodes[noa].m_top && e.getY() 
	      <= m_nodes[noa].m_top + m_nodes[noa].m_height) {
	    //then it is this node that the mouse was clicked on
	    s = noa;
	  }
	  m_nodes[noa].m_top = 32000;
	}
      }
      m_focusNode = s;
      
      if (m_focusNode != -1) {
	if (m_listener != null) {
	  //then set this to be the selected node for editing
	  actionPerformed(new ActionEvent(this, 32000, "Create Child Nodes"));
	  
	}
	else {
	  //then open a visualize to display this nodes instances if possible
	  actionPerformed(new ActionEvent(this, 32000, "Visualize The Node"));
	}
      }
    }
  }