code: def OnCardRightClick(self, event):
          
          item = event.GetItem()
          if item:
              itemdata = self.readertreepanel.cardtreectrl.GetItemPyData(item)
              if isinstance(itemdata, smartcard.Card.Card):
                  self.selectedcard = itemdata
                  if not hasattr(self, "connectID"):
                      self.connectID = wx.NewId()
                      self.disconnectID = wx.NewId()
  
                      self.Bind(wx.EVT_MENU, self.OnConnect, id=self.connectID)
                      self.Bind(
                          wx.EVT_MENU, self.OnDisconnect, id=self.disconnectID)
  
                  menu = wx.Menu()
                  if not hasattr(self.selectedcard, 'connection'):
                      menu.Append(self.connectID, "Connect")
                  else:
                      menu.Append(self.disconnectID, "Disconnect")
                  self.PopupMenu(menu)
                  menu.Destroy()
docs: Called when user right-clicks a node in the card tree control.