From d3ec45bcdddedd7051f1a5b838f625b5b8c2c5cc Mon Sep 17 00:00:00 2001 From: Patrick Simianer
Date: Fri, 4 Dec 2015 00:34:30 +0100
Subject: color source phrases
---
derivation-editor.js | 141 +++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 115 insertions(+), 26 deletions(-)
(limited to 'derivation-editor.js')
diff --git a/derivation-editor.js b/derivation-editor.js
index c9e11ec..9681c92 100644
--- a/derivation-editor.js
+++ b/derivation-editor.js
@@ -25,7 +25,7 @@ var DE_paper,
///////////////////////////////////////////////////////////////////////////////
DE_ui_stroke_width = 1,
DE_ui_stroke_width_hi = 3,
- DE_ui_align_stroke = "#eee",
+ DE_ui_align_stroke = "#aaa",
DE_ui_align_stroke_hi = "#000",
DE_ui_text_att = { "text-anchor": "start", "font-size": DE_ui_font_size,
"font-family": "Times New Roman" },
@@ -52,10 +52,12 @@ var DE_paper,
DE_kbd_select_mode = false,
// done
DE_target_done = [],
+ DE_source_done = [],
// data
- DE_data_source = null,
- DE_data_target = null,
- DE_data_align = null,
+ DE_data_source = null,
+ DE_data_source_raw = null,
+ DE_data_target = null,
+ DE_data_align = null,
// lock
DE_locked = false;
@@ -75,6 +77,8 @@ var ch_style = function (item, shape_att, text_att, anim=false, anim_dur=50)
item.animate(shape_att, anim_dur);
item.pair.animate(text_att, anim_dur);
}
+
+ DE_color_source_phrases();
}
var DE_ui_style_normal = function (item, type=null)
@@ -84,13 +88,14 @@ var DE_ui_style_normal = function (item, type=null)
type = item["type_"];
var to_delete = false;
var color = "#fff";
- var stroke_color = "#eee";
- var text_color = "#eee";
+ var stroke_color = "#aaa";
+ var text_color = "#aaa";
if (DE_rm_mult.indexOf(item)>-1)
color = stroke_color = "#f00";
if (DE_target_done.indexOf(item)>-1) {
- color = "#fff";
- text_color = stroke_color= "#000";
+ color = "#aaa";
+ text_color = "#000";
+ stroke_color= "#000";
}
var shape_att;
var text_att;
@@ -137,9 +142,10 @@ var DE_ui_style_highlight = function (item, type=null)
if (DE_rm_mult.indexOf(item)>-1)
color = stroke_color = "#f00";
if (DE_target_done.indexOf(item)>-1) {
- color = "#fff";
- text_color = stroke_color = "#000";
- stroke_width = 5;
+ color = "#aaa";
+ text_color = "#000";
+ stroke_color = "#000";
+ stroke_width = 3;
}
var shape_att;
var text_att;
@@ -198,7 +204,7 @@ var DE_ui_style_mark = function (item, type=null)
"fill": "#000",
"fill-opacity": 1.0,
"stroke": "#000000",
- "stroke-width": 9
+ "stroke-width": 3
};
text_att = {
"fill": "#fff",
@@ -535,8 +541,12 @@ DE_item_mouseover = function (item)
var not_reset = [];
for (c in DE_connections) {
if (DE_shapes_by_id[parseInt(c.split("-")[1])] != DE_kbd_focused_phrase ||
- c.split("-")[1] != DE_kbd_focused_phrase["id_"])
+ c.split("-")[1] != DE_kbd_focused_phrase["id_"]) {
DE_connections[c].line.attr({"stroke-width":DE_ui_stroke_width});
+ var x = DE_shapes_by_id[parseInt(c.split("-")[1])];
+ if (DE_target_done.indexOf(x)==-1)
+ DE_connections[c].line.attr({"stroke":"#aaa"});
+ }
if (c.split("-")[1] == DE_kbd_focused_phrase["id_"])
not_reset.push(c.split("-")[0]);
}
@@ -604,14 +614,15 @@ DE_item_mouseout = function (item)
break;
}
}
+ cc = c; // FIXME WTF
if (!x) {
if (!(DE_connect_mode_shape && obj["id_"]==DE_connect_mode_shape["id_"]))
DE_ui_style_normal(obj);
}
if (align_done) {
- DE_connections[c].line.attr({"stroke-width":DE_ui_stroke_width, "stroke":DE_ui_align_stroke_hi});
+ DE_connections[cc].line.attr({"stroke-width":DE_ui_stroke_width, "stroke":DE_ui_align_stroke_hi});
} else {
- DE_connections[c].line.attr({"stroke-width":DE_ui_stroke_width, "stroke":DE_ui_align_stroke});
+ DE_connections[cc].line.attr({"stroke-width":DE_ui_stroke_width, "stroke":DE_ui_align_stroke});
}
} else {
aligned_with_focused = true;
@@ -629,6 +640,7 @@ DE_item_mouseout = function (item)
var DE_item_click_target = function (e, item)
{
if (DE_locked) return;
+ if (DE_target_done.indexOf(item)>-1) return;
if (DE_connect_mode) {
if (DE_connections[DE_conn_str(DE_connect_mode_shape,item)]) {
DE_undo_stack.push(["rm_conn", DE_connect_mode_shape["id_"], item["id_"]]);
@@ -636,10 +648,26 @@ var DE_item_click_target = function (e, item)
DE_ui_style_normal(DE_connect_mode_shape);
} else {
DE_ui_style_highlight(DE_connect_mode_shape);
+ DE_connect_mode_shape.attr({"fill":"#fff","fill-opacity":1});
DE_undo_stack.push(["add_conn", DE_connect_mode_shape["id_"], item["id_"]]);
DE_make_conn(DE_connect_mode_shape, item);
}
DE_connect_mode = false;
+ var b = false;
+ if (DE_kbd_focused_phrase) {
+ var focused_id = DE_kbd_focused_phrase["id_"];
+ var src_id = DE_connect_mode_shape["id_"];
+ for (c in DE_connections) {
+ var a = c.split("-");
+ if (a[0] == src_id && a[1]==focused_id) {
+ b = true;
+ }
+ break;
+ }
+ }
+ DE_connect_mode_shape.attr({"fill":"#fff"});
+ if (b)
+ DE_connect_mode_shape.attr({"stroke-width":3});
DE_connect_mode_shape = null;
} else { // delete
if (e.altKey) {
@@ -691,11 +719,13 @@ var DE_item_click_source = function (e, item)
if (item != DE_kbd_focused_phrase)
DE_ui_style_highlight(item);
DE_connect_mode = false;
+ DE_color_source_phrases();
DE_connect_mode_shape = null;
} else {
DE_ui_style_mark(item);
DE_connect_mode = true;
DE_connect_mode_shape = item;
+ DE_connect_mode_shape.attr({"fill":"#f00"});
}
}
@@ -911,6 +941,7 @@ var DE_enter_edit_mode = function (sh, kbd=false)
setTimeout(function(){DE_snap_to_grid(true);},125);
} else if (e.keyCode == 13) { // return
e.preventDefault();
+ e.stopPropagation();
DE_cur_ed.inlineTextEditing.stopEditing();
//DE_cur_ed_shape.toFront();
//DE_cur_ed.toBack();
@@ -954,6 +985,7 @@ var DE_extract_data = function ()
el = document.getElementById("data");
d = {};
d["source"] = [];
+ d["source_raw"] = [];
d["target"] = [];
d["align"] = [];
// target
@@ -979,6 +1011,18 @@ var DE_extract_data = function ()
break;
}
}
+ // source_raw
+ if (DE_data_source_raw) {
+ for (var i=0; i