Skip to content

Commit

Permalink
add swapXY button / link
Browse files Browse the repository at this point in the history
  • Loading branch information
kanitw committed Nov 29, 2014
1 parent 39034c5 commit 2e4b4df
Showing 1 changed file with 65 additions and 9 deletions.
74 changes: 65 additions & 9 deletions index.html
Expand Up @@ -53,6 +53,11 @@
font-size: 14px;
}

#ctrl .swap{
font-size: 10px;
margin-left: 3px;
}

#ctrl span.label {
display: inline-block;
width: 60px;
Expand Down Expand Up @@ -214,6 +219,11 @@
.attr("value", function(d) { return d; })
.text(function(d) { return d; });

// swap btn
ctrl.selectAll(function(d){ return d==="x" ? [this] : []; })
.append("a").attr({"class":"swap", "href":"#"}).text("swap")
.on('click', swapXY);

// Toggle Inspect / Config Form
var toggles = main.append("div").attr("class","toggles");

Expand Down Expand Up @@ -302,6 +312,59 @@
parse(self.spec, data);
}

function swapXY(){
var o = {};
var encXY = d3.selectAll("#ctrl div.enc").selectAll(function(d){
return d==="x" || d==="y" ? [this] : [];
});
encXY.each(function(d) {
o[d] = readEnc(this);
});
encXY.each(function(d){
var e = o[d==="x" ? "y": "x"];
loadEnc(this, e.shelf, e.aggr, e.type);
})

update();
}

function loadEncoding(encoding){
var dataUrl = encoding.config("dataUrl");
if(dataUrl) d3.select("select.dsel").node().value = dataUrl;

d3.select("select.mark").node().value = encoding.marktype();

d3.selectAll("#ctrl div.enc").each(function(d) {
if(encoding.has(d)){
var e = encoding._enc[d];
loadEnc(this, e.name, e.type, e.bin ? "bin" : e.aggr)
}else{
loadEnc(this, "-", "-", "-");
}
});
}

function loadEnc(dom, v, a ,t){
var s = d3.select(dom);
s.select("select.shelf").node().value = v;
s.select("select.type").node().value = t;
s.select("select.aggr").node().value = a;
}

function readEnc(dom){
//read encoding from the UI
var s = d3.select(dom).select("select.shelf").node();
var v = s.options[s.selectedIndex].value;

var s = d3.select(dom).select("select.type").node();
var t = s.options[s.selectedIndex].value;

var s = d3.select(dom).select("select.aggr").node();
var a = s.options[s.selectedIndex].value;

return {shelf:v, type:t, aggr:a};
}

function encodings(cfg) {
var marktype = "bar",
bin = null,
Expand All @@ -314,15 +377,8 @@
marktype = s.options[s.selectedIndex].value;

d3.selectAll("#ctrl div.enc").each(function(d) {
var x = d;
var s = d3.select(this).select("select.shelf").node();
var v = s.options[s.selectedIndex].value;

var s = d3.select(this).select("select.type").node();
var t = s.options[s.selectedIndex].value;

var s = d3.select(this).select("select.aggr").node();
var a = s.options[s.selectedIndex].value;
var x = d, e=readEnc(this),
v=e.shelf, a=e.aggr, t=e.type;

if (v !== "-" || a === "count") {
enc[x] = {
Expand Down

0 comments on commit 2e4b4df

Please sign in to comment.