code: function pasteFromClipboard (address, selectedTd) {
        function termFrom (fromCode) {
          var term = outline.clipboard[fromCode].shift()
          if (term === null) {
            UI.log.warn('no more element in clipboard!')
            return
          }
          switch (fromCode) {
            case 'predicates':
            case 'objects':
              var allArray = outline.clipboard.all
              for (var i = 0; true; i++) {
                if (term.sameTerm(allArray[i])) {
                  allArray.splice(i, 1)
                  break
                }
              }
              break
            case 'all':
              throw new Error('hostorical code not understood - what is theCollection?')
              /*
              var isObject = term.sameTerm(theCollection('objects').elements[0])
              isObject ? outline.clipboard.objecs.shift() : outline.clipboard.predicates.shift() // drop the corresponding term
              return [term, isObject]
              break
              */
          }
          return term
        }
        var term
        switch (selectedTd.className) {
          case 'undetermined selected':
            term = selectedTd.nextSibling ? termFrom('predicates') : termFrom('objects')
            if (!term) return
            break
          case 'pred selected': // paste objects into this predicate
            term = termFrom('objects')
            if (!term) return
            break
          case 'selected': // header <TD>, undetermined generated
            var returnArray = termFrom('all')
            if (!returnArray) return
            term = returnArray[0]
            this.insertTermTo(selectedTd, term, returnArray[1])
            return
        }
        this.insertTermTo(selectedTd, term)
      }
docs: Called when paste is called (Ctrl+v)