client/js/paper-renderer.js
changeset 122 ea11e17e0a35
parent 120 112a82ddd7e5
child 132 860340d4c645
equal deleted inserted replaced
121:d3e79465d285 122:ea11e17e0a35
    31 	shortenText : function(_text, _maxlength) {
    31 	shortenText : function(_text, _maxlength) {
    32 		return (_text.length > _maxlength ? (_text.substr(0,_maxlength) + '…') : _text);
    32 		return (_text.length > _maxlength ? (_text.substr(0,_maxlength) + '…') : _text);
    33 	},
    33 	},
    34     drawEditBox : function(_options, _coords, _path, _xmargin, _selector) {
    34     drawEditBox : function(_options, _coords, _path, _xmargin, _selector) {
    35     	_selector.css({
    35     	_selector.css({
    36             width: ( _options.tooltip_width - 2* _options.tooltip_margin ),
    36             width: ( _options.tooltip_width - 2* _options.tooltip_padding ),
    37         })
    37         })
    38         var _height = _selector.outerHeight() + 2* _options.tooltip_padding,
    38         var _height = _selector.outerHeight() + 2* _options.tooltip_padding,
    39             _isLeft = (_coords.x < paper.view.center.x ? 1 : -1),
    39             _isLeft = (_coords.x < paper.view.center.x ? 1 : -1),
    40             _left = _coords.x + _isLeft * ( _xmargin + _options.tooltip_arrow_length ),
    40             _left = _coords.x + _isLeft * ( _xmargin + _options.tooltip_arrow_length ),
    41             _right = _coords.x + _isLeft * ( _xmargin + _options.tooltip_arrow_length + _options.tooltip_width ),
    41             _right = _coords.x + _isLeft * ( _xmargin + _options.tooltip_arrow_length + _options.tooltip_width ),
  1404     });
  1404     });
  1405     this.canvas_$.on("dragover", function(_event) {
  1405     this.canvas_$.on("dragover", function(_event) {
  1406     	_event.stopPropagation();
  1406     	_event.stopPropagation();
  1407     	_event.preventDefault();
  1407     	_event.preventDefault();
  1408     });
  1408     });
  1409     this.canvas_$.on("dragenter", function(_e) {
  1409     this.canvas_$.on("dragenter", function(_event) {
  1410     	_allowScroll = false;
  1410     	_allowScroll = false;
  1411     });
  1411     	_event.stopPropagation();
  1412     this.canvas_$.on("dragleave", function(_e) {
  1412     	_event.preventDefault();
       
  1413     });
       
  1414     this.canvas_$.on("dragleave", function(_event) {
  1413     	_allowScroll = true;
  1415     	_allowScroll = true;
       
  1416     	_event.stopPropagation();
       
  1417     	_event.preventDefault();
  1414     });
  1418     });
  1415     this.canvas_$.on("drop", function(_event) {
  1419     this.canvas_$.on("drop", function(_event) {
  1416     	_event.stopPropagation();
  1420     	_event.stopPropagation();
  1417     	_event.preventDefault();
  1421     	_event.preventDefault();
  1418     	_allowScroll = true;
  1422     	_allowScroll = true;
  1419     	if (!_this.isEditable()) {
  1423     	if (!_this.isEditable()) {
  1420     		return;
  1424     		return;
  1421     	}
  1425     	}
  1422     	var res = {}
  1426     	var res = {};
  1423     	if (_event.originalEvent.dataTransfer.types) {
  1427     	Rkns._(_event.originalEvent.dataTransfer.types).each(function(t) {
  1424     		Rkns._(_event.originalEvent.dataTransfer.types).each(function(t) {
  1428     		try {
  1425 	    		return res[t] = _event.originalEvent.dataTransfer.getData(t);
  1429     			res[t] = _event.originalEvent.dataTransfer.getData(t);
  1426 	    	});
  1430     		} catch(e) {}
  1427     	} else {
  1431     	});
  1428     		var text = _event.originalEvent.dataTransfer.getData("text");
  1432 		var text = _event.originalEvent.dataTransfer.getData("Text");
  1429     		switch(text[0]) {
  1433 		if (typeof text === "string") {
       
  1434 			switch(text[0]) {
  1430     			case "{":
  1435     			case "{":
  1431     			case "[":
  1436     			case "[":
  1432     				try {
  1437     				try {
  1433     					var data = JSON.parse(text);
  1438     					var data = JSON.parse(text);
  1434     					_(res).extend(data);
  1439     					_(res).extend(data);
  1435     				}
  1440     				}
  1436     				catch(e) {
  1441     				catch(e) {
  1437     					res["text/plain"] = text;
  1442     					if (!res["text/plain"]) {
       
  1443     						res["text/plain"] = text;
       
  1444     					}
  1438     				}
  1445     				}
  1439 				break;
  1446 				break;
  1440 				case "<":
  1447 				case "<":
  1441 					res["text/html"] = text;
  1448 					if (!res["text/html"]) {
       
  1449 						res["text/html"] = text;
       
  1450 					}
  1442 				break;
  1451 				break;
       
  1452 				default:
       
  1453 					if (!res["text/plain"]) {
       
  1454 						res["text/plain"] = text;
       
  1455 					}
  1443     		}
  1456     		}
  1444     		res["text/uri-list"] = _event.originalEvent.dataTransfer.getData("URL");
  1457 		}
  1445     	}
  1458 		var url = _event.originalEvent.dataTransfer.getData("URL");
       
  1459 		if (url && !res["text/uri-list"]) {
       
  1460 			res["text/uri-list"] = url;
       
  1461 		}
       
  1462 		if (res["text/json"] || res["application/json"]) {
       
  1463 			try {
       
  1464 				var data = JSON.parse(res["text/json"] || res["application/json"]);
       
  1465 				_(res).extend(data);
       
  1466 			}
       
  1467 			catch(e) {}
       
  1468 		}
  1446     	var newNode = {};
  1469     	var newNode = {};
  1447     	switch(res["text/x-iri-specific-site"]) {
  1470     	switch(res["text/x-iri-specific-site"]) {
  1448     		case "twitter":
  1471     		case "twitter":
  1449     			var snippet = Rkns.$('<div>').html(res["text/x-iri-selected-html"]),
  1472     			var snippet = Rkns.$('<div>').html(res["text/x-iri-selected-html"]),
  1450     				tweetdiv = snippet.find(".tweet")
  1473     				tweetdiv = snippet.find(".tweet")
  1494 		    	}
  1517 		    	}
  1495     	}
  1518     	}
  1496     	var fields = ["title", "description", "uri", "image"];
  1519     	var fields = ["title", "description", "uri", "image"];
  1497     	for (var i = 0; i < fields.length; i++) {
  1520     	for (var i = 0; i < fields.length; i++) {
  1498     		var f = fields[i];
  1521     		var f = fields[i];
  1499     		if (res["text/x-iri-" + f]) {
  1522     		if (res["text/x-iri-" + f] || res[f]) {
  1500     			newNode[f] = res["text/x-iri-" + f];
  1523     			newNode[f] = res["text/x-iri-" + f] || res[f];
  1501     		}
  1524     		}
  1502     	}
  1525     	}
  1503     	if (newNode.title || newNode.description || newNode.uri) {
  1526     	if (newNode.title || newNode.description || newNode.uri) {
  1504     		var _off = _this.canvas_$.offset(),
  1527     		var _off = _this.canvas_$.offset(),
  1505             _point = new paper.Point([
  1528             _point = new paper.Point([