# HG changeset patch # User František Kučera <franta-hg@frantovo.cz> # Date 1272366863 -7200 # Node ID 6209f3d550c58814cfe8960e0e49c1969f920c50 # Parent f9c0ce760189feea1b6fb0d6f20c1e5a45a535b0 Hlasování: základ SVG grafu, výpočet. TODO: validita SVG vloženého do XHTML. diff -r f9c0ce760189 -r 6209f3d550c5 html/graf.svg --- a/html/graf.svg Tue Apr 27 11:15:36 2010 +0200 +++ b/html/graf.svg Tue Apr 27 13:14:23 2010 +0200 @@ -4,16 +4,6 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> - <!-- - <a xlink:href="http://frantovo.cz" xlink:title="Moje stránky!"> - <circle cx="150" cy="100" r="50" style="fill:red; stroke-width: 3; stroke:rgb(0,0,0)"/> - </a> - - <a xlink:href="javascript:alert('To čumíš, co? :-)')" xlink:title="Nečum!"> - <circle cx="200" cy="100" r="50" style="fill:blue; stroke-width: 3; stroke:rgb(0,0,0)"/> - </a> - --> - <style type="text/css"> rect.ne { fill: url(#ne_prechod); @@ -52,8 +42,8 @@ <!-- pozadí – přechod --> <defs> <linearGradient id="pozadi_prechod" x1="0%" y1="0%" x2="100%" y2="100%"> - <stop offset="0%" style="stop-color:silver; stop-opacity:1"/> - <stop offset="100%" style="stop-color:gray; stop-opacity:1"/> + <stop offset="0%" style="stop-color:white; stop-opacity:0.5"/> + <stop offset="100%" style="stop-color:silver; stop-opacity:0.8"/> </linearGradient> </defs> diff -r f9c0ce760189 -r 6209f3d550c5 java/nekurak.net-web/web/WEB-INF/casti/uvod.jsp --- a/java/nekurak.net-web/web/WEB-INF/casti/uvod.jsp Tue Apr 27 11:15:36 2010 +0200 +++ b/java/nekurak.net-web/web/WEB-INF/casti/uvod.jsp Tue Apr 27 13:14:23 2010 +0200 @@ -35,7 +35,7 @@ <!-- Hlasování a graf --> <div class="hlasovani"> - <nk:hlasovani podnik="${p.id}"/> + <nk:hlasovani podnik="${p.id}" hlasuAno="5" hlasuNe="10"/> </div> <!-- Fotky podniku --> diff -r f9c0ce760189 -r 6209f3d550c5 java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag Tue Apr 27 11:15:36 2010 +0200 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag Tue Apr 27 13:14:23 2010 +0200 @@ -6,7 +6,111 @@ version="2.0"> <jsp:directive.attribute name="podnik" type="java.lang.Integer" required="true" description="ID podniku"/> + <jsp:directive.attribute name="hlasuAno" type="java.lang.Integer" required="true" description="počet hlasů pro ano – aby se tu kouřilo"/> + <jsp:directive.attribute name="hlasuNe" type="java.lang.Integer" required="true" description="počet hlasů pro ne – aby se tu nekouřilo"/> + <jsp:directive.attribute name="svgUvnitrXhtml" type="java.lang.Boolean" required="false" description="true = SVG vložené přímo do XHTML (XML) | false = SVG jako externí obrázek – <img src='…'/>"/> - <p>TODO: tady bude graf a hlasování.</p> + <c:if test="${svgUvnitrXhtml == null}"> + <c:set var="svgUvnitrXhtml" value="${true}"/> + </c:if> + + <c:choose> + <c:when test="${svgUvnitrXhtml}"> + <svg width="200" height="200" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink"> + + + <style type="text/css"> + rect.ne { + fill: url(#ne_prechod); + stroke: black; + } + rect.ano { + fill: url(#ano_prechod); + stroke: black; + } + + a:hover rect.ano, a:hover rect.ne { + fill: url(#zvyrazneny_prechod); + } + + a:hover text { + fill: green; + } + + line.ramecek { + stroke: black; + stroke-width: 2; + } + + + rect.pozadi { + fill: url(#pozadi_prechod); + } + + text { + font-size: 12px; + font-family: Sans; + } + + </style> + + <!-- pozadí – přechod --> + <defs> + <linearGradient id="pozadi_prechod" x1="0%" y1="0%" x2="100%" y2="100%"> + <stop offset="0%" style="stop-color:white; stop-opacity:0.5"/> + <stop offset="100%" style="stop-color:silver; stop-opacity:0.8"/> + </linearGradient> + </defs> + + <!-- nekuřácký graf – přechod --> + <defs> + <linearGradient id="ne_prechod" x1="0%" y1="0%" x2="100%" y2="100%"> + <stop offset="0%" style="stop-color:white; stop-opacity:1"/> + <stop offset="100%" style="stop-color:blue; stop-opacity:1"/> + </linearGradient> + </defs> + + <!-- zvýrazněný graf – přechod --> + <defs> + <linearGradient id="zvyrazneny_prechod" x1="0%" y1="0%" x2="100%" y2="100%"> + <stop offset="0%" style="stop-color:white; stop-opacity:1"/> + <stop offset="100%" style="stop-color:green; stop-opacity:1"/> + </linearGradient> + </defs> + + <!-- kuřácký graf – přechod --> + <defs> + <linearGradient id="ano_prechod" x1="0%" y1="0%" x2="100%" y2="100%"> + <stop offset="0%" style="stop-color:white; stop-opacity:1"/> + <stop offset="100%" style="stop-color:red; stop-opacity:1"/> + </linearGradient> + </defs> + + <!-- pozadí a linka --> + <rect x="0" y="0" width="200" height="200" class="pozadi"/> + <line x1="10" y1="180" x2="190" y2="180" class="ramecek"/> + + <!-- Nadpis grafu --> + <text x="60" y="20">Mělo by se tu:</text> + + <!-- nekuřáci --> + <a xlink:href="javascript:alert('To čumíš, co? :-)')" xlink:title="Hlasů: ${hlasuNe}"> + <text x="30" y="195" class="ne">nekouřit</text> + <rect x="30" y="${180 - (150*hlasuNe/(hlasuAno+hlasuNe))}" width="50" height="${150*hlasuNe/(hlasuAno+hlasuNe)}" class="ne"/> + </a> + + <!-- kuřáci --> + <a xlink:href="javascript:alert('To čumíš, co? :-)')" xlink:title="Hlasů: ${hlasuAno}"> + <text x="130" y="195" class="ano">kouřit</text> + <rect x="120" y="${180 - (150*hlasuAno/(hlasuAno+hlasuNe))}" width="50" height="${150*hlasuAno/(hlasuAno+hlasuNe)}" class="ano"/> + </a> + </svg> + </c:when> + <c:otherwise> + <object data="hlasovani-svg.jsp?podnik=${podnik}&amp;hlasuAno=${hlasuAno}&amp;hlasuNe=${hlasuNe}" type="image/svg+xml"/> + </c:otherwise> + </c:choose> </jsp:root> \ No newline at end of file diff -r f9c0ce760189 -r 6209f3d550c5 java/nekurak.net-web/web/hlasovani-svg.jsp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-web/web/hlasovani-svg.jsp Tue Apr 27 13:14:23 2010 +0200 @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" + xmlns:c="http://java.sun.com/jsp/jstl/core" + xmlns:fmt="http://java.sun.com/jsp/jstl/fmt" + xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak" + version="2.0"> + <jsp:directive.page contentType="image/svg+xml"/> + + <!-- na této úrovni nemusíme ošetřovat vstup – jako parametry projdou jen správné datové typy --> + <nk:hlasovani svgUvnitrXhtml="true" hlasuAno="${param.hlasuAno}" hlasuNe="${param.hlasuNe}" podnik="${param.podnik}"/> + +</jsp:root> \ No newline at end of file diff -r f9c0ce760189 -r 6209f3d550c5 java/nekurak.net-web/web/styl.css --- a/java/nekurak.net-web/web/styl.css Tue Apr 27 11:15:36 2010 +0200 +++ b/java/nekurak.net-web/web/styl.css Tue Apr 27 13:14:23 2010 +0200 @@ -165,8 +165,16 @@ } .podnik .hlasovani { float: left; - width: 280px; + width: 200px; height: 280px; + padding-top: 16px; + margin-right: 20px; +} + +.podnik .hlasovani object { + overflow: hidden; + width: 200px; + height: 200px; } .podnik .fotky {