mirror of
https://github.com/Quodatum/graphxq.git
synced 2025-04-11 11:42:24 +01:00
better ace
This commit is contained in:
parent
552b6831aa
commit
9034509ccb
24 changed files with 849 additions and 205 deletions
|
@ -15,7 +15,7 @@ body {
|
|||
padding-left: 29px;
|
||||
}
|
||||
.popwidth {
|
||||
width:50em;
|
||||
width:44em;
|
||||
}
|
||||
.navbar-search .icon-search {
|
||||
position: absolute;
|
||||
|
|
|
@ -14,17 +14,18 @@ $(document).ready(function(){
|
|||
var j=$(this)
|
||||
var top=j.offset();
|
||||
j.height(h-top.top-10)
|
||||
console.log("resize",j)
|
||||
//console.log("resize",j)
|
||||
});
|
||||
$('.ace').each(function(){
|
||||
|
||||
console.log("acerrrr",$(this))
|
||||
ace.edit($(this).attr('id'))
|
||||
})
|
||||
|
||||
};
|
||||
$(window).resize(resize);
|
||||
resize();
|
||||
// init ace where ace class
|
||||
$('.ace').each(function(){
|
||||
acediv($(this).attr('id'))
|
||||
})
|
||||
});
|
||||
|
||||
function setupEdit(){
|
||||
// toolbar buttons
|
||||
$('a[data-action="lDom"]').click(function (){
|
||||
|
@ -43,23 +44,22 @@ function setupEdit(){
|
|||
$("#leftPane").removeAttr('class').css("display","none");
|
||||
resize();
|
||||
});
|
||||
acediv("svgsrc2","svg",true);
|
||||
var sub=function(download){
|
||||
|
||||
var submit=function(download){
|
||||
$('input[name=dl]').attr('checked', download);
|
||||
$("#editForm").submit();
|
||||
};
|
||||
$("#bnRefresh").on("click",getsvg);
|
||||
$("#bnsvg").on("click",function(){sub(false)});
|
||||
$("#bndn").on("click",function(){sub(true)});
|
||||
$("#bnOpts").on("click",function(){alert("not yet")});
|
||||
$("#bnsvg").on("click",function(){submit(false)});
|
||||
$("#bndn").on("click",function(){submit(true)});
|
||||
$("#data").on("keyup",throttle(getsvg,250));
|
||||
$("#bnxml").on("click",function(){
|
||||
$("#svgdiv,#svgsrc").toggle()
|
||||
resize();
|
||||
});
|
||||
$("#bnclear").on("click",function(){
|
||||
$("#dot").val(
|
||||
"digraph title {\n bgcolor=seashell\n node[shape=circle,style=filled,fillcolor=lightblue]\n\n}"
|
||||
)
|
||||
$("#data").val($("#cleartext").val())
|
||||
});
|
||||
getsvg()
|
||||
};
|
||||
|
@ -67,6 +67,7 @@ function setupEdit(){
|
|||
function getsvg(){
|
||||
var f=$("#editForm").serializeArray()
|
||||
var d0=+new Date()
|
||||
$("#infotip").removeClass("btn-danger").addClass("btn-warning");
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:$("#editForm").attr("action"),
|
||||
|
@ -75,7 +76,7 @@ function getsvg(){
|
|||
success: function(str){
|
||||
// console.log(data)
|
||||
var d=(new Date())-d0;
|
||||
console.log("svg time:",d);
|
||||
$("#infotip").removeClass("btn-danger btn-warning");
|
||||
var oParser = new DOMParser();
|
||||
var data = oParser.parseFromString(str, "text/xml");
|
||||
// http://stackoverflow.com/questions/3346106/accessing-a-dom-object-defined-in-an-external-svg-file
|
||||
|
@ -88,28 +89,16 @@ function getsvg(){
|
|||
error:function(jqXHR, textStatus, errorThrown){
|
||||
console.log("ajax error: "+textStatus + jqXHR.responseText);
|
||||
$("#infotip").attr("data-content","<pre>"+jqXHR.responseText+"</pre>");
|
||||
$("#infotip").addClass("btn-danger");
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
function dotit(){
|
||||
// xsvg.innerText="";
|
||||
var sdot="digraph G {\n";
|
||||
var t=f1.lstBgcolors.value;
|
||||
if(t){ sdot+="bgcolor="+t+"\n"};
|
||||
var t=f1.lstShapes.value;
|
||||
if(t){ sdot+="node[shape="+t+",style=filled,fillcolor="+f1.lstColors.value+"]\n"};
|
||||
var t=f1.dotTitle.value;
|
||||
if(t) sdot+='label="'+t+'"\n';
|
||||
var t=f1.dotRankDir.value;
|
||||
if(t) sdot+=t+'\n';
|
||||
var t=f1.dotBody.value;
|
||||
sdot+=t+"\n}";
|
||||
update(sdot,f1.filter.value);
|
||||
};
|
||||
// make div 3id to ace
|
||||
function acediv(id,mode,readonly){
|
||||
// make div with id to ace
|
||||
function acediv(id){
|
||||
// https://github.com/ajaxorg/ace/issues/1161
|
||||
var mode=$("#"+id).attr("data-mode");
|
||||
var readonly=!!$("#"+id).attr("data-readonly");
|
||||
ace.config.set("workerPath", "/graphxq/ace-worker");
|
||||
var editor = ace.edit(id);
|
||||
editor.setTheme("ace/theme/textmate");
|
||||
|
|
466
src/graphxq/data/dot/xx.gv
Normal file
466
src/graphxq/data/dot/xx.gv
Normal file
|
@ -0,0 +1,466 @@
|
|||
digraph G {
|
||||
node [label="\N"];
|
||||
graph [label=Plugins,
|
||||
rankdir=LR,
|
||||
ranksep="1.5",
|
||||
lp="465,11.5",
|
||||
lwidth="0.57",
|
||||
lheight="0.21",
|
||||
bb="0,0,930,2253"];
|
||||
subgraph cluster_cairo {
|
||||
graph [label=cairo,
|
||||
lp="465,717.5",
|
||||
lwidth="0.39",
|
||||
bb="232,492,698,729"];
|
||||
subgraph cairo_render {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
render_cairo [label=cairo, pos="465,680", width="0.79437", height="0.5"];
|
||||
}
|
||||
subgraph cairo_textlayout {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
}
|
||||
subgraph cairo_device {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
cairo_device_pdf [label=pdf, pos="663,572", width="0.75", height="0.5"];
|
||||
cairo_device_png [label=png, pos="663,518", width="0.75", height="0.5"];
|
||||
cairo_device_ps [label=ps, pos="663,626", width="0.75", height="0.5"];
|
||||
cairo_device_svg [label=svg, pos="663,680", width="0.75", height="0.5"];
|
||||
}
|
||||
subgraph cairo_loadimage {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
cairo_loadimage_png [label=png, pos="267,680", width="0.75", height="0.5"];
|
||||
}
|
||||
render_cairo -> cairo_device_pdf [pos="e,641.17,582.62 486.86,667.97 514.77,651.96 565.84,622.87 610,599 617.17,595.12 624.95,591.03 632.25,587.23"];
|
||||
render_cairo -> cairo_device_png [pos="e,639.98,527.77 479.95,664.36 504.41,637.58 557.42,582.22 610,545 616.39,540.47 623.64,536.23 630.66,532.5"];
|
||||
render_cairo -> cairo_device_ps [pos="e,637.6,632.72 491.62,672.94 526.49,663.34 588.96,646.12 627.8,635.42"];
|
||||
render_cairo -> cairo_device_svg [pos="e,635.73,680 493.67,680 528.2,680 587.35,680 625.55,680"];
|
||||
cairo_loadimage_png -> render_cairo [pos="e,436.28,680 294.03,680 327.82,680 387.05,680 425.9,680"];
|
||||
}
|
||||
subgraph cluster_neato_layout {
|
||||
graph [label=neato_layout,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
subgraph neato_layout_layout {
|
||||
graph [rank=same];
|
||||
}
|
||||
}
|
||||
subgraph cluster_gdiplus {
|
||||
graph [label=gdiplus,
|
||||
lp="465,472.5",
|
||||
bb="206,31,724,484"];
|
||||
subgraph gdiplus_render {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
render_gdiplus [label=gdiplus, pos="465,300", width="1.0291", height="0.5"];
|
||||
}
|
||||
subgraph gdiplus_textlayout {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
}
|
||||
subgraph gdiplus_device {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
gdiplus_device_bmp [label=bmp, pos="663,219", width="0.75827", height="0.5"];
|
||||
gdiplus_device_emf [label=emf, pos="663,165", width="0.75", height="0.5"];
|
||||
gdiplus_device_emfplus [label=emfplus, pos="663,111", width="1.1013", height="0.5"];
|
||||
gdiplus_device_gif [label=gif, pos="663,435", width="0.75", height="0.5"];
|
||||
"gdiplus_device_jpeg/jpe/jpg" [label="jpeg/jpe/jpg", pos="663,381", width="1.4624", height="0.5"];
|
||||
gdiplus_device_metafile [label=metafile, pos="663,57", width="1.0652", height="0.5"];
|
||||
gdiplus_device_png [label=png, pos="663,327", width="0.75", height="0.5"];
|
||||
"gdiplus_device_tiff/tif" [label="tiff/tif", pos="663,273", width="0.84854", height="0.5"];
|
||||
}
|
||||
subgraph gdiplus_loadimage {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
gdiplus_loadimage_bmp [label=bmp, pos="267,273", width="0.75827", height="0.5"];
|
||||
gdiplus_loadimage_gif [label=gif, pos="267,435", width="0.75", height="0.5"];
|
||||
"gdiplus_loadimage_jpeg/jpe/jpg" [label="jpeg/jpe/jpg", pos="267,381", width="1.4624", height="0.5"];
|
||||
gdiplus_loadimage_png [label=png, pos="267,327", width="0.75", height="0.5"];
|
||||
}
|
||||
render_gdiplus -> gdiplus_device_bmp [pos="e,639.35,228.36 493.67,288.57 529.51,273.75 591.87,247.98 629.8,232.31"];
|
||||
render_gdiplus -> gdiplus_device_emf [pos="e,640.56,175.14 484.39,284.65 511.11,262.71 562.64,221.77 610,192 616.69,187.79 624.11,183.65 631.2,179.93"];
|
||||
render_gdiplus -> gdiplus_device_emfplus [pos="e,633.87,123.24 477.81,283.01 500.5,251.32 552.99,182.38 610,138 614.63,134.4 619.81,131.05 625.06,128.02"];
|
||||
render_gdiplus -> gdiplus_device_gif [pos="e,640.56,424.86 484.39,315.35 511.11,337.29 562.64,378.23 610,408 616.69,412.21 624.11,416.35 631.2,420.07"];
|
||||
render_gdiplus -> "gdiplus_device_jpeg/jpe/jpg" [pos="e,628.57,367.18 493.67,311.43 526.35,324.94 581.1,347.57 619.25,363.33"];
|
||||
render_gdiplus -> gdiplus_device_metafile [pos="e,633.36,68.627 473.88,282.45 492.49,242.65 542.71,144.32 610,84 614.37,80.085 619.4,76.564 624.59,73.458"];
|
||||
render_gdiplus -> gdiplus_device_png [pos="e,636.32,323.46 501.04,304.83 536.42,309.7 590.78,317.19 626.36,322.09"];
|
||||
render_gdiplus -> "gdiplus_device_tiff/tif" [pos="e,633,276.99 501.04,295.17 535.32,290.45 587.41,283.28 622.98,278.37"];
|
||||
gdiplus_loadimage_bmp -> render_gdiplus [pos="e,429.26,295.21 294.03,276.59 325.95,280.98 380.6,288.51 419.3,293.84"];
|
||||
gdiplus_loadimage_gif -> render_gdiplus [pos="e,445.61,315.35 289.44,424.86 299,420.1 310.27,414.12 320,408 363.1,380.9 409.66,344.56 437.83,321.7"];
|
||||
"gdiplus_loadimage_jpeg/jpe/jpg" -> render_gdiplus [pos="e,436.3,311.45 301.25,367.26 335.99,352.9 390.38,330.42 426.6,315.46"];
|
||||
gdiplus_loadimage_png -> render_gdiplus [pos="e,429.11,304.81 293.62,323.47 325.44,319.09 380.25,311.54 419.1,306.19"];
|
||||
}
|
||||
subgraph cluster_gd {
|
||||
graph [label=gd,
|
||||
lp="465,1124.5",
|
||||
lwidth="0.21",
|
||||
bb="206,737,724,1136"];
|
||||
subgraph gd_render {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
render_gd [label=gd, pos="465,871", width="0.75", height="0.5"];
|
||||
render_vrml [label=vrml, pos="465,1087", width="0.75", height="0.5"];
|
||||
}
|
||||
subgraph gd_textlayout {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
}
|
||||
subgraph gd_device {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
gd_device_gd [label=gd, pos="663,979", width="0.75", height="0.5"];
|
||||
gd_device_gd2 [label=gd2, pos="663,925", width="0.75", height="0.5"];
|
||||
gd_device_gif [label=gif, pos="663,871", width="0.75", height="0.5"];
|
||||
"gd_device_jpeg/jpe/jpg" [label="jpeg/jpe/jpg", pos="663,817", width="1.4624", height="0.5"];
|
||||
gd_device_png [label=png, pos="663,763", width="0.75", height="0.5"];
|
||||
gd_device_vrml [label=vrml, pos="663,1087", width="0.75", height="0.5"];
|
||||
gd_device_wbmp [label=wbmp, pos="663,1033", width="0.93881", height="0.5"];
|
||||
}
|
||||
subgraph gd_loadimage {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
gd_loadimage_gd [label=gd, pos="267,871", width="0.75", height="0.5"];
|
||||
gd_loadimage_gd2 [label=gd2, pos="267,817", width="0.75", height="0.5"];
|
||||
gd_loadimage_gif [label=gif, pos="267,979", width="0.75", height="0.5"];
|
||||
"gd_loadimage_jpeg/jpe/jpg" [label="jpeg/jpe/jpg", pos="267,925", width="1.4624", height="0.5"];
|
||||
gd_loadimage_png [label=png, pos="267,763", width="0.75", height="0.5"];
|
||||
}
|
||||
render_gd -> gd_device_gd [pos="e,641.17,968.38 485.92,882.48 513.6,898.38 565.34,927.85 610,952 617.17,955.88 624.95,959.97 632.25,963.77"];
|
||||
render_gd -> gd_device_gd2 [pos="e,637.88,918.35 490.43,877.73 525.17,887.3 588.98,904.88 628.22,915.69"];
|
||||
render_gd -> gd_device_gif [pos="e,635.87,871 492.03,871 526.29,871 586.72,871 625.53,871"];
|
||||
render_gd -> "gd_device_jpeg/jpe/jpg" [pos="e,621.57,828.14 490.43,864.27 520.57,855.96 572.6,841.63 611.48,830.92"];
|
||||
render_gd -> gd_device_png [pos="e,641.17,773.62 485.92,859.52 513.6,843.62 565.34,814.15 610,790 617.17,786.12 624.95,782.03 632.25,778.23"];
|
||||
render_vrml -> gd_device_vrml [pos="e,635.87,1087 492.03,1087 526.29,1087 586.72,1087 625.53,1087"];
|
||||
render_gd -> gd_device_wbmp [pos="e,636.59,1021.6 479.57,886.21 503.84,912.83 557.14,968.58 610,1006 615.39,1009.8 621.4,1013.4 627.36,1016.7"];
|
||||
gd_loadimage_gd -> render_gd [pos="e,437.87,871 294.03,871 328.29,871 388.72,871 427.53,871"];
|
||||
gd_loadimage_gd2 -> render_gd [pos="e,439.88,864.35 292.43,823.73 327.17,833.3 390.98,850.88 430.22,861.69"];
|
||||
gd_loadimage_gif -> render_gd [pos="e,444.08,882.48 288.83,968.38 298.37,963.47 309.8,957.52 320,952 360.3,930.21 406.36,904.08 435.31,887.51"];
|
||||
"gd_loadimage_jpeg/jpe/jpg" -> render_gd [pos="e,439.8,877.67 308.61,913.81 344.48,903.93 396.19,889.68 429.94,880.38"];
|
||||
gd_loadimage_png -> render_gd [pos="e,444.08,859.52 288.83,773.62 298.37,778.53 309.8,784.48 320,790 360.3,811.79 406.36,837.92 435.31,854.49"];
|
||||
}
|
||||
subgraph cluster_dot_layout {
|
||||
graph [label=dot_layout,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
subgraph dot_layout_layout {
|
||||
graph [rank=same];
|
||||
}
|
||||
}
|
||||
subgraph cluster_core {
|
||||
graph [label=core,
|
||||
lp="463.5,2233.5",
|
||||
lwidth="0.35",
|
||||
bb="206,1144,721,2245"];
|
||||
subgraph core_render {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
render_dot [label=dot, pos="465,1710", width="0.75", height="0.5"];
|
||||
render_fig [label=fig, pos="465,1494", width="0.75", height="0.5"];
|
||||
render_map [label=map, pos="465,1845", width="0.75", height="0.5"];
|
||||
render_ps [label=ps, pos="465,1170", width="0.75", height="0.5"];
|
||||
render_svg [label=svg, pos="465,1548", width="0.75", height="0.5"];
|
||||
render_tk [label=tk, pos="465,1602", width="0.75", height="0.5"];
|
||||
render_vml [label=vml, pos="465,1440", width="0.75", height="0.5"];
|
||||
render_xdot [label=xdot, pos="465,1656", width="0.75827", height="0.5"];
|
||||
}
|
||||
subgraph core_device {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
core_device_canon [label=canon, pos="663,1872", width="0.9027", height="0.5"];
|
||||
core_device_cmap [label=cmap, pos="663,2142", width="0.84854", height="0.5"];
|
||||
core_device_cmapx [label=cmapx, pos="663,2088", width="0.97491", height="0.5"];
|
||||
core_device_cmapx_np [label=cmapx_np, pos="663,2034", width="1.3721", height="0.5"];
|
||||
"core_device_gv/dot" [label="gv/dot", pos="663,1818", width="0.95686", height="0.5"];
|
||||
core_device_eps [label=eps, pos="663,1278", width="0.75", height="0.5"];
|
||||
core_device_fig [label=fig, pos="663,1494", width="0.75", height="0.5"];
|
||||
core_device_imap [label=imap, pos="663,1980", width="0.79437", height="0.5"];
|
||||
core_device_imap_np [label=imap_np, pos="663,1926", width="1.1735", height="0.5"];
|
||||
core_device_ismap [label=ismap, pos="663,2196", width="0.9027", height="0.5"];
|
||||
core_device_plain [label=plain, pos="663,1764", width="0.77632", height="0.5"];
|
||||
"core_device_plain-ext" [label="plain-ext", pos="663,1710", width="1.1555", height="0.5"];
|
||||
core_device_ps [label=ps, pos="663,1170", width="0.75", height="0.5"];
|
||||
core_device_ps2 [label=ps2, pos="663,1224", width="0.75", height="0.5"];
|
||||
core_device_svg [label=svg, pos="663,1386", width="0.75", height="0.5"];
|
||||
core_device_svgz [label=svgz, pos="663,1548", width="0.75827", height="0.5"];
|
||||
core_device_tk [label=tk, pos="663,1602", width="0.75", height="0.5"];
|
||||
core_device_vml [label=vml, pos="663,1332", width="0.75", height="0.5"];
|
||||
core_device_vmlz [label=vmlz, pos="663,1440", width="0.77632", height="0.5"];
|
||||
core_device_xdot [label=xdot, pos="663,1656", width="0.75827", height="0.5"];
|
||||
}
|
||||
subgraph core_loadimage {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
"core_loadimage_(lib)" [label="(lib)", pos="267,1170", width="0.75", height="0.5"];
|
||||
core_loadimage_eps [label=eps, pos="267,1696", width="0.75", height="0.5"];
|
||||
core_loadimage_gif [label=gif, pos="267,1561", width="0.75", height="0.5"];
|
||||
"core_loadimage_jpeg/jpe/jpg" [label="jpeg/jpe/jpg", pos="267,1507", width="1.4624", height="0.5"];
|
||||
core_loadimage_png [label=png, pos="267,1453", width="0.75", height="0.5"];
|
||||
core_loadimage_ps [label=ps, pos="267,1642", width="0.75", height="0.5"];
|
||||
core_loadimage_svg [label=svg, pos="267,1750", width="0.75", height="0.5"];
|
||||
}
|
||||
render_dot -> core_device_canon [pos="e,637.12,1860.8 479.57,1725.2 503.84,1751.8 557.14,1807.6 610,1845 615.63,1849 621.93,1852.8 628.15,1856.1"];
|
||||
render_map -> core_device_cmap [pos="e,636.73,2132.6 471.32,1862.7 486.14,1909.5 532,2037.9 610,2115 615.05,2120 621.22,2124.3 627.52,2127.9"];
|
||||
render_map -> core_device_cmapx [pos="e,634.71,2077 473.74,1862.3 492.24,1901.9 542.55,2000.5 610,2061 614.72,2065.2 620.23,2069 625.86,2072.3"];
|
||||
render_map -> core_device_cmapx_np [pos="e,630.89,2020.2 477.46,1861.5 499.95,1893 552.69,1962.4 610,2007 613.76,2009.9 617.9,2012.7 622.13,2015.3"];
|
||||
render_dot -> "core_device_gv/dot" [pos="e,637.83,1805.7 485.92,1721.5 513.6,1737.4 565.34,1766.9 610,1791 616.07,1794.3 622.58,1797.7 628.86,1801"];
|
||||
render_ps -> core_device_eps [pos="e,641.17,1267.4 485.92,1181.5 513.6,1197.4 565.34,1226.9 610,1251 617.17,1254.9 624.95,1259 632.25,1262.8"];
|
||||
render_fig -> core_device_fig [pos="e,635.87,1494 492.03,1494 526.29,1494 586.72,1494 625.53,1494"];
|
||||
render_map -> core_device_imap [pos="e,639.54,1969.4 482.64,1858.9 508.8,1880.5 561.58,1922.6 610,1953 616.45,1957.1 623.58,1961.1 630.44,1964.7"];
|
||||
render_map -> core_device_imap_np [pos="e,632.13,1913.7 488.48,1854.3 521.25,1867.8 582.6,1893.2 622.87,1909.8"];
|
||||
render_map -> core_device_ismap [pos="e,635.37,2186.4 469.53,1862.7 480.88,1915.6 520.99,2074.4 610,2169 614.68,2174 620.49,2178.2 626.51,2181.7"];
|
||||
render_dot -> core_device_plain [pos="e,636.95,1757.1 490.43,1716.7 524.88,1726.2 587.94,1743.6 627.26,1754.4"];
|
||||
render_dot -> "core_device_plain-ext" [pos="e,621.18,1710 492.03,1710 522.2,1710 572.66,1710 610.78,1710"];
|
||||
render_ps -> core_device_ps [pos="e,635.87,1170 492.03,1170 526.29,1170 586.72,1170 625.53,1170"];
|
||||
render_ps -> core_device_ps2 [pos="e,637.88,1217.4 490.43,1176.7 525.17,1186.3 588.98,1203.9 628.22,1214.7"];
|
||||
render_svg -> core_device_svg [pos="e,639.87,1395.6 484.34,1535 490.12,1530.7 496.45,1525.8 502,1521 553.28,1476.5 555.24,1453.1 610,1413 616.32,1408.4 623.54,1404.1\
|
||||
630.55,1400.4"];
|
||||
render_svg -> core_device_svgz [pos="e,635.55,1548 492.03,1548 526.2,1548 586.39,1548 625.21,1548"];
|
||||
render_tk -> core_device_tk [pos="e,635.87,1602 492.03,1602 526.29,1602 586.72,1602 625.53,1602"];
|
||||
render_vml -> core_device_vml [pos="e,641.17,1342.6 485.92,1428.5 513.6,1412.6 565.34,1383.1 610,1359 617.17,1355.1 624.95,1351 632.25,1347.2"];
|
||||
render_vml -> core_device_vmlz [pos="e,634.92,1440 492.03,1440 526.01,1440 585.72,1440 624.56,1440"];
|
||||
render_xdot -> core_device_xdot [pos="e,635.67,1656 492.43,1656 526.72,1656 586.71,1656 625.37,1656"];
|
||||
"core_loadimage_(lib)" -> render_ps [pos="e,437.87,1170 294.03,1170 328.29,1170 388.72,1170 427.53,1170"];
|
||||
core_loadimage_eps -> render_xdot [pos="e,438.56,1661.2 293.22,1690.9 327.67,1683.8 389.62,1671.2 428.68,1663.2"];
|
||||
core_loadimage_eps -> render_dot [pos="e,437.87,1708.1 294.03,1697.9 328.29,1700.3 388.72,1704.6 427.53,1707.4"];
|
||||
core_loadimage_eps -> render_map [pos="e,448.94,1830.2 289.61,1705.9 299.2,1710.6 310.45,1716.6 320,1723 366.06,1753.9 414.18,1797.3 441.48,1823.1"];
|
||||
core_loadimage_eps -> render_ps [pos="e,460.76,1188 291.73,1688.5 301.73,1684.2 312.72,1677.9 320,1669 381.56,1593.9 441.49,1291.8 458.94,1197.9"];
|
||||
core_loadimage_gif -> render_vml [pos="e,445.73,1452.8 289.26,1550.6 298.78,1545.7 310.07,1539.8 320,1534 361.87,1509.5 408.58,1478.3 437.13,1458.7"];
|
||||
core_loadimage_gif -> render_xdot [pos="e,442.38,1645.5 289.35,1571.3 324.16,1588.2 393.28,1621.7 433.34,1641.1"];
|
||||
core_loadimage_gif -> render_dot [pos="e,446.4,1696.8 285.72,1574.6 315.2,1597.2 376.18,1643.8 428,1683 431.27,1685.5 434.72,1688.1 438.12,1690.6"];
|
||||
core_loadimage_gif -> render_map [pos="e,454.99,1828 283.45,1575.4 294.29,1585.8 308.79,1600.6 320,1615 374.29,1684.5 426.21,1775.4 450.17,1819.2"];
|
||||
core_loadimage_gif -> render_fig [pos="e,440.47,1502 291.25,1553.1 325.93,1541.2 391.37,1518.8 430.99,1505.3"];
|
||||
core_loadimage_gif -> render_svg [pos="e,437.87,1549.7 294.03,1559.3 328.29,1557 388.72,1553 427.53,1550.4"];
|
||||
"core_loadimage_jpeg/jpe/jpg" -> render_vml [pos="e,440.53,1448 304.87,1494.4 341.1,1482 395.9,1463.3 430.81,1451.3"];
|
||||
"core_loadimage_jpeg/jpe/jpg" -> render_xdot [pos="e,445.84,1642.8 298.96,1521.5 306.07,1525.3 313.45,1529.5 320,1534 372.76,1570.1 378.39,1588.7 428,1629 431.12,1631.5 434.43,1634.1\
|
||||
437.74,1636.7"];
|
||||
"core_loadimage_jpeg/jpe/jpg" -> render_dot [pos="e,445.18,1697.5 300.56,1520.9 307.36,1524.6 314.22,1529 320,1534 381.96,1587.4 370.64,1624.7 428,1683 430.82,1685.9 433.95,1688.7\
|
||||
437.17,1691.3"];
|
||||
"core_loadimage_jpeg/jpe/jpg" -> render_map [pos="e,457.65,1827.6 302.13,1520.6 308.61,1524.3 314.94,1528.7 320,1534 362.13,1578.1 429.11,1751 454.14,1818.1"];
|
||||
"core_loadimage_jpeg/jpe/jpg" -> render_fig [pos="e,438.08,1495.7 318.73,1503.6 352.92,1501.4 397.21,1498.4 427.85,1496.4"];
|
||||
"core_loadimage_jpeg/jpe/jpg" -> render_svg [pos="e,439.14,1542.8 312.48,1516.3 347.84,1523.7 396.62,1533.9 429.18,1540.7"];
|
||||
core_loadimage_png -> render_vml [pos="e,437.87,1441.7 294.03,1451.3 328.29,1449 388.72,1445 427.53,1442.4"];
|
||||
core_loadimage_png -> render_xdot [pos="e,445.18,1643.5 290.66,1462 300.34,1466.5 311.37,1472.6 320,1480 381.96,1533.4 370.64,1570.7 428,1629 430.82,1631.9 433.95,1634.7\
|
||||
437.17,1637.3"];
|
||||
core_loadimage_png -> render_dot [pos="e,444.73,1697.9 291.16,1461.4 300.94,1465.8 311.9,1472 320,1480 392.62,1551.9 361.53,1605.4 428,1683 430.61,1686.1 433.63,1689 436.78\
|
||||
,1691.7"];
|
||||
core_loadimage_png -> render_map [pos="e,457.91,1827.5 291.34,1460.9 301.27,1465.2 312.3,1471.5 320,1480 344.07,1506.7 426.3,1737.4 454.46,1817.6"];
|
||||
core_loadimage_png -> render_fig [pos="e,438.87,1488.7 293.22,1458.3 327.77,1465.5 389.96,1478.5 429,1486.7"];
|
||||
core_loadimage_png -> render_svg [pos="e,442.68,1537.7 289.35,1463.3 324.25,1480.3 393.65,1513.9 433.65,1533.3"];
|
||||
core_loadimage_ps -> render_xdot [pos="e,437.55,1654.1 294.03,1643.9 328.2,1646.3 388.39,1650.6 427.21,1653.4"];
|
||||
core_loadimage_ps -> render_dot [pos="e,440.78,1701.9 291.25,1650.1 326.03,1662.1 391.72,1684.9 431.31,1698.7"];
|
||||
core_loadimage_ps -> render_map [pos="e,453.88,1828.6 290.45,1651.2 300.1,1655.8 311.16,1661.8 320,1669 375.38,1714 424.32,1783.1 448.32,1819.9"];
|
||||
core_loadimage_ps -> render_ps [pos="e,460.73,1187.9 284.98,1627.9 296.25,1617.8 310.63,1603.3 320,1588 401.76,1454.4 444.68,1268.2 458.72,1198.1"];
|
||||
core_loadimage_svg -> render_svg [pos="e,445.19,1560.5 290.65,1741 300.32,1736.5 311.36,1730.4 320,1723 381.77,1669.9 370.8,1633 428,1575 430.82,1572.1 433.96,1569.3 437.18\
|
||||
,1566.7"];
|
||||
core_loadimage_svg -> render_xdot [pos="e,442.38,1666.4 289.35,1739.8 324.16,1723.1 393.28,1689.9 433.34,1670.7"];
|
||||
core_loadimage_svg -> render_dot [pos="e,438.87,1715.1 293.22,1744.9 327.77,1737.8 389.96,1725.1 429,1717.1"];
|
||||
core_loadimage_svg -> render_map [pos="e,442.68,1834.7 289.35,1760.3 324.25,1777.3 393.65,1810.9 433.65,1830.3"];
|
||||
}
|
||||
subgraph output_formats {
|
||||
graph [rank=same,
|
||||
lp="",
|
||||
lwidth="",
|
||||
lheight="",
|
||||
bb=""];
|
||||
output_pdf [label=pdf, pos="877,626", width="0.75", height="0.5"];
|
||||
output_png [label=png, pos="877,464", width="0.75", height="0.5"];
|
||||
output_ps [label=ps, pos="877,802", width="0.75", height="0.5"];
|
||||
output_svg [label=svg, pos="877,1224", width="0.75", height="0.5"];
|
||||
output_bmp [label=bmp, pos="877,219", width="0.75827", height="0.5"];
|
||||
output_emf [label=emf, pos="877,165", width="0.75", height="0.5"];
|
||||
output_emfplus [label=emfplus, pos="877,111", width="1.1013", height="0.5"];
|
||||
output_gif [label=gif, pos="877,572", width="0.75", height="0.5"];
|
||||
"output_jpeg/jpe/jpg" [label="jpeg/jpe/jpg", pos="877,518", width="1.4624", height="0.5"];
|
||||
output_metafile [label=metafile, pos="877,57", width="1.0652", height="0.5"];
|
||||
"output_tiff/tif" [label="tiff/tif", pos="877,273", width="0.84854", height="0.5"];
|
||||
output_gd [label=gd, pos="877,979", width="0.75", height="0.5"];
|
||||
output_gd2 [label=gd2, pos="877,925", width="0.75", height="0.5"];
|
||||
output_vrml [label=vrml, pos="877,1087", width="0.75", height="0.5"];
|
||||
output_wbmp [label=wbmp, pos="877,1033", width="0.93881", height="0.5"];
|
||||
output_canon [label=canon, pos="877,1872", width="0.9027", height="0.5"];
|
||||
output_cmap [label=cmap, pos="877,2142", width="0.84854", height="0.5"];
|
||||
output_cmapx [label=cmapx, pos="877,2088", width="0.97491", height="0.5"];
|
||||
output_cmapx_np [label=cmapx_np, pos="877,2034", width="1.3721", height="0.5"];
|
||||
"output_gv/dot" [label="gv/dot", pos="877,1818", width="0.95686", height="0.5"];
|
||||
output_eps [label=eps, pos="877,1278", width="0.75", height="0.5"];
|
||||
output_fig [label=fig, pos="877,1494", width="0.75", height="0.5"];
|
||||
output_imap [label=imap, pos="877,1980", width="0.79437", height="0.5"];
|
||||
output_imap_np [label=imap_np, pos="877,1926", width="1.1735", height="0.5"];
|
||||
output_ismap [label=ismap, pos="877,2196", width="0.9027", height="0.5"];
|
||||
output_plain [label=plain, pos="877,1764", width="0.77632", height="0.5"];
|
||||
"output_plain-ext" [label="plain-ext", pos="877,1710", width="1.1555", height="0.5"];
|
||||
output_ps2 [label=ps2, pos="877,1170", width="0.75", height="0.5"];
|
||||
output_svgz [label=svgz, pos="877,1548", width="0.75827", height="0.5"];
|
||||
output_tk [label=tk, pos="877,1602", width="0.75", height="0.5"];
|
||||
output_vml [label=vml, pos="877,1332", width="0.75", height="0.5"];
|
||||
output_vmlz [label=vmlz, pos="877,1440", width="0.77632", height="0.5"];
|
||||
output_xdot [label=xdot, pos="877,1656", width="0.75827", height="0.5"];
|
||||
}
|
||||
input_png [label=png, pos="53,721", width="0.75", height="0.5"];
|
||||
input_bmp [label=bmp, pos="53,273", width="0.75827", height="0.5"];
|
||||
input_gif [label=gif, pos="53,979", width="0.75", height="0.5"];
|
||||
"input_jpeg/jpe/jpg" [label="jpeg/jpe/jpg", pos="53,925", width="1.4624", height="0.5"];
|
||||
input_gd [label=gd, pos="53,871", width="0.75", height="0.5"];
|
||||
input_gd2 [label=gd2, pos="53,817", width="0.75", height="0.5"];
|
||||
"input_(lib)" [label="(lib)", pos="53,1170", width="0.75", height="0.5"];
|
||||
input_eps [label=eps, pos="53,1696", width="0.75", height="0.5"];
|
||||
input_ps [label=ps, pos="53,1642", width="0.75", height="0.5"];
|
||||
input_svg [label=svg, pos="53,1750", width="0.75", height="0.5"];
|
||||
cairo_device_pdf -> output_pdf [pos="e,851.42,619.74 688.73,578.3 726.55,587.93 798.86,606.35 841.72,617.27"];
|
||||
cairo_device_png -> output_png [pos="e,851.42,470.26 688.73,511.7 726.55,502.07 798.86,483.65 841.72,472.73"];
|
||||
cairo_device_ps -> output_ps [pos="e,863.24,786.22 687.22,634.22 698.79,638.85 712.68,645.27 724,653 777.79,689.73 829.56,746.51 856.6,778.32"];
|
||||
cairo_device_svg -> output_svg [pos="e,852.25,1216.8 683.16,692.04 696.66,701.53 714.03,715.97 724,733 830.6,915.04 695.98,1029.3 824,1197 828.95,1203.5 835.9,1208.6\
|
||||
843.11,1212.5"];
|
||||
input_png -> cairo_loadimage_png [pos="e,240.88,684.86 79.152,716.14 116.85,708.85 188.12,695.06 230.91,686.79"];
|
||||
cairo_loadimage_png -> render_ps [pos="e,445.06,1157.8 285.35,693.55 296.77,703.35 311.2,717.54 320,733 412.6,895.63 327.37,982.21 428,1140 430.53,1144 433.75,1147.7 437.23\
|
||||
,1151"];
|
||||
gdiplus_device_bmp -> output_bmp [pos="e,849.58,219 690.42,219 727.97,219 796.93,219 839.39,219"];
|
||||
render_cairo -> gdiplus_device_bmp [pos="e,638.17,226.79 470.03,662.12 486.82,588.94 552.95,312.9 610,246 615.08,240.04 621.81,235.22 628.74,231.4"];
|
||||
gdiplus_device_emf -> output_emf [pos="e,849.91,165 690.42,165 728.08,165 797.31,165 839.74,165"];
|
||||
gdiplus_device_emfplus -> output_emfplus [pos="e,837,111 702.88,111 737.74,111 789.04,111 826.75,111"];
|
||||
gdiplus_device_gif -> output_gif [pos="e,854.68,561.68 681.76,448.28 710.78,469.75 770.53,512.91 824,545 830.78,549.07 838.23,553.15 845.32,556.87"];
|
||||
render_cairo -> gdiplus_device_gif [pos="e,646.43,449.8 477.25,663.51 500.65,629.59 556.79,549.95 610,488 619.15,477.35 629.92,466.17 639.28,456.84"];
|
||||
"gdiplus_device_jpeg/jpe/jpg" -> "output_jpeg/jpe/jpg" [pos="e,845.4,503.5 698.15,394.45 706.82,398.38 715.96,402.98 724,408 773,438.57 775.87,459.07 824,491 827.98,493.64 832.24,496.22 836.55\
|
||||
,498.67"];
|
||||
render_cairo -> "gdiplus_device_jpeg/jpe/jpg" [pos="e,628.36,394.65 471.28,662.14 486.01,615.03 531.67,485.71 610,408 612.97,405.06 616.32,402.37 619.86,399.92"];
|
||||
gdiplus_device_metafile -> output_metafile [pos="e,838.6,57 701.41,57 736.73,57 789.84,57 828.2,57"];
|
||||
gdiplus_device_png -> output_png [pos="e,859.45,450.28 686.76,335.95 698.21,340.77 712.14,347.13 724,354 771.47,381.47 822.25,420.39 851.45,443.82"];
|
||||
render_cairo -> gdiplus_device_png [pos="e,638.82,335.02 469.5,662.14 480.76,608.92 520.64,449.17 610,354 615.53,348.11 622.64,343.27 629.81,339.41"];
|
||||
"gdiplus_device_tiff/tif" -> "output_tiff/tif" [pos="e,846.23,273 693.92,273 731.09,273 794.64,273 835.97,273"];
|
||||
render_cairo -> "gdiplus_device_tiff/tif" [pos="e,636.21,281.89 468.25,661.78 476.45,602.55 509.65,412.8 610,300 614.72,294.69 620.74,290.27 627,286.64"];
|
||||
input_bmp -> gdiplus_loadimage_bmp [pos="e,239.58,273 80.421,273 117.97,273 186.93,273 229.39,273"];
|
||||
input_gif -> gdiplus_loadimage_gif [pos="e,246.84,447.04 77.753,971.8 87.881,967.58 98.963,961.22 106,952 234.02,784.33 99.396,670.04 206,488 214.03,474.3 226.84,462.27 \
|
||||
238.57,453.15"];
|
||||
"input_jpeg/jpe/jpg" -> "gdiplus_loadimage_jpeg/jpe/jpg" [pos="e,226.15,392.53 89.668,911.95 95.878,908.28 101.71,903.68 106,898 239.91,720.6 67.17,581.58 206,408 209.22,403.98 213.16,400.53 \
|
||||
217.48,397.59"];
|
||||
input_png -> gdiplus_loadimage_png [pos="e,241.57,333.33 56.633,703.16 66.062,645.21 103.23,459.92 206,354 213.14,346.64 222.66,341.12 232,337.05"];
|
||||
gd_device_gd -> output_gd [pos="e,849.91,979 690.42,979 728.08,979 797.31,979 839.74,979"];
|
||||
render_cairo -> gd_device_gd [pos="e,638.72,970.71 477.96,696.33 485.27,706.62 494.61,720.31 502,733 556.62,826.78 534.06,874.47 610,952 615.48,957.6 622.37,962.27\
|
||||
629.32,966.07"];
|
||||
gd_device_gd2 -> output_gd2 [pos="e,849.91,925 690.42,925 728.08,925 797.31,925 839.74,925"];
|
||||
render_cairo -> gd_device_gd2 [pos="e,639.17,916.23 477.42,696.66 484.54,707.07 493.85,720.78 502,733 550.63,805.92 544.99,839.22 610,898 615.81,903.25 622.83,907.79\
|
||||
629.8,911.56"];
|
||||
gd_device_gif -> output_gif [pos="e,852.7,579.91 688.45,864.69 700.47,860.52 714.4,853.94 724,844 805.68,759.38 744.72,685.87 824,599 829.45,593.03 836.52,588.16 \
|
||||
843.69,584.29"];
|
||||
render_cairo -> gd_device_gif [pos="e,639.66,861.65 477.41,696.71 499.82,728.59 552.44,798.9 610,844 616.17,848.83 623.33,853.2 630.33,856.94"];
|
||||
"gd_device_jpeg/jpe/jpg" -> "output_jpeg/jpe/jpg" [pos="e,841.68,531.41 702.33,804.99 710.23,801.16 717.97,796.25 724,790 805.68,705.38 744.72,631.87 824,545 826.7,542.04 829.8,539.35 \
|
||||
833.11,536.92"];
|
||||
render_cairo -> "gd_device_jpeg/jpe/jpg" [pos="e,631.8,802.45 482.59,694.21 508.7,716.19 561.4,759.15 610,790 614.08,792.59 618.43,795.15 622.82,797.6"];
|
||||
gd_device_png -> output_png [pos="e,852.72,471.93 687.85,755.61 700.01,750.82 714.24,743.49 724,733 803.28,647.81 745.37,576.79 824,491 829.46,485.04 836.54,480.18\
|
||||
843.71,476.31"];
|
||||
render_cairo -> gd_device_png [pos="e,639.68,753.55 489.25,689.85 524.31,704.69 590.78,732.84 630.26,749.56"];
|
||||
gd_device_vrml -> output_vrml [pos="e,849.91,1087 690.42,1087 728.08,1087 797.31,1087 839.74,1087"];
|
||||
gd_device_wbmp -> output_wbmp [pos="e,843.11,1033 697.13,1033 733.76,1033 792.92,1033 833.08,1033"];
|
||||
render_cairo -> gd_device_wbmp [pos="e,634.39,1023.2 478.32,696.12 485.78,706.34 495.13,720.02 502,733 563.03,848.33 522.57,909.14 610,1006 614.34,1010.8 619.74,1014.9\
|
||||
625.39,1018.3"];
|
||||
input_gd -> gd_loadimage_gd [pos="e,239.91,871 80.421,871 118.08,871 187.31,871 229.74,871"];
|
||||
gd_loadimage_gd -> render_cairo [pos="e,452.59,696.71 290.34,861.65 299.96,857.07 311.03,851.03 320,844 372.84,802.6 421.51,739.95 446.48,705.3"];
|
||||
gd_loadimage_gd -> render_ps [pos="e,445.66,1157.4 291.17,879.03 301.06,883.39 312.12,889.64 320,898 400.78,983.71 356.92,1046.1 428,1140 430.84,1143.8 434.23,1147.3\
|
||||
437.78,1150.6"];
|
||||
input_gd2 -> gd_loadimage_gd2 [pos="e,239.91,817 80.421,817 118.08,817 187.31,817 229.74,817"];
|
||||
gd_loadimage_gd2 -> render_cairo [pos="e,447.41,694.21 289.47,806.9 299.03,802.14 310.3,796.16 320,790 364.05,762.04 411.46,724.14 439.39,700.92"];
|
||||
gd_loadimage_gd2 -> render_ps [pos="e,445.4,1157.6 291.45,824.78 301.39,829.09 312.41,835.36 320,844 412.43,949.2 347.44,1025.5 428,1140 430.71,1143.8 434.03,1147.5\
|
||||
437.54,1150.8"];
|
||||
input_gif -> gd_loadimage_gif [pos="e,239.91,979 80.421,979 118.08,979 187.31,979 229.74,979"];
|
||||
gd_loadimage_gif -> render_cairo [pos="e,452.04,696.33 291.28,970.71 301.08,966.32 312.03,960.14 320,952 395.94,874.47 373.38,826.78 428,733 433.54,723.48 440.18,713.4\
|
||||
446.24,704.61"];
|
||||
gd_loadimage_gif -> render_ps [pos="e,446.87,1156.3 282.11,994.12 309.46,1023.2 371.92,1088.6 428,1140 431.47,1143.2 435.21,1146.4 438.91,1149.6"];
|
||||
"input_jpeg/jpe/jpg" -> "gd_loadimage_jpeg/jpe/jpg" [pos="e,214.31,925 105.86,925 135.49,925 172.83,925 203.99,925"];
|
||||
"gd_loadimage_jpeg/jpe/jpg" -> render_cairo [pos="e,452.58,696.66 301.01,911.12 307.72,907.43 314.42,903.05 320,898 385.01,839.22 379.37,805.92 428,733 434.11,723.84 440.88,713.84\
|
||||
446.88,705.01"];
|
||||
"gd_loadimage_jpeg/jpe/jpg" -> render_ps [pos="e,446.02,1157.1 301.51,938.79 308.11,942.46 314.64,946.86 320,952 389.57,1018.7 366.01,1066.2 428,1140 431.03,1143.6 434.52,1147.1\
|
||||
438.12,1150.4"];
|
||||
input_png -> gd_loadimage_png [pos="e,240.88,758.02 79.152,725.98 116.85,733.45 188.12,747.57 230.91,756.05"];
|
||||
gd_loadimage_png -> render_ps [pos="e,445.21,1157.7 291.65,770.6 301.64,774.88 312.63,781.18 320,790 424.32,914.97 337.74,1004.5 428,1140 430.61,1143.9 433.87,1147.6\
|
||||
437.37,1150.9"];
|
||||
gd_loadimage_png -> render_cairo [pos="e,440.77,689.84 290.1,753.64 324.6,739.03 391.43,710.73 431.45,693.79"];
|
||||
core_device_canon -> output_canon [pos="e,844.39,1872 695.74,1872 732.61,1872 793.57,1872 834.26,1872"];
|
||||
core_device_cmap -> output_cmap [pos="e,846.23,2142 693.92,2142 731.09,2142 794.64,2142 835.97,2142"];
|
||||
core_device_cmapx -> output_cmapx [pos="e,841.83,2088 698.53,2088 734.83,2088 792.05,2088 831.66,2088"];
|
||||
core_device_cmapx_np -> output_cmapx_np [pos="e,827.59,2034 712.64,2034 743.74,2034 784.28,2034 817.19,2034"];
|
||||
"core_device_gv/dot" -> "output_gv/dot" [pos="e,842.21,1818 697.59,1818 733.92,1818 792,1818 831.96,1818"];
|
||||
core_device_eps -> output_eps [pos="e,849.91,1278 690.42,1278 728.08,1278 797.31,1278 839.74,1278"];
|
||||
core_device_fig -> output_fig [pos="e,849.91,1494 690.42,1494 728.08,1494 797.31,1494 839.74,1494"];
|
||||
core_device_imap -> output_imap [pos="e,848.28,1980 691.72,1980 729.17,1980 796.09,1980 838.15,1980"];
|
||||
core_device_imap_np -> output_imap_np [pos="e,834.73,1926 705.38,1926 739.38,1926 787.72,1926 824.27,1926"];
|
||||
core_device_ismap -> output_ismap [pos="e,844.39,2196 695.74,2196 732.61,2196 793.57,2196 834.26,2196"];
|
||||
core_device_plain -> output_plain [pos="e,848.82,1764 691.28,1764 728.81,1764 796.49,1764 838.68,1764"];
|
||||
"core_device_plain-ext" -> "output_plain-ext" [pos="e,835.25,1710 704.88,1710 739.19,1710 788.37,1710 825.21,1710"];
|
||||
core_device_ps -> output_ps [pos="e,866.25,818.72 687.85,1162.6 700.01,1157.8 714.24,1150.5 724,1140 803.28,1054.8 774,1003.1 824,898 835.62,873.58 850.44,846.57 \
|
||||
861.28,827.43"];
|
||||
core_device_ps2 -> output_ps2 [pos="e,851.42,1176.3 688.73,1217.7 726.55,1208.1 798.86,1189.6 841.72,1178.7"];
|
||||
core_device_svg -> output_svg [pos="e,853.75,1233.5 687.39,1378 698.99,1373.4 712.87,1367 724,1359 777.11,1320.8 771.98,1290.7 824,1251 830.23,1246.3 837.42,1241.9 \
|
||||
844.42,1238.2"];
|
||||
core_device_svgz -> output_svgz [pos="e,849.58,1548 690.42,1548 727.97,1548 796.93,1548 839.39,1548"];
|
||||
core_device_tk -> output_tk [pos="e,849.91,1602 690.42,1602 728.08,1602 797.31,1602 839.74,1602"];
|
||||
core_device_vml -> output_vml [pos="e,849.91,1332 690.42,1332 728.08,1332 797.31,1332 839.74,1332"];
|
||||
core_device_vmlz -> output_vmlz [pos="e,848.82,1440 691.28,1440 728.81,1440 796.49,1440 838.68,1440"];
|
||||
core_device_xdot -> output_xdot [pos="e,849.58,1656 690.42,1656 727.97,1656 796.93,1656 839.39,1656"];
|
||||
"input_(lib)" -> "core_loadimage_(lib)" [pos="e,239.91,1170 80.421,1170 118.08,1170 187.31,1170 229.74,1170"];
|
||||
input_eps -> core_loadimage_eps [pos="e,239.91,1696 80.421,1696 118.08,1696 187.31,1696 229.74,1696"];
|
||||
input_gif -> core_loadimage_gif [pos="e,241.26,1555.3 59.947,996.62 69.97,1026.5 90.633,1089.3 106,1143 155.35,1315.4 90.561,1396.7 206,1534 212.73,1542 222.31,1547.7\
|
||||
231.85,1551.8"];
|
||||
core_loadimage_gif -> render_vrml [pos="e,451.17,1102.9 291.79,1553.5 301.8,1549.2 312.77,1542.9 320,1534 434.13,1392.8 351.96,1304.9 428,1140 432.61,1130 439.04,1119.8\
|
||||
445.19,1111.1"];
|
||||
"input_jpeg/jpe/jpg" -> "core_loadimage_jpeg/jpe/jpg" [pos="e,226.08,1495.5 89.732,938 95.937,941.68 101.75,946.29 106,952 248.54,1143.6 58.142,1292.4 206,1480 209.19,1484 213.12,1487.5 217.42\
|
||||
,1490.5"];
|
||||
"core_loadimage_jpeg/jpe/jpg" -> render_vrml [pos="e,451.36,1103 302.93,1493.7 309.28,1490.1 315.35,1485.5 320,1480 422.11,1358.7 358.73,1282.6 428,1140 432.81,1130.1 439.28,1119.9\
|
||||
445.42,1111.2"];
|
||||
input_png -> core_loadimage_png [pos="e,261.77,1435 68.185,735.97 79.972,749.19 96.326,769.52 106,790 113.08,804.99 230.24,1301.2 259.45,1425.2"];
|
||||
core_loadimage_png -> render_vrml [pos="e,452.11,1103.4 275.94,1435.6 298.12,1387.6 363.32,1249.2 428,1140 433.61,1130.5 440.27,1120.5 446.32,1111.7"];
|
||||
input_ps -> core_loadimage_ps [pos="e,239.91,1642 80.421,1642 118.08,1642 187.31,1642 229.74,1642"];
|
||||
input_svg -> core_loadimage_svg [pos="e,239.91,1750 80.421,1750 118.08,1750 187.31,1750 229.74,1750"];
|
||||
}
|
BIN
src/graphxq/data/heir.jpg
Normal file
BIN
src/graphxq/data/heir.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
|
@ -1,27 +1,93 @@
|
|||
<items>
|
||||
<item>
|
||||
<items nextid="6">
|
||||
<item id="G1">
|
||||
<title>Process</title>
|
||||
<url type="dot">samples/dot/process.gv</url>
|
||||
<url type="dot">data/dot/process.gv</url>
|
||||
<description>parallel process sequence</description>
|
||||
</item>
|
||||
<item>
|
||||
<item id="G2">
|
||||
<title>Unix</title>
|
||||
<url type="dot">samples/dot/unix.gv</url>
|
||||
<url type="dot">data/dot/unix.gv</url>
|
||||
<description>Evolution of UNIX.</description>
|
||||
</item>
|
||||
<item>
|
||||
<item id="G3">
|
||||
<title>Root</title>
|
||||
<url type="dot">samples/dot/root.gv</url>
|
||||
<url type="dot">data/dot/root.gv</url>
|
||||
<description>Very large and slow.</description>
|
||||
</item>
|
||||
<item>
|
||||
<item id="G4">
|
||||
<title>Sample</title>
|
||||
<url type="dotml">samples/dotml/sample1.xml</url>
|
||||
<url type="dotml">data/dotml/sample1.xml</url>
|
||||
<description>State machine.</description>
|
||||
</item>
|
||||
<item>
|
||||
<item id="G5">
|
||||
<title>Cluster</title>
|
||||
<url type="dotml">samples/dotml/cluster.xml</url>
|
||||
<url type="dotml">data/dotml/cluster.xml</url>
|
||||
<description>Simple cluster.</description>
|
||||
</item>
|
||||
<item id="G6">
|
||||
<title>hierarchy</title>
|
||||
<url type="dot">data/dot/hier.gv</url>
|
||||
<description>hierarchy.</description>
|
||||
</item>
|
||||
<item id="G1">
|
||||
<title>Process</title>
|
||||
<url type="dot">data/dot/process.gv</url>
|
||||
<description>parallel process sequence</description>
|
||||
</item>
|
||||
<item id="G2">
|
||||
<title>Unix</title>
|
||||
<url type="dot">data/dot/unix.gv</url>
|
||||
<description>Evolution of UNIX.</description>
|
||||
</item>
|
||||
<item id="G3">
|
||||
<title>Root</title>
|
||||
<url type="dot">data/dot/root.gv</url>
|
||||
<description>Very large and slow.</description>
|
||||
</item>
|
||||
<item id="G4">
|
||||
<title>Sample</title>
|
||||
<url type="dotml">data/dotml/sample1.xml</url>
|
||||
<description>State machine.</description>
|
||||
</item>
|
||||
<item id="G5">
|
||||
<title>Cluster</title>
|
||||
<url type="dotml">data/dotml/cluster.xml</url>
|
||||
<description>Simple cluster.</description>
|
||||
</item>
|
||||
<item id="G6">
|
||||
<title>hierarchy</title>
|
||||
<url type="dot">data/dot/hier.gv</url>
|
||||
<description>hierarchy.</description>
|
||||
</item>
|
||||
<!-- pad -->
|
||||
<item id="G1">
|
||||
<title>Process</title>
|
||||
<url type="dot">data/dot/process.gv</url>
|
||||
<description>parallel process sequence</description>
|
||||
</item>
|
||||
<item id="G2">
|
||||
<title>Unix</title>
|
||||
<url type="dot">data/dot/unix.gv</url>
|
||||
<description>Evolution of UNIX.</description>
|
||||
</item>
|
||||
<item id="G3">
|
||||
<title>Root</title>
|
||||
<url type="dot">data/dot/root.gv</url>
|
||||
<description>Very large and slow.</description>
|
||||
</item>
|
||||
<item id="G4">
|
||||
<title>Sample</title>
|
||||
<url type="dotml">data/dotml/sample1.xml</url>
|
||||
<description>State machine.</description>
|
||||
</item>
|
||||
<item id="G5">
|
||||
<title>Cluster</title>
|
||||
<url type="dotml">data/dotml/cluster.xml</url>
|
||||
<description>Simple cluster.</description>
|
||||
</item>
|
||||
<item id="G6">
|
||||
<title>hierarchy</title>
|
||||
<url type="dot">data/dot/hier.gv</url>
|
||||
<description>hierarchy.</description>
|
||||
</item>
|
||||
</items>
|
|
@ -1,19 +1,66 @@
|
|||
declare namespace doc="http://www.xqdoc.org/1.0";
|
||||
declare namespace dotml="http://www.martin-loetzsch.de/DOTML";
|
||||
|
||||
declare variable $ns-ignore:=("http://www.w3.org/2005/xpath-functions",
|
||||
"http://www.w3.org/2010/xslt-xquery-serialization",
|
||||
"http://www.w3.org/2001/XMLSchema",
|
||||
"http://www.w3.org/2005/xpath-functions/math" );
|
||||
declare function local:sid($s as xs:string){
|
||||
"A" || xs:hexBinary(hash:md5($s))
|
||||
};
|
||||
declare function local:fid($uri as xs:string ,$name as xs:string,$arity as xs:string){
|
||||
let $a:=fn:trace(($uri || "*" || $name || "*" || $arity),"fid: ")
|
||||
return "A" || xs:hexBinary(hash:md5($uri || $name ||$arity))
|
||||
};
|
||||
|
||||
declare function local:foo($dml){
|
||||
<dotml:graph file-name="graphs/bgcolor" rankdir="LR" bgcolor="seashell">
|
||||
<dotml:cluster>
|
||||
let $moduri:=$dml/doc:xqdoc/doc:module/doc:uri/fn:string()
|
||||
return
|
||||
<dotml:graph file-name="graphs/bgcolor" rankdir="LR" label="a test" >
|
||||
|
||||
{for $import in $dml//doc:import
|
||||
let $ns:=$import/doc:uri/fn:string()
|
||||
where some $call in $dml//doc:invoked satisfies $call/doc:uri=$import/doc:uri
|
||||
|
||||
return <dotml:cluster id="{local:sid($ns)}"
|
||||
label="{$ns}"
|
||||
bgcolor="#FF8080" >
|
||||
|
||||
{for $call in $dml//doc:invoked[doc:uri=$import/doc:uri]
|
||||
return <dotml:node
|
||||
id="{local:fid($call/doc:name/@uri,$call/doc:name/@localname,$call/@arity)}"
|
||||
label="{$call/doc:name/fn:string()}"
|
||||
fillcolor="lightblue" style="filled"/>
|
||||
}
|
||||
</dotml:cluster>
|
||||
}
|
||||
<dotml:cluster id="main" rankdir="LR"
|
||||
label="main"
|
||||
bgcolor="seashell"
|
||||
>
|
||||
{for $f in $dml//doc:function
|
||||
return <dotml:node id="{generate-id($f)}" label="{$f/doc:name}" fillcolor="lightblue" style="filled"/>,
|
||||
return <dotml:node id="{local:fid($moduri,$f/doc:name,$f/@arity)}" label="{$f/doc:name}" fillcolor="yellow" style="filled"/>,
|
||||
for $v in $dml//doc:variable
|
||||
return <dotml:node id="{generate-id($v)}" label="{$v/doc:name}" fillcolor="green" style="filled"/>
|
||||
}
|
||||
</dotml:cluster>
|
||||
|
||||
{for $call in $dml//doc:invoked
|
||||
let $f:=$call/..
|
||||
where not($call/doc:name/@uri/fn:string()=$ns-ignore)
|
||||
return <dotml:edge
|
||||
from="{local:fid($moduri,$f/doc:name,$f/@arity)}"
|
||||
to="{local:fid($call/doc:name/@uri,$call/doc:name/@localname,$call/@arity)}"/> }
|
||||
</dotml:graph>
|
||||
};
|
||||
|
||||
let $a:=local:foo(/)
|
||||
|
||||
(:
|
||||
let $req:=<http:request method="POST" >
|
||||
<http:body media-type="application/x-www-form-urlencoded">dotml={fn:encode-for-uri(fn:serialize($a))}</http:body>
|
||||
<http:body media-type="application/x-www-form-urlencoded">data={fn:encode-for-uri(fn:serialize($a))}</http:body>
|
||||
</http:request>
|
||||
let $ws:= http:send-request($req,"http://localhost:8984/restxq/graphxq/api/dotml")
|
||||
return file:write("aa.svg",$ws[2])
|
||||
return file:write("aa.svg",$ws[2])
|
||||
:)
|
||||
return $a
|
|
@ -32,28 +32,47 @@ width="100%" height="100%" preserveAspectRatio="xMidYMid meet">
|
|||
:Layout one or more graphs given in the DOT language and render them as SVG.
|
||||
:)
|
||||
declare function dot( $dot as xs:string*, $params as xs:string*) as node()*{
|
||||
let $params:=("-Tsvg")
|
||||
for $d in $dot
|
||||
return if($d)
|
||||
then dot1($d)
|
||||
else $gr:empty
|
||||
return if(fn:not($d))
|
||||
then $gr:empty
|
||||
else let $r:=dot-execute($d,$params)
|
||||
return dot-svg($r)
|
||||
};
|
||||
|
||||
declare %private function dot1( $dot as xs:string) as element(svg:svg)
|
||||
{
|
||||
(:~ run dot command :)
|
||||
declare %private function dot-execute( $dot as xs:string, $params as xs:string*) as element(result){
|
||||
let $fname:=$gr:tmpdir || random:uuid()
|
||||
let $junk:=file:write-text($fname,$dot)
|
||||
let $r:=proc:execute($gr:dotpath , ("-Tsvg",$fname))
|
||||
let $r:=proc:execute($gr:dotpath , ($params,$fname))
|
||||
let $junk:=file:delete($fname)
|
||||
(: let $r:=fn:trace($r,"hhi"):)
|
||||
return if($r/code!="0")
|
||||
then fn:error(xs:QName('gr:dot1'),$r/error)
|
||||
else (: o/p has comment nodes :)
|
||||
let $s:=fn:parse-xml($r/output)
|
||||
let $ver:=$s/comment()[1]/fn:normalize-space()
|
||||
let $title:=$s/comment()[2]/fn:normalize-space()
|
||||
let $svg:=$s/*
|
||||
return <svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" >
|
||||
then fn:error(xs:QName('gr:dot1'),$r/error)
|
||||
else $r
|
||||
};
|
||||
|
||||
(:~ run dot command returning binary :)
|
||||
declare %private function dot-executeb( $dot as xs:string, $params as xs:string*) as xs:base64Binary{
|
||||
let $fname:=$gr:tmpdir || random:uuid()
|
||||
let $oname:=$fname || ".o"
|
||||
let $junk:=file:write-text($fname,$dot)
|
||||
let $r:=proc:execute($gr:dotpath , ($params,"-o"|| $oname,$fname))
|
||||
let $junk:=file:delete($fname)
|
||||
return if($r/code!="0")
|
||||
then fn:error(xs:QName('gr:dot1'),$r/error)
|
||||
else let $d:=file:read-binary($oname)
|
||||
(: let $junk:=file:delete($oname) :)
|
||||
return $d
|
||||
};
|
||||
|
||||
(:~ cleanup dot svg result :)
|
||||
declare %private function dot-svg( $r as element(result)) as element(svg:svg){
|
||||
let $s:=fn:parse-xml($r/output) (: o/p has comment nodes :)
|
||||
let $ver:=$s/comment()[1]/fn:normalize-space()
|
||||
let $title:=$s/comment()[2]/fn:normalize-space()
|
||||
let $svg:=$s/*
|
||||
return <svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" >
|
||||
{$svg/@* ,
|
||||
<metadata>
|
||||
<rdf:RDF
|
||||
|
@ -79,15 +98,6 @@ declare %private function dot1( $dot as xs:string) as element(svg:svg)
|
|||
|
||||
};
|
||||
|
||||
(:~
|
||||
:Layout one ore more graphs given in the GXL language and render them as SVG.
|
||||
: gxl2dot Test.gxl > Test.dot
|
||||
:)
|
||||
declare function gxl($gxl as node()*, $params as xs:string*) as node()*{
|
||||
for $g in $gxl
|
||||
(: @TODO :)
|
||||
return fn:error()
|
||||
};
|
||||
|
||||
(:~
|
||||
: set svg to autosize 100%
|
||||
|
|
|
@ -14,7 +14,7 @@ import module namespace txq = 'apb.txq' at "lib/txq.xqm";
|
|||
import module namespace request = "http://exquery.org/ns/request";
|
||||
|
||||
declare namespace svg= "http://www.w3.org/2000/svg";
|
||||
declare namespace rest = 'http://exquery.org/ns/restxq';
|
||||
declare namespace restxq = 'http://exquery.org/ns/restxq';
|
||||
|
||||
(:~ shared page wrapper :)
|
||||
declare variable $grxq:layout:=fn:resolve-uri("views/layout.xml");
|
||||
|
@ -23,7 +23,17 @@ declare variable $grxq:layout:=fn:resolve-uri("views/layout.xml");
|
|||
: Home page for app
|
||||
:)
|
||||
declare
|
||||
%rest:GET %rest:path("graphxq")
|
||||
%restxq:GET %restxq:path("graphxq")
|
||||
%output:method("html") %output:version("5.0")
|
||||
function home(){
|
||||
<restxq:redirect>graphxq/about</restxq:redirect>
|
||||
};
|
||||
|
||||
(:~
|
||||
: about page for app
|
||||
:)
|
||||
declare
|
||||
%restxq:GET %restxq:path("graphxq/about")
|
||||
%output:method("html") %output:version("5.0")
|
||||
function about(){
|
||||
render("views/about.xml",map{"title":="GraphXQ"})
|
||||
|
@ -33,12 +43,14 @@ function about(){
|
|||
: GET or POST return svg for dot, with download option
|
||||
:)
|
||||
declare
|
||||
%rest:path("graphxq/api/svg")
|
||||
%rest:form-param("data","{$dot}")
|
||||
%rest:form-param("url","{$url}")
|
||||
%rest:form-param("dl","{$dl}")
|
||||
%restxq:path("graphxq/api/dot")
|
||||
%restxq:form-param("data","{$dot}")
|
||||
%restxq:form-param("url","{$url}")
|
||||
%restxq:form-param("dl","{$dl}")
|
||||
%restxq:form-param("dotopt","{$dotopt}")
|
||||
%output:media-type("image/svg+xml")
|
||||
function graphxq-svg($dot,$url,$dl) {
|
||||
function graphxq-svg($dot,$url,$dl,$dotopt) {
|
||||
let $junk:=fn:trace(fn:count($dotopt),"--opts: ")
|
||||
let $dot2:=getdot($dot,$url)
|
||||
let $svg:=dot2svg($dot2)
|
||||
let $fname:=if($dl)then "dot.svg" else ()
|
||||
|
@ -50,9 +62,9 @@ function graphxq-svg($dot,$url,$dl) {
|
|||
: @param src load from url
|
||||
:)
|
||||
declare
|
||||
%rest:GET %rest:path("graphxq/dot")
|
||||
%restxq:GET %restxq:path("graphxq/dot")
|
||||
%output:method("html") %output:version("5.0")
|
||||
%rest:form-param("src","{$src}")
|
||||
%restxq:form-param("src","{$src}")
|
||||
function dotform($src){
|
||||
let $dot:= getdot("digraph {{a -> b}}",$src)
|
||||
let $svgwidget:=fn:doc("views/widget.svg")
|
||||
|
@ -67,9 +79,9 @@ function dotform($src){
|
|||
};
|
||||
|
||||
declare
|
||||
%rest:GET %rest:path("graphxq/dotml")
|
||||
%restxq:GET %restxq:path("graphxq/dotml")
|
||||
%output:method("html") %output:version("5.0")
|
||||
%rest:form-param("src","{$src}")
|
||||
%restxq:form-param("src","{$src}")
|
||||
function dotmlform($src){
|
||||
let $svgwidget:=fn:doc("views/widget.svg")
|
||||
let $toolbar:=fn:doc("views/toolbar.xml")
|
||||
|
@ -88,7 +100,7 @@ function dotmlform($src){
|
|||
|
||||
(:~ static api page :)
|
||||
declare
|
||||
%rest:GET %rest:path("graphxq/api")
|
||||
%restxq:GET %restxq:path("graphxq/api")
|
||||
%output:method("html") %output:version("5.0")
|
||||
function api(){
|
||||
render("views/api.xml",map{"title":="API information"})
|
||||
|
@ -96,22 +108,21 @@ function api(){
|
|||
|
||||
(:~ static ace page :)
|
||||
declare
|
||||
%rest:GET %rest:path("graphxq/ace")
|
||||
%restxq:GET %restxq:path("graphxq/ace")
|
||||
%output:method("html") %output:version("5.0")
|
||||
function ace(){
|
||||
let $svgwidget:=fn:doc("views/widget.svg")
|
||||
let $toolbar:=fn:doc("views/toolbar.xml")
|
||||
let $v:=map{ "svgwidget":=$svgwidget,
|
||||
"toolbar":=$toolbar,
|
||||
"title":="DOTML editor",
|
||||
"bodyclass":="h100",
|
||||
"dotml":="gg"}
|
||||
let $v:=map{
|
||||
"title":="XQuery editor (for no reason) ",
|
||||
"bodyclass":="h100"
|
||||
}
|
||||
return render("views/ace.xml",$v)
|
||||
};
|
||||
|
||||
|
||||
declare
|
||||
%rest:GET %rest:path("graphxq/library")
|
||||
%restxq:GET %restxq:path("graphxq/library")
|
||||
%output:method("html") %output:version("5.0")
|
||||
function library(){
|
||||
let $lib:=fn:doc("data/library.xml")
|
||||
|
@ -126,9 +137,9 @@ function library(){
|
|||
: @return svg from dotml
|
||||
:)
|
||||
declare
|
||||
%rest:POST %rest:path("graphxq/api/dotml")
|
||||
%rest:form-param("data","{$dotml}")
|
||||
%rest:form-param("dl","{$dl}")
|
||||
%restxq:POST %restxq:path("graphxq/api/dotml")
|
||||
%restxq:form-param("data","{$dotml}")
|
||||
%restxq:form-param("dl","{$dl}")
|
||||
function api-dotml($dotml,$dl ) {
|
||||
let $dotml:=fn:trace($dotml,"dot: ")
|
||||
let $dotml:=fn:parse-xml($dotml)
|
||||
|
@ -160,14 +171,14 @@ declare %private function getdotml($dotml as node(),$url) as node(){
|
|||
};
|
||||
(:~ CORS header with download option :)
|
||||
declare function headers($attachment){
|
||||
<rest:response>
|
||||
<restxq:response>
|
||||
<http:response>
|
||||
<http:header name="Access-Control-Allow-Origin" value="*"/>
|
||||
{if($attachment)
|
||||
then <http:header name="Content-Disposition" value='attachment;filename="{$attachment}"'/>
|
||||
else ()}
|
||||
</http:response>
|
||||
</rest:response>
|
||||
</restxq:response>
|
||||
};
|
||||
(:~ Generate svg from dot :)
|
||||
declare %private function dot2svg($dot as xs:string) as node(){
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
<div>
|
||||
<div class="row-fluid">
|
||||
<div class="hero-unit">
|
||||
<h1>GraphXQ</h1>
|
||||
<p>A web interface to <a href="http://www.graphviz.org/" target="_blank">Graphviz</a>.
|
||||
Graph descriptions can be entered in the
|
||||
<a href="http://www.graphviz.org/content/dot-language" target="_blank">Dot</a> language
|
||||
or in <a href="http://www.martin-loetzsch.de/DOTML" target="_blank">DOTML</a>.
|
||||
A REST interface is provided (<a href="api">API</a>) that enables SVG generation to be used as a service.</p>
|
||||
<a href="http://www.graphviz.org/content/dot-language" target="_blank">Dot</a>
|
||||
or <a href="http://www.martin-loetzsch.de/DOTML" target="_blank">DotML</a> languages and the corresponding
|
||||
SVG viewed or downloaded.
|
||||
A <a href="api">REST interface</a> enables SVG generation to be used as a service.</p>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="container-fluid">
|
||||
<div class="fluid-row">
|
||||
<div class="span4">
|
||||
<h2>Client</h2>
|
||||
<p>The client side targets modern browsers. It was tested against Firefox 15 and Chrome 21.
|
||||
|
@ -32,9 +33,9 @@
|
|||
<p> The graphviz <code>dot</code> executable is used to generate SVG from the DOT source.
|
||||
The resultant SVG is viewed in an interface that provides pan and zoom functionality.
|
||||
The SVG may also be viewed standalone or downloaded.</p>
|
||||
<p>This application includes an XSLT transform to convert <code>DOTML</code> to
|
||||
<p>This application includes an XSLT transform to convert <code>DotML</code> to
|
||||
<code>dot</code> developed by Martin Loetzsch.
|
||||
<a href="http://www.martin-loetzsch.de/DOTML" target="_blank">DOTML</a>
|
||||
<a href="http://www.martin-loetzsch.de/DOTML" target="_blank">DotML</a>
|
||||
is a XML based syntax for the input language of the 'Dot'.</p>
|
||||
</div>
|
||||
<div class="span4">
|
||||
|
@ -42,11 +43,12 @@
|
|||
<p>The SVG pan and zoom has problems, especially in Firefox. In part this maybe due
|
||||
to firefox bugs</p>
|
||||
<p>For reference this shows how the SVG <a href="/graphxq/viewbox/viewBox.svg">viewbox</a>
|
||||
works. See also <a href="http://alzt.tau.ac.il/~dagan/tools/#zoom">here</a>.
|
||||
works. See also <a href="http://alzt.tau.ac.il/~dagan/tools/#zoom">here</a>. and
|
||||
<a href="http://www.dotuscomus.com/svg/lib/library.html#autozoom">here</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr/>
|
||||
|
||||
<footer>
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
<div>
|
||||
<div class="row-fluid" style="height:24px">
|
||||
{$toolbar}
|
||||
</div>
|
||||
<div class="row-fluid" >
|
||||
<div class="span6 ace-container extend" id="leftPane" style="height:20em;">
|
||||
<div id="editor" class="ace">function foo(items) {{
|
||||
var x = "All this is syntax highlighted";
|
||||
return x;
|
||||
}}</div>
|
||||
<div class="row-fluid">
|
||||
|
||||
</div>
|
||||
<div class="span6" id="rightPane">
|
||||
<div id="svgdiv" class="extend"
|
||||
style="width:100%;height:30em;border: 1px solid #E3E3E3;min-height:20em;">{$svgwidget}</div>
|
||||
<pre style="display: none" id="svgsrc">(no svg loaded)</pre>
|
||||
</div>
|
||||
<script>
|
||||
<div class="span12 ace-container extend" id="leftPane" style="height:20em;">
|
||||
<div id="editor" class="ace">module namespace txq = 'apb.txq';
|
||||
declare default function namespace 'apb.txq';
|
||||
import module namespace xquery = "http://basex.org/modules/xquery";
|
||||
|
||||
(:~
|
||||
: template function
|
||||
: @param template url to fill
|
||||
: @param map name and value to apply
|
||||
: @return updated doc from map
|
||||
:)
|
||||
declare function render($template as xs:string,$map as map(*)){{
|
||||
let $map:=map:new(($map,map{{"partial":=partial(?,?,?,$map,$template)}}))
|
||||
return xquery:invoke($template,$map)
|
||||
}};</div>
|
||||
</div>
|
||||
<script>
|
||||
acediv("editor","xquery",false)
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
</div>
|
||||
|
|
|
@ -1,24 +1,67 @@
|
|||
<div>
|
||||
<div class="row-fluid">
|
||||
<h1>The GraphXQ API</h1>
|
||||
<p>The Graphxq REST API.</p>
|
||||
<h2 id="dot">
|
||||
<span class="label label-success">POST</span>
|
||||
<a href="#dot">dot</a>
|
||||
<span class="label label-success">POST</span>
|
||||
<a href="#dot">dot</a>
|
||||
</h2>
|
||||
<h3>Description</h3>
|
||||
<p>Return SVG from dot passed in the <code>data</code> parameter.</p>
|
||||
<p>Return SVG generated from dot syntax passed in the <code>data</code> parameter.</p>
|
||||
<h3>Syntax</h3>
|
||||
<p>
|
||||
<code>restxq/graphxq/api/dot?data=..</code>
|
||||
</p>
|
||||
<h2 id="dotml">
|
||||
<span class="label label-success">POST</span>
|
||||
<a href="#dotml">dotml</a>
|
||||
</h2>
|
||||
<h3>Description</h3>
|
||||
<p>Return SVG from dotML passed in the <code>data</code> parameter.</p>
|
||||
<h3>Syntax</h3>
|
||||
<p>
|
||||
<code>restxq/graphxq/api/dotml?data=..</code>
|
||||
<p>
|
||||
<code>restxq/graphxq/api/dot</code> <span class="label">application/x-www-form-urlencoded</span>
|
||||
</p>
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Required</th>
|
||||
<th>Default</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>data</td>
|
||||
<td>string</td>
|
||||
<td>Y</td>
|
||||
<td></td>
|
||||
<td>
|
||||
<code>dot</code> description of graph</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="dotml">
|
||||
<span class="label label-success">POST</span>
|
||||
<a href="#dotml">dotml</a>
|
||||
</h2>
|
||||
<h3>Description</h3>
|
||||
<p>Return SVG generated from dotML syntax passed in the <code>data</code> parameter.</p>
|
||||
<h3>Syntax</h3>
|
||||
<p>
|
||||
<code>restxq/graphxq/api/dotml</code> <span class="label">application/x-www-form-urlencoded</span>
|
||||
</p>
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Required</th>
|
||||
<th>Default</th>
|
||||
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>data</td>
|
||||
<td>string</td>
|
||||
<td>Y</td>
|
||||
<td></td>
|
||||
<td>
|
||||
<code>dotml</code> XML description of graph</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
|
@ -1,69 +1,31 @@
|
|||
<div>
|
||||
<div class="row-fluid">
|
||||
|
||||
<div class="row-fluid" style="height:24px">
|
||||
{$toolbar}
|
||||
</div>
|
||||
<div class="row-fluid">
|
||||
<div class="span6 " id="leftPane">
|
||||
<form id="editForm" action="api/svg" method="post" target="_new"
|
||||
<form id="editForm" action="api/dot" method="post" target="_new"
|
||||
class="extend" >
|
||||
<textarea id="data" name="data" rows="100"
|
||||
style="width:100%;overflow:scroll;height:98%">{$dot}</textarea>
|
||||
<input name="dl" type="checkbox" style="display:none"/>
|
||||
<input name="dotopt" type="text" value="a" style="display:none"/>
|
||||
<input name="dotopt" type="text" value="bb" style="display:none"/>
|
||||
</form>
|
||||
|
||||
<textarea id="cleartext" style="display: none">digraph title {{ bgcolor=seashell
|
||||
node[shape=circle,style=filled,fillcolor=lightblue]
|
||||
|
||||
}}</textarea>
|
||||
</div>
|
||||
<div class="span6" id="rightPane">
|
||||
<div id="svgdiv" class="extend"
|
||||
style="width:100%;height:30em;border: 1px solid #E3E3E3;min-height:10em;">{$svgwidget}</div>
|
||||
<div id="svgsrc" class="extend ace-container" style="display: none">
|
||||
<div id="svgsrc2" class="ace ">(no svg loaded)</div>
|
||||
<div id="svgsrc2" class="ace " data-mode="svg" data-readonly="1">(no svg loaded)</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog"
|
||||
aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<form id="frm-defaults" class="form-table">
|
||||
<label>
|
||||
Title:
|
||||
<input type="text" value="" name="dotTitle" size="15" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
RankDir:
|
||||
<select name="rankdir">
|
||||
<option value="rankdir=TB;" selected="selected">TB (top
|
||||
-> bottom)
|
||||
</option>
|
||||
<option value="rankdir=LR;">LR (left -> right)</option>
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Default Shape:
|
||||
<select name="shape">{$list-shapes}</select>
|
||||
</label>
|
||||
<label>
|
||||
Color:
|
||||
<select id="lstColors" width="10">{$list-colors}</select>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Background:
|
||||
<select name="bgcolor">{$list-colors}</select>
|
||||
</label>
|
||||
<label>
|
||||
Filter:
|
||||
<select name="filter">
|
||||
<option value="Bumpy">Bumpy</option>
|
||||
<option value="" selected="selected">(None)</option>
|
||||
<option value="grey_bevel_shadow">grey_bevel_shadow</option>
|
||||
<option value="Bevel">Bevel</option>
|
||||
<option value="MyFilter">MyFilter</option>
|
||||
<option value="MyShadow">MyShadow</option>
|
||||
</select>
|
||||
</label>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
|
@ -1,4 +1,4 @@
|
|||
<div>
|
||||
<div class="row-fluid">
|
||||
<div class="row-fluid" style="height:24px">
|
||||
{$toolbar}
|
||||
</div>
|
||||
|
@ -10,12 +10,16 @@
|
|||
style="width:100%;overflow:scroll;height:98%">{$dotml}</textarea>
|
||||
<input name="dl" type="checkbox" style="display:none" />
|
||||
</form>
|
||||
<textarea id="cleartext" style="display: none"><graph xmlns="http://www.martin-loetzsch.de/DOTML">
|
||||
<node id="test"/>
|
||||
</graph></textarea>
|
||||
</div>
|
||||
<div class="span6" id="rightPane">
|
||||
<div id="svgdiv" class="extend"
|
||||
style="width:100%;height:30em;border: 1px solid #E3E3E3;min-height:10em;">{$svgwidget}</div>
|
||||
<div id="svgsrc" class="extend ace-container" style="display: none">
|
||||
<div id="svgsrc2" class="ace ">(no svg loaded)</div>
|
||||
<div id="svgsrc2" class="ace "
|
||||
data-mode="svg" data-readonly="1">(no svg loaded)</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<li class="span4" style="height:180px;">
|
||||
<a class="pull-left thumbnail" href="{$url($item)}">
|
||||
<li class="media thumbnail" style="height:8em;width:20em;">
|
||||
<a class="pull-left " href="{$url($item)}">
|
||||
<img class="media-object" src="/graphxq/{$item/url/@type}.png" style="width:100px;height:100px"/>
|
||||
</a>
|
||||
<div class="media-body">
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
<head id="head">
|
||||
<meta charset="utf-8" />
|
||||
<title id="title">{$title}</title>
|
||||
<base href="/restxq/graphxq/" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="description" content="graphviz tool" />
|
||||
|
@ -44,7 +43,7 @@
|
|||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<a href="." class="brand" title="Version 0.3.1">
|
||||
<a href="about" class="brand" title="Version 0.4.0">
|
||||
<img src="/graphxq/graphxq2.png" />
|
||||
graphXQ
|
||||
</a>
|
||||
|
@ -81,10 +80,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="container-fluid">
|
||||
<div class="row-fluid">
|
||||
{$body}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<div>
|
||||
<div class="row-fluid">
|
||||
<h2>Samples ({fn:count($items/item )})</h2>
|
||||
<ul class=" thumbnails ">
|
||||
|
||||
<ul class=" thumbnails media-list">
|
||||
{$partial("item1.xml","item",$items/item)}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
44
src/graphxq/views/options.xml
Normal file
44
src/graphxq/views/options.xml
Normal file
|
@ -0,0 +1,44 @@
|
|||
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog"
|
||||
aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<form id="frm-defaults" class="form-table">
|
||||
<label>
|
||||
Title:
|
||||
<input type="text" value="" name="dotTitle" size="15" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
RankDir:
|
||||
<select name="rankdir">
|
||||
<option value="rankdir=TB;" selected="selected">TB (top
|
||||
-> bottom)
|
||||
</option>
|
||||
<option value="rankdir=LR;">LR (left -> right)</option>
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Default Shape:
|
||||
<select name="shape">{$list-shapes}</select>
|
||||
</label>
|
||||
<label>
|
||||
Color:
|
||||
<select id="lstColors" width="10">{$list-colors}</select>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Background:
|
||||
<select name="bgcolor">{$list-colors}</select>
|
||||
</label>
|
||||
<label>
|
||||
Filter:
|
||||
<select name="filter">
|
||||
<option value="Bumpy">Bumpy</option>
|
||||
<option value="" selected="selected">(None)</option>
|
||||
<option value="grey_bevel_shadow">grey_bevel_shadow</option>
|
||||
<option value="Bevel">Bevel</option>
|
||||
<option value="MyFilter">MyFilter</option>
|
||||
<option value="MyShadow">MyShadow</option>
|
||||
</select>
|
||||
</label>
|
||||
</form>
|
||||
</div>
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button id="bnxx" class="btn btn-mini">
|
||||
<button id="bnOpts" class="btn btn-mini">
|
||||
<i class="icon-gift"></i>
|
||||
Options
|
||||
</button>
|
||||
|
@ -35,8 +35,10 @@
|
|||
<i class="icon icon-indent-right"></i>
|
||||
</a>
|
||||
</div>
|
||||
<a id="infotip" data-original-title="Status from Ajax" rel="popover" data-placement="bottom" data-content="nothing yet.">
|
||||
<i class="icon-info"></i> Status
|
||||
<a id="infotip" data-original-title="Status from Ajax"
|
||||
class="btn btn-mini" rel="popover" data-placement="bottom" data-content="nothing yet."
|
||||
title="Ajax request status">
|
||||
<i class="icon-info-sign" title="Request status, click for more.">></i>
|
||||
</a>
|
||||
<div class="btn-group pull-right">
|
||||
<button id="bnsvg" class="btn btn-mini" title="Show SVG standalone.">
|
||||
|
|
Loading…
Add table
Reference in a new issue