summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--edit.html2
-rw-r--r--edit.js89
2 files changed, 51 insertions, 40 deletions
diff --git a/edit.html b/edit.html
index 9400228..3594dfd 100644
--- a/edit.html
+++ b/edit.html
@@ -10,7 +10,7 @@
<script src="edit.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
- <div id="wrapper">
+ <div id="derivation_editor">
<div id="holder"></div>
</div>
<input type="button" value="+" onClick="add_obj()" />
diff --git a/edit.js b/edit.js
index 6ad37ad..1adf2ac 100644
--- a/edit.js
+++ b/edit.js
@@ -45,11 +45,9 @@ var r,
// removing
rm_shape = null,
// data
- source = ["Das", "ist ein", "kleines", "Haus", "gewesen", "."],
- target = ["This", "has been", "a", "small", "house", "."],
- //target = [0,1,2,3,4,5],
- align = [[0], [1], [3], [4], [1], [5]],
- data = null;
+ source = null,
+ target = null,
+ align = null;
/*
* connection
@@ -491,6 +489,7 @@ var make_obj = function(x, text, type)
},
add_obj = function()
{
+ if (!data) return;
var max=0, max_idx=-1;
for (var i=0; i < shapes.length; i++) {
if (shapes[i]["grid_"] > max) {
@@ -583,16 +582,57 @@ function load_data()
{
//loadJSON(function(r) {
//data=JSON.parse(r);
- data=JSON.parse('{"phrase_alignment":[[0,2],[1],[0,2],[3],[4],[5],[6],[7,9],[8],[7,9],[10,18],[11],[10,18],[12],[13],[14],[15],[16],[17],[10,18],[19],[20],[21,23],[22],[21,23],[24],[25]],"source_groups":["hier also","ein bescheidener",",","auf alle","demokratien","anzuwendender","vorschlag",":","der markt für","ideen","funktioniert","besser",",","wenn es den","bürgern","leichter","fällt , die","zielkonflikte zwischen","treffsicherheit","der","aussagen und","unterhaltung","oder zwischen","treffsicherheit","und","parteitreue","zu erkennen ."],"target_groups":["so here","a modest",",","to all","democracies","anzuwendender","proposal",":","the market for","ideas","works","better","if","citizens","easier",", the","trade @-@ offs between","treffsicherheit","the","statements and","entertainment","or","treffsicherheit","and","parteitreue","."]}');
+ //data=JSON.parse('{"phrase_alignment":[[0,2],[1],[0,2],[3],[4],[5],[6],[7,9],[8],[7,9],[10,18],[11],[10,18],[12],[13],[14],[15],[16],[17],[10,18],[19],[20],[21,23],[22],[21,23],[24],[25]],"source_groups":["hier also","ein bescheidener",",","auf alle","demokratien","anzuwendender","vorschlag",":","der markt für","ideen","funktioniert","besser",",","wenn es den","bürgern","leichter","fällt , die","zielkonflikte zwischen","treffsicherheit","der","aussagen und","unterhaltung","oder zwischen","treffsicherheit","und","parteitreue","zu erkennen ."],"target_groups":["so here","a modest",",","to all","democracies","anzuwendender","proposal",":","the market for","ideas","works","better","if","citizens","easier",", the","trade @-@ offs between","treffsicherheit","the","statements and","entertainment","or","treffsicherheit","and","parteitreue","."]}');
+ //data = JSON.parse(document.getElementById("last_post_edit").value);
source = data["source_groups"];
target = data["target_groups"];
align = data["phrase_alignment"];
- init();
+ init_derivation_editor();
//});
}
-var init = function ()
+var reset_derivation_edtior = function(load=false)
{
+ if (!data) return;
+ if (r) {
+ for (var x in shapes_by_id) {
+ if (x.remove) {
+ x.pair.remove();
+ x.remove();
+ }
+ }
+ for (var x in connections) {
+ if (x.line)
+ x.line.remove()
+ }
+ r.remove();
+ }
+
+ shapes_by_id = {};
+ shapes = [];
+ target_shapes = [];
+ texts = [];
+ connections = {};
+ id = 0;
+ next_grid = 0;
+ cur_drag = null;
+ edit_mode = false;
+ cur_ed = null;
+ cur_ed_shape = null;
+ connect_mode = false;
+ connect_mode_shape = null;
+ rm_shape = null;
+
+ document.getElementById("holder").parentElement.removeChild(document.getElementById("holder"));
+ var new_holder = document.createElement("div");
+ new_holder.setAttribute("id","holder");
+ $("#derivation_editor").prepend(new_holder);
+ if (load) { load_data() }
+}
+
+var init_derivation_editor = function ()
+{
+ reset_derivation_edtior();
// canvas
r = Raphael("holder",0,0);
var c = 0,
@@ -606,7 +646,7 @@ var init = function ()
}
font_width = r.text(-100,-100,"m").getBBox().width;
var paper_width = xbegin+(Math.max(source.length,target.length)*(margin+padding))
- +(Math.max(c,d)*font_width),
+ +(Math.max(c,d)*font_width), // FIXME
paper_height = ybegin+2*box_height+line_margin;
r.setSize(paper_width, paper_height);
rm_shape = r.rect(5, line_margin+ybegin, 50, box_height).attr({"fill":"#fff","stroke":0}).animate({"fill":"red"}, 2000);
@@ -619,34 +659,5 @@ var init = function ()
make_objs(target, "target");
// initial connections from alignment
make_conns_from_a(align);
-},
-reset = function()
-{
- shapes_by_id = {};
- shapes = [];
- target_shapes = [];
- texts = [];
- connections = {};
- id = 0;
- next_grid = 0;
- cur_drag = null;
- edit_mode = false;
- cur_ed = null;
- cur_ed_shape = null;
- connect_mode = false;
- connect_mode_shape = null;
- rm_shape = null;
-
- document.getElementById("holder").parentElement.removeChild(document.getElementById("holder"));
- var new_holder = document.createElement("div");
- new_holder.setAttribute("id","holder");
- document.getElementById("wrapper").appendChild(new_holder);
-
- init();
-};
-
-window.onload = function ()
-{
- load_data();
-};
+}