').appendTo(this.renderer.labels_$);
this.arrow_angle = 0;
if (this.options.editor_mode) {
- this.edit_button = new Rkns.Renderer.EdgeEditButton(this.renderer, null);
- this.edit_button.source_representation = this;
- this.remove_button = new Rkns.Renderer.EdgeRemoveButton(this.renderer, null);
- this.remove_button.source_representation = this;
+ this.normal_buttons = [
+ new Rkns.Renderer.EdgeEditButton(this.renderer, null),
+ new Rkns.Renderer.EdgeRemoveButton(this.renderer, null),
+ ];
+ this.pending_delete_buttons = [
+ new Rkns.Renderer.EdgeRevertButton(this.renderer, null)
+ ];
+ this.all_buttons = this.normal_buttons.concat(this.pending_delete_buttons)
+ for (var i = 0; i < this.all_buttons.length; i++) {
+ this.all_buttons[i].source_representation = this;
+ }
+ this.active_buttons = [];
+ } else {
+ this.active_buttons = this.all_buttons = [];
}
if (this.renderer.minimap) {
- this.renderer.minimap.edge_layer.activate();
- this.minimap_line = new paper.Path();
- this.minimap_line.add([0,0],[0,0]);
- this.minimap_line.strokeWidth = 1;
+ this.renderer.minimap.edge_layer.activate();
+ this.minimap_line = new paper.Path();
+ this.minimap_line.add([0,0],[0,0]);
+ this.minimap_line.__representation = this.renderer.minimap.miniframe.__representation;
+ this.minimap_line.strokeWidth = 1;
}
}
@@ -569,7 +545,7 @@
this.from_representation = this.renderer.getRepresentationByModel(this.model.get("from"));
this.to_representation = this.renderer.getRepresentationByModel(this.model.get("to"));
if (!this.from_representation || !this.to_representation) {
- return;
+ return;
}
var _p0a = this.from_representation.paper_coords,
_p1a = this.to_representation.paper_coords,
@@ -585,8 +561,31 @@
_textdelta = _ortho.multiply(this.options.edge_label_distance),
_handle = _v.divide(3),
_color = this.model.get("color") || this.model.get("color") || (this.model.get("created_by") || Rkns.Renderer._USER_PLACEHOLDER(this.renkan)).get("color");
+
+ if (this.model.get("delete_scheduled") || this.from_representation.model.get("delete_scheduled") || this.to_representation.model.get("delete_scheduled")) {
+ var opacity = .5;
+ this.line.dashArray = [2, 2];
+ } else {
+ var opacity = 1;
+ this.line.dashArray = null;
+ }
+
+ var old_act_btn = this.active_buttons;
+
+ this.active_buttons = this.model.get("delete_scheduled") ? this.pending_delete_buttons : this.normal_buttons;
+
+ if (this.selected && this.renderer.isEditable() && old_act_btn !== this.active_buttons) {
+ old_act_btn.forEach(function(b) {
+ b.hide();
+ });
+ this.active_buttons.forEach(function(b) {
+ b.show();
+ });
+ }
+
this.paper_coords = _p0b.add(_p1b).divide(2);
this.line.strokeColor = _color;
+ this.line.opacity = opacity;
this.line.segments[0].point = _p0a;
this.line.segments[1].point = this.paper_coords;
this.line.segments[1].handleIn = _handle.multiply(-1);
@@ -594,6 +593,7 @@
this.line.segments[2].point = _p1a;
this.arrow.rotate(_a - this.arrow_angle);
this.arrow.fillColor = _color;
+ this.arrow.opacity = opacity;
this.arrow.position = this.paper_coords;
this.arrow_angle = _a;
if (_a > 90) {
@@ -604,20 +604,29 @@
_a += 180;
_textdelta = _textdelta.multiply(-1);
}
- this.text.rotate(_a - this.text_angle);
- var _text = this.model.get("title");
- this.text.content = Rkns.Renderer.Utils.shortenText(_text, this.options.edge_label_max_length);
- this.text.position = this.paper_coords.add(_textdelta);
+ var _text = this.model.get("title") || this.renkan.translate(this.options.label_untitled_edges) || "";
+ _text = Rkns.Renderer.shortenText(_text, this.options.node_label_max_length);
+ this.text.text(_text);
+ var _textpos = this.paper_coords.add(_textdelta);
+ this.text.css({
+ left: _textpos.x,
+ top: _textpos.y,
+ transform: "rotate(" + _a + "deg)",
+ "-moz-transform": "rotate(" + _a + "deg)",
+ "-webkit-transform": "rotate(" + _a + "deg)",
+ opacity: opacity
+ });
this.text_angle = _a;
- if (this.options.editor_mode) {
- this.edit_button.moveTo(this.paper_coords);
- this.remove_button.moveTo(this.paper_coords);
- }
+
+ var _pc = this.paper_coords;
+ this.all_buttons.forEach(function(b) {
+ b.moveTo(_pc);
+ });
if (this.renderer.minimap) {
- this.minimap_line.strokeColor = _color;
- this.minimap_line.segments[0].point = this.renderer.toMinimapCoords(new paper.Point(this.from_representation.model.get("position")));
- this.minimap_line.segments[1].point = this.renderer.toMinimapCoords(new paper.Point(this.to_representation.model.get("position")));
+ this.minimap_line.strokeColor = _color;
+ this.minimap_line.segments[0].point = this.renderer.toMinimapCoords(new paper.Point(this.from_representation.model.get("position")));
+ this.minimap_line.segments[1].point = this.renderer.toMinimapCoords(new paper.Point(this.to_representation.model.get("position")));
}
}
@@ -629,48 +638,64 @@
}
Rkns.Renderer.Edge.prototype.select = function() {
+ this.selected = true;
this.line.strokeWidth = this.options.selected_edge_stroke_width;
if (this.renderer.isEditable()) {
- this.edit_button.show();
- this.remove_button.show();
- }
+ this.active_buttons.forEach(function(b) {
+ b.show();
+ });
+ }
if (!this.options.editor_mode) {
this.openEditor();
}
+ this.super("select");
}
Rkns.Renderer.Edge.prototype.unselect = function(_newTarget) {
if (!_newTarget || _newTarget.source_representation !== this) {
- if (this.options.editor_mode) {
- this.edit_button.hide();
- this.remove_button.hide();
+ this.selected = false;
+ if (this.options.editor_mode) {
+ this.all_buttons.forEach(function(b) {
+ b.hide();
+ });
}
this.line.strokeWidth = this.options.edge_stroke_width;
+ this.super("unselect");
}
}
-Rkns.Renderer.Edge.prototype.mouseup = function(_event) {
- if (!this.renkan.read_only) {
- if (this.renderer.is_dragging) {
- this.from_representation.saveCoords();
- this.to_representation.saveCoords();
- } else {
+Rkns.Renderer.Edge.prototype.mousedown = function(_event, _isTouch) {
+ if (_isTouch) {
+ this.renderer.unselectAll();
+ this.select();
+ }
+}
+
+Rkns.Renderer.Edge.prototype.mouseup = function(_event, _isTouch) {
+ if (!this.renkan.read_only && this.renderer.is_dragging) {
+ this.from_representation.saveCoords();
+ this.to_representation.saveCoords();
+ this.from_representation.is_dragging = false;
+ this.to_representation.is_dragging = false;
+ } else {
+ if (!_isTouch) {
this.openEditor();
}
+ this.model.trigger("clicked");
}
this.renderer.click_target = null;
this.renderer.is_dragging = false;
}
Rkns.Renderer.Edge.prototype.paperShift = function(_delta) {
- if (this.options.editor_mode) {
- if (!this.options.read_only) {
- this.from_representation.paperShift(_delta);
- this.to_representation.paperShift(_delta);
- }
- } else {
- this.renderer.paperShift(_delta);
- }
+ if (this.options.editor_mode) {
+ if (!this.options.read_only) {
+ this.from_representation.paperShift(_delta);
+ this.to_representation.paperShift(_delta);
+ }
+ } else {
+ this.renderer.paperShift(_delta);
+ }
}
Rkns.Renderer.Edge.prototype.destroy = function() {
@@ -679,12 +704,11 @@
this.arrow.remove();
this.text.remove();
if (this.renderer.minimap) {
- this.minimap_line.remove();
+ this.minimap_line.remove();
}
- if (this.options.editor_mode) {
- this.edit_button.destroy();
- this.remove_button.destroy();
- }
+ this.all_buttons.forEach(function(b) {
+ b.destroy();
+ });
var _this = this;
this.bundle.edges = Rkns._(this.bundle.edges).reject(function(_edge) {
return _edge === _this;
@@ -697,20 +721,22 @@
Rkns.Renderer.TempEdge.prototype._init = function() {
this.renderer.edge_layer.activate();
- this.type = "temp-edge";
+ this.type = "Temp-edge";
var _color = (this.project.get("users").get(this.renkan.current_user) || Rkns.Renderer._USER_PLACEHOLDER(this.renkan)).get("color");
this.line = new paper.Path();
this.line.strokeColor = _color;
+ this.line.dashArray = [4, 2];
+ this.line.strokeWidth = this.options.selected_edge_stroke_width;
this.line.add([0,0],[0,0]);
this.line.__representation = this;
this.arrow = new paper.Path();
this.arrow.fillColor = _color;
this.arrow.add(
- [ 0, 0 ],
- [ this.options.edge_arrow_length, this.options.edge_arrow_width / 2 ],
- [ 0, this.options.edge_arrow_width ]
- );
+ [ 0, 0 ],
+ [ this.options.edge_arrow_length, this.options.edge_arrow_width / 2 ],
+ [ 0, this.options.edge_arrow_width ]
+ );
this.arrow.__representation = this;
this.arrow_angle = 0;
}
@@ -728,34 +754,38 @@
}
Rkns.Renderer.TempEdge.prototype.paperShift = function(_delta) {
- if (!this.renderer.isEditable()) {
- this.renderer.removeRepresentation(_this);
- paper.view.draw();
- return;
- }
+ if (!this.renderer.isEditable()) {
+ this.renderer.removeRepresentation(_this);
+ paper.view.draw();
+ return;
+ }
this.end_pos = this.end_pos.add(_delta);
var _hitResult = paper.project.hitTest(this.end_pos);
this.renderer.findTarget(_hitResult);
this.redraw();
}
-Rkns.Renderer.TempEdge.prototype.mouseup = function(_event) {
+Rkns.Renderer.TempEdge.prototype.mouseup = function(_event, _isTouch) {
var _hitResult = paper.project.hitTest(_event.point),
_model = this.from_representation.model,
_endDrag = true;
if (_hitResult && typeof _hitResult.item.__representation !== "undefined") {
var _target = _hitResult.item.__representation;
- if (_target.type === "Node" && _model !== _target.model) {
- var _data = {
- id: Rkns.Utils.getUID('edge'),
- created_by: this.renkan.current_user,
- from: _model.get("_id"),
- to: _target.model.get("_id")
- };
- if (this.renderer.isEditable()) {
- this.project.addEdge(_data);
+ if (_target.type.substr(0,4) === "Node") {
+ var _destmodel = _target.model || _target.source_representation.model;
+ if (_model !== _destmodel) {
+ var _data = {
+ id: Rkns.Utils.getUID('edge'),
+ created_by: this.renkan.current_user,
+ from: _model,
+ to: _destmodel
+ };
+ if (this.renderer.isEditable()) {
+ this.project.addEdge(_data);
+ }
}
}
+
if (_model === _target.model || (_target.source_representation && _target.source_representation.model === _model)) {
_endDrag = false;
this.renderer.is_dragging = true;
@@ -776,184 +806,9 @@
/* */
-Rkns.Renderer.NodeEditor = Rkns.Utils.inherit(Rkns.Renderer._BaseRepresentation);
-
-Rkns.Renderer.NodeEditor.prototype._init = function() {
- this.renderer.buttons_layer.activate();
- this.type = "editor";
- this.editor_block = new paper.Path();
- var _pts = Rkns._(Rkns._.range(8)).map(function() {return [0,0]});
- this.editor_block.add.apply(this.editor_block, _pts);
- this.editor_block.strokeWidth = this.options.tooltip_border_width;
- this.editor_block.strokeColor = this.options.tooltip_border_color;
- this.editor_block.opacity = .8;
- this.editor_$ = Rkns.$('
')
- .appendTo(this.renderer.editor_$)
- .css({
- position: "absolute",
- opacity: .8
- })
- .hide();
-}
-
-Rkns.Renderer.NodeEditor.prototype.template = Rkns._.template(
- '
×<%-translate("Edit Node")%>
'
- + '
'
- + '
'
- + '
'
- + '
<%-translate("Size:")%>-<%-node.size%>+
'
- + '
<%-translate("Node color:")%>'
- + '<% _(Rkns.pickerColors).each(function(c) { %><% }); %>
<%- translate("Choose color") %> '
- + '

'
- + '
'
- + '
'
- + '<% if (node.has_creator) { %>
<%-translate("Created by:")%> <%- Rkns.Renderer.Utils.shortenText(node.created_by_title, 25) %>
<% } %>'
-);
-
-Rkns.Renderer.NodeEditor.prototype.readOnlyTemplate = Rkns._.template(
- '
'
- + '<% if (node.uri) { %>
<%-node.short_uri%>
<% } %>'
- + '
<%-node.description%>
'
- + '<% if (node.has_creator) { %>
<%-translate("Created by:")%><%- Rkns.Renderer.Utils.shortenText(node.created_by_title, 25) %>
<% } %>'
-);
+Rkns.Renderer._BaseEditor = Rkns.Utils.inherit(Rkns.Renderer._BaseRepresentation);
-Rkns.Renderer.NodeEditor.prototype.draw = function() {
- var _model = this.source_representation.model,
- _created_by = _model.get("created_by") || Rkns.Renderer._USER_PLACEHOLDER(this.renkan),
- _template = (this.renderer.isEditable() ? this.template : this.readOnlyTemplate ),
- _image_placeholder = this.options.static_url + "img/image-placeholder.png",
- _size = (_model.get("size") || 0);
- this.editor_$
- .html(_template({
- node: {
- has_creator: !!_model.get("created_by"),
- title: _model.get("title"),
- uri: _model.get("uri"),
- short_uri: Rkns.Renderer.Utils.shortenText((_model.get("uri") || "").replace(/^(https?:\/\/)?(www\.)?/,'').replace(/\/$/,''),40),
- description: _model.get("description"),
- image: _model.get("image") || "",
- image_placeholder: _image_placeholder,
- color: _model.get("color") || _created_by.get("color"),
- created_by_color: _created_by.get("color"),
- created_by_title: _created_by.get("title"),
- size: (_size > 0 ? "+" : "") + _size
- },
- translate: this.renkan.translate
- }));
- this.redraw();
- var _this = this,
- closeEditor = function() {
- _this.renderer.removeRepresentation(_this);
- paper.view.draw();
- }
-
- this.editor_$.find(".Rk-CloseX").click(closeEditor);
-
- if (this.renderer.isEditable()) {
-
- var onFieldChange = Rkns._(function() {
- Rkns._(function() {
- if (_this.renderer.isEditable()) {
- var _uri = _this.editor_$.find(".Rk-Edit-URI").val(),
- _image = _this.editor_$.find(".Rk-Edit-Image").val();
- _this.editor_$.find(".Rk-Edit-ImgPreview").attr("src", _image || _image_placeholder);
- _this.editor_$.find(".Rk-Edit-Goto").attr("href",_uri);
- var _data = {
- title: _this.editor_$.find(".Rk-Edit-Title").val(),
- description: _this.editor_$.find(".Rk-Edit-Description").val(),
- uri: _uri,
- image: _image
- }
- _model.set(_data);
- _this.redraw();
- } else {
- closeEditor();
- }
-
- }).defer();
- }).throttle(500);
-
- this.editor_$.find("input, textarea").bind("change keyup paste", onFieldChange);
-
- this.editor_$.find(".Rk-Edit-Image-File").bind("change", function() {
- if (this.files.length) {
- var f = this.files[0],
- fr = new FileReader();
- if (f.type.substr(0,5) !== "image") {
- alert(_this.renkan.translate("This file is not an image"));
- return;
- }
- if (f.size > (Rkns.Renderer._IMAGE_MAX_KB * 1024)) {
- alert(_this.renkan.translate("Image size must be under ")+Rkns.Renderer._IMAGE_MAX_KB+_this.renkan.translate("KB"));
- return;
- }
- fr.onload = function(e) {
- _this.editor_$.find(".Rk-Edit-Image").val(e.target.result);
- onFieldChange();
- }
- fr.readAsDataURL(f);
- }
- });
- this.editor_$.find(".Rk-Edit-Title")[0].focus();
- this.editor_$.find(".Rk-Edit-ColorPicker-Wrapper").hover(
- function() { _this.editor_$.find(".Rk-Edit-ColorPicker").show(); },
- function() { _this.editor_$.find(".Rk-Edit-ColorPicker").hide(); }
- );
- this.editor_$.find(".Rk-Edit-ColorPicker li").hover(
- function() { _this.editor_$.find(".Rk-Edit-Color").css("background", $(this).attr("data-color")); },
- function() { _this.editor_$.find(".Rk-Edit-Color").css("background", _model.get("color") || (_model.get("created_by") || Rkns.Renderer._USER_PLACEHOLDER(this.renkan)).get("color")) }
- ).click(function() {
- if (_this.renderer.isEditable()) {
- _model.set("color", $(this).attr("data-color"));
- paper.view.draw();
- } else {
- closeEditor();
- }
- });
-
- function shiftSize(n) {
- if (_this.renderer.isEditable()) {
- var _newsize = n+(_model.get("size") || 0);
- _this.editor_$.find(".Rk-Edit-Size-Value").text((_newsize > 0 ? "+" : "") + _newsize);
- _model.set("size", _newsize);
- paper.view.draw();
- } else {
- closeEditor();
- }
- }
-
- this.editor_$.find(".Rk-Edit-Size-Down").click(function() {
- shiftSize(-1);
- return false;
- });
- this.editor_$.find(".Rk-Edit-Size-Up").click(function() {
- shiftSize(1);
- return false;
- });
- }
- this.editor_$.find("img").load(function() {
- _this.redraw();
- });
-}
-
-Rkns.Renderer.NodeEditor.prototype.redraw = function() {
- var _coords = this.source_representation.paper_coords;
- Rkns.Renderer.Utils.drawEditBox(this.options, _coords, this.editor_block, this.source_representation.circle_radius * .75, this.editor_$);
- this.editor_$.show();
- paper.view.draw();
-}
-
-Rkns.Renderer.NodeEditor.prototype.destroy = function() {
- this.editor_block.remove();
- this.editor_$.detach();
-}
-
-/* */
-
-Rkns.Renderer.EdgeEditor = Rkns.Utils.inherit(Rkns.Renderer._BaseRepresentation);
-
-Rkns.Renderer.EdgeEditor.prototype._init = function() {
+Rkns.Renderer._BaseEditor.prototype._init = function() {
this.renderer.buttons_layer.activate();
this.type = "editor";
this.editor_block = new paper.Path();
@@ -971,21 +826,207 @@
.hide();
}
+Rkns.Renderer._BaseEditor.prototype.destroy = function() {
+ this.editor_block.remove();
+ this.editor_$.remove();
+}
+
+/* */
+
+Rkns.Renderer.NodeEditor = Rkns.Utils.inherit(Rkns.Renderer._BaseEditor);
+
+Rkns.Renderer.NodeEditor.prototype.template = Rkns._.template(
+ '
×<%-renkan.translate("Edit Node")%>
'
+ + '
'
+ + '
'
+ + '
'
+ + '
<%-renkan.translate("Size:")%>-<%-node.size%>+
'
+ + '
<%-renkan.translate("Node color:")%>'
+ + '<% _(Rkns.pickerColors).each(function(c) { %><% }); %>
<%- renkan.translate("Choose color") %> '
+ + '

'
+ + '
'
+ + '
'
+ + '<% if (node.has_creator) { %>
<%-renkan.translate("Created by:")%> <%- Rkns.Renderer.shortenText(node.created_by_title, 25) %>
<% } %>'
+);
+
+Rkns.Renderer.NodeEditor.prototype.readOnlyTemplate = Rkns._.template(
+ '
'
+ + '<% if (node.uri) { %>
<%-node.short_uri%>
<% } %>'
+ + '
<%-node.description%>
'
+ + '<% if (node.image) { %>

<% } %>'
+ + '<% if (node.has_creator) { %>
<%-renkan.translate("Created by:")%><%- Rkns.Renderer.shortenText(node.created_by_title, 25) %>
<% } %>'
+);
+
+Rkns.Renderer.NodeEditor.prototype.draw = function() {
+ var _model = this.source_representation.model,
+ _created_by = _model.get("created_by") || Rkns.Renderer._USER_PLACEHOLDER(this.renkan),
+ _template = (this.renderer.isEditable() ? this.template : this.readOnlyTemplate ),
+ _image_placeholder = this.options.static_url + "img/image-placeholder.png",
+ _size = (_model.get("size") || 0);
+ this.editor_$
+ .html(_template({
+ node: {
+ has_creator: !!_model.get("created_by"),
+ title: _model.get("title"),
+ uri: _model.get("uri"),
+ short_uri: Rkns.Renderer.shortenText((_model.get("uri") || "").replace(/^(https?:\/\/)?(www\.)?/,'').replace(/\/$/,''),40),
+ description: _model.get("description"),
+ image: _model.get("image") || "",
+ image_placeholder: _image_placeholder,
+ color: _model.get("color") || _created_by.get("color"),
+ created_by_color: _created_by.get("color"),
+ created_by_title: _created_by.get("title"),
+ size: (_size > 0 ? "+" : "") + _size
+ },
+ renkan: this.renkan
+ }));
+ this.redraw();
+ var _this = this,
+ closeEditor = function() {
+ _this.renderer.removeRepresentation(_this);
+ paper.view.draw();
+ }
+
+ this.editor_$.find(".Rk-CloseX").click(closeEditor);
+
+ if (this.renderer.isEditable()) {
+
+ var onFieldChange = Rkns._(function() {
+ Rkns._(function() {
+ if (_this.renderer.isEditable()) {
+ var _uri = _this.editor_$.find(".Rk-Edit-URI").val(),
+ _image = _this.editor_$.find(".Rk-Edit-Image").val();
+ _this.editor_$.find(".Rk-Edit-ImgPreview").attr("src", _image || _image_placeholder);
+ _this.editor_$.find(".Rk-Edit-Goto").attr("href",_uri);
+ var _data = {
+ title: _this.editor_$.find(".Rk-Edit-Title").val(),
+ description: _this.editor_$.find(".Rk-Edit-Description").val(),
+ uri: _uri,
+ image: _image
+ }
+ _model.set(_data);
+ _this.redraw();
+ } else {
+ closeEditor();
+ }
+
+ }).defer();
+ }).throttle(500);
+
+ this.editor_$.on("keyup", function(_e) {
+ if (_e.keyCode === 27) {
+ closeEditor();
+ }
+ });
+
+ this.editor_$.find("input, textarea").on("change keyup paste", onFieldChange);
+
+ this.editor_$.find(".Rk-Edit-Image-File").change(function() {
+ if (this.files.length) {
+ var f = this.files[0],
+ fr = new FileReader();
+ if (f.type.substr(0,5) !== "image") {
+ alert(_this.renkan.translate("This file is not an image"));
+ return;
+ }
+ if (f.size > (Rkns.Renderer._IMAGE_MAX_KB * 1024)) {
+ alert(_this.renkan.translate("Image size must be under ")+Rkns.Renderer._IMAGE_MAX_KB+_this.renkan.translate("KB"));
+ return;
+ }
+ fr.onload = function(e) {
+ _this.editor_$.find(".Rk-Edit-Image").val(e.target.result);
+ onFieldChange();
+ }
+ fr.readAsDataURL(f);
+ }
+ });
+ this.editor_$.find(".Rk-Edit-Title")[0].focus();
+
+ var _picker = _this.editor_$.find(".Rk-Edit-ColorPicker");
+
+ this.editor_$.find(".Rk-Edit-ColorPicker-Wrapper").hover(
+ function(_e) {
+ _e.preventDefault();
+ _picker.show();
+ },
+ function(_e) {
+ _e.preventDefault();
+ _picker.hide();
+ }
+ );
+
+ _picker.find("li").hover(
+ function(_e) {
+ _e.preventDefault();
+ _this.editor_$.find(".Rk-Edit-Color").css("background", $(this).attr("data-color"));
+ },
+ function(_e) {
+ _e.preventDefault();
+ _this.editor_$.find(".Rk-Edit-Color").css("background", _model.get("color") || (_model.get("created_by") || Rkns.Renderer._USER_PLACEHOLDER(_this.renkan)).get("color"))
+ }
+ ).click(function(_e) {
+ _e.preventDefault();
+ if (_this.renderer.isEditable()) {
+ _model.set("color", $(this).attr("data-color"));
+ _picker.hide();
+ paper.view.draw();
+ } else {
+ closeEditor();
+ }
+ });
+
+ function shiftSize(n) {
+ if (_this.renderer.isEditable()) {
+ var _newsize = n+(_model.get("size") || 0);
+ _this.editor_$.find(".Rk-Edit-Size-Value").text((_newsize > 0 ? "+" : "") + _newsize);
+ _model.set("size", _newsize);
+ paper.view.draw();
+ } else {
+ closeEditor();
+ }
+ }
+
+ this.editor_$.find(".Rk-Edit-Size-Down").click(function() {
+ shiftSize(-1);
+ return false;
+ });
+ this.editor_$.find(".Rk-Edit-Size-Up").click(function() {
+ shiftSize(1);
+ return false;
+ });
+ }
+ this.editor_$.find("img").load(function() {
+ _this.redraw();
+ });
+}
+
+Rkns.Renderer.NodeEditor.prototype.redraw = function() {
+ var _coords = this.source_representation.paper_coords;
+ Rkns.Renderer.drawEditBox(this.options, _coords, this.editor_block, this.source_representation.circle_radius * .75, this.editor_$);
+ this.editor_$.show();
+ paper.view.draw();
+}
+
+/* */
+
+Rkns.Renderer.EdgeEditor = Rkns.Utils.inherit(Rkns.Renderer._BaseEditor);
+
Rkns.Renderer.EdgeEditor.prototype.template = Rkns._.template(
- '
×<%-translate("Edit Edge")%>
'
- + '
'
- + '
'
- + '<% if (properties.length) { %>