public boolean updateHilight(TopoTreeNode node) { // System.out.println("Begin update hilight"); if (node != null) { if (node.hilighted) { // return false; // commented so as not to suppress highlight of same node; so user can // click node, click tag, then click same node } if (hilightedNode != null) { hilightedNode.hilighted = false; } hilightedNode = node; hilightedNode.hilighted = true; // add the new node to the selection m_ttable.promoteTagSilent(m_ttable.getListedTag()); while (m_ttable.topTag().full_components.size() > 0) { TopoTreeNode n = null; for (TopoTreeNode k : m_ttable.topTag().full_components) { if (n == null) { n = k; } else if (n.num_points < k.num_points) { n = k; } } m_ttable.topTag().removeComponent(n); } m_ttable.topTag().addComponent(node); for (TagChangeListener tagChangeListener : tagChangeListeners) { tagChangeListener.tagsChanged(); } redraw(); } else { if (hilightedNode == null) { return false; } hilightedNode.hilighted = false; hilightedNode = null; // m_ttable.promoteTagSilent(m_ttable.getListedTag()); while (m_ttable.topTag().full_components.size() > 0) { TopoTreeNode n = null; for (TopoTreeNode k : m_ttable.topTag().full_components) { if (n == null) { n = k; } else if (n.num_points < k.num_points) { n = k; } } m_ttable.topTag().removeComponent(n); } for (TagChangeListener tagChangeListener : tagChangeListeners) { tagChangeListener.tagsChanged(); } redraw(); } // System.out.println("End update hilight"); return true; }