def METHOD_NAME(self, handle):
    super().METHOD_NAME(handle)
    line = self.line
    if line.subject is None:
        return
    iface = self.get_connected(line.head)
    if not isinstance(iface, InterfaceItem):
        iface = self.get_connected(line.tail)
    assert iface, "No interface found on {line}"
    connections = list(self.get_connecting(iface, both=True))
    # destroy whole assembly if one connected item stays
    # or only one port will stay connected
    if len(connections) == 2:
        connector = line.subject
        for ci in connections:
            c = self.get_component(ci.item)
            self.drop_uml(ci.item, c)
            line.request_update()
        connector.unlink()
    else:
        c = self.get_component(line)
        self.drop_uml(line, c)
    iface.request_update()