Esempio n. 1
0
	    container.on("drop", function(data, index){
		d3.event.preventDefault();
		d3.event.stopPropagation();
		
		var files = toArray(d3.event.dataTransfer.files);

		if (files.length === 0) {
		    throw new Error("No files found.");
		}

		files.forEach(function(file){
		    var reader = new FileReader(),
			ext = file.name.split('.').pop(),
			handler = handlers[ext],
			success = false;

		    reader.onload = function() {
			if (!handler) {
			    throw new Error("No handlers for file " + file.name);
			} else {
			    handler(file.name, reader.result);
			}
		    };

		    reader.onerror = function(err) {
			throw new Error("Failed to load file " + file.name + " " + err + " " + err.stack);
		    };

		    reader.readAsText(file);
		});
	    });
Esempio n. 2
0
  pointClick(d, i){
    const { useSelect, useRemove } = this.options
    const self = this

    if (useSelect){
      d.selected ? d.selected = false : d.selected = true

      // add the current point to selected indices
      const idx = self.selectedIndices.indexOf(i)
      if (d.selected && idx === -1) self.selectedIndices.push(i)
      if (!d.selected && idx > -1) self.selectedIndices.splice(idx, 1)

      self.redraw()

      // dispatch POINT CLICK event
      self.dispatch[EVENTS.POINT.CLICK](d, i)

      // trigger POINT SELECT event
      self.selectPointTrigger(self.selectedIndices)
    }
    else if (useRemove) {
      // dispatch POINT REMOVE
      self.dispatch[EVENTS.POINT.REMOVE](d, i)

      // remove point
      self.removePoint(i)

      // set current domain after render
      self.saveRender()
    }

    d3.event.preventDefault()
    d3.event.stopPropagation()
  }
Esempio n. 3
0
  pointClick(d, i, s){
    const { useSelect } = this.options
    const self = this

    if (useSelect){
      // initialize selected indices if needed
      if (!self.selectedIndices[i]) self.selectedIndices[i] = []

      let idx = d.selected.indexOf(s)
      if (idx > -1) {
        d.selected.splice(idx, 1)
        self.selectedIndices[i].splice(idx, 1)
      } else {
        d.selected.push(s)
        self.selectedIndices[i].push(s)
      }

      self.redraw()

      // dispatch POINT CLICK event
      self.dispatch[EVENTS.POINT.CLICK](d, i, s)

      // trigger POINT SELECT event
      self.selectPointTrigger(self.selectedIndices)
    }

    d3.event.preventDefault()
    d3.event.stopPropagation()
  }
Esempio n. 4
0
File: select.js Progetto: mvexel/iD
        function dblclick() {
            var target = d3.select(d3.event.target),
                datum = target.datum();

            if (datum instanceof osmWay && !target.classed('fill')) {
                var choice = geoChooseEdge(context.childNodes(datum), context.mouse(), context.projection),
                    prev = datum.nodes[choice.index - 1],
                    next = datum.nodes[choice.index];

                context.perform(
                    actionAddMidpoint({loc: choice.loc, edge: [prev, next]}, osmNode()),
                    t('operations.add.annotation.vertex')
                );

                d3.event.preventDefault();
                d3.event.stopPropagation();

            } else if (datum.type === 'midpoint') {
                context.perform(
                    actionAddMidpoint({loc: datum.loc, edge: datum.edge}, osmNode()),
                    t('operations.add.annotation.vertex'));

                d3.event.preventDefault();
                d3.event.stopPropagation();
            }
        }
Esempio n. 5
0
  update() {
    const { data, line, lines, dots, x, y, legendItemRect, legendItemText, legendIndex } = this
    const { variables, xVariable, yVariables, colors } = this.options

    lines.attr('d', v => {
      return line
        .defined((d, i) => isDefined(variables[v].accessor(d, i)))
        .y((d, i) => y(variables[v].accessor(d, i)))(data)
    })
    .style('visibility', (d, i) => legendIndex[i] ? 'visible' : 'hidden')

    dots.selectAll('.dot')
      .data(v => data)
      .classed('selected', (d, i, s) => d.selected && d.selected.indexOf(s) > -1)
      .attr('cx', (d, i, s) => x(variables[xVariable].accessor(d, i)))
      .attr('cy', (d, i ,s) => y(variables[yVariables[s]].accessor(d, i)))
      .style('display', (d, i, s) => !isDefined(variables[yVariables[s]].accessor(d, i)) ? 'none' : null)
      .style('visibility', (d, i, s) => legendIndex[s] ? 'visible' : 'hidden')

    // update legend
    legendItemRect.attr('fill', (v, i) => legendIndex[i] ? variables[v].color || colors[i] : 'lightgray')
    legendItemText.style('opacity', (v, i) => legendIndex[i] ? 1 : .3)

    if (d3.event && d3.event.keyCode) {
      d3.event.preventDefault()
      d3.event.stopPropagation()
    }
  }
Esempio n. 6
0
 testsEnter.on("click", function(d) {
   if (d3.event.shiftKey) {
     renderTestEditor(d.test);
     d3.event.preventDefault();
     d3.event.stopPropagation();
   }
 });
Esempio n. 7
0
                    .on("click", function (d) {

                        d3.event.preventDefault();
                        d3.event.stopPropagation();
                        
                        _this.emitEvent("selected", [d]);

                    })
Esempio n. 8
0
 function toggleWireframe() {
     if (d3.event) {
         d3.event.preventDefault();
         d3.event.stopPropagation();
     }
     setFill((fillSelected === 'wireframe' ? fillDefault : 'wireframe'));
     context.map().pan([0,0]);  // trigger a redraw
 }
Esempio n. 9
0
 function keydown() {
     if (d3.event.keyCode === 93)  {   // context menu
         d3.event.preventDefault();
         d3.event.stopPropagation();
         down.menu = d3.event.timeStamp;
         tooltip.classed('rightclick', true);
     }
 }
Esempio n. 10
0
 function quickSwitch() {
     if (d3.event) {
         d3.event.stopImmediatePropagation();
         d3.event.preventDefault();
     }
     if (previous) {
         clickSetSource(previous);
     }
 }
Esempio n. 11
0
 var add_item = function(d){
   d3.event.stopImmediatePropagation();
   d3.event.stopPropagation();
   d3.event.preventDefault();
   // make a new item!
   updateItem(null, {
     x: x.invert(d3.event.x - margin.left),
     y: y.invert(d3.event.y - margin.top)
   });
 };
Esempio n. 12
0
 return function () {
   if (d3.event.button !== 2) return
   $scope.focusedPerson = person
   $scope.$digest()
   d3.selectAll('path.focused', el[0][0].parentElement).classed('focused', false)
   el.classed('focused', true)
   d3.event.preventDefault()
   d3.event.stopPropagation()
   return false
 }
Esempio n. 13
0
File: check.js Progetto: edpop/iD
 .on('click', function() {
     d3.event.preventDefault();
     d3.event.stopPropagation();
     context.perform(
         actionReverse(entityId),
         t('operations.reverse.annotation')
     );
     d3.select(this)
         .call(reverserSetText);
 });
Esempio n. 14
0
 function contextmenu() {
     d3.event.preventDefault();
     d3.event.stopPropagation();
     if (!down[2] && !down.menu) {
         tooltip.classed('rightclick', true);
         window.setTimeout(function() {
             tooltip.classed('rightclick', false);
         }, minTime);
         dispatch.call('click', this, 'right');
     }
 }
	d3.select('#login').on('click', function() {
		
		d3.select(this).attr('disabled', true)
		
		d3.event.preventDefault()
		d3.event.stopPropagation()
		
		opts.action()
		
		return false
	})
Esempio n. 16
0
 .on('click', function () {
     d3.event.stopPropagation();
     d3.event.preventDefault();
     if (showing) {
         hide();
     } else if (loaded) {
         done();
     } else {
         load(tag);
     }
 });
Esempio n. 17
0
  function clickOutside() {
    if (selected) {
      selected.attr('class', 'node')
    }
    selected = null

    if (!d3.event.defaultPrevented) {
      d3.event.stopPropagation()
      d3.event.preventDefault()
      onClickOutside()
    }
  }
Esempio n. 18
0
 .on('mousedown', function () {
     // prevent the form element from blurring. it blurs
     // on mousedown
     d3.event.stopPropagation();
     d3.event.preventDefault();
     if (!shown) {
         input.node().focus();
         fetch('', render);
     } else {
         hide();
     }
 });
    onNodeDblClick: function (node) {
        if (d3.event.defaultPrevented) return; // ignore drag

        if (!node.children) return;

        d3.event.preventDefault();
        d3.event.stopPropagation();

        node.expanded = !node.expanded;

        return node.root ? this.onRootDblClick(node) : this.onChildNodeDblClick(node);
    },
Esempio n. 20
0
	disconnect = function(d) {
	    d3.event.stopPropagation();
	    d3.event.preventDefault();
	    
	    if (d.canModify) {
		var nodes = getNodeCollection(),
		    from = nodes.get(d.parentId),
		    to = nodes.get(d.childId);
		
		from.edgeTo(to).disconnect();
		update();
	    }
	},
Esempio n. 21
0
		.on("keydown", function(d, i) {
		    if (d3.event.keyCode === arrowDown) {
			moveSelection(1);
			
		    } else if (d3.event.keyCode === arrowUp) {
			moveSelection(-1);
			
		    } else {
			return;
		    }

		    d3.event.preventDefault();
		    d3.event.stopPropagation();
		}),
Esempio n. 22
0
  function clickNode(d) {
    if (selected) {
      selected.attr('class', 'node')
    }
    selected = d3.select(this)
    selected.attr('class', 'node selected')

    if (!d3.event.defaultPrevented) {
      d3.event.stopPropagation()
      d3.event.preventDefault()
      update()
      onClickNode(d.id)
    }
  }
Esempio n. 23
0
  pointDrag(d, i) {
    const self = this

    if (d3.event) {
      d3.event.preventDefault()
      d3.event.stopPropagation()
    }

    self.dragged = d
    self.pointIndex = i
    self.draggedElement = d3.event.target

    self.update()
  }
Esempio n. 24
0
 .on('keydown', function() {
   switch (d3.event.keyCode) {
   case 37: // Left
     iTimestep--;
       if (iTimestep < 0) {iTimestep = parsed.timesteps.length - 1;}
     draw(true);
     d3.event.preventDefault();
     break;
   case 39: // Right
     iTimestep = (iTimestep+1)%parsed.timesteps.length;
     draw(true);
     d3.event.preventDefault();
     break;
   }
 });
Esempio n. 25
0
File: copy.js Progetto: boothym/iD
    function doCopy() {
        d3.event.preventDefault();

        var graph = context.graph(),
            selected = groupEntities(context.selectedIDs(), graph),
            canCopy = [],
            skip = {},
            i, entity;

        for (i = 0; i < selected.relation.length; i++) {
            entity = selected.relation[i];
            if (!skip[entity.id] && entity.isComplete(graph)) {
                canCopy.push(entity.id);
                skip = getDescendants(entity.id, graph, skip);
            }
        }
        for (i = 0; i < selected.way.length; i++) {
            entity = selected.way[i];
            if (!skip[entity.id]) {
                canCopy.push(entity.id);
                skip = getDescendants(entity.id, graph, skip);
            }
        }
        for (i = 0; i < selected.node.length; i++) {
            entity = selected.node[i];
            if (!skip[entity.id]) {
                canCopy.push(entity.id);
            }
        }

        context.copyIDs(canCopy);
    }
Esempio n. 26
0
        function toggle() {
            if (d3.event) {
                d3.event.preventDefault();
            }

            isHidden = !isHidden;

            if (isHidden) {
                wrap
                    .style('display', 'block')
                    .style('opacity', 1)
                    .transition()
                    .duration(200)
                    .style('opacity', 0)
                    .on('end', function() {
                        d3.select(this).style('display', 'none');
                    });
            } else {
                wrap
                    .style('display', 'block')
                    .style('opacity', 0)
                    .transition()
                    .duration(200)
                    .style('opacity', 1)
                    .on('end', function() {
                        redraw();
                    });
            }
        }
Esempio n. 27
0
        function dragOffset() {
            if (d3.event.button !== 0) return;
            var origin = [d3.event.clientX, d3.event.clientY];

            context.container()
                .append('div')
                .attr('class', 'nudge-surface');

            d3.select(window)
                .on('mousemove.offset', function() {
                    var latest = [d3.event.clientX, d3.event.clientY];
                    var d = [
                        -(origin[0] - latest[0]) / 4,
                        -(origin[1] - latest[1]) / 4
                    ];

                    origin = latest;
                    nudge(d);
                })
                .on('mouseup.offset', function() {
                    if (d3.event.button !== 0) return;
                    d3.selectAll('.nudge-surface')
                        .remove();

                    d3.select(window)
                        .on('mousemove.offset', null)
                        .on('mouseup.offset', null);
                });

            d3.event.preventDefault();
        }
Esempio n. 28
0
  function keydown() {
    if (!isFixed) return
    var delta
    switch (d3.event.keyCode) {
      case 39: // right arrow
      if (d3.event.metaKey) return
      case 40: // down arrow
      case 34: // page down
      delta = d3.event.metaKey ? Infinity : 1 ;break
      case 37: // left arrow
      if (d3.event.metaKey) return
      case 38: // up arrow
      case 33: // page up
      delta = d3.event.metaKey ? -Infinity : -1 ;break
      case 32: // space
      delta = d3.event.shiftKey ? -1 : 1
      ;break
      default: return
    }

    var i1 = Math.max(0, Math.min(i + delta, n - 1))
    if (i1 == i) return // let browser handle scrolling past last section
    d3.select(document.documentElement)
        .interrupt()
      .transition()
        .duration(500)
        .tween("scroll", function() {
          var i = d3.interpolateNumber(pageYOffset, sectionPos[i1] + containerStart)
          return function(t) { scrollTo(0, i(t)) }
        })

    d3.event.preventDefault()
  }
Esempio n. 29
0
 function clickSetSource(d) {
     d3.event.preventDefault();
     previous = context.background().baseLayerSource();
     context.background().baseLayerSource(d);
     selectLayer();
     document.activeElement.blur();
 }
Esempio n. 30
0
 .on('click', function() {
     if (d3.event.button !== 0) return;
     var exp = d3.select(this).classed('expanded');
     nudgeContainer.style('display', exp ? 'none' : 'block');
     d3.select(this).classed('expanded', !exp);
     d3.event.preventDefault();
 });