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)
    }
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?')
            
        }
        return term
      }
      var term
      switch (selectedTd.className) {
        case 'undetermined selected':
          term = selectedTd.nextSibling ? termFrom('predicates') : termFrom('objects')
          if (!term) return
          break
        case 'pred selected': 
          term = termFrom('objects')
          if (!term) return
          break
        case 'selected': 
          var returnArray = termFrom('all')
          if (!returnArray) return
          term = returnArray[0]
          this.insertTermTo(selectedTd, term, returnArray[1])
          return
      }
      this.insertTermTo(selectedTd, term)
    }
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 ) }
Called when paste is called (Ctrl+v)
Called when paste is called ( Ctrl + v )