1 <?xml version="1.0" encoding="UTF-8"?>
2 <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
3 xmlns:c="http://java.sun.com/jsp/jstl/core"
4 xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
5 xmlns:fn="http://java.sun.com/jsp/jstl/functions"
6 xmlns:svg="http://www.w3.org/2000/svg"
7 xmlns:xlink="http://www.w3.org/1999/xlink"
10 <jsp:directive.attribute name="podnik" type="java.lang.Integer" required="true" description="ID podniku"/>
11 <jsp:directive.attribute name="hlasuAno" type="java.lang.Integer" required="false" description="počet hlasů pro ano – aby se tu kouřilo"/>
12 <jsp:directive.attribute name="hlasuNe" type="java.lang.Integer" required="false" description="počet hlasů pro ne – aby se tu nekouřilo"/>
13 <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='…'/>"/>
15 <!-- výchozí hodnota -->
16 <c:if test="${svgUvnitrXhtml == null}">
17 <c:set var="svgUvnitrXhtml" value="${true}"/>
20 <!-- hodnoty nejsou uvedeny → načteme si je -->
21 <c:if test="${hlasuAno == null || hlasuNe == null || (hlasuAno == 0 && hlasuNe == 0)}">
22 <jsp:useBean id="hlasovani" class="cz.frantovo.nekurak.web.Hlasovani" scope="request"/>
23 <jsp:setProperty name="hlasovani" property="podnik" value="${podnik}"/>
24 <c:set var="hlasuAno" value="${hlasovani.vysledek.hlasuAno}"/>
25 <c:set var="hlasuNe" value="${hlasovani.vysledek.hlasuNe}"/>
29 <c:when test="${svgUvnitrXhtml}">
32 xmlns="http://www.w3.org/2000/svg"
33 xmlns:xlink="http://www.w3.org/1999/xlink"
34 width="200" height="200">
37 <style type="text/css">
39 fill: url(#ne_prechod);
43 fill: url(#ano_prechod);
47 a:hover rect.ano, a:hover rect.ne {
48 fill: url(#zvyrazneny_prechod);
62 fill: url(#pozadi_prechod);
72 <!-- pozadí – přechod -->
74 <linearGradient id="pozadi_prechod" x1="0%" y1="0%" x2="100%" y2="100%">
75 <stop offset="20%" style="stop-color:rgb(245,245,255); stop-opacity:0.5"/>
76 <stop offset="100%" style="stop-color:silver; stop-opacity:0.8"/>
80 <!-- nekuřácký graf – přechod -->
82 <linearGradient id="ne_prechod" x1="0%" y1="0%" x2="100%" y2="100%">
83 <stop offset="0%" style="stop-color:white; stop-opacity:1"/>
84 <stop offset="100%" style="stop-color:blue; stop-opacity:1"/>
88 <!-- zvýrazněný graf – přechod -->
90 <linearGradient id="zvyrazneny_prechod" x1="0%" y1="0%" x2="100%" y2="100%">
91 <stop offset="0%" style="stop-color:white; stop-opacity:1"/>
92 <stop offset="100%" style="stop-color:green; stop-opacity:1"/>
96 <!-- kuřácký graf – přechod -->
98 <linearGradient id="ano_prechod" x1="0%" y1="0%" x2="100%" y2="100%">
99 <stop offset="0%" style="stop-color:white; stop-opacity:1"/>
100 <stop offset="100%" style="stop-color:red; stop-opacity:1"/>
104 <!-- pozadí a linka -->
105 <rect x="0" y="0" width="200" height="200" class="pozadi"/>
106 <line x1="10" y1="180" x2="190" y2="180" class="ramecek"/>
108 <!-- nadpis grafu -->
109 <text x="60" y="20"><fmt:message key="hlasovani.graf.nadpis"/>:</text>
112 <c:if test="${hlasuAno == 0 && hlasuNe == 0}">
113 <text x="30" y="100"><fmt:message key="hlasovani.graf.zadneHlasy"/></text>
116 <!-- vypočteme si výšky sloupců grafu -->
117 <c:set var="hlasuNeVyska" value="${150*hlasuNe/(hlasuAno+hlasuNe)}"/>
118 <c:set var="hlasuAnoVyska" value="${150*hlasuAno/(hlasuAno+hlasuNe)}"/>
121 <fmt:message key="hlasovani.graf.popisSloupce" var="hlasuNeLokalizace">
122 <fmt:param value="${hlasuNe}"/>
124 <a xlink:href="javascript:hlasovani.hlasuj(${podnik}, false);" xlink:title="${hlasuNeLokalizace}">
125 <text x="30" y="195" class="ne"><fmt:message key="hlasovani.graf.nekourit"/></text>
126 <rect x="30" y="${180 - hlasuNeVyska}" width="50" height="${hlasuNeVyska}" class="ne"/>
130 <fmt:message key="hlasovani.graf.popisSloupce" var="hlasuAnoLokalizace">
131 <fmt:param value="${hlasuAno}"/>
133 <a xlink:href="javascript:hlasovani.hlasuj(${podnik}, true);" xlink:title="${hlasuAnoLokalizace}">
134 <text x="130" y="195" class="ano"><fmt:message key="hlasovani.graf.kourit"/></text>
135 <rect x="120" y="${180 - hlasuAnoVyska}" width="50" height="${hlasuAnoVyska}" class="ano"/>
140 <object data="hlasovani-svg.jsp?podnik=${podnik}&amp;hlasuAno=${hlasuAno}&amp;hlasuNe=${hlasuNe}" type="image/svg+xml"/>