mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
gfse: you can now add new functions from the matrix view
This commit is contained in:
@@ -895,22 +895,24 @@ function draw_funs(g) {
|
|||||||
return es;
|
return es;
|
||||||
}
|
}
|
||||||
|
|
||||||
function draw_efun(g,i,dc,df) { // modifies df !!
|
function draw_efun(g,i,dc,df,click) { // modifies df !!
|
||||||
var funs=g.abstract.funs;
|
var funs=g.abstract.funs;
|
||||||
function del() { delete_fun(g,i); }
|
function del() { delete_fun(g,i); }
|
||||||
var f=deletable(del,editable("span",draw_fun(g,funs[i],dc,df),g,edit_fun(i),"Edit this function"),"Delete this function");
|
var f=deletable(del,editable("span",draw_fun(g,funs[i],dc,df,click),g,edit_fun(i),"Edit this function"),"Delete this function");
|
||||||
df[funs[i].name]=g.basename;
|
df[funs[i].name]=g.basename;
|
||||||
return f
|
return f
|
||||||
}
|
}
|
||||||
|
|
||||||
function draw_fun(g,fun,dc,df) {
|
function draw_fun(g,fun,dc,df,click) {
|
||||||
function check(el) {
|
function check(el) {
|
||||||
return ifError(dc[fun.name],
|
return ifError(dc[fun.name],
|
||||||
"Function names must be distinct from category names",
|
"Function names must be distinct from category names",
|
||||||
ifError(df[fun.name],duplicated(g,"function",df[fun.name]),el));
|
ifError(df[fun.name],duplicated(g,"function",df[fun.name]),el));
|
||||||
}
|
}
|
||||||
return node("span",{},
|
var d=node("span",{},
|
||||||
[check(ident(fun.name)),sep(" : "),draw_type(fun.type,dc)]);
|
[check(ident(fun.name)),sep(" : "),draw_type(fun.type,dc)]);
|
||||||
|
if(click) d.onclick=click;
|
||||||
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
function draw_type(t,dc) {
|
function draw_type(t,dc) {
|
||||||
@@ -1429,8 +1431,7 @@ function draw_matrix(g) {
|
|||||||
function openr(f) { return function() { g.row=f; open_row(g) } }
|
function openr(f) { return function() { g.row=f; open_row(g) } }
|
||||||
for(var i in g.abstract.funs) {
|
for(var i in g.abstract.funs) {
|
||||||
var fun=g.abstract.funs[i]
|
var fun=g.abstract.funs[i]
|
||||||
var e=draw_efun(g,i,dc,df) // modifies df
|
var e=draw_efun(g,i,dc,df,openr(fun.name)) // modifies df
|
||||||
e.onclick=openr(fun.name)
|
|
||||||
var row=[td(e)]
|
var row=[td(e)]
|
||||||
for(var ci in g.concretes) {
|
for(var ci in g.concretes) {
|
||||||
var conc=g.concretes[ci]
|
var conc=g.concretes[ci]
|
||||||
@@ -1440,7 +1441,7 @@ function draw_matrix(g) {
|
|||||||
}
|
}
|
||||||
t.appendChild(tr(row))
|
t.appendChild(tr(row))
|
||||||
}
|
}
|
||||||
return t
|
return div_class("extensible",[t,more(g,add_fun,"Add a new function")])
|
||||||
}
|
}
|
||||||
|
|
||||||
function simple_draw_lin(f) {
|
function simple_draw_lin(f) {
|
||||||
@@ -1458,11 +1459,10 @@ function simple_draw_lin(f) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function draw_row(g) {
|
function draw_row(g) {
|
||||||
var ix,fname=g.row
|
var ix=null,fname=g.row
|
||||||
if(fname) ix=fun_index(g,fname)
|
if(fname) ix=fun_index(g,fname)
|
||||||
else ix=0,fname=g.abstract.funs[0] && g.abstract.funs[0].name
|
if(ix==null) ix=0,fname=g.abstract.funs[0] && g.abstract.funs[0].name
|
||||||
if(!fname) return text("No functions in the grammar")
|
if(!fname) return text("No functions in the grammar")
|
||||||
if(ix==null) return text(fname+" not found")
|
|
||||||
|
|
||||||
var igs=inherited_grammars(g)
|
var igs=inherited_grammars(g)
|
||||||
var dc=defined_cats(g);
|
var dc=defined_cats(g);
|
||||||
|
|||||||
Reference in New Issue
Block a user