Skip to content

Commit d4d091d

Browse files
committed
rotates the header row text using canvas. closes dorey#3
1 parent c961164 commit d4d091d

File tree

3 files changed

+66
-16
lines changed

3 files changed

+66
-16
lines changed

coffee/comparison_table.coffee

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,17 @@ do ->
9292
testEquality(`[[]]==[[]]`, "`[[]]`", "==")
9393
testEquality(`[]==[]`, "`[]`", "==")
9494
95+
supportsCanvas = do ->
96+
el = document.createElement "canvas"
97+
!!(el.getContext && el.getContext("2d"))
98+
9599
@buildComparisonTable = (values, comparator)->
96100
comps = (new ForComparison(v) for v in values)
97101
$table = $("<table>", class: "comparisons")
98102
$headRow = $("<tr>").append("<td>").appendTo($table)
99103
for comp in comps
100-
$("<td>", class: "header col").html($("<span>", text: comp.asString)).appendTo($headRow)
104+
$el = if supportsCanvas then rotateText(comp.asString) else $("<span>", class: "rotate", text: comp.asString)
105+
$("<td>", class: "header col").html($el).appendTo($headRow)
101106
for valX, x in comps
102107
$tr = $("<tr>").appendTo($table)
103108
$("<td>", class: "row header").text(valX.asString).appendTo($tr)
@@ -113,12 +118,22 @@ do ->
113118
comps = (new ForComparison(v) for v in values)
114119
$table = $("<table>", class: "comparisons")
115120
for comp in comps
116-
$tr = $("<tr>").html($("<td>", text: comp.asString)).appendTo($table)
121+
$tr = $("<tr>").html($("<td>", class: "header row", text: comp.asString)).appendTo($table)
117122
$td = $("<td>", class: "cell").html($("<div>", html: "&nbsp;")).appendTo($tr)
118123
val = (new Function("if(#{comp.asString}){return true}else{return false}"))()
119124
if val
120125
$td.addClass("green")
121126
expression = " if (#{comp.asString}) { /* #{if val then 'executes' else 'does not execute'} */ } "
122127
$("<td>", class: "expression").html(expression).appendTo($tr)
128+
$table
123129

124-
$table
130+
rotateText = (txt, cHeight=80)->
131+
canv = document.createElement("canvas")
132+
canv.width = "25"
133+
canv.height = cHeight
134+
c = canv.getContext("2d")
135+
c.rotate(Math.PI / 2)
136+
c.font = "15px Monospace"
137+
c.textAlign = "right"
138+
c.fillText(txt,cHeight,-10)
139+
canv

js/comparison_table.js

Lines changed: 30 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

simple.css

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
table.comparisons {
22
border-spacing: 0;
33
}
4+
table.comparisons td.row.header {
5+
text-align: right;
6+
font-family: Monospace;
7+
font-size: 15px;
8+
font-weight: 600;
9+
padding-right: 14px;
10+
}
411
table.comparisons td.cell {
512
padding: 1.5px;
613
}
@@ -19,15 +26,18 @@ table.comparisons td.cell.green div {
1926
border-color: #0b6c0b;
2027
}
2128
table.comparisons td.header.col {
22-
height: 100px;
29+
height: 90px;
2330
}
24-
table.comparisons td.header.col span {
25-
position: absolute;
26-
-moz-transform:rotate(90deg);
27-
-webkit-transform:rotate(90deg);
28-
-o-transform:rotate(90deg);
29-
-ms-transform:rotate(90deg);
30-
transform:rotate(90deg);
31+
table.comparisons td.header.col span.rotate {
32+
position: absolute;
33+
font-family: Monospace;
34+
font-size: 15px;
35+
font-weight: 600;
36+
-moz-transform:rotate(90deg);
37+
-webkit-transform:rotate(90deg);
38+
-o-transform:rotate(90deg);
39+
-ms-transform:rotate(90deg);
40+
transform:rotate(90deg);
3141
}
3242
table.comparisons .expression {
3343
font-size: 13px;

0 commit comments

Comments
 (0)