public void mousePressed(MouseEvent me)
   {
      // Track the current tree node selected
      // so there by the query token.
      
      JTree tree = (JTree) me.getSource();

      if (SwingUtilities.isRightMouseButton(me))
      {
         int row = tree.getRowForLocation(me.getX(), me.getY());
         if (row != -1)
            tree.setSelectionRow(row);
      }

      node = null;
      selectedToken = null;

      TreePath path = tree.getSelectionPath();

      if (path != null)
      {
         node = (DefaultMutableTreeNode) path.getLastPathComponent();

         if (node.getUserObject() instanceof QueryTokens._Base || node instanceof BrowserItems.TableTreeItem)
         {
            selectedToken = (QueryTokens._Base) node.getUserObject();
         }
         else if (node instanceof BrowserItems.ConditionQueryTreeItem)
         {
            selectedToken = ((BrowserItems.ConditionQueryTreeItem) node).getCondition();
         }
         else if (node instanceof BrowserItems.AbstractQueryTreeItem)
         {
            QueryExpression qe = ((BrowserItems.AbstractQueryTreeItem) node).getQueryExpression();
            if (qe instanceof SubQuery)
               selectedToken = (SubQuery) qe;
         }
      }
   }