better ace

This commit is contained in:
Andy Bunce 2013-01-30 23:14:13 +00:00
parent 552b6831aa
commit 9034509ccb
24 changed files with 849 additions and 205 deletions

View file

@ -15,7 +15,7 @@ body {
padding-left: 29px;
}
.popwidth {
width:50em;
width:44em;
}
.navbar-search .icon-search {
position: absolute;

View file

@ -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
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -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>

View file

@ -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

View file

@ -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%

View file

@ -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(){

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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">&lt;graph xmlns="http://www.martin-loetzsch.de/DOTML"&gt;
&lt;node id="test"/&gt;
&lt;/graph&gt;</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>

View file

@ -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">

View file

@ -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>

View file

@ -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>

View 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>

View file

@ -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.">